@jujulego/jill 3.0.0-alpha.1 → 3.0.0-alpha.11
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/README.md +1 -2
- package/bin/jill.js +1 -0
- package/dist/flat-job-plan.js +71 -0
- package/dist/flat-job-plan.js.map +1 -0
- package/dist/flat-job-tree.js +82 -0
- package/dist/flat-job-tree.js.map +1 -0
- package/dist/inked.js +66 -0
- package/dist/inked.js.map +1 -0
- package/dist/instrument.js +9 -0
- package/dist/instrument.js.map +1 -0
- package/dist/job-command-execute.ink.js +530 -0
- package/dist/job-command-execute.ink.js.map +1 -0
- package/dist/job-plan.js +67 -0
- package/dist/job-plan.js.map +1 -0
- package/dist/job-plan.json.js +59 -0
- package/dist/job-plan.json.js.map +1 -0
- package/dist/list.ink.js +54 -0
- package/dist/list.ink.js.map +1 -0
- package/dist/main.js +1941 -38
- package/dist/main.js.map +1 -1
- package/dist/planner.service.js +93 -0
- package/dist/planner.service.js.map +1 -0
- package/dist/tree.ink.js +189 -0
- package/dist/tree.ink.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +49 -48
- package/dist/ajv.config.d.ts +0 -3
- package/dist/commands/each.d.ts +0 -25
- package/dist/commands/exec.d.ts +0 -26
- package/dist/commands/group.d.ts +0 -16
- package/dist/commands/list.d.ts +0 -30
- package/dist/commands/run.d.ts +0 -24
- package/dist/commands/tree.d.ts +0 -6
- package/dist/commons/context.service.d.ts +0 -23
- package/dist/commons/git.service.d.ts +0 -62
- package/dist/commons/logger/log.gateway.d.ts +0 -18
- package/dist/commons/logger/parameters.d.ts +0 -2
- package/dist/commons/logger/thread.gateway.d.ts +0 -12
- package/dist/commons/logger/types.d.ts +0 -2
- package/dist/commons/logger.service.d.ts +0 -1
- package/dist/config/config-loader.d.ts +0 -4
- package/dist/config/config-options.d.ts +0 -5
- package/dist/config/types.d.ts +0 -8
- package/dist/config/utils.d.ts +0 -5
- package/dist/constants.d.ts +0 -1
- package/dist/core.plugin-CxgfxFUI.js +0 -642
- package/dist/core.plugin-CxgfxFUI.js.map +0 -1
- package/dist/core.plugin.d.ts +0 -2
- package/dist/filters/affected.filter.d.ts +0 -12
- package/dist/filters/pipeline.d.ts +0 -11
- package/dist/filters/private.filter.d.ts +0 -7
- package/dist/filters/scripts.filter.d.ts +0 -8
- package/dist/index.d.ts +0 -45
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/ink-command-CsbkuRbm.js +0 -2071
- package/dist/ink-command-CsbkuRbm.js.map +0 -1
- package/dist/ink.config.d.ts +0 -3
- package/dist/inversify.config.d.ts +0 -4
- package/dist/jill.application-DNJpmnCF.js +0 -637
- package/dist/jill.application-DNJpmnCF.js.map +0 -1
- package/dist/jill.application.d.ts +0 -19
- package/dist/main.d.ts +0 -1
- package/dist/middlewares/load-project.d.ts +0 -21
- package/dist/middlewares/load-workspace.d.ts +0 -20
- package/dist/modules/command.d.ts +0 -20
- package/dist/modules/ink-command.d.ts +0 -11
- package/dist/modules/middleware.d.ts +0 -8
- package/dist/modules/module.d.ts +0 -7
- package/dist/modules/plugin-loader.service.d.ts +0 -10
- package/dist/modules/plugin.d.ts +0 -14
- package/dist/modules/service.d.ts +0 -8
- package/dist/modules/task-command.d.ts +0 -14
- package/dist/project/project.d.ts +0 -27
- package/dist/project/project.repository.d.ts +0 -15
- package/dist/project/types.d.ts +0 -1
- package/dist/project/workspace.d.ts +0 -41
- package/dist/tasks/command-task.d.ts +0 -15
- package/dist/tasks/errors.d.ts +0 -4
- package/dist/tasks/script-task.d.ts +0 -27
- package/dist/tasks/task-expression.service.d.ts +0 -25
- package/dist/tasks/task-manager.config.d.ts +0 -3
- package/dist/types.d.ts +0 -11
- package/dist/ui/hooks/useFlatTaskTree.d.ts +0 -14
- package/dist/ui/hooks/useIsVerbose.d.ts +0 -1
- package/dist/ui/hooks/useStdoutDimensions.d.ts +0 -4
- package/dist/ui/layout.d.ts +0 -5
- package/dist/ui/list.d.ts +0 -5
- package/dist/ui/static-logs.d.ts +0 -1
- package/dist/ui/task-name.d.ts +0 -5
- package/dist/ui/task-spinner.d.ts +0 -5
- package/dist/ui/task-tree-completed.d.ts +0 -5
- package/dist/ui/task-tree-full-spinner.d.ts +0 -5
- package/dist/ui/task-tree-scrollable-spinner.d.ts +0 -5
- package/dist/ui/task-tree-spinner.d.ts +0 -5
- package/dist/ui/task-tree-stats.d.ts +0 -5
- package/dist/ui/workspace-tree.d.ts +0 -8
- package/dist/utils/events.d.ts +0 -3
- package/dist/utils/exit.d.ts +0 -4
- package/dist/utils/import.d.ts +0 -4
- package/dist/utils/json.d.ts +0 -1
- package/dist/utils/streams.d.ts +0 -3
- package/dist/utils/string.d.ts +0 -2
- package/dist/utils/worker-cache.d.ts +0 -3
- package/dist/workspace-tree-VWKE0B6b.js +0 -1120
- package/dist/workspace-tree-VWKE0B6b.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
[](https://www.npmjs.com/package/@jujulego/jill)
|
|
3
3
|

|
|
4
4
|

|
|
5
|
-
[](https://sonarcloud.io/dashboard?id=jujulego_jill)
|
|
5
|
+
[](https://codecov.io/gh/Jujulego/jill)
|
|
7
6
|
|
|
8
7
|
Zero-config monorepo cli
|
|
9
8
|
|
package/bin/jill.js
CHANGED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
;{try{(function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f9001ccb-03f6-4378-93af-96d0c7a3aa2e",e._sentryDebugIdIdentifier="sentry-dbid-f9001ccb-03f6-4378-93af-96d0c7a3aa2e");})();}catch(e){}};!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"3.0.0-alpha.11"};}catch(e){}}();import { f as flatJobTree, a as isJob } from './flat-job-tree.js';
|
|
2
|
+
|
|
3
|
+
function flatJobPlan(job) {
|
|
4
|
+
const tree = flatJobTree(job, true);
|
|
5
|
+
const index = new Map(tree.map((item, idx)=>[
|
|
6
|
+
item.workload.id,
|
|
7
|
+
idx + 1
|
|
8
|
+
]));
|
|
9
|
+
const plan = [];
|
|
10
|
+
let branch = '';
|
|
11
|
+
for(let i = 0; i < tree.length; i++){
|
|
12
|
+
const item = tree[i];
|
|
13
|
+
// Check if branch continues
|
|
14
|
+
let branchContinue = false;
|
|
15
|
+
for(let j = i + 1; j < tree.length; j++){
|
|
16
|
+
if (tree[j].level <= item.level) {
|
|
17
|
+
if (tree[j].level === item.level) {
|
|
18
|
+
branchContinue = true;
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Compute dependencies
|
|
24
|
+
const dependsOn = [];
|
|
25
|
+
if (isJob(item.workload)) {
|
|
26
|
+
for (const dep of item.workload.dependencies()){
|
|
27
|
+
const idx = index.get(dep.id);
|
|
28
|
+
if (idx) {
|
|
29
|
+
dependsOn.push(idx);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Update branch
|
|
34
|
+
if (branch.length / 3 > item.level) {
|
|
35
|
+
branch = branch.slice(0, branch.length - 3);
|
|
36
|
+
}
|
|
37
|
+
if (item.level > 0 && branch.length / 3 === item.level) {
|
|
38
|
+
branch = branch.slice(0, branch.length - 3);
|
|
39
|
+
}
|
|
40
|
+
if (branch.length / 3 < item.level) {
|
|
41
|
+
if (branchContinue) {
|
|
42
|
+
plan.push({
|
|
43
|
+
...item,
|
|
44
|
+
id: i + 1,
|
|
45
|
+
branch: branch + '├─ ',
|
|
46
|
+
dependsOn
|
|
47
|
+
});
|
|
48
|
+
branch += '│ ';
|
|
49
|
+
} else {
|
|
50
|
+
plan.push({
|
|
51
|
+
...item,
|
|
52
|
+
id: i + 1,
|
|
53
|
+
branch: branch + '└─ ',
|
|
54
|
+
dependsOn
|
|
55
|
+
});
|
|
56
|
+
branch += ' ';
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
plan.push({
|
|
60
|
+
...item,
|
|
61
|
+
id: i + 1,
|
|
62
|
+
branch,
|
|
63
|
+
dependsOn
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return plan;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { flatJobPlan as f };
|
|
71
|
+
//# sourceMappingURL=flat-job-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-job-plan.js","sources":["../src/trees/flat-job-plan.ts"],"sourcesContent":["import type { Workload$ } from '@kyrielle/workload';\nimport { isJob } from '../utils/predicates.js';\nimport { flatJobTree, type FlatJobTreeItem } from './flat-job-tree.js';\n\nexport function flatJobPlan(job: Workload$): FlatJobPlanItem[] {\n const tree = flatJobTree(job, true);\n\n const index = new Map(tree.map((item, idx) => [item.workload.id, idx + 1]));\n const plan: FlatJobPlanItem[] = [];\n let branch = '';\n\n for (let i = 0; i < tree.length; i++) {\n const item = tree[i];\n\n // Check if branch continues\n let branchContinue = false;\n\n for (let j = i + 1; j < tree.length; j++) {\n if (tree[j].level <= item.level) {\n if (tree[j].level === item.level) {\n branchContinue = true;\n }\n\n break;\n }\n }\n\n // Compute dependencies\n const dependsOn: number[] = [];\n\n if (isJob(item.workload)) {\n for (const dep of item.workload.dependencies()) {\n const idx = index.get(dep.id);\n\n if (idx) {\n dependsOn.push(idx);\n }\n }\n }\n\n // Update branch\n if (branch.length / 3 > item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (item.level > 0 && branch.length / 3 === item.level) {\n branch = branch.slice(0, branch.length - 3);\n }\n\n if (branch.length / 3 < item.level) {\n if (branchContinue) {\n plan.push({ ...item, id: i + 1, branch: branch + '├─ ', dependsOn });\n branch += '│ ';\n } else {\n plan.push({ ...item, id: i + 1, branch: branch + '└─ ', dependsOn });\n branch += ' ';\n }\n } else {\n plan.push({ ...item, id: i + 1, branch, dependsOn });\n }\n }\n\n return plan;\n}\n\n// Types\ninterface FlatJobPlanItem extends FlatJobTreeItem {\n readonly id: number;\n readonly branch: string;\n readonly dependsOn: number[];\n}\n"],"names":["flatJobPlan","job","tree","flatJobTree","index","Map","map","item","idx","workload","id","plan","branch","i","length","branchContinue","j","level","dependsOn","isJob","dep","dependencies","get","push","slice"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
;{try{(function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9c037c48-b288-47bf-8636-3d2952064238",e._sentryDebugIdIdentifier="sentry-dbid-9c037c48-b288-47bf-8636-3d2952064238");})();}catch(e){}};!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"3.0.0-alpha.11"};}catch(e){}}();import { WorkloadState } from '@kyrielle/workload';
|
|
2
|
+
import { pipe$, map$, collect$ } from 'kyrielle';
|
|
3
|
+
|
|
4
|
+
function isScriptWorkflow(workload) {
|
|
5
|
+
return workload.type === 'script';
|
|
6
|
+
}
|
|
7
|
+
function isJob(workload) {
|
|
8
|
+
return 'dependencies' in workload && typeof workload.dependencies === 'function';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function flatJobTree(workload, verbose = false) {
|
|
12
|
+
const tree = [];
|
|
13
|
+
const stack = pipe$(listRoots(workload), map$((workload)=>({
|
|
14
|
+
workload,
|
|
15
|
+
level: 0
|
|
16
|
+
})), collect$());
|
|
17
|
+
while(stack.length > 0){
|
|
18
|
+
const item = stack.pop();
|
|
19
|
+
const mustShow = [
|
|
20
|
+
WorkloadState.Starting,
|
|
21
|
+
WorkloadState.Running,
|
|
22
|
+
WorkloadState.Failed
|
|
23
|
+
].includes(item.workload.state());
|
|
24
|
+
if (!verbose && !isWorkflow(item.workload) && !mustShow && item.level > 0) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
// Add to tree
|
|
28
|
+
let level = item.level;
|
|
29
|
+
if (item.workload.label !== '[hidden]') {
|
|
30
|
+
tree.push(item);
|
|
31
|
+
level++;
|
|
32
|
+
}
|
|
33
|
+
// Load "member" tasks
|
|
34
|
+
if (isWorkflow(item.workload)) {
|
|
35
|
+
const children = [
|
|
36
|
+
...item.workload.workloads()
|
|
37
|
+
].reverse();
|
|
38
|
+
for (const workload of children){
|
|
39
|
+
stack.push({
|
|
40
|
+
workload,
|
|
41
|
+
parent: item.workload,
|
|
42
|
+
level
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return tree;
|
|
48
|
+
}
|
|
49
|
+
function* listRoots(workload) {
|
|
50
|
+
const marks = new Set();
|
|
51
|
+
const queue = [
|
|
52
|
+
workload
|
|
53
|
+
];
|
|
54
|
+
while(queue.length){
|
|
55
|
+
const item = queue.shift();
|
|
56
|
+
// Mark all member of workflows, so they're not added as root
|
|
57
|
+
if (isWorkflow(item)) {
|
|
58
|
+
for (const wkl of item.workloads()){
|
|
59
|
+
marks.add(wkl.id);
|
|
60
|
+
queue.unshift(wkl);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Load job dependencies
|
|
64
|
+
if (isJob(item)) {
|
|
65
|
+
for (const dep of item.dependencies()){
|
|
66
|
+
queue.push(dep);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Ignore marked workloads
|
|
70
|
+
if (marks.has(item.id)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
yield item;
|
|
74
|
+
marks.add(item.id);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function isWorkflow(workload) {
|
|
78
|
+
return 'workloads' in workload && typeof workload.workloads === 'function';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { isJob as a, flatJobTree as f, isScriptWorkflow as i };
|
|
82
|
+
//# sourceMappingURL=flat-job-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-job-tree.js","sources":["../src/utils/predicates.ts","../src/trees/flat-job-tree.ts"],"sourcesContent":["import type { Job$, Workload$ } from '@kyrielle/workload';\nimport type { ScriptWorkflow$ } from '../jobs/run-script$.js';\n\nexport function isScriptWorkflow(workload: Workload$): workload is ScriptWorkflow$ {\n return workload.type === 'script';\n}\n\nexport function isJob(workload: Workload$): workload is Job$ {\n return 'dependencies' in workload && typeof workload.dependencies === 'function';\n}\n","import { type Workflow$, type Workload$, WorkloadState } from '@kyrielle/workload';\nimport { collect$, map$, pipe$ } from 'kyrielle';\nimport { isJob } from '../utils/predicates.js';\n\nexport function flatJobTree(workload: Workload$, verbose = false) {\n const tree: FlatJobTreeItem[] = [];\n const stack: FlatJobTreeItem[] = pipe$(\n listRoots(workload),\n map$((workload) => ({ workload, level: 0 })),\n collect$(),\n );\n\n while (stack.length > 0) {\n const item = stack.pop()!;\n const mustShow = [WorkloadState.Starting, WorkloadState.Running, WorkloadState.Failed].includes(item.workload.state());\n\n if (!verbose && !isWorkflow(item.workload) && !mustShow && item.level > 0) {\n continue;\n }\n\n // Add to tree\n let level = item.level;\n\n if (item.workload.label !== '[hidden]') {\n tree.push(item);\n level++;\n }\n\n // Load \"member\" tasks\n if (isWorkflow(item.workload)) {\n const children = [...item.workload.workloads()].reverse();\n\n for (const workload of children) {\n stack.push({ workload, parent: item.workload, level });\n }\n }\n }\n\n return tree;\n}\n\nfunction* listRoots(workload: Workload$) {\n const marks = new Set<string>();\n const queue = [workload];\n\n while (queue.length) {\n const item = queue.shift()!;\n\n // Mark all member of workflows, so they're not added as root\n if (isWorkflow(item)) {\n for (const wkl of item.workloads()) {\n marks.add(wkl.id);\n queue.unshift(wkl);\n }\n }\n\n // Load job dependencies\n if (isJob(item)) {\n for (const dep of item.dependencies()) {\n queue.push(dep);\n }\n }\n\n // Ignore marked workloads\n if (marks.has(item.id)) {\n continue;\n }\n\n yield item;\n marks.add(item.id);\n }\n}\n\nfunction isWorkflow(workload: Workload$): workload is Workflow$ {\n return 'workloads' in workload && typeof workload.workloads === 'function';\n}\n\n// Types\nexport interface FlatJobTreeItem {\n readonly level: number;\n readonly parent?: Workflow$;\n readonly workload: Workload$;\n}\n"],"names":["isScriptWorkflow","workload","type","isJob","dependencies","flatJobTree","verbose","tree","stack","pipe$","listRoots","map$","level","collect$","length","item","pop","mustShow","WorkloadState","Starting","Running","Failed","includes","state","isWorkflow","label","push","children","workloads","reverse","parent","marks","Set","queue","shift","wkl","add","id","unshift","dep","has"],"mappings":"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"}
|
package/dist/inked.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
;{try{(function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9e22c133-113f-4a04-a239-f8bc9b7012ad",e._sentryDebugIdIdentifier="sentry-dbid-9e22c133-113f-4a04-a239-f8bc9b7012ad");})();}catch(e){}};!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"3.0.0-alpha.11"};}catch(e){}}();import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { startSpan } from '@sentry/node';
|
|
3
|
+
import { useStderr, render } from 'ink';
|
|
4
|
+
import { inject$ } from '@kyrielle/injector';
|
|
5
|
+
import { LogGateway } from '@kyrielle/logger';
|
|
6
|
+
import { observer$ } from 'kyrielle';
|
|
7
|
+
import { useLayoutEffect } from 'react';
|
|
8
|
+
import { l as logFormat } from './main.js';
|
|
9
|
+
|
|
10
|
+
// Component
|
|
11
|
+
function StaticLogs() {
|
|
12
|
+
const stderr = useStderr();
|
|
13
|
+
useLayoutEffect(()=>{
|
|
14
|
+
const gateway = inject$(LogGateway);
|
|
15
|
+
const toConsole = gateway.disconnect('console');
|
|
16
|
+
gateway.connect('ink', observer$({
|
|
17
|
+
next: (log)=>stderr.write(logFormat(log) + '\n')
|
|
18
|
+
}));
|
|
19
|
+
return ()=>{
|
|
20
|
+
gateway.disconnect('ink');
|
|
21
|
+
gateway.connect('console', toConsole);
|
|
22
|
+
};
|
|
23
|
+
}, [
|
|
24
|
+
stderr
|
|
25
|
+
]);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Renders each yielded element using ink
|
|
31
|
+
*/ function inked(stepper) {
|
|
32
|
+
return (props)=>startSpan({
|
|
33
|
+
name: 'inked',
|
|
34
|
+
op: 'ui.ink'
|
|
35
|
+
}, async ()=>{
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const app = render(/*#__PURE__*/ jsx(StaticLogs, {}), {
|
|
38
|
+
exitOnCtrlC: true
|
|
39
|
+
});
|
|
40
|
+
void app.waitUntilExit().then(()=>{
|
|
41
|
+
controller.abort();
|
|
42
|
+
});
|
|
43
|
+
try {
|
|
44
|
+
const generator = stepper(props, {
|
|
45
|
+
app,
|
|
46
|
+
controller
|
|
47
|
+
});
|
|
48
|
+
let result = await generator.next();
|
|
49
|
+
while(!result.done){
|
|
50
|
+
app.rerender(/*#__PURE__*/ jsxs(Fragment, {
|
|
51
|
+
children: [
|
|
52
|
+
/*#__PURE__*/ jsx(StaticLogs, {}),
|
|
53
|
+
result.value
|
|
54
|
+
]
|
|
55
|
+
}));
|
|
56
|
+
result = await generator.next();
|
|
57
|
+
}
|
|
58
|
+
return result.value;
|
|
59
|
+
} finally{
|
|
60
|
+
app.unmount();
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { inked as i };
|
|
66
|
+
//# sourceMappingURL=inked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inked.js","sources":["../src/components/StaticLogs.tsx","../src/wrappers/inked.tsx"],"sourcesContent":["import { inject$ } from '@kyrielle/injector';\nimport { LogGateway, type WithDelay } from '@kyrielle/logger';\nimport { useStderr } from 'ink';\nimport { observer$ } from 'kyrielle';\nimport { useLayoutEffect } from 'react';\nimport { logFormat } from '../utils/logger.js';\n\n// Component\nexport function StaticLogs() {\n const stderr = useStderr();\n\n useLayoutEffect(() => {\n const gateway: LogGateway<WithDelay> = inject$(LogGateway);\n const toConsole = gateway.disconnect('console')!;\n\n gateway.connect('ink', observer$({\n next: (log) => stderr.write(logFormat(log) + '\\n')\n }));\n\n return () => {\n gateway.disconnect('ink');\n gateway.connect('console', toConsole);\n };\n }, [stderr]);\n\n return null;\n}\n\n","import { startSpan } from '@sentry/node';\nimport { type Instance, render } from 'ink';\nimport type { ReactNode } from 'react';\nimport { StaticLogs } from '../components/StaticLogs.jsx';\n\n/**\n * Renders each yielded element using ink\n */\nexport function inked<P, R>(stepper: InkedStepper<P, R>): InkedComponent<P, R> {\n return (props: P): Promise<R> => startSpan({ name: 'inked', op: 'ui.ink' }, async () => {\n const controller = new AbortController();\n\n const app = render(<StaticLogs />, { exitOnCtrlC: true });\n void app.waitUntilExit().then(() => {\n controller.abort();\n });\n\n try {\n const generator = stepper(props, { app, controller });\n let result = await generator.next();\n\n while (!result.done) {\n app.rerender(\n <>\n <StaticLogs />\n { result.value }\n </>\n );\n\n result = await generator.next();\n }\n\n return result.value;\n } finally {\n app.unmount();\n }\n });\n}\n\n// Types\nexport interface InkedContext {\n readonly app: Instance;\n readonly controller: AbortController;\n}\n\nexport type InkedStepper<P, R> = (props: P, context: InkedContext) => AsyncGenerator<ReactNode, R> | Generator<ReactNode, R>;\nexport type InkedComponent<P, R> = (props: P) => Promise<R>;\n"],"names":["StaticLogs","stderr","useStderr","useLayoutEffect","gateway","inject$","LogGateway","toConsole","disconnect","connect","observer$","next","log","write","logFormat","inked","stepper","props","startSpan","name","op","controller","AbortController","app","render","_jsx","exitOnCtrlC","waitUntilExit","then","abort","generator","result","done","rerender","_jsxs","_Fragment","value","unmount"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
;{try{(function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fcf54169-7246-46e3-a2ca-d6fd6e52364c",e._sentryDebugIdIdentifier="sentry-dbid-fcf54169-7246-46e3-a2ca-d6fd6e52364c");})();}catch(e){}};!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"3.0.0-alpha.11"};}catch(e){}}();import { init } from '@sentry/node';
|
|
2
|
+
|
|
3
|
+
init({
|
|
4
|
+
dsn: 'https://53e6d10c16975ebd025175d9836d039b@o4508229080055808.ingest.de.sentry.io/4509876546895952',
|
|
5
|
+
sendDefaultPii: false,
|
|
6
|
+
tracesSampleRate: 1.0,
|
|
7
|
+
enabled: process.env.DISABLE_TRACING !== 'true'
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=instrument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrument.js","sources":["../src/instrument.ts"],"sourcesContent":["import { init } from '@sentry/node';\n\ninit({\n dsn: 'https://53e6d10c16975ebd025175d9836d039b@o4508229080055808.ingest.de.sentry.io/4509876546895952',\n sendDefaultPii: false,\n tracesSampleRate: 1.0,\n enabled: process.env.DISABLE_TRACING !== 'true',\n});\n"],"names":["init","dsn","sendDefaultPii","tracesSampleRate","enabled","process","env","DISABLE_TRACING"],"mappings":";;AAEAA,IAAAA,CAAK,CAAA;IACHC,GAAAA,EAAK,CAAA,KAAA,CAAA,CAAA,CAAA,gCAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA;IACLC,cAAAA,EAAgB,KAAA,CAAA;IAChBC,gBAAAA,EAAkB,CAAA,CAAA,CAAA,CAAA;AAClBC,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAASC,OAAAA,CAAQC,GAAG,CAACC,eAAe,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,IAAA,CAAA;AAC3C,CAAA,CAAA"}
|