@bragi-gmbh/codebus 1.6.5 → 1.6.7
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/commands/graph-pull.js +37 -6
- package/dist/commands/graph-pull.js.map +1 -1
- package/dist/commands/graph-versions-cmd.js +67 -0
- package/dist/commands/graph-versions-cmd.js.map +1 -0
- package/dist/commands/graph.js +122 -2
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/teams-link.js +24 -0
- package/dist/commands/teams-link.js.map +1 -0
- package/dist/graph-remote.js +151 -8
- package/dist/graph-remote.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/kit/graph-publish.mjs +359 -13
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ export const GRAPH_CACHE_DIR = join(homedir(), ".codebus", "graph");
|
|
|
23
23
|
export function defaultGraphPullDeps() {
|
|
24
24
|
return {
|
|
25
25
|
findLatestRun: async (sha) => {
|
|
26
|
+
let stderr = "";
|
|
26
27
|
try {
|
|
27
28
|
const endpoint = `repos/${GRAPHIFY_REPO}/actions/workflows/${GRAPHIFY_WORKFLOW}/runs`;
|
|
28
29
|
const params = new URLSearchParams({ branch: GRAPH_BRANCH, status: "success", per_page: "10" });
|
|
@@ -35,12 +36,19 @@ export function defaultGraphPullDeps() {
|
|
|
35
36
|
}
|
|
36
37
|
return successful.length > 0 ? successful[0] : null;
|
|
37
38
|
}
|
|
38
|
-
catch {
|
|
39
|
-
|
|
39
|
+
catch (err) {
|
|
40
|
+
stderr = err instanceof Error ? err.message : String(err);
|
|
41
|
+
throw new CodebusError(`gh failed to resolve latest graphify run: ${stderr}`, 1);
|
|
40
42
|
}
|
|
41
43
|
},
|
|
42
44
|
downloadArtifact: async (runId, artifactName, destDir) => {
|
|
43
|
-
|
|
45
|
+
try {
|
|
46
|
+
await execFileP("gh", ["run", "download", String(runId), "--name", artifactName, "-D", destDir]);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
const ghErr = err instanceof Error ? err.message : String(err);
|
|
50
|
+
throw new CodebusError(`gh failed to download artifact '${artifactName}' for run #${runId}: ${ghErr}`, 1);
|
|
51
|
+
}
|
|
44
52
|
},
|
|
45
53
|
};
|
|
46
54
|
}
|
|
@@ -90,13 +98,23 @@ export async function pullSnapshot(run, deps) {
|
|
|
90
98
|
}
|
|
91
99
|
}
|
|
92
100
|
mkdirSync(runDir, { recursive: true });
|
|
93
|
-
|
|
101
|
+
try {
|
|
102
|
+
await deps.downloadArtifact(run.id, "graphify-pointer", runDir);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
throw new CodebusError(`failed to download artifact 'graphify-pointer' for run #${run.database_id} (sha ${run.head_sha.slice(0, 7)}): ${err instanceof Error ? err.message : String(err)}`, 1);
|
|
106
|
+
}
|
|
94
107
|
const pointerPath = join(runDir, "pointer.json");
|
|
95
108
|
if (!existsSync(pointerPath)) {
|
|
96
109
|
throw new CodebusError(`Workflow run #${run.database_id} did not produce a graphify-pointer artifact.`, 1);
|
|
97
110
|
}
|
|
98
111
|
const pointer = JSON.parse(readFileSync(pointerPath, "utf-8"));
|
|
99
|
-
|
|
112
|
+
try {
|
|
113
|
+
await deps.downloadArtifact(run.id, "graphify-snapshot", runDir);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
throw new CodebusError(`failed to download artifact 'graphify-snapshot' for run #${run.database_id} (sha ${run.head_sha.slice(0, 7)}): ${err instanceof Error ? err.message : String(err)}`, 1);
|
|
117
|
+
}
|
|
100
118
|
// gh run download may place files under a nested subdirectory — flatten if needed.
|
|
101
119
|
if (!existsSync(join(runDir, "graph.json"))) {
|
|
102
120
|
const entries = readdirSync(runDir).filter((e) => e !== "pointer.json");
|
|
@@ -113,6 +131,9 @@ export async function pullSnapshot(run, deps) {
|
|
|
113
131
|
return pointer.built_at_commit;
|
|
114
132
|
}
|
|
115
133
|
export async function graphPullCmd(opts) {
|
|
134
|
+
if (opts.repo !== undefined && String(opts.repo).toLowerCase() !== "codebus") {
|
|
135
|
+
throw new CodebusError(`--repo '${opts.repo}' is not supported by graph pull (only 'codebus')`, 1);
|
|
136
|
+
}
|
|
116
137
|
const deps = opts.deps ?? defaultGraphPullDeps();
|
|
117
138
|
const run = await deps.findLatestRun(opts.sha);
|
|
118
139
|
if (!run) {
|
|
@@ -125,6 +146,16 @@ export async function graphPullCmd(opts) {
|
|
|
125
146
|
}
|
|
126
147
|
const builtAtCommit = await pullSnapshot(run, deps);
|
|
127
148
|
const cacheRoot = deps.cacheDir ?? GRAPH_CACHE_DIR;
|
|
128
|
-
|
|
149
|
+
const cachePath = join(cacheRoot, builtAtCommit);
|
|
150
|
+
let nodeCount = 0, edgeCount = 0;
|
|
151
|
+
try {
|
|
152
|
+
const graph = JSON.parse(readFileSync(join(cachePath, "graph.json"), "utf-8"));
|
|
153
|
+
nodeCount = graph.nodes?.length ?? 0;
|
|
154
|
+
const links = graph.links?.length ?? 0;
|
|
155
|
+
const hyper = graph.hyperedges?.length ?? 0;
|
|
156
|
+
edgeCount = links || hyper ? links + hyper : (graph.edges?.length ?? 0);
|
|
157
|
+
}
|
|
158
|
+
catch { /* best-effort counts */ }
|
|
159
|
+
return `graphify snapshot cached at ${cachePath}\nBuilt at commit: ${builtAtCommit}\nNodes: ${nodeCount}, Edges: ${edgeCount}`;
|
|
129
160
|
}
|
|
130
161
|
//# sourceMappingURL=graph-pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-pull.js","sourceRoot":"","sources":["../../src/commands/graph-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AA0BpE,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,GAAY,EAA+B,EAAE;YACjE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,SAAS,aAAa,sBAAsB,iBAAiB,OAAO,CAAC;gBACtF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC,CAAC;gBAC7I,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqC,CAAC;gBACxE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;gBAC9G,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACxD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;gBACxJ,CAAC;gBACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;YAAC,
|
|
1
|
+
{"version":3,"file":"graph-pull.js","sourceRoot":"","sources":["../../src/commands/graph-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AA0BpE,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,GAAY,EAA+B,EAAE;YACjE,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,SAAS,aAAa,sBAAsB,iBAAiB,OAAO,CAAC;gBACtF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC,CAAC;gBAC7I,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqC,CAAC;gBACxE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;gBAC9G,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACxD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;gBACxJ,CAAC;gBACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,IAAI,YAAY,CAAC,6CAA6C,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,KAAa,EAAE,YAAoB,EAAE,OAAe,EAAiB,EAAE;YAC9F,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACnG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/D,MAAM,IAAI,YAAY,CAAC,mCAAmC,YAAY,cAAc,KAAK,KAAK,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,SAAkB;IACxE,OAAO,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,SAAkB;IAC1E,MAAM,GAAG,GAAG,SAAS,IAAI,eAAe,CAAC;IACzC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,OAAwB;IAChF,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,YAAY,CAAC,2GAA2G,EAAE,CAAC,CAAC,CAAC;IACzI,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,YAAY,KAAK,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACzD,MAAM,IAAI,YAAY,CACpB,0CAA0C,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,OAAO,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uDAAuD,EACzM,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAgB,EAAE,IAAmB;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC;IACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAoB,CAAC;YACnG,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC,eAAe,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,YAAY,CAAC,2DAA2D,GAAG,CAAC,WAAW,SAAS,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjM,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,YAAY,CAAC,iBAAiB,GAAG,CAAC,WAAW,+CAA+C,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAoB,CAAC;IAElF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,YAAY,CAAC,4DAA4D,GAAG,CAAC,WAAW,SAAS,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClM,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YAC/E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChC,IAAI,UAAU,CAAC,GAAG,CAAC;oBAAE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,eAAe,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAA2D;IAC5F,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QAC7E,MAAM,IAAI,YAAY,CAAC,WAAW,IAAI,CAAC,IAAI,mDAAmD,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,YAAY,CAAC,yDAAyD,IAAI,CAAC,GAAG,QAAQ,YAAY,oEAAoE,EAAE,CAAC,CAAC,CAAC;QACvL,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,oEAAoE,YAAY,IAAI;YAClF,yEAAyE;YACzE,sGAAsG,EACxG,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAwF,CAAC;QACtK,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;QAC5C,SAAS,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACpC,OAAO,+BAA+B,SAAS,sBAAsB,aAAa,YAAY,SAAS,YAAY,SAAS,EAAE,CAAC;AACjI,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { createInterface } from "node:readline";
|
|
2
|
+
import { CodebusError } from "../errors.js";
|
|
3
|
+
import { makeCtx } from "../client.js";
|
|
4
|
+
import { resolveConfig } from "../config.js";
|
|
5
|
+
import { listGraphVersions, promoteGraphVersion, readServing, resolveRemoteRepoSlug, resolveRepoId, } from "../graph-remote.js";
|
|
6
|
+
export const PROMOTE_TRUST_NOTE = "NOTE: trust grade resets to UNKNOWN by design; run the graphify-trust-sampler workflow with force=true to re-earn it";
|
|
7
|
+
export async function graphVersionsCmd(o) {
|
|
8
|
+
const ctx = o.ctx ?? (await makeCtx(resolveConfig(o)));
|
|
9
|
+
const repoRoot = o.repoRoot ?? process.cwd();
|
|
10
|
+
const repo = await resolveRemoteRepoSlug(ctx, repoRoot, o.repo);
|
|
11
|
+
const repoId = await resolveRepoId(ctx, repo, "codebus-graph-versions");
|
|
12
|
+
const limit = Math.max(1, Number(o.limit ?? 20) || 20);
|
|
13
|
+
const [versions, serving] = await Promise.all([listGraphVersions(ctx, repoId, limit), readServing(ctx, repoId)]);
|
|
14
|
+
const servingId = serving?.version_id ?? null;
|
|
15
|
+
if (o.json) {
|
|
16
|
+
console.log(JSON.stringify({ repo, versions, servingVersionId: servingId }, null, 2));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
for (const v of versions) {
|
|
20
|
+
const mark = v.id === servingId ? " *" : "";
|
|
21
|
+
console.log(`${v.source_sha.slice(0, 12)} ${v.status} nodes=${v.node_count} edges=${v.edge_count} ingested=${v.ingested_at}${mark}`);
|
|
22
|
+
}
|
|
23
|
+
if (serving)
|
|
24
|
+
console.log(`serving: version ${serving.version_id}`);
|
|
25
|
+
}
|
|
26
|
+
async function confirmOnTty(prompt) {
|
|
27
|
+
if (!process.stdin.isTTY)
|
|
28
|
+
return false;
|
|
29
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
30
|
+
try {
|
|
31
|
+
const answer = await new Promise((resolve) => rl.question(`${prompt} [y/N] `, resolve));
|
|
32
|
+
return /^y(es)?$/i.test(answer.trim());
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
rl.close();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export async function graphPromoteCmd(sourceSha, o) {
|
|
39
|
+
if (!sourceSha)
|
|
40
|
+
throw new CodebusError("graph promote: missing <source_sha>.", 1);
|
|
41
|
+
const ctx = o.ctx ?? (await makeCtx(resolveConfig(o)));
|
|
42
|
+
const repoRoot = o.repoRoot ?? process.cwd();
|
|
43
|
+
const repo = await resolveRemoteRepoSlug(ctx, repoRoot, o.repo);
|
|
44
|
+
const repoId = await resolveRepoId(ctx, repo, "codebus-graph-promote");
|
|
45
|
+
const versions = await listGraphVersions(ctx, repoId, 200);
|
|
46
|
+
const target = versions.find((v) => v.source_sha === sourceSha || v.source_sha.startsWith(sourceSha));
|
|
47
|
+
if (!target)
|
|
48
|
+
throw new CodebusError(`graph promote: no retained version '${sourceSha}' for repo '${repo}'.`, 1);
|
|
49
|
+
const current = await readServing(ctx, repoId);
|
|
50
|
+
if (!o.json) {
|
|
51
|
+
console.log(`target: ${target.source_sha} status=${target.status} nodes=${target.node_count} edges=${target.edge_count}`);
|
|
52
|
+
console.log(current ? `current serving: version ${current.version_id}` : "current serving: none");
|
|
53
|
+
}
|
|
54
|
+
if (!o.yes && !(await confirmOnTty(`promote ${target.source_sha} to serving for ${repo}?`))) {
|
|
55
|
+
throw new CodebusError("graph promote: refused without --yes (non-TTY or no confirmation).", 1);
|
|
56
|
+
}
|
|
57
|
+
await promoteGraphVersion(ctx, repoId, target.source_sha);
|
|
58
|
+
const after = await readServing(ctx, repoId);
|
|
59
|
+
if (o.json) {
|
|
60
|
+
console.log(JSON.stringify({ repo, sourceSha: target.source_sha, serving: after }, null, 2));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.log(after ? `serving: version ${after.version_id}` : "serving: unknown");
|
|
64
|
+
console.log(PROMOTE_TRUST_NOTE);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=graph-versions-cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-versions-cmd.js","sourceRoot":"","sources":["../../src/commands/graph-versions-cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/graph.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CodebusError } from "../errors.js";
|
|
2
2
|
import { loadGraphSnapshot, getGraphBuiltCommit, checkStaleness } from "../graph.js";
|
|
3
|
-
import { fetchRemoteStatus } from "../graph-remote.js";
|
|
3
|
+
import { fetchRemoteStatus, isLocalSnapshotStale, graphSearchRpc, graphSubgraphRpc, graphGapsRpc, resolveBlastRadius, resolveRemoteRepoSlug, tryMakeCtx, } from "../graph-remote.js";
|
|
4
|
+
import { makeCtx } from "../client.js";
|
|
5
|
+
import { resolveConfig } from "../config.js";
|
|
4
6
|
import { graphPullCmd } from "./graph-pull.js";
|
|
5
7
|
/**
|
|
6
8
|
* CLI command: codebus graph status
|
|
@@ -44,12 +46,29 @@ export async function graphStatusCmd(options) {
|
|
|
44
46
|
repo: remote.repoSlug,
|
|
45
47
|
attachmentState: remote.attachmentState,
|
|
46
48
|
grade: remote.grade,
|
|
49
|
+
extractedGrade: remote.extractedGrade,
|
|
50
|
+
inferredGrade: remote.inferredGrade,
|
|
51
|
+
extractedAccuracy: remote.extractedAccuracy,
|
|
52
|
+
inferredAccuracy: remote.inferredAccuracy,
|
|
47
53
|
freshness: remote.freshness,
|
|
48
54
|
stale: remote.stale,
|
|
49
55
|
noGraph: remote.noGraph,
|
|
50
56
|
servingSha: remote.servingSha7,
|
|
51
57
|
headSha: remote.headSha7,
|
|
58
|
+
servingNodeCount: remote.servingNodeCount ?? null,
|
|
59
|
+
servingEdgeCount: remote.servingEdgeCount ?? null,
|
|
52
60
|
};
|
|
61
|
+
if (snapshot && remote.servingSha7) {
|
|
62
|
+
const localBuilt = String(status.builtAtCommit ?? "");
|
|
63
|
+
const localN = Number(status.nodeCount ?? 0);
|
|
64
|
+
const localE = Number(status.edgeCount ?? 0);
|
|
65
|
+
const chk = isLocalSnapshotStale({ builtAt: localBuilt, nodeCount: localN, edgeCount: localE }, { servingSha: remote.servingSha7, nodeCount: remote.servingNodeCount ?? null, edgeCount: remote.servingEdgeCount ?? null });
|
|
66
|
+
if (chk.stale) {
|
|
67
|
+
const l7 = localBuilt.slice(0, 7);
|
|
68
|
+
const warn = `STALE LOCAL: local ${l7} (${localN} nodes) vs serving ${remote.servingSha7} (${remote.servingNodeCount ?? "?"}) — run codebus graph pull (${chk.reason})`;
|
|
69
|
+
status.staleLocalWarning = warn;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
53
72
|
}
|
|
54
73
|
if (options.json) {
|
|
55
74
|
console.log(JSON.stringify(status, null, 2));
|
|
@@ -73,7 +92,15 @@ export async function graphStatusCmd(options) {
|
|
|
73
92
|
}
|
|
74
93
|
if (remote) {
|
|
75
94
|
console.log(`Remote (${remote.repoSlug}): attachment=${remote.attachmentState ?? "unknown"} grade=${remote.grade ?? "unknown"}`);
|
|
95
|
+
if (remote.extractedGrade !== undefined || remote.inferredGrade !== undefined) {
|
|
96
|
+
console.log(` Extracted: ${remote.extractedGrade ?? "unknown"} (acc ${remote.extractedAccuracy ?? "—"})`);
|
|
97
|
+
console.log(` Inferred: ${remote.inferredGrade ?? "unknown"} (acc ${remote.inferredAccuracy ?? "—"})`);
|
|
98
|
+
}
|
|
76
99
|
console.log(` Freshness: ${remote.freshness ?? "unknown"} (serving ${remote.servingSha7 ?? "—"}, head ${remote.headSha7 ?? "—"})`);
|
|
100
|
+
if (remote.servingNodeCount !== null && remote.servingNodeCount !== undefined)
|
|
101
|
+
console.log(` Serving: ${remote.servingNodeCount} nodes, ${remote.servingEdgeCount ?? "?"} edges`);
|
|
102
|
+
if (status.staleLocalWarning)
|
|
103
|
+
console.log(String(status.staleLocalWarning));
|
|
77
104
|
}
|
|
78
105
|
else {
|
|
79
106
|
console.log("Remote: not connected / not reachable");
|
|
@@ -87,6 +114,73 @@ export async function graphStatusCmd(options) {
|
|
|
87
114
|
}
|
|
88
115
|
}
|
|
89
116
|
import { registerGraphPublish } from "./graph-publish-cmd.js";
|
|
117
|
+
import { graphVersionsCmd, graphPromoteCmd } from "./graph-versions-cmd.js";
|
|
118
|
+
/** Parse --min-tier (default EXTRACTED; ALL = no tier filter). */
|
|
119
|
+
function parseMinTier(v) {
|
|
120
|
+
if (v === undefined)
|
|
121
|
+
return "EXTRACTED";
|
|
122
|
+
const u = v.toUpperCase();
|
|
123
|
+
if (u === "EXTRACTED" || u === "INFERRED")
|
|
124
|
+
return u;
|
|
125
|
+
if (u === "ALL")
|
|
126
|
+
return null;
|
|
127
|
+
throw new CodebusError("--min-tier must be EXTRACTED, INFERRED, or ALL");
|
|
128
|
+
}
|
|
129
|
+
async function requireCtx() {
|
|
130
|
+
const cfg = resolveConfig({});
|
|
131
|
+
return makeCtx(cfg);
|
|
132
|
+
}
|
|
133
|
+
function printRows(rows, cols, json) {
|
|
134
|
+
if (json) {
|
|
135
|
+
console.log(JSON.stringify(rows, null, 2));
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (rows.length === 0) {
|
|
139
|
+
console.log("(no results)");
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const widths = cols.map((c) => Math.max(c.length, ...rows.map((r) => String(r[c] ?? "").length)));
|
|
143
|
+
console.log(cols.map((c, i) => c.padEnd(widths[i])).join(" "));
|
|
144
|
+
for (const r of rows)
|
|
145
|
+
console.log(cols.map((c, i) => String(r[c] ?? "").padEnd(widths[i])).join(" "));
|
|
146
|
+
}
|
|
147
|
+
export async function graphSearchCmd(terms, opts) {
|
|
148
|
+
const ctx = await requireCtx();
|
|
149
|
+
const slug = await resolveRemoteRepoSlug(ctx, process.cwd(), opts.repo);
|
|
150
|
+
const rows = await graphSearchRpc(ctx, slug, terms.join(" "), Number(opts.limit ?? 20), parseMinTier(opts.minTier));
|
|
151
|
+
printRows(rows.map((r) => ({ node_id: r.node_id, label: r.label, source_file: r.source_file ?? "", tier: r.tier ?? "", similarity: r.similarity })), ["node_id", "label", "source_file", "tier", "similarity"], opts.json);
|
|
152
|
+
}
|
|
153
|
+
export async function graphSubgraphCmd(seeds, opts) {
|
|
154
|
+
const ctx = await requireCtx();
|
|
155
|
+
const slug = await resolveRemoteRepoSlug(ctx, process.cwd(), undefined);
|
|
156
|
+
const relations = opts.relation ? opts.relation.split(",").map((s) => s.trim()).filter(Boolean) : undefined;
|
|
157
|
+
const res = await graphSubgraphRpc(ctx, slug, seeds, {
|
|
158
|
+
depth: Number(opts.depth ?? 2),
|
|
159
|
+
maxNodes: Number(opts.limit ?? 50),
|
|
160
|
+
relations,
|
|
161
|
+
minTier: parseMinTier(opts.minTier),
|
|
162
|
+
});
|
|
163
|
+
const rows = [
|
|
164
|
+
...res.nodes.map((n) => ({ kind: "node", id: n.node_id, label: n.label, tier: n.tier ?? "" })),
|
|
165
|
+
...res.edges.map((e) => ({ kind: "edge", id: `${e.src}->${e.dst}`, label: e.relation, tier: e.confidence ?? "" })),
|
|
166
|
+
];
|
|
167
|
+
printRows(rows, ["kind", "id", "label", "tier"], opts.json);
|
|
168
|
+
if (res.truncated)
|
|
169
|
+
console.log("(truncated: more nodes reachable)");
|
|
170
|
+
}
|
|
171
|
+
export async function graphBlastRadiusCmd(targets, opts) {
|
|
172
|
+
const ctx = (await tryMakeCtx()) ?? undefined;
|
|
173
|
+
for (const seed of targets) {
|
|
174
|
+
const res = await resolveBlastRadius(seed, { repo: opts.repo, ctx });
|
|
175
|
+
printRows(res.rows.map((r) => ({ node_id: r.node_id, label: r.label, distance: r.distance, via_relation: r.via_relation })), ["node_id", "label", "distance", "via_relation"], opts.json);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export async function graphGapsCmd(opts) {
|
|
179
|
+
const ctx = await requireCtx();
|
|
180
|
+
const slug = await resolveRemoteRepoSlug(ctx, process.cwd(), opts.repo);
|
|
181
|
+
const rows = await graphGapsRpc(ctx, slug);
|
|
182
|
+
printRows(rows.map((r) => ({ category: r.category, node_id: r.node_id, label: r.label, detail: r.detail })), ["category", "node_id", "label", "detail"], opts.json);
|
|
183
|
+
}
|
|
90
184
|
/**
|
|
91
185
|
* Register the graph command.
|
|
92
186
|
*/
|
|
@@ -97,7 +191,33 @@ export function registerGraph(program, g) {
|
|
|
97
191
|
.action((opts) => graphStatusCmd(opts));
|
|
98
192
|
g(graphCmd.command("pull"))
|
|
99
193
|
.option("--sha <commit>", "pull the snapshot built at this commit (default: latest successful run on main)")
|
|
100
|
-
.
|
|
194
|
+
.option("--repo <slug>", "repo slug (only 'codebus' is supported)")
|
|
195
|
+
.action((opts) => graphPullCmd(opts).then((msg) => { console.log(msg); }));
|
|
101
196
|
registerGraphPublish(graphCmd, g);
|
|
197
|
+
g(graphCmd.command("versions"))
|
|
198
|
+
.option("--repo <slug>", "repo slug (auto-detected from git remote if omitted)")
|
|
199
|
+
.option("--limit <n>", "max versions to list (default 20)")
|
|
200
|
+
.action((opts) => graphVersionsCmd(opts));
|
|
201
|
+
g(graphCmd.command("promote <source_sha>"))
|
|
202
|
+
.option("--repo <slug>", "repo slug (auto-detected from git remote if omitted)")
|
|
203
|
+
.option("--yes", "skip confirmation prompt")
|
|
204
|
+
.action((sha, opts) => graphPromoteCmd(sha, opts));
|
|
205
|
+
g(graphCmd.command("search").argument("<terms...>", "search terms"))
|
|
206
|
+
.option("--repo <slug>", "repo slug (auto-detected from git remote if omitted)")
|
|
207
|
+
.option("--min-tier <tier>", "EXTRACTED (default) | INFERRED | ALL")
|
|
208
|
+
.option("--limit <n>", "max rows (default 20)")
|
|
209
|
+
.action((terms, opts) => { void graphSearchCmd(terms, opts); });
|
|
210
|
+
g(graphCmd.command("subgraph").argument("<seeds...>", "seed node ids"))
|
|
211
|
+
.option("--depth <n>", "BFS depth (default 2)")
|
|
212
|
+
.option("--limit <n>", "max nodes (default 50)")
|
|
213
|
+
.option("--min-tier <tier>", "EXTRACTED (default) | INFERRED | ALL")
|
|
214
|
+
.option("--relation <r,...>", "comma-separated relations (default all)")
|
|
215
|
+
.action((seeds, opts) => { void graphSubgraphCmd(seeds, opts); });
|
|
216
|
+
g(graphCmd.command("blast-radius").argument("<targets...>", "seed node id, label, or file"))
|
|
217
|
+
.option("--repo <slug>", "repo slug (auto-detected from git remote if omitted)")
|
|
218
|
+
.action((targets, opts) => { void graphBlastRadiusCmd(targets, opts); });
|
|
219
|
+
g(graphCmd.command("gaps"))
|
|
220
|
+
.option("--repo <slug>", "repo slug (auto-detected from git remote if omitted)")
|
|
221
|
+
.action((opts) => { void graphGapsCmd(opts); });
|
|
102
222
|
}
|
|
103
223
|
//# sourceMappingURL=graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/commands/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createClient } from "@supabase/supabase-js";
|
|
2
|
+
import { loadFileConfig } from "../config.js";
|
|
3
|
+
import { CodebusError } from "../errors.js";
|
|
4
|
+
/** `codebus teams-link <aad-object-id>` — link your Teams account to your
|
|
5
|
+
* CodeBus person via the teams_identity_link RPC (source manual). */
|
|
6
|
+
export async function teamsLinkCmd(aadObjectId, o) {
|
|
7
|
+
const id = (aadObjectId ?? "").trim();
|
|
8
|
+
if (!id)
|
|
9
|
+
throw new CodebusError("expected an AAD object id");
|
|
10
|
+
const file = loadFileConfig();
|
|
11
|
+
const url = o.url ?? process.env.CODEBUS_URL ?? file.url;
|
|
12
|
+
const token = o.token ?? process.env.CODEBUS_TOKEN ?? file.token;
|
|
13
|
+
if (!url || !token)
|
|
14
|
+
throw new CodebusError("not logged in (codebus login first)");
|
|
15
|
+
const sb = createClient(url, token, { auth: { persistSession: false, autoRefreshToken: false } });
|
|
16
|
+
const { data, error } = await sb.rpc("teams_identity_link", { p_aad_object_id: id });
|
|
17
|
+
if (error)
|
|
18
|
+
throw new CodebusError(`teams link failed: ${error.message}`);
|
|
19
|
+
if (o.json)
|
|
20
|
+
console.log(JSON.stringify({ person_id: data, aad_object_id: id }));
|
|
21
|
+
else
|
|
22
|
+
console.log(`Linked Teams account ${id} to your CodeBus person.`);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=teams-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-link.js","sourceRoot":"","sources":["../../src/commands/teams-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAa,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;qEACqE;AACrE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,CAAiC;IACvF,MAAM,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC;IACjE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,YAAY,CAAC,qCAAqC,CAAC,CAAC;IAClF,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAClG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,KAAK;QAAE,MAAM,IAAI,YAAY,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;QAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;AACzE,CAAC"}
|