@_davideast/stitch-mcp 0.5.0 → 0.5.1
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/{chunk-hb3c6f6a.js → chunk-001yk06v.js} +2 -2
- package/dist/chunk-0cd2xak4.js +31447 -0
- package/dist/chunk-0cd2xak4.js.map +245 -0
- package/dist/{chunk-9tvppjaf.js → chunk-13mqag7n.js} +8 -10
- package/dist/{chunk-9tvppjaf.js.map → chunk-13mqag7n.js.map} +2 -2
- package/dist/chunk-1dcffh2w.js +1481 -0
- package/dist/chunk-1dcffh2w.js.map +23 -0
- package/dist/{chunk-985f11w6.js → chunk-26cgk4dt.js} +6 -8
- package/dist/{chunk-8yrtq2qs.js.map → chunk-26cgk4dt.js.map} +1 -1
- package/dist/chunk-2kg77g4q.js +167 -0
- package/dist/chunk-2kg77g4q.js.map +10 -0
- package/dist/chunk-34w2wfyp.js +68 -0
- package/dist/chunk-34w2wfyp.js.map +10 -0
- package/dist/chunk-44tn9dxb.js +19 -0
- package/dist/{chunk-985f11w6.js.map → chunk-44tn9dxb.js.map} +1 -1
- package/dist/chunk-5204d23a.js +24 -0
- package/dist/{chunk-ezmw2j8c.js.map → chunk-5204d23a.js.map} +1 -1
- package/dist/{chunk-mv9ssgmx.js → chunk-54wv5ptt.js} +5 -5
- package/dist/{chunk-mv9ssgmx.js.map → chunk-54wv5ptt.js.map} +2 -2
- package/dist/chunk-5dghg77b.js +16970 -0
- package/dist/chunk-5dghg77b.js.map +26 -0
- package/dist/{chunk-r2sg2nxa.js → chunk-5f2htt6r.js} +6 -7
- package/dist/chunk-5f2htt6r.js.map +9 -0
- package/dist/chunk-6gw9apqb.js +20 -0
- package/dist/chunk-6gw9apqb.js.map +10 -0
- package/dist/chunk-7bt2055x.js +39 -0
- package/dist/chunk-7bt2055x.js.map +10 -0
- package/dist/chunk-7egq85x5.js +273 -0
- package/dist/chunk-7egq85x5.js.map +10 -0
- package/dist/chunk-7pf2vfq9.js +69 -0
- package/dist/chunk-7pf2vfq9.js.map +10 -0
- package/dist/{chunk-q1nd6g0y.js → chunk-7rrhk07q.js} +76 -53
- package/dist/chunk-7rrhk07q.js.map +20 -0
- package/dist/{chunk-7xh1y383.js → chunk-7xsar3mr.js} +2 -2
- package/dist/{chunk-7xh1y383.js.map → chunk-7xsar3mr.js.map} +1 -1
- package/dist/chunk-7y4xzvkz.js +19132 -0
- package/dist/chunk-7y4xzvkz.js.map +115 -0
- package/dist/chunk-7zy0vdv5.js +761 -0
- package/dist/chunk-7zy0vdv5.js.map +18 -0
- package/dist/chunk-8rt3pp6g.js +256 -0
- package/dist/{chunk-jy2d17pr.js.map → chunk-8rt3pp6g.js.map} +3 -3
- package/dist/chunk-98trrxk2.js +40 -0
- package/dist/chunk-98trrxk2.js.map +10 -0
- package/dist/chunk-a1mk24q9.js +31326 -0
- package/dist/chunk-a1mk24q9.js.map +245 -0
- package/dist/chunk-a5xra9jn.js +159 -0
- package/dist/chunk-a5xra9jn.js.map +11 -0
- package/dist/chunk-abf1r0jh.js +2118 -0
- package/dist/chunk-abf1r0jh.js.map +44 -0
- package/dist/{chunk-25wakzyb.js → chunk-ahw5kfbr.js} +5 -5
- package/dist/chunk-akd997ec.js +11061 -0
- package/dist/chunk-akd997ec.js.map +238 -0
- package/dist/chunk-by28t333.js +19 -0
- package/dist/chunk-by28t333.js.map +9 -0
- package/dist/{chunk-2k7n0w2x.js → chunk-c6ge431q.js} +2 -2
- package/dist/{chunk-2k7n0w2x.js.map → chunk-c6ge431q.js.map} +1 -1
- package/dist/{chunk-ycfxp056.js → chunk-cnmspfhx.js} +7 -11
- package/dist/chunk-cnmspfhx.js.map +17 -0
- package/dist/chunk-cwqdka8y.js +6382 -0
- package/dist/chunk-cwqdka8y.js.map +109 -0
- package/dist/chunk-dffwrtn3.js +673 -0
- package/dist/chunk-dffwrtn3.js.map +17 -0
- package/dist/chunk-dyp9t5wf.js +44109 -0
- package/dist/chunk-dyp9t5wf.js.map +237 -0
- package/dist/chunk-e9881zy4.js +39 -0
- package/dist/chunk-e9881zy4.js.map +10 -0
- package/dist/chunk-ezs0qz0b.js +24 -0
- package/dist/chunk-ezs0qz0b.js.map +9 -0
- package/dist/chunk-f6cq8r7x.js +736 -0
- package/dist/chunk-f6cq8r7x.js.map +16 -0
- package/dist/{chunk-45wx7tn7.js → chunk-gwnmywrp.js} +2 -2
- package/dist/chunk-gz78f003.js +94 -0
- package/dist/chunk-gz78f003.js.map +10 -0
- package/dist/chunk-j0y94q2c.js +10 -0
- package/dist/{chunk-nthabjd9.js → chunk-jyem6j6k.js} +1848 -3
- package/dist/chunk-jyem6j6k.js.map +65 -0
- package/dist/chunk-kad4d9sf.js +11 -0
- package/dist/chunk-kad4d9sf.js.map +9 -0
- package/dist/{chunk-wz8d5vzb.js → chunk-krfqppg2.js} +32 -2
- package/dist/{chunk-wz8d5vzb.js.map → chunk-krfqppg2.js.map} +5 -4
- package/dist/chunk-kw62yeqn.js +124 -0
- package/dist/chunk-kw62yeqn.js.map +12 -0
- package/dist/chunk-mbt1wx7n.js +43 -0
- package/dist/chunk-mbt1wx7n.js.map +10 -0
- package/dist/chunk-nzv6abbc.js +22 -0
- package/dist/chunk-nzv6abbc.js.map +9 -0
- package/dist/{chunk-cwkb2wbe.js → chunk-pjpdhh0f.js} +27 -24
- package/dist/chunk-pjpdhh0f.js.map +16 -0
- package/dist/chunk-py8fhw0k.js +941 -0
- package/dist/chunk-py8fhw0k.js.map +27 -0
- package/dist/chunk-q6sv0243.js +93 -0
- package/dist/chunk-q6sv0243.js.map +13 -0
- package/dist/chunk-r8n5m3xq.js +19 -0
- package/dist/chunk-r8n5m3xq.js.map +9 -0
- package/dist/{chunk-nxpzt33t.js → chunk-rcwtjara.js} +8 -13
- package/dist/chunk-rcwtjara.js.map +10 -0
- package/dist/{chunk-t85nbjjb.js → chunk-rfrcdsfc.js} +5 -9
- package/dist/chunk-rfrcdsfc.js.map +10 -0
- package/dist/chunk-rj2gqxxb.js +415 -0
- package/dist/chunk-rj2gqxxb.js.map +20 -0
- package/dist/{chunk-v7117ywx.js → chunk-rvq1vb70.js} +5 -7
- package/dist/{chunk-v7117ywx.js.map → chunk-rvq1vb70.js.map} +2 -2
- package/dist/chunk-smvqara3.js +370 -0
- package/dist/chunk-smvqara3.js.map +16 -0
- package/dist/{chunk-pfyjtfex.js → chunk-sp8zjpbf.js} +7 -12
- package/dist/chunk-sp8zjpbf.js.map +10 -0
- package/dist/{chunk-48d17n29.js → chunk-ssbg48ec.js} +1 -1
- package/dist/chunk-ssbg48ec.js.map +9 -0
- package/dist/chunk-st7q66e5.js +109 -0
- package/dist/chunk-st7q66e5.js.map +10 -0
- package/dist/{chunk-sdp429xd.js → chunk-sw7h7asn.js} +32 -8
- package/dist/chunk-sw7h7asn.js.map +27 -0
- package/dist/chunk-t092ehvp.js +50 -0
- package/dist/chunk-t092ehvp.js.map +9 -0
- package/dist/{chunk-2cetsfw4.js → chunk-t0xqfse1.js} +50 -9
- package/dist/{chunk-2cetsfw4.js.map → chunk-t0xqfse1.js.map} +8 -3
- package/dist/chunk-v1t5vys5.js +124 -0
- package/dist/chunk-v1t5vys5.js.map +12 -0
- package/dist/chunk-v78rg840.js +137 -0
- package/dist/chunk-v78rg840.js.map +10 -0
- package/dist/chunk-v7xskyzm.js +19 -0
- package/dist/chunk-v7xskyzm.js.map +9 -0
- package/dist/{chunk-jy2d17pr.js → chunk-vjshqjmh.js} +12 -8
- package/dist/chunk-vjshqjmh.js.map +11 -0
- package/dist/chunk-w8075wyx.js +40 -0
- package/dist/chunk-w8075wyx.js.map +10 -0
- package/dist/chunk-wn8mek6a.js +189 -0
- package/dist/chunk-wn8mek6a.js.map +11 -0
- package/dist/{chunk-2kyqsrg2.js → chunk-y447ymks.js} +364 -3
- package/dist/chunk-y447ymks.js.map +18 -0
- package/dist/chunk-yej34vkc.js +247 -0
- package/dist/chunk-yej34vkc.js.map +14 -0
- package/dist/commands/doctor/command.js +2 -2
- package/dist/commands/init/command.js +2 -2
- package/dist/commands/logout/command.js +2 -2
- package/dist/commands/proxy/command.js +4 -5
- package/dist/commands/proxy/command.js.map +3 -3
- package/dist/commands/proxy/handler.d.ts +27 -5
- package/dist/commands/registry.d.ts +2 -0
- package/dist/commands/screens/ScreensView.d.ts +1 -3
- package/dist/commands/screens/command.js +8 -10
- package/dist/commands/screens/command.js.map +3 -3
- package/dist/commands/screens/handler.d.ts +5 -6
- package/dist/commands/serve/command.js +60 -10
- package/dist/commands/serve/command.js.map +7 -5
- package/dist/commands/serve/handler.d.ts +6 -21
- package/dist/commands/serve/json-server/handler.d.ts +8 -0
- package/dist/commands/serve/json-server/spec.d.ts +32 -0
- package/dist/commands/serve/list-screens/handler.d.ts +7 -0
- package/dist/commands/serve/list-screens/spec.d.ts +33 -0
- package/dist/commands/serve/spec.d.ts +30 -0
- package/dist/commands/site/command.js +12 -6
- package/dist/commands/site/command.js.map +4 -4
- package/dist/commands/site/generate/handler.d.ts +8 -0
- package/dist/commands/site/generate/spec.d.ts +44 -0
- package/dist/commands/site/hooks/useProjectHydration.d.ts +2 -2
- package/dist/commands/site/index.d.ts +5 -3
- package/dist/commands/site/list-screens/handler.d.ts +7 -0
- package/dist/commands/site/list-screens/spec.d.ts +33 -0
- package/dist/commands/site/spec.d.ts +6 -0
- package/dist/commands/site/ui/SiteBuilder.d.ts +2 -2
- package/dist/commands/site/utils/fetchWithRetry.d.ts +10 -0
- package/dist/commands/site/utils/suggestRoute.d.ts +1 -0
- package/dist/commands/snapshot/command.js +2 -2
- package/dist/commands/tool/command.js +2 -2
- package/dist/commands/tool/command.js.map +2 -2
- package/dist/commands/tool/context.d.ts +3 -2
- package/dist/commands/tool/handler.d.ts +9 -10
- package/dist/commands/tool/spec.d.ts +3 -2
- package/dist/commands/view/command.js +2 -2
- package/dist/index.js +11 -13
- package/dist/index.js.map +1 -1
- package/dist/platform/browser.d.ts +8 -0
- package/dist/services/mcp-client/client.d.ts +5 -0
- package/dist/services/mcp-client/spec.d.ts +6 -6
- package/dist/services/proxy/spec.d.ts +3 -3
- package/dist/services/stitch-sdk/MockStitchSDK.d.ts +18 -0
- package/dist/services/view/handler.d.ts +3 -3
- package/dist/ui/copy-behaviors/index.d.ts +8 -0
- package/dist/ui/navigation-behaviors/index.d.ts +34 -0
- package/dist/ui/serve-behaviors/index.d.ts +7 -0
- package/package.json +2 -1
- package/dist/chunk-2fcdwvrm.js +0 -54
- package/dist/chunk-2fcdwvrm.js.map +0 -10
- package/dist/chunk-2kyqsrg2.js.map +0 -10
- package/dist/chunk-8yrtq2qs.js +0 -18
- package/dist/chunk-cwkb2wbe.js.map +0 -16
- package/dist/chunk-djhzzcgj.js +0 -362
- package/dist/chunk-djhzzcgj.js.map +0 -13
- package/dist/chunk-ezmw2j8c.js +0 -14
- package/dist/chunk-fwb4fnkp.js +0 -31
- package/dist/chunk-fwb4fnkp.js.map +0 -10
- package/dist/chunk-h18jrqed.js +0 -9517
- package/dist/chunk-h18jrqed.js.map +0 -99
- package/dist/chunk-knbnsf6s.js +0 -92
- package/dist/chunk-knbnsf6s.js.map +0 -10
- package/dist/chunk-nthabjd9.js.map +0 -34
- package/dist/chunk-nxpzt33t.js.map +0 -10
- package/dist/chunk-pfyjtfex.js.map +0 -10
- package/dist/chunk-q1nd6g0y.js.map +0 -20
- package/dist/chunk-q4js8r0z.js +0 -4708
- package/dist/chunk-q4js8r0z.js.map +0 -29
- package/dist/chunk-qv44tmn6.js +0 -289
- package/dist/chunk-qv44tmn6.js.map +0 -13
- package/dist/chunk-r2sg2nxa.js.map +0 -9
- package/dist/chunk-rpxnm86e.js +0 -372
- package/dist/chunk-rpxnm86e.js.map +0 -17
- package/dist/chunk-sdp429xd.js.map +0 -24
- package/dist/chunk-t85nbjjb.js.map +0 -10
- package/dist/chunk-wa64nz8b.js +0 -47
- package/dist/chunk-wa64nz8b.js.map +0 -10
- package/dist/chunk-ycfxp056.js.map +0 -17
- package/dist/chunk-z9d2xc83.js +0 -3256
- package/dist/chunk-z9d2xc83.js.map +0 -84
- package/dist/services/config/handler.d.ts +0 -12
- package/dist/services/config/spec.d.ts +0 -82
- package/dist/src/cli.d.ts +0 -1
- package/dist/src/commands/doctor/handler.d.ts +0 -9
- package/dist/src/commands/doctor/handler.test.d.ts +0 -1
- package/dist/src/commands/doctor/spec.d.ts +0 -130
- package/dist/src/commands/doctor/spec.test.d.ts +0 -1
- package/dist/src/commands/init/handler.d.ts +0 -17
- package/dist/src/commands/init/handler.test.d.ts +0 -1
- package/dist/src/commands/init/spec.d.ts +0 -88
- package/dist/src/commands/init/spec.test.d.ts +0 -1
- package/dist/src/commands/proxy/handler.d.ts +0 -7
- package/dist/src/commands/proxy/handler.test.d.ts +0 -1
- package/dist/src/index.d.ts +0 -13
- package/dist/src/platform/detector.d.ts +0 -29
- package/dist/src/platform/paths.d.ts +0 -20
- package/dist/src/platform/shell.d.ts +0 -26
- package/dist/src/services/gcloud/handler.d.ts +0 -48
- package/dist/src/services/gcloud/handler.test.d.ts +0 -1
- package/dist/src/services/gcloud/spec.d.ts +0 -405
- package/dist/src/services/mcp-config/handler.d.ts +0 -12
- package/dist/src/services/mcp-config/handler.test.d.ts +0 -1
- package/dist/src/services/mcp-config/spec.d.ts +0 -88
- package/dist/src/services/mcp-config/spec.test.d.ts +0 -1
- package/dist/src/services/project/handler.d.ts +0 -11
- package/dist/src/services/project/handler.test.d.ts +0 -1
- package/dist/src/services/project/spec.d.ts +0 -86
- package/dist/src/services/project/spec.test.d.ts +0 -1
- package/dist/src/services/proxy/handler.d.ts +0 -15
- package/dist/src/services/proxy/handler.test.d.ts +0 -1
- package/dist/src/services/proxy/spec.d.ts +0 -83
- package/dist/src/services/proxy/spec.test.d.ts +0 -1
- package/dist/src/services/stitch/handler.d.ts +0 -15
- package/dist/src/services/stitch/handler.test.d.ts +0 -1
- package/dist/src/services/stitch/spec.d.ts +0 -262
- package/dist/src/services/stitch/spec.test.d.ts +0 -1
- package/dist/src/ui/spinner.d.ts +0 -11
- package/dist/src/ui/theme.d.ts +0 -18
- package/dist/src/ui/wizard.d.ts +0 -24
- package/dist/tests/mocks/shell.d.ts +0 -2
- /package/dist/{chunk-hb3c6f6a.js.map → chunk-001yk06v.js.map} +0 -0
- /package/dist/{chunk-25wakzyb.js.map → chunk-ahw5kfbr.js.map} +0 -0
- /package/dist/{chunk-45wx7tn7.js.map → chunk-gwnmywrp.js.map} +0 -0
- /package/dist/{chunk-48d17n29.js.map → chunk-j0y94q2c.js.map} +0 -0
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
|
+
openUrl,
|
|
2
3
|
require_jsx_dev_runtime
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-krfqppg2.js";
|
|
4
5
|
import {
|
|
5
6
|
Box_default,
|
|
6
7
|
Text,
|
|
7
8
|
use_app_default,
|
|
8
9
|
use_input_default
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-t0xqfse1.js";
|
|
10
11
|
import {
|
|
11
12
|
require_react
|
|
12
13
|
} from "./chunk-4jwmvjb4.js";
|
|
13
14
|
import {
|
|
14
15
|
StitchViteServer
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7xsar3mr.js";
|
|
16
17
|
import"./chunk-w8q7nsm7.js";
|
|
17
18
|
import {
|
|
18
19
|
downloadText
|
|
19
20
|
} from "./chunk-4vxy1qce.js";
|
|
20
21
|
import"./chunk-384jmtpy.js";
|
|
21
|
-
import"./chunk-
|
|
22
|
+
import"./chunk-54wv5ptt.js";
|
|
22
23
|
import"./chunk-4jygt4d6.js";
|
|
23
24
|
import"./chunk-tz7wnw4s.js";
|
|
24
25
|
import"./chunk-3sfn889r.js";
|
|
@@ -29,7 +30,6 @@ import {
|
|
|
29
30
|
// src/commands/serve/ServeView.tsx
|
|
30
31
|
var import_react = __toESM(require_react(), 1);
|
|
31
32
|
var jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
|
|
32
|
-
import { spawn } from "child_process";
|
|
33
33
|
function ServeView({ projectId, projectTitle, screens }) {
|
|
34
34
|
const { exit } = use_app_default();
|
|
35
35
|
const [selectedIndex, setSelectedIndex] = import_react.useState(0);
|
|
@@ -101,7 +101,6 @@ function ServeView({ projectId, projectTitle, screens }) {
|
|
|
101
101
|
setSelectedIndex((prev) => Math.min(screens.length, prev + 1));
|
|
102
102
|
}
|
|
103
103
|
if (key.return && serverUrl) {
|
|
104
|
-
const start = process.platform == "darwin" ? "open" : process.platform == "win32" ? "start" : "xdg-open";
|
|
105
104
|
let target = serverUrl;
|
|
106
105
|
if (selectedIndex > 0) {
|
|
107
106
|
const screen = screens[selectedIndex - 1];
|
|
@@ -109,11 +108,7 @@ function ServeView({ projectId, projectTitle, screens }) {
|
|
|
109
108
|
target = `${serverUrl}/screens/${screen.screenId}`;
|
|
110
109
|
}
|
|
111
110
|
}
|
|
112
|
-
|
|
113
|
-
spawn("cmd", ["/c", "start", target], { detached: true, stdio: "ignore" }).unref();
|
|
114
|
-
} else {
|
|
115
|
-
spawn(start, [target], { detached: true, stdio: "ignore" }).unref();
|
|
116
|
-
}
|
|
111
|
+
openUrl(target);
|
|
117
112
|
}
|
|
118
113
|
});
|
|
119
114
|
return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Box_default, {
|
|
@@ -169,4 +164,4 @@ export {
|
|
|
169
164
|
ServeView
|
|
170
165
|
};
|
|
171
166
|
|
|
172
|
-
//# debugId=
|
|
167
|
+
//# debugId=007134DB815D328364756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/commands/serve/ServeView.tsx"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import React, { useState, useEffect } from 'react';\nimport { Box, Text, useInput, useApp } from 'ink';\nimport { StitchViteServer } from '../../lib/server/vite/StitchViteServer.js';\nimport { downloadText } from '../../ui/copy-behaviors/clipboard.js';\nimport { openUrl } from '../../platform/browser.js';\n\ninterface CodeScreen {\n screenId: string;\n title: string;\n codeUrl: string;\n}\n\ninterface ServeViewProps {\n projectId: string;\n projectTitle: string;\n screens: CodeScreen[];\n}\n\nexport function ServeView({ projectId, projectTitle, screens }: ServeViewProps) {\n const { exit } = useApp();\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [serverUrl, setServerUrl] = useState<string | null>(null);\n const [status, setStatus] = useState('Starting server...');\n const [server, setServer] = useState<StitchViteServer | null>(null);\n\n useEffect(() => {\n const srv = new StitchViteServer();\n setServer(srv);\n let mounted = true;\n\n async function init() {\n try {\n const url = await srv.start(0);\n if (mounted) setServerUrl(url);\n\n // Fetch and mount screens\n await Promise.all(screens.map(async (screen) => {\n try {\n const html = await downloadText(screen.codeUrl);\n srv.mount(`/screens/${screen.screenId}`, html);\n } catch (e) {\n console.error(`Failed to load ${screen.screenId}`);\n }\n }));\n\n // Generate Index\n const indexHtml = `<!DOCTYPE html>\n<html>\n<head>\n <title>${projectTitle}</title>\n <style>\n body { font-family: system-ui, sans-serif; max-width: 800px; margin: 40px auto; padding: 20px; background: #1a1a1a; color: #fff; }\n ul { list-style: none; padding: 0; }\n li { margin: 12px 0; padding: 16px; background: #252525; border-radius: 8px; }\n a { color: #4fc3f7; text-decoration: none; font-size: 18px; display: block; }\n a:hover { text-decoration: underline; }\n </style>\n</head>\n<body>\n <h1>${projectTitle}</h1>\n <ul>\n ${screens.map(s => `<li>\n <a href=\"/screens/${s.screenId}\">${s.title}</a>\n </li>`).join('\\n')}\n </ul>\n</body>\n</html>`;\n srv.mount('/', indexHtml);\n\n if (mounted) setStatus('Ready');\n } catch (e: any) {\n if (mounted) setStatus(`Error: ${e.message}`);\n }\n }\n\n init();\n\n return () => {\n mounted = false;\n srv.stop();\n };\n }, []);\n\n useInput((input, key) => {\n if (input === 'q') {\n exit();\n return;\n }\n\n if (key.upArrow || input === 'k') {\n setSelectedIndex(prev => Math.max(0, prev - 1));\n }\n if (key.downArrow || input === 'j') {\n setSelectedIndex(prev => Math.min(screens.length, prev + 1));\n }\n\n if (key.return && serverUrl) {\n let target = serverUrl;\n if (selectedIndex > 0) {\n const screen = screens[selectedIndex - 1];\n if (screen) {\n target = `${serverUrl}/screens/${screen.screenId}`;\n }\n }\n openUrl(target);\n }\n });\n\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Text bold>{projectTitle}</Text>\n <Text color=\"green\">{serverUrl || 'Starting...'}</Text>\n <Text>{status}</Text>\n <Box marginTop={1} flexDirection=\"column\">\n <Text color={selectedIndex === 0 ? 'cyan' : undefined}>\n {selectedIndex === 0 ? '> ' : ' '} Index (/)\n </Text>\n {screens.map((s, i) => (\n <Text key={s.screenId} color={selectedIndex === i + 1 ? 'cyan' : undefined}>\n {selectedIndex === i + 1 ? '> ' : ' '} {s.title} (/screens/{s.screenId})\n </Text>\n ))}\n </Box>\n <Box marginTop={1}>\n <Text dimColor>[Enter] Open | [q] Quit</Text>\n </Box>\n </Box>\n );\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "007134DB815D328364756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import {
|
|
2
|
+
StitchToolClient
|
|
3
|
+
} from "./chunk-a1mk24q9.js";
|
|
4
|
+
import"./chunk-c6ge431q.js";
|
|
5
|
+
import"./chunk-9wyra8hs.js";
|
|
6
|
+
|
|
7
|
+
// src/services/view/handler.ts
|
|
8
|
+
class ViewHandler {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client = new StitchToolClient) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
async execute(input) {
|
|
14
|
+
try {
|
|
15
|
+
let data;
|
|
16
|
+
if (input.projects) {
|
|
17
|
+
data = await this.client.callTool("list_projects", {});
|
|
18
|
+
} else if (input.name) {
|
|
19
|
+
const projectMatch = input.name.match(/^projects\/([^/]+)$/);
|
|
20
|
+
const screenMatch = input.name.match(/^projects\/([^/]+)\/screens\/([^/]+)$/);
|
|
21
|
+
if (screenMatch) {
|
|
22
|
+
data = await this.client.callTool("get_screen", {
|
|
23
|
+
projectId: screenMatch[1],
|
|
24
|
+
screenId: screenMatch[2]
|
|
25
|
+
});
|
|
26
|
+
} else if (projectMatch) {
|
|
27
|
+
data = await this.client.callTool("get_project", {
|
|
28
|
+
name: `projects/${projectMatch[1]}`
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
throw new Error(`Invalid resource name format: ${input.name}`);
|
|
32
|
+
}
|
|
33
|
+
} else if (input.sourceScreen) {
|
|
34
|
+
const screenMatch = input.sourceScreen.match(/^projects\/([^/]+)\/screens\/([^/]+)$/);
|
|
35
|
+
if (screenMatch) {
|
|
36
|
+
data = await this.client.callTool("get_screen", {
|
|
37
|
+
projectId: screenMatch[1],
|
|
38
|
+
screenId: screenMatch[2]
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
throw new Error(`Invalid sourceScreen format: ${input.sourceScreen}`);
|
|
42
|
+
}
|
|
43
|
+
} else if (input.project && input.screen) {
|
|
44
|
+
data = await this.client.callTool("get_screen", {
|
|
45
|
+
projectId: input.project,
|
|
46
|
+
screenId: input.screen
|
|
47
|
+
});
|
|
48
|
+
} else if (input.project) {
|
|
49
|
+
data = await this.client.callTool("get_project", {
|
|
50
|
+
name: `projects/${input.project}`
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: {
|
|
56
|
+
code: "INVALID_ARGS",
|
|
57
|
+
message: "No valid view arguments provided. Use --projects, --name, --sourceScreen, or --project.",
|
|
58
|
+
recoverable: false
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (data && data.contents && Array.isArray(data.contents)) {
|
|
63
|
+
const contents = data.contents;
|
|
64
|
+
const chunkSize = 1000;
|
|
65
|
+
const results = [];
|
|
66
|
+
for (let i = 0;i < contents.length; i += chunkSize) {
|
|
67
|
+
const chunk = contents.slice(i, i + chunkSize).map((c) => {
|
|
68
|
+
if (c.text) {
|
|
69
|
+
try {
|
|
70
|
+
const parsed = JSON.parse(c.text);
|
|
71
|
+
return { ...c, text: undefined, data: parsed };
|
|
72
|
+
} catch {
|
|
73
|
+
return c;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return c;
|
|
77
|
+
});
|
|
78
|
+
results.push(...chunk);
|
|
79
|
+
if (i + chunkSize < contents.length) {
|
|
80
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
data.contents = results;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
success: true,
|
|
87
|
+
data
|
|
88
|
+
};
|
|
89
|
+
} catch (error) {
|
|
90
|
+
return {
|
|
91
|
+
success: false,
|
|
92
|
+
error: {
|
|
93
|
+
code: "FETCH_FAILED",
|
|
94
|
+
message: error instanceof Error ? error.message : String(error),
|
|
95
|
+
recoverable: false
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
} finally {
|
|
99
|
+
try {
|
|
100
|
+
await this.client.close();
|
|
101
|
+
} catch {}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
ViewHandler
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
//# debugId=A85DAE0695978F2964756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/services/view/handler.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { type ViewSpec, type ViewInput, type ViewResult } from './spec.js';\nimport { StitchToolClient } from '@google/stitch-sdk';\n\nexport class ViewHandler implements ViewSpec {\n constructor(private readonly client = new StitchToolClient()) {}\n\n async execute(input: ViewInput): Promise<ViewResult> {\n try {\n let data: any;\n\n if (input.projects) {\n data = await this.client.callTool('list_projects', {});\n } else if (input.name) {\n // Parse the resource name to determine the correct tool call\n // Format: \"projects/{id}\" or \"projects/{id}/screens/{screenId}\"\n const projectMatch = input.name.match(/^projects\\/([^/]+)$/);\n const screenMatch = input.name.match(/^projects\\/([^/]+)\\/screens\\/([^/]+)$/);\n\n if (screenMatch) {\n data = await this.client.callTool('get_screen', {\n projectId: screenMatch[1],\n screenId: screenMatch[2]\n });\n } else if (projectMatch) {\n data = await this.client.callTool('get_project', {\n name: `projects/${projectMatch[1]}`\n });\n } else {\n throw new Error(`Invalid resource name format: ${input.name}`);\n }\n } else if (input.sourceScreen) {\n const screenMatch = input.sourceScreen.match(/^projects\\/([^/]+)\\/screens\\/([^/]+)$/);\n if (screenMatch) {\n data = await this.client.callTool('get_screen', {\n projectId: screenMatch[1],\n screenId: screenMatch[2]\n });\n } else {\n throw new Error(`Invalid sourceScreen format: ${input.sourceScreen}`);\n }\n } else if (input.project && input.screen) {\n data = await this.client.callTool('get_screen', {\n projectId: input.project,\n screenId: input.screen\n });\n } else if (input.project) {\n data = await this.client.callTool('get_project', {\n name: `projects/${input.project}`\n });\n } else {\n return {\n success: false,\n error: {\n code: 'INVALID_ARGS',\n message: 'No valid view arguments provided. Use --projects, --name, --sourceScreen, or --project.',\n recoverable: false,\n },\n };\n }\n\n // Pre-process data for better viewing experience\n // If it's an MCP ReadResource result, it has a 'contents' array.\n // We try to parse 'text' fields as JSON.\n if (data && data.contents && Array.isArray(data.contents)) {\n const contents = data.contents;\n const chunkSize = 1000;\n const results = [];\n\n for (let i = 0; i < contents.length; i += chunkSize) {\n const chunk = contents.slice(i, i + chunkSize).map((c: any) => {\n if (c.text) {\n try {\n // Try to parse the text as JSON\n const parsed = JSON.parse(c.text);\n // If successful, replace text with the parsed object for the viewer\n // or add it as a new field. Replacing makes the tree view immediate.\n return { ...c, text: undefined, data: parsed };\n } catch {\n // Not JSON, keep as is\n return c;\n }\n }\n return c;\n });\n results.push(...chunk);\n\n // Yield to the event loop between chunks\n if (i + chunkSize < contents.length) {\n await new Promise(resolve => setImmediate(resolve));\n }\n }\n data.contents = results;\n }\n\n return {\n success: true,\n data: data,\n };\n\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'FETCH_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n } finally {\n // Ensure we close the client connection\n try {\n await this.client.close();\n } catch {}\n }\n }\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "A85DAE0695978F2964756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GcloudExecutor
|
|
3
|
+
} from "./chunk-cwqdka8y.js";
|
|
1
4
|
import {
|
|
2
5
|
require_cli_spinners
|
|
3
6
|
} from "./chunk-nq68kghz.js";
|
|
4
7
|
import {
|
|
5
|
-
eastAsianWidth
|
|
6
|
-
|
|
7
|
-
stripAnsi
|
|
8
|
-
} from "./chunk-mv9ssgmx.js";
|
|
9
|
-
import {
|
|
10
|
-
GcloudExecutor
|
|
11
|
-
} from "./chunk-nthabjd9.js";
|
|
8
|
+
eastAsianWidth
|
|
9
|
+
} from "./chunk-54wv5ptt.js";
|
|
12
10
|
import {
|
|
13
11
|
isUnicodeSupported
|
|
14
12
|
} from "./chunk-4jygt4d6.js";
|
|
@@ -19,9 +17,17 @@ import {
|
|
|
19
17
|
source_default
|
|
20
18
|
} from "./chunk-3sfn889r.js";
|
|
21
19
|
import {
|
|
20
|
+
__commonJS,
|
|
22
21
|
__toESM
|
|
23
22
|
} from "./chunk-9wyra8hs.js";
|
|
24
23
|
|
|
24
|
+
// node_modules/ora/node_modules/emoji-regex/index.js
|
|
25
|
+
var require_emoji_regex = __commonJS((exports, module) => {
|
|
26
|
+
module.exports = () => {
|
|
27
|
+
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
|
|
25
31
|
// src/services/stitch/iam.ts
|
|
26
32
|
class StitchIamService {
|
|
27
33
|
executor;
|
|
@@ -481,6 +487,24 @@ var fallback = {
|
|
|
481
487
|
var logSymbols = isUnicodeSupported2() ? main : fallback;
|
|
482
488
|
var log_symbols_default = logSymbols;
|
|
483
489
|
|
|
490
|
+
// node_modules/ora/node_modules/ansi-regex/index.js
|
|
491
|
+
function ansiRegex({ onlyFirst = false } = {}) {
|
|
492
|
+
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
493
|
+
const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
|
|
494
|
+
const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
|
|
495
|
+
const pattern = `${osc}|${csi}`;
|
|
496
|
+
return new RegExp(pattern, onlyFirst ? undefined : "g");
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
// node_modules/ora/node_modules/strip-ansi/index.js
|
|
500
|
+
var regex = ansiRegex();
|
|
501
|
+
function stripAnsi(string) {
|
|
502
|
+
if (typeof string !== "string") {
|
|
503
|
+
throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
504
|
+
}
|
|
505
|
+
return string.replace(regex, "");
|
|
506
|
+
}
|
|
507
|
+
|
|
484
508
|
// node_modules/ora/node_modules/string-width/index.js
|
|
485
509
|
var import_emoji_regex = __toESM(require_emoji_regex(), 1);
|
|
486
510
|
var segmenter = new Intl.Segmenter;
|
|
@@ -911,4 +935,4 @@ function createSpinner() {
|
|
|
911
935
|
|
|
912
936
|
export { StitchHandler, createSpinner };
|
|
913
937
|
|
|
914
|
-
//# debugId=
|
|
938
|
+
//# debugId=DB87B0D80B4501A464756E2164756E21
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../node_modules/ora/node_modules/emoji-regex/index.js", "../src/services/stitch/iam.ts", "../src/services/stitch/api.ts", "../src/services/stitch/connection.ts", "../src/services/stitch/handler.ts", "../node_modules/ora/index.js", "../node_modules/ora/node_modules/cli-cursor/index.js", "../node_modules/ora/node_modules/cli-cursor/node_modules/restore-cursor/index.js", "../node_modules/mimic-function/index.js", "../node_modules/onetime/index.js", "../node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.js", "../node_modules/ora/node_modules/log-symbols/index.js", "../node_modules/ora/node_modules/ansi-regex/index.js", "../node_modules/ora/node_modules/strip-ansi/index.js", "../node_modules/ora/node_modules/string-width/index.js", "../node_modules/is-interactive/index.js", "../node_modules/stdin-discarder/index.js", "../src/ui/spinner.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n",
|
|
6
|
+
"import {\n type IAMConfigResult,\n type ConfigureIAMInput,\n} from './spec.js';\nimport type { GcloudExecutor } from '../gcloud/core.js';\n\nexport class StitchIamService {\n constructor(private executor: GcloudExecutor) {}\n\n async configureIAM(input: ConfigureIAMInput): Promise<IAMConfigResult> {\n try {\n const role = 'roles/serviceusage.serviceUsageConsumer';\n const member = `user:${input.userEmail}`;\n\n const result = await this.executor.exec(\n [\n 'projects',\n 'add-iam-policy-binding',\n input.projectId,\n `--member=${member}`,\n `--role=${role}`,\n '--condition=None',\n '--quiet',\n ]\n );\n\n if (!result.success) {\n const errorMsg = result.stderr || result.error || result.stdout || 'Unknown error';\n return {\n success: false,\n error: {\n code: 'IAM_CONFIG_FAILED',\n message: `Failed to configure IAM permissions: ${errorMsg}`,\n suggestion: 'Ensure you have Owner or Editor role on the project',\n recoverable: true,\n details: `Exit code: ${result.exitCode}\\nStderr: ${result.stderr}\\nStdout: ${result.stdout}`,\n },\n };\n }\n\n return {\n success: true,\n data: {\n role,\n member,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'IAM_CONFIG_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async checkIAMRole(input: { projectId: string; userEmail: string }): Promise<boolean> {\n try {\n const role = 'roles/serviceusage.serviceUsageConsumer';\n const member = `user:${input.userEmail}`;\n const result = await this.executor.exec(\n [\n 'projects',\n 'get-iam-policy',\n input.projectId,\n `--flatten=bindings[].members`,\n `--filter=bindings.role=${role} AND bindings.members=${member}`,\n '--format=value(bindings.members)',\n ]\n );\n return result.success && result.stdout.trim().includes(member);\n } catch {\n return false;\n }\n }\n}\n",
|
|
7
|
+
"import {\n type APIEnableResult,\n type EnableAPIInput,\n} from './spec.js';\nimport type { GcloudExecutor } from '../gcloud/core.js';\n\nexport class StitchApiService {\n constructor(private executor: GcloudExecutor) {}\n\n async enableAPI(input: EnableAPIInput): Promise<APIEnableResult> {\n try {\n const api = 'stitch.googleapis.com';\n\n const result = await this.executor.exec(\n ['beta', 'services', 'mcp', 'enable', api, `--project=${input.projectId}`, '--quiet']\n );\n\n if (!result.success) {\n const errorMsg = result.stderr || result.error || result.stdout || 'Unknown error';\n return {\n success: false,\n error: {\n code: 'API_ENABLE_FAILED',\n message: `Failed to enable Stitch API: ${errorMsg}`,\n suggestion: 'Ensure the project has billing enabled',\n recoverable: true,\n details: `Exit code: ${result.exitCode}\\nStderr: ${result.stderr}\\nStdout: ${result.stdout}`,\n },\n };\n }\n\n return {\n success: true,\n data: {\n api,\n enabled: true,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'API_ENABLE_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async checkAPIEnabled(input: { projectId: string }): Promise<boolean> {\n try {\n const result = await this.executor.exec(\n [\n 'services',\n 'list',\n `--project=${input.projectId}`,\n '--enabled',\n '--filter=name:stitch.googleapis.com',\n '--format=value(name)',\n ]\n );\n return result.success && result.stdout.trim().includes('stitch.googleapis.com');\n } catch {\n return false;\n }\n }\n}\n",
|
|
8
|
+
"import {\n type ConnectionTestResult,\n type TestConnectionInput,\n type TestConnectionWithApiKeyInput,\n} from './spec.js';\n\nexport class StitchConnectionService {\n async testConnectionWithApiKey(input: TestConnectionWithApiKeyInput): Promise<ConnectionTestResult> {\n try {\n const url = process.env.STITCH_HOST || 'https://stitch.googleapis.com/mcp';\n\n const payload = {\n method: 'tools/call',\n jsonrpc: '2.0',\n params: {\n name: 'list_projects',\n arguments: {},\n },\n id: 1,\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'X-Goog-Api-Key': input.apiKey,\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n let errorDetails = '';\n let errorMessage = `API request failed with status ${response.status}`;\n\n try {\n const errorBody = await response.json() as any;\n errorDetails = JSON.stringify(errorBody, null, 2);\n\n if (errorBody?.error?.message) {\n errorMessage = errorBody.error.message;\n }\n } catch {\n try {\n errorDetails = await response.text();\n } catch {\n errorDetails = `Status ${response.status}: ${response.statusText}`;\n }\n }\n\n return {\n success: false,\n error: {\n code: response.status === 403 ? 'PERMISSION_DENIED' : 'CONNECTION_TEST_FAILED',\n message: errorMessage,\n suggestion:\n response.status === 403\n ? 'Check that your API key is valid and has access to the Stitch API'\n : 'Verify API key configuration and try again',\n recoverable: true,\n details: errorDetails,\n },\n };\n }\n\n const data = await response.json();\n\n return {\n success: true,\n data: {\n connected: true,\n statusCode: response.status,\n url,\n response: data,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'CONNECTION_TEST_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async testConnection(input: TestConnectionInput): Promise<ConnectionTestResult> {\n try {\n const url = process.env.STITCH_HOST || 'https://stitch.googleapis.com/mcp';\n\n const payload = {\n method: 'tools/call',\n jsonrpc: '2.0',\n params: {\n name: 'list_projects',\n arguments: {},\n },\n id: 1,\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n Authorization: `Bearer ${input.accessToken}`,\n 'X-Goog-User-Project': input.projectId,\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n // Capture full error response which may contain helpful URLs\n let errorDetails = '';\n let errorMessage = `API request failed with status ${response.status}`;\n\n try {\n const errorBody = await response.json() as any;\n errorDetails = JSON.stringify(errorBody, null, 2);\n\n // Extract error message if available\n if (errorBody?.error?.message) {\n errorMessage = errorBody.error.message;\n }\n } catch {\n // If response isn't JSON, try to get text\n try {\n errorDetails = await response.text();\n } catch {\n errorDetails = `Status ${response.status}: ${response.statusText}`;\n }\n }\n\n return {\n success: false,\n error: {\n code: response.status === 403 ? 'PERMISSION_DENIED' : 'CONNECTION_TEST_FAILED',\n message: errorMessage,\n suggestion:\n response.status === 403\n ? 'Check IAM permissions and ensure API is enabled'\n : 'Verify project configuration and try again',\n recoverable: true,\n details: errorDetails,\n },\n };\n }\n\n const data = await response.json();\n\n return {\n success: true,\n data: {\n connected: true,\n statusCode: response.status,\n url,\n response: data,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'CONNECTION_TEST_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n}\n",
|
|
9
|
+
"import {\n type StitchService,\n type ConfigureIAMInput,\n type EnableAPIInput,\n type TestConnectionInput,\n type TestConnectionWithApiKeyInput,\n type IAMConfigResult,\n type APIEnableResult,\n type ConnectionTestResult,\n} from './spec.js';\nimport { GcloudExecutor } from '../gcloud/core.js';\nimport { StitchIamService } from './iam.js';\nimport { StitchApiService } from './api.js';\nimport { StitchConnectionService } from './connection.js';\n\nexport class StitchHandler implements StitchService {\n private executor: GcloudExecutor;\n private iamService: StitchIamService;\n private apiService: StitchApiService;\n private connectionService: StitchConnectionService;\n\n constructor() {\n this.executor = new GcloudExecutor();\n this.iamService = new StitchIamService(this.executor);\n this.apiService = new StitchApiService(this.executor);\n this.connectionService = new StitchConnectionService();\n }\n\n async configureIAM(input: ConfigureIAMInput): Promise<IAMConfigResult> {\n return this.iamService.configureIAM(input);\n }\n\n async enableAPI(input: EnableAPIInput): Promise<APIEnableResult> {\n return this.apiService.enableAPI(input);\n }\n\n async checkIAMRole(input: { projectId: string; userEmail: string }): Promise<boolean> {\n return this.iamService.checkIAMRole(input);\n }\n\n async checkAPIEnabled(input: { projectId: string }): Promise<boolean> {\n return this.apiService.checkAPIEnabled(input);\n }\n\n async testConnectionWithApiKey(input: TestConnectionWithApiKeyInput): Promise<ConnectionTestResult> {\n return this.connectionService.testConnectionWithApiKey(input);\n }\n\n async testConnection(input: TestConnectionInput): Promise<ConnectionTestResult> {\n return this.connectionService.testConnection(input);\n }\n}\n",
|
|
10
|
+
"import process from 'node:process';\nimport chalk from 'chalk';\nimport cliCursor from 'cli-cursor';\nimport cliSpinners from 'cli-spinners';\nimport logSymbols from 'log-symbols';\nimport stripAnsi from 'strip-ansi';\nimport stringWidth from 'string-width';\nimport isInteractive from 'is-interactive';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport stdinDiscarder from 'stdin-discarder';\n\nclass Ora {\n\t#linesToClear = 0;\n\t#isDiscardingStdin = false;\n\t#lineCount = 0;\n\t#frameIndex = -1;\n\t#lastSpinnerFrameTime = 0;\n\t#options;\n\t#spinner;\n\t#stream;\n\t#id;\n\t#initialInterval;\n\t#isEnabled;\n\t#isSilent;\n\t#indent;\n\t#text;\n\t#prefixText;\n\t#suffixText;\n\tcolor;\n\n\tconstructor(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\ttext: options,\n\t\t\t};\n\t\t}\n\n\t\tthis.#options = {\n\t\t\tcolor: 'cyan',\n\t\t\tstream: process.stderr,\n\t\t\tdiscardStdin: true,\n\t\t\thideCursor: true,\n\t\t\t...options,\n\t\t};\n\n\t\t// Public\n\t\tthis.color = this.#options.color;\n\n\t\t// It's important that these use the public setters.\n\t\tthis.spinner = this.#options.spinner;\n\n\t\tthis.#initialInterval = this.#options.interval;\n\t\tthis.#stream = this.#options.stream;\n\t\tthis.#isEnabled = typeof this.#options.isEnabled === 'boolean' ? this.#options.isEnabled : isInteractive({stream: this.#stream});\n\t\tthis.#isSilent = typeof this.#options.isSilent === 'boolean' ? this.#options.isSilent : false;\n\n\t\t// Set *after* `this.#stream`.\n\t\t// It's important that these use the public setters.\n\t\tthis.text = this.#options.text;\n\t\tthis.prefixText = this.#options.prefixText;\n\t\tthis.suffixText = this.#options.suffixText;\n\t\tthis.indent = this.#options.indent;\n\n\t\tif (process.env.NODE_ENV === 'test') {\n\t\t\tthis._stream = this.#stream;\n\t\t\tthis._isEnabled = this.#isEnabled;\n\n\t\t\tObject.defineProperty(this, '_linesToClear', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#linesToClear;\n\t\t\t\t},\n\t\t\t\tset(newValue) {\n\t\t\t\t\tthis.#linesToClear = newValue;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_frameIndex', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#frameIndex;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_lineCount', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#lineCount;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tget indent() {\n\t\treturn this.#indent;\n\t}\n\n\tset indent(indent = 0) {\n\t\tif (!(indent >= 0 && Number.isInteger(indent))) {\n\t\t\tthrow new Error('The `indent` option must be an integer from 0 and up');\n\t\t}\n\n\t\tthis.#indent = indent;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget interval() {\n\t\treturn this.#initialInterval ?? this.#spinner.interval ?? 100;\n\t}\n\n\tget spinner() {\n\t\treturn this.#spinner;\n\t}\n\n\tset spinner(spinner) {\n\t\tthis.#frameIndex = -1;\n\t\tthis.#initialInterval = undefined;\n\n\t\tif (typeof spinner === 'object') {\n\t\t\tif (spinner.frames === undefined) {\n\t\t\t\tthrow new Error('The given spinner must have a `frames` property');\n\t\t\t}\n\n\t\t\tthis.#spinner = spinner;\n\t\t} else if (!isUnicodeSupported()) {\n\t\t\tthis.#spinner = cliSpinners.line;\n\t\t} else if (spinner === undefined) {\n\t\t\t// Set default spinner\n\t\t\tthis.#spinner = cliSpinners.dots;\n\t\t} else if (spinner !== 'default' && cliSpinners[spinner]) {\n\t\t\tthis.#spinner = cliSpinners[spinner];\n\t\t} else {\n\t\t\tthrow new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);\n\t\t}\n\t}\n\n\tget text() {\n\t\treturn this.#text;\n\t}\n\n\tset text(value = '') {\n\t\tthis.#text = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget prefixText() {\n\t\treturn this.#prefixText;\n\t}\n\n\tset prefixText(value = '') {\n\t\tthis.#prefixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget suffixText() {\n\t\treturn this.#suffixText;\n\t}\n\n\tset suffixText(value = '') {\n\t\tthis.#suffixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget isSpinning() {\n\t\treturn this.#id !== undefined;\n\t}\n\n\t#getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {\n\t\tif (typeof prefixText === 'string' && prefixText !== '') {\n\t\t\treturn prefixText + postfix;\n\t\t}\n\n\t\tif (typeof prefixText === 'function') {\n\t\t\treturn prefixText() + postfix;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {\n\t\tif (typeof suffixText === 'string' && suffixText !== '') {\n\t\t\treturn prefix + suffixText;\n\t\t}\n\n\t\tif (typeof suffixText === 'function') {\n\t\t\treturn prefix + suffixText();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#updateLineCount() {\n\t\tconst columns = this.#stream.columns ?? 80;\n\t\tconst fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');\n\t\tconst fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');\n\t\tconst fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;\n\n\t\tthis.#lineCount = 0;\n\t\tfor (const line of stripAnsi(fullText).split('\\n')) {\n\t\t\tthis.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));\n\t\t}\n\t}\n\n\tget isEnabled() {\n\t\treturn this.#isEnabled && !this.#isSilent;\n\t}\n\n\tset isEnabled(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isEnabled` option must be a boolean');\n\t\t}\n\n\t\tthis.#isEnabled = value;\n\t}\n\n\tget isSilent() {\n\t\treturn this.#isSilent;\n\t}\n\n\tset isSilent(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isSilent` option must be a boolean');\n\t\t}\n\n\t\tthis.#isSilent = value;\n\t}\n\n\tframe() {\n\t\t// Ensure we only update the spinner frame at the wanted interval,\n\t\t// even if the render method is called more often.\n\t\tconst now = Date.now();\n\t\tif (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {\n\t\t\tthis.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;\n\t\t\tthis.#lastSpinnerFrameTime = now;\n\t\t}\n\n\t\tconst {frames} = this.#spinner;\n\t\tlet frame = frames[this.#frameIndex];\n\n\t\tif (this.color) {\n\t\t\tframe = chalk[this.color](frame);\n\t\t}\n\n\t\tconst fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';\n\t\tconst fullText = typeof this.text === 'string' ? ' ' + this.text : '';\n\t\tconst fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';\n\n\t\treturn fullPrefixText + frame + fullText + fullSuffixText;\n\t}\n\n\tclear() {\n\t\tif (!this.#isEnabled || !this.#stream.isTTY) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#stream.cursorTo(0);\n\n\t\tfor (let index = 0; index < this.#linesToClear; index++) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.#stream.moveCursor(0, -1);\n\t\t\t}\n\n\t\t\tthis.#stream.clearLine(1);\n\t\t}\n\n\t\tif (this.#indent || this.lastIndent !== this.#indent) {\n\t\t\tthis.#stream.cursorTo(this.#indent);\n\t\t}\n\n\t\tthis.lastIndent = this.#indent;\n\t\tthis.#linesToClear = 0;\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.clear();\n\t\tthis.#stream.write(this.frame());\n\t\tthis.#linesToClear = this.#lineCount;\n\n\t\treturn this;\n\t}\n\n\tstart(text) {\n\t\tif (text) {\n\t\t\tthis.text = text;\n\t\t}\n\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.#isEnabled) {\n\t\t\tif (this.text) {\n\t\t\t\tthis.#stream.write(`- ${this.text}\\n`);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.isSpinning) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.hide(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY) {\n\t\t\tthis.#isDiscardingStdin = true;\n\t\t\tstdinDiscarder.start();\n\t\t}\n\n\t\tthis.render();\n\t\tthis.#id = setInterval(this.render.bind(this), this.interval);\n\n\t\treturn this;\n\t}\n\n\tstop() {\n\t\tif (!this.#isEnabled) {\n\t\t\treturn this;\n\t\t}\n\n\t\tclearInterval(this.#id);\n\t\tthis.#id = undefined;\n\t\tthis.#frameIndex = 0;\n\t\tthis.clear();\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.show(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {\n\t\t\tstdinDiscarder.stop();\n\t\t\tthis.#isDiscardingStdin = false;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsucceed(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.success, text});\n\t}\n\n\tfail(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.error, text});\n\t}\n\n\twarn(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.warning, text});\n\t}\n\n\tinfo(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.info, text});\n\t}\n\n\tstopAndPersist(options = {}) {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst prefixText = options.prefixText ?? this.#prefixText;\n\t\tconst fullPrefixText = this.#getFullPrefixText(prefixText, ' ');\n\n\t\tconst symbolText = options.symbol ?? ' ';\n\n\t\tconst text = options.text ?? this.text;\n\t\tconst separatorText = symbolText ? ' ' : '';\n\t\tconst fullText = (typeof text === 'string') ? separatorText + text : '';\n\n\t\tconst suffixText = options.suffixText ?? this.#suffixText;\n\t\tconst fullSuffixText = this.#getFullSuffixText(suffixText, ' ');\n\n\t\tconst textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\\n';\n\n\t\tthis.stop();\n\t\tthis.#stream.write(textToWrite);\n\n\t\treturn this;\n\t}\n}\n\nexport default function ora(options) {\n\treturn new Ora(options);\n}\n\nexport async function oraPromise(action, options) {\n\tconst actionIsFunction = typeof action === 'function';\n\tconst actionIsPromise = typeof action.then === 'function';\n\n\tif (!actionIsFunction && !actionIsPromise) {\n\t\tthrow new TypeError('Parameter `action` must be a Function or a Promise');\n\t}\n\n\tconst {successText, failText} = typeof options === 'object'\n\t\t? options\n\t\t: {successText: undefined, failText: undefined};\n\n\tconst spinner = ora(options).start();\n\n\ttry {\n\t\tconst promise = actionIsFunction ? action(spinner) : action;\n\t\tconst result = await promise;\n\n\t\tspinner.succeed(\n\t\t\tsuccessText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof successText === 'string' ? successText : successText(result)),\n\t\t);\n\n\t\treturn result;\n\t} catch (error) {\n\t\tspinner.fail(\n\t\t\tfailText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof failText === 'string' ? failText : failText(error)),\n\t\t);\n\n\t\tthrow error;\n\t}\n}\n\nexport {default as spinners} from 'cli-spinners';\n",
|
|
11
|
+
"import process from 'node:process';\nimport restoreCursor from 'restore-cursor';\n\nlet isHidden = false;\n\nconst cliCursor = {};\n\ncliCursor.show = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\tisHidden = false;\n\twritableStream.write('\\u001B[?25h');\n};\n\ncliCursor.hide = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\tisHidden = true;\n\twritableStream.write('\\u001B[?25l');\n};\n\ncliCursor.toggle = (force, writableStream) => {\n\tif (force !== undefined) {\n\t\tisHidden = force;\n\t}\n\n\tif (isHidden) {\n\t\tcliCursor.show(writableStream);\n\t} else {\n\t\tcliCursor.hide(writableStream);\n\t}\n};\n\nexport default cliCursor;\n",
|
|
12
|
+
"import process from 'node:process';\nimport onetime from 'onetime';\nimport {onExit} from 'signal-exit';\n\nconst terminal = process.stderr.isTTY\n\t? process.stderr\n\t: (process.stdout.isTTY ? process.stdout : undefined);\n\nconst restoreCursor = terminal ? onetime(() => {\n\tonExit(() => {\n\t\tterminal.write('\\u001B[?25h');\n\t}, {alwaysLast: true});\n}) : () => {};\n\nexport default restoreCursor;\n",
|
|
13
|
+
"const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n",
|
|
14
|
+
"import mimicFunction from 'mimic-function';\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = undefined;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFunction(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nonetime.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\nexport default onetime;\n",
|
|
15
|
+
"import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.CI)\n\t\t|| Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
|
|
16
|
+
"import chalk from 'chalk';\nimport isUnicodeSupported from 'is-unicode-supported';\n\nconst main = {\n\tinfo: chalk.blue('ℹ'),\n\tsuccess: chalk.green('✔'),\n\twarning: chalk.yellow('⚠'),\n\terror: chalk.red('✖'),\n};\n\nconst fallback = {\n\tinfo: chalk.blue('i'),\n\tsuccess: chalk.green('√'),\n\twarning: chalk.yellow('‼'),\n\terror: chalk.red('×'),\n};\n\nconst logSymbols = isUnicodeSupported() ? main : fallback;\n\nexport default logSymbols;\n",
|
|
17
|
+
"export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n",
|
|
18
|
+
"import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n",
|
|
19
|
+
"import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n",
|
|
20
|
+
"export default function isInteractive({stream = process.stdout} = {}) {\n\treturn Boolean(\n\t\tstream && stream.isTTY &&\n\t\tprocess.env.TERM !== 'dumb' &&\n\t\t!('CI' in process.env)\n\t);\n}\n",
|
|
21
|
+
"import process from 'node:process';\n\nconst ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code\n\nclass StdinDiscarder {\n\t#activeCount = 0;\n\n\tstart() {\n\t\tthis.#activeCount++;\n\n\t\tif (this.#activeCount === 1) {\n\t\t\tthis.#realStart();\n\t\t}\n\t}\n\n\tstop() {\n\t\tif (this.#activeCount <= 0) {\n\t\t\tthrow new Error('`stop` called more times than `start`');\n\t\t}\n\n\t\tthis.#activeCount--;\n\n\t\tif (this.#activeCount === 0) {\n\t\t\tthis.#realStop();\n\t\t}\n\t}\n\n\t#realStart() {\n\t\t// No known way to make it work reliably on Windows.\n\t\tif (process.platform === 'win32' || !process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.setRawMode(true);\n\t\tprocess.stdin.on('data', this.#handleInput);\n\t\tprocess.stdin.resume();\n\t}\n\n\t#realStop() {\n\t\tif (!process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.off('data', this.#handleInput);\n\t\tprocess.stdin.pause();\n\t\tprocess.stdin.setRawMode(false);\n\t}\n\n\t#handleInput(chunk) {\n\t\t// Allow Ctrl+C to gracefully exit.\n\t\tif (chunk[0] === ASCII_ETX_CODE) {\n\t\t\tprocess.emit('SIGINT');\n\t\t}\n\t}\n}\n\nconst stdinDiscarder = new StdinDiscarder();\n\nexport default stdinDiscarder;\n",
|
|
22
|
+
"import ora, { type Ora } from 'ora';\nimport { theme, icons } from './theme.js';\n\n/**\n * Wrapper for ora spinner with consistent styling\n */\nexport class Spinner {\n private spinner: Ora | null = null;\n\n start(message: string): void {\n this.spinner = ora({\n text: message,\n color: 'blue',\n spinner: 'dots',\n }).start();\n }\n\n succeed(message: string): void {\n if (this.spinner) {\n this.spinner.succeed(message);\n this.spinner = null;\n }\n }\n\n fail(message: string): void {\n if (this.spinner) {\n this.spinner.fail(message);\n this.spinner = null;\n }\n }\n\n stop(): void {\n if (this.spinner) {\n this.spinner.stop();\n this.spinner = null;\n }\n }\n}\n\nexport function createSpinner(): Spinner {\n return new Spinner();\n}\n"
|
|
23
|
+
],
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "DB87B0D80B4501A464756E2164756E21",
|
|
26
|
+
"names": []
|
|
27
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box_default,
|
|
3
|
+
Newline,
|
|
4
|
+
Spacer,
|
|
5
|
+
Static,
|
|
6
|
+
Text,
|
|
7
|
+
Transform,
|
|
8
|
+
kittyFlags,
|
|
9
|
+
kittyModifiers,
|
|
10
|
+
measure_element_default,
|
|
11
|
+
render_default,
|
|
12
|
+
render_to_string_default,
|
|
13
|
+
use_app_default,
|
|
14
|
+
use_cursor_default,
|
|
15
|
+
use_focus_default,
|
|
16
|
+
use_focus_manager_default,
|
|
17
|
+
use_input_default,
|
|
18
|
+
use_is_screen_reader_enabled_default,
|
|
19
|
+
use_stderr_default,
|
|
20
|
+
use_stdin_default,
|
|
21
|
+
use_stdout_default
|
|
22
|
+
} from "./chunk-7y4xzvkz.js";
|
|
23
|
+
import"./chunk-4jwmvjb4.js";
|
|
24
|
+
import"./chunk-q6sv0243.js";
|
|
25
|
+
import"./chunk-3sfn889r.js";
|
|
26
|
+
import"./chunk-9wyra8hs.js";
|
|
27
|
+
export {
|
|
28
|
+
use_stdout_default as useStdout,
|
|
29
|
+
use_stdin_default as useStdin,
|
|
30
|
+
use_stderr_default as useStderr,
|
|
31
|
+
use_is_screen_reader_enabled_default as useIsScreenReaderEnabled,
|
|
32
|
+
use_input_default as useInput,
|
|
33
|
+
use_focus_manager_default as useFocusManager,
|
|
34
|
+
use_focus_default as useFocus,
|
|
35
|
+
use_cursor_default as useCursor,
|
|
36
|
+
use_app_default as useApp,
|
|
37
|
+
render_to_string_default as renderToString,
|
|
38
|
+
render_default as render,
|
|
39
|
+
measure_element_default as measureElement,
|
|
40
|
+
kittyModifiers,
|
|
41
|
+
kittyFlags,
|
|
42
|
+
Transform,
|
|
43
|
+
Text,
|
|
44
|
+
Static,
|
|
45
|
+
Spacer,
|
|
46
|
+
Newline,
|
|
47
|
+
Box_default as Box
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
//# debugId=DC542304F7E517EE64756E2164756E21
|