@yadsh/dsh-qa-surface 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/access/service.js +2 -1
- package/lib/access/service.js.map +1 -1
- package/lib/client/QaSessionController.js +24 -2
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +9 -2
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/components/QaChangelog.js +46 -11
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaSidebar.js +13 -15
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections/docs.js +41 -0
- package/lib/client/settings/sections/docs.js.map +1 -0
- package/lib/client/settings/sections.js +1 -0
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/slash/SlashPalette.js +4 -13
- package/lib/client/slash/SlashPalette.js.map +1 -1
- package/lib/client/slash/palette-rows.js +45 -0
- package/lib/client/slash/palette-rows.js.map +1 -0
- package/lib/client/slash/useSlashNavigation.js +8 -2
- package/lib/client/slash/useSlashNavigation.js.map +1 -1
- package/lib/client/styles.js +1 -2
- package/lib/client/styles.js.map +1 -1
- package/lib/client/turn-sources.js +20 -0
- package/lib/client/turn-sources.js.map +1 -1
- package/lib/client.js +398 -206
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +7 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/integration.js +7 -1
- package/lib/config-resolvers/integration.js.map +1 -1
- package/lib/config-resolvers/shared.js +12 -0
- package/lib/config-resolvers/shared.js.map +1 -1
- package/lib/config-resolvers/tools.js +26 -0
- package/lib/config-resolvers/tools.js.map +1 -1
- package/lib/config.js +21 -0
- package/lib/config.js.map +1 -1
- package/lib/index.js +10 -2
- package/lib/index.js.map +1 -1
- package/lib/launch-token.js +22 -17
- package/lib/launch-token.js.map +1 -1
- package/lib/qa-tools/catalog.js +13 -2
- package/lib/qa-tools/catalog.js.map +1 -1
- package/lib/qa-tools/docs-tools.js +334 -32
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/qa-tools/index.js +2 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/secure-session.js +8 -0
- package/lib/secure-session.js.map +1 -1
- package/lib/shared/docs-version.js +19 -0
- package/lib/shared/docs-version.js.map +1 -0
- package/lib/typert.host.js +71 -68
- package/lib/typert.remote-client.js +70 -67
- package/lib/types/client/QaSessionController.d.ts +14 -0
- package/lib/types/client/components/QaWidthHandle.d.ts +0 -1
- package/lib/types/client/settings/sections/docs.d.ts +15 -0
- package/lib/types/client/settings/sections.d.ts +1 -0
- package/lib/types/client/slash/palette-rows.d.ts +43 -0
- package/lib/types/client/turn-sources.d.ts +14 -0
- package/lib/types/config-resolvers/integration.d.ts +7 -1
- package/lib/types/config-resolvers/shared.d.ts +8 -0
- package/lib/types/config-resolvers/tools.d.ts +9 -0
- package/lib/types/launch-token.d.ts +10 -3
- package/lib/types/qa-tools/catalog.d.ts +11 -1
- package/lib/types/qa-tools/docs-tools.d.ts +38 -5
- package/lib/types/qa-tools/index.d.ts +7 -0
- package/lib/types/shared/docs-version.d.ts +15 -0
- package/lib/types/types.d.ts +34 -0
- package/package.json +5 -5
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grouping for the palette's rows.
|
|
3
|
+
*
|
|
4
|
+
* Ranking is global: skills and commands are scored and sorted together, so
|
|
5
|
+
* `/tkp` can put a command between two skills and a palette that captioned
|
|
6
|
+
* every neighbouring run would draw «Навыки» twice over one group of rows.
|
|
7
|
+
*
|
|
8
|
+
* This module is the translation between the two: it buckets the ranked rows
|
|
9
|
+
* by kind, keeps each bucket in ranked order, and puts the bucket whose best
|
|
10
|
+
* row ranked highest first. The palette's first row is therefore still the
|
|
11
|
+
* best match — which is the row Enter picks when the user types nothing else.
|
|
12
|
+
*
|
|
13
|
+
* A row keeps its `index` from the ranked list, so what the keyboard moves
|
|
14
|
+
* through is the order the palette draws: the navigation hook publishes the
|
|
15
|
+
* flattened groups rather than the raw ranking.
|
|
16
|
+
*
|
|
17
|
+
* Pure on purpose: the hook and the component both need the same grouping, and
|
|
18
|
+
* the tests drive it with plain arrays.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Bucket ranked rows by kind, one group per kind.
|
|
22
|
+
*
|
|
23
|
+
* A kind with no row contributes no group, and the group order follows the
|
|
24
|
+
* ranking (the best row's own kind leads) rather than a fixed
|
|
25
|
+
* skill-then-command order, so the top of the list never disagrees with the
|
|
26
|
+
* ranking above it.
|
|
27
|
+
*/
|
|
28
|
+
export function groupPaletteRows(rows) {
|
|
29
|
+
const buckets = new Map();
|
|
30
|
+
rows.forEach((entry, index) => {
|
|
31
|
+
const row = Object.freeze({ entry, index });
|
|
32
|
+
const bucket = buckets.get(entry.kind);
|
|
33
|
+
if (bucket === undefined) {
|
|
34
|
+
buckets.set(entry.kind, [row]);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
bucket.push(row);
|
|
38
|
+
});
|
|
39
|
+
return Object.freeze([...buckets.entries()].map(([kind, group]) => Object.freeze({ kind, rows: Object.freeze([...group]) })));
|
|
40
|
+
}
|
|
41
|
+
/** The entries of every group, in the order the palette draws them. */
|
|
42
|
+
export function flattenPaletteGroups(groups) {
|
|
43
|
+
return Object.freeze(groups.flatMap((group) => group.rows.map((row) => row.entry)));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=palette-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette-rows.js","sourceRoot":"","sources":["../../../src/client/slash/palette-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAiBH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoD,CAAC;IAC5E,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAsB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC3C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CACzD,CACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,oBAAoB,CAClC,MAAsC;IAEtC,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { rankSlashEntries } from "../../slash/matcher.js";
|
|
3
3
|
import { slashPaletteQuery } from "../../slash/parser.js";
|
|
4
|
+
import { flattenPaletteGroups, groupPaletteRows } from "./palette-rows.js";
|
|
4
5
|
/**
|
|
5
6
|
* Palette state for one composer draft.
|
|
6
7
|
*
|
|
@@ -28,12 +29,17 @@ export function useSlashNavigation(options) {
|
|
|
28
29
|
lastReopen.current = options.reopen;
|
|
29
30
|
setDismissed(false);
|
|
30
31
|
}, [options.reopen]);
|
|
32
|
+
// The ranking decides which rows are shown and in which order; the grouping
|
|
33
|
+
// decides how they are captioned. Publishing the grouped order is what keeps
|
|
34
|
+
// the arrow keys on the rows the palette actually draws — see
|
|
35
|
+
// `groupPaletteRows` for why the two are not the same list.
|
|
31
36
|
const rows = useMemo(() => {
|
|
32
37
|
if (query === undefined)
|
|
33
38
|
return [];
|
|
34
|
-
|
|
39
|
+
const ranked = rankSlashEntries(slash.entries, query, {
|
|
35
40
|
fuzzy: options.fuzzySearch,
|
|
36
|
-
})
|
|
41
|
+
});
|
|
42
|
+
return flattenPaletteGroups(groupPaletteRows(ranked)).slice(0, options.maxVisible);
|
|
37
43
|
}, [slash.entries, query, options.fuzzySearch, options.maxVisible]);
|
|
38
44
|
// A new query re-ranks the rows, so the old index may point at a row that is
|
|
39
45
|
// no longer the best match; the first row is always the right anchor.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlashNavigation.js","sourceRoot":"","sources":["../../../src/client/slash/useSlashNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSlashNavigation.js","sourceRoot":"","sources":["../../../src/client/slash/useSlashNavigation.ts"],"names":[],"mappings":"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"}
|
package/lib/client/styles.js
CHANGED
|
@@ -126,7 +126,7 @@ export const QA_SURFACE_STYLES = String.raw `
|
|
|
126
126
|
.dsh-qa-sidebar__item-main{appearance:none;display:flex;align-items:center;gap:8px;width:100%;min-width:0;border:0;background:0 0;cursor:pointer;text-align:left;font:inherit;padding:7px 8px;border-radius:8px}
|
|
127
127
|
.dsh-qa-sidebar__item-main:focus-visible{outline:2px solid var(--dsh-qa-accent);outline-offset:-2px}
|
|
128
128
|
.dsh-qa-sidebar__item-delete{appearance:none;position:absolute;top:50%;right:4px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;background:var(--dsw-alias-bg-layer-2);cursor:pointer;color:var(--dsw-alias-label-tertiary);padding:5px;border-radius:6px;opacity:0;transform:translateY(-50%);transition:opacity .12s}
|
|
129
|
-
.dsh-qa-sidebar__item:hover .dsh-qa-sidebar__item-delete,.dsh-qa-sidebar__item-delete:focus-visible
|
|
129
|
+
.dsh-qa-sidebar__item:hover .dsh-qa-sidebar__item-delete,.dsh-qa-sidebar__item-delete:focus-visible{opacity:1}
|
|
130
130
|
.dsh-qa-sidebar__item-delete:hover{color:var(--dsw-alias-label-primary)}
|
|
131
131
|
.dsh-qa-sidebar__item-audit{appearance:none;flex:none;display:inline-flex;align-items:center;gap:4px;height:22px;margin-right:4px;padding:0 8px;border:1px solid var(--dsw-alias-border-l2);border-radius:999px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-secondary);font:inherit;font-size:11px;line-height:16px;cursor:pointer;transition:border-color .12s,color .12s}
|
|
132
132
|
.dsh-qa-sidebar__item-audit--with-delete{margin-right:28px}
|
|
@@ -138,7 +138,6 @@ export const QA_SURFACE_STYLES = String.raw `
|
|
|
138
138
|
.dsh-qa-sidebar__item-audit-verdict--warn{color:var(--dsw-alias-state-warn-primary)}
|
|
139
139
|
.dsh-qa-sidebar__item-audit-verdict--bad{color:var(--dsw-alias-state-error-primary)}
|
|
140
140
|
.dsh-qa-sidebar__item-delete:focus-visible{outline:2px solid var(--dsh-qa-accent);outline-offset:-2px}
|
|
141
|
-
.dsh-qa-sidebar__item-delete--confirm{color:var(--dsh-qa-error-hover)}
|
|
142
141
|
.dsh-qa-sidebar__item-delete svg{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
|
|
143
142
|
.dsh-qa-sidebar__item-title{flex:1;min-width:0;overflow:hidden;color:var(--dsw-alias-label-secondary);font-size:13px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}
|
|
144
143
|
.dsh-qa-sidebar__item--active .dsh-qa-sidebar__item-title{color:var(--dsw-alias-label-primary);font-weight:500}
|
package/lib/client/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,SAAS;IAChB,yDAAyD;IACzD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,uBAAuB;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,gBAAgB;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,yBAAyB;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,mDAAmD;IACnD,cAAc,EAAE,SAAS;IACzB,qDAAqD;IACrD,OAAO,EAAE,wBAAwB;CACzB,CAAC;AAEX,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACrD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;KAChE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA;qHAC0E,CAAC;AAEtH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;kBACzB,eAAe;;;;;qBAKZ,eAAe
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,26 @@ export function projectTurnSources(snapshot, sessionId = "unknown", workspaceRoo
|
|
|
91
91
|
.sort(([left], [right]) => left - right)
|
|
92
92
|
.map(([, collector]) => collector.snapshot());
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* The directory a projected source path is anchored on: the chat's own cwd.
|
|
96
|
+
*
|
|
97
|
+
* Both channels read the same durable tool results, and the Host's evidence —
|
|
98
|
+
* the set the source preview checks a request against — canonicalizes every
|
|
99
|
+
* recorded path against the session's own cwd. A projection anchored on
|
|
100
|
+
* anything else splits one file into two spellings the moment the two
|
|
101
|
+
* directories differ (an adopted chat, a chat whose cwd was pinned under an
|
|
102
|
+
* older configuration): the rail then shows a path the Host does not hold, and
|
|
103
|
+
* the detailed view refuses a source the answer just cited as no longer
|
|
104
|
+
* evidence until the rail is rebuilt from the Host's own bundles. The
|
|
105
|
+
* configured pin stays the fallback for a chat the browser cannot place yet.
|
|
106
|
+
*/
|
|
107
|
+
export function sourceAnchorRoot(chatCwd, configuredCwd) {
|
|
108
|
+
const chat = chatCwd?.trim();
|
|
109
|
+
if (chat !== undefined && chat !== "")
|
|
110
|
+
return chat;
|
|
111
|
+
const configured = configuredCwd?.trim();
|
|
112
|
+
return configured === undefined || configured === "" ? undefined : configured;
|
|
113
|
+
}
|
|
94
114
|
/** Visible evidence sources for the latest turn, shared by the drawer/footer. */
|
|
95
115
|
export function projectSources(snapshot, sessionId = "unknown", workspaceRoot) {
|
|
96
116
|
return (projectTurnSources(snapshot, sessionId, workspaceRoot).at(-1)?.sources ?? []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-sources.js","sourceRoot":"","sources":["../../src/client/turn-sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,6BAA6B,CAAC;AAEnF,wFAAwF;AACxF,MAAM,YAAY,GAA4B,MAAM,CAAC,MAAM,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,WAAW,EAAE,IAAI,GAAG,EAAE;IACtB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,UAAU,YAAY,CAC1B,QAA0C;IAE1C,OAAO,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC;AAC7D,CAAC;AAED,MAAM,yBAAyB,GAAG,oCAAoC,EAAE,CAAC;AASzE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA0C,EAC1C,SAAS,GAAG,SAAS,EACrB,aAAsB;IAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;gBAAE,SAAS;YAChE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IACxD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,iBAAiB,CAAC;gBAChC,SAAS;gBACT,IAAI;gBACJ,QAAQ,EAAE,yBAAyB;aACpC,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,WAA+B,CAAC;IACpC,IAAI,WAA+B,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,wEAAwE;QACxE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,MAAM,EAAE;gBACN,SAAS;gBACT,IAAI;gBACJ,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,QAAQ;aACf;YACD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAC5B,QAA0C,EAC1C,SAAS,GAAG,SAAS,EACrB,aAAsB;IAEtB,OAAO,CACL,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAC7E,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"turn-sources.js","sourceRoot":"","sources":["../../src/client/turn-sources.ts"],"names":[],"mappings":"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"}
|