@orchestraworks/cli 0.3.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.
Files changed (47) hide show
  1. package/README.md +23 -1256
  2. package/dist/cli/core/banner.d.ts +10 -0
  3. package/dist/cli/core/banner.js +63 -0
  4. package/dist/cli/core/invocation.js +1 -1
  5. package/dist/cli/core/package-root.d.ts +3 -2
  6. package/dist/cli/core/package-root.js +4 -4
  7. package/dist/cli/core/skill-pointer.d.ts +7 -2
  8. package/dist/cli/core/skill-pointer.js +13 -3
  9. package/dist/cli/factory/init.d.ts +1 -1
  10. package/dist/cli/factory/init.js +41 -13
  11. package/dist/cli/main.js +5 -3
  12. package/dist/cli/skill-install-fs.d.ts +0 -2
  13. package/dist/cli/skill-install-fs.js +0 -2
  14. package/dist/cli/skill.js +20 -7
  15. package/docs/REFERENCE.md +1278 -0
  16. package/node_modules/@orchestraworks/client/package.json +1 -1
  17. package/package.json +7 -8
  18. package/skills/orchestra/SKILL.md +151 -110
  19. package/skills/orchestra-fdk/SKILL.md +327 -120
  20. package/skills/orchestra-fdk/references/authoring.md +26 -15
  21. package/skills/orchestra-fdk/references/environment.md +39 -24
  22. package/templates/bug-fix/tsconfig.json +12 -0
  23. package/templates/engineering-team/lib/setup.sh +16 -0
  24. package/templates/engineering-team/package.json +1 -1
  25. package/templates/todo-factory/package.json +1 -1
  26. package/node_modules/@orchestraworks/workflow-render/LICENSE +0 -202
  27. package/node_modules/@orchestraworks/workflow-render/dist/constants.d.ts +0 -98
  28. package/node_modules/@orchestraworks/workflow-render/dist/context.d.ts +0 -37
  29. package/node_modules/@orchestraworks/workflow-render/dist/geometry-core.d.ts +0 -40
  30. package/node_modules/@orchestraworks/workflow-render/dist/graph-digest.d.ts +0 -4
  31. package/node_modules/@orchestraworks/workflow-render/dist/grid.d.ts +0 -33
  32. package/node_modules/@orchestraworks/workflow-render/dist/heuristic.d.ts +0 -7
  33. package/node_modules/@orchestraworks/workflow-render/dist/identity.d.ts +0 -9
  34. package/node_modules/@orchestraworks/workflow-render/dist/index.d.ts +0 -24
  35. package/node_modules/@orchestraworks/workflow-render/dist/index.js +0 -1
  36. package/node_modules/@orchestraworks/workflow-render/dist/layout.d.ts +0 -6
  37. package/node_modules/@orchestraworks/workflow-render/dist/normalize.d.ts +0 -33
  38. package/node_modules/@orchestraworks/workflow-render/dist/place.d.ts +0 -81
  39. package/node_modules/@orchestraworks/workflow-render/dist/ports.d.ts +0 -15
  40. package/node_modules/@orchestraworks/workflow-render/dist/presence.d.ts +0 -6
  41. package/node_modules/@orchestraworks/workflow-render/dist/route-cells.d.ts +0 -15
  42. package/node_modules/@orchestraworks/workflow-render/dist/sha256.d.ts +0 -3
  43. package/node_modules/@orchestraworks/workflow-render/dist/svg.d.ts +0 -7
  44. package/node_modules/@orchestraworks/workflow-render/dist/text.d.ts +0 -14
  45. package/node_modules/@orchestraworks/workflow-render/dist/types.d.ts +0 -310
  46. package/node_modules/@orchestraworks/workflow-render/dist/verify.d.ts +0 -26
  47. package/node_modules/@orchestraworks/workflow-render/package.json +0 -42
@@ -1,6 +0,0 @@
1
- import type { ComputeLayoutOptions, ComputeLayoutResult, LayoutTier, RenderContext, WorkflowGraph, WorkflowLayout, WorkflowLayouts } from "./types.js";
2
- export declare function resolveTier(layouts: WorkflowLayouts | null | undefined): {
3
- tier: LayoutTier;
4
- layout: WorkflowLayout;
5
- };
6
- export declare function computeLayout(graph: WorkflowGraph, layouts?: WorkflowLayouts | null, context?: RenderContext | null, options?: ComputeLayoutOptions | null): ComputeLayoutResult;
@@ -1,33 +0,0 @@
1
- import type { EdgeIdentity, NormalizedNodeKind, WorkflowEdgeListInput, WorkflowGraph, WorkflowGuard, WorkflowJoinPolicy } from "./types.js";
2
- export interface NormalizedNode {
3
- id: string;
4
- label: string;
5
- kind: NormalizedNodeKind;
6
- isAgent: boolean;
7
- isDecision: boolean;
8
- guards: WorkflowGuard[];
9
- joinPolicy: WorkflowJoinPolicy | null;
10
- timeoutSeconds: number | null;
11
- }
12
- export interface NormalizedEdge {
13
- id: string;
14
- source: string;
15
- target: string;
16
- verb: string;
17
- handler: boolean;
18
- identity: EdgeIdentity;
19
- }
20
- export interface NormalizedGraph {
21
- nodes: NormalizedNode[];
22
- edges: NormalizedEdge[];
23
- startIds: string[];
24
- warnings: string[];
25
- }
26
- interface FlatTransition {
27
- verb: string;
28
- target: string;
29
- index: number;
30
- }
31
- export declare function flattenTransitions(raw: Record<string, WorkflowEdgeListInput> | null | undefined): FlatTransition[];
32
- export declare function normalize(graph: WorkflowGraph): NormalizedGraph;
33
- export {};
@@ -1,81 +0,0 @@
1
- import type { Cell } from "./grid.js";
2
- import type { NormalizedEdge, NormalizedGraph } from "./normalize.js";
3
- import type { ComputeLayoutOptions, GeometryBarCaption, GeometryEntryElement, GeometryEntryLine, GeometryNode, NodeShape, RenderContext, RenderTrigger, WorkflowGraph } from "./types.js";
4
- export declare function isClaimedEdge(edge: NormalizedEdge): boolean;
5
- export interface StackedSeat {
6
- ancestor: string | null;
7
- column: number;
8
- rank: number;
9
- }
10
- export interface ForkSeat {
11
- fork: string;
12
- column: number;
13
- branch: number;
14
- rank: number;
15
- }
16
- export interface PlacementPlan {
17
- claimed: NormalizedEdge[];
18
- row: string[];
19
- rowIndex: Map<string, number>;
20
- stacked: Map<string, StackedSeat>;
21
- forkBranches: Map<string, ForkSeat>;
22
- ends: string[];
23
- suppressedEnds: string[];
24
- warnings: string[];
25
- }
26
- export declare function derivePlan(norm: NormalizedGraph, options?: ComputeLayoutOptions | null): PlacementPlan;
27
- export declare function shapeOf(kind: string): NodeShape;
28
- export interface NodeSize {
29
- shape: NodeShape;
30
- connect: number;
31
- lines: string[];
32
- width: number;
33
- height: number;
34
- }
35
- export declare function sizeNode(n: {
36
- label: string;
37
- kind: string;
38
- joinPolicy: string | null;
39
- }): NodeSize;
40
- export interface EntryElementSize {
41
- shape: "dot" | "tag" | "card";
42
- mode: "start" | "steer";
43
- glyph: "event" | "schedule" | "manual" | null;
44
- muted: boolean;
45
- lines: GeometryEntryLine[];
46
- caption: string | null;
47
- width: number;
48
- height: number;
49
- r: number | null;
50
- capW: number;
51
- }
52
- export declare function entryDotSize(): EntryElementSize;
53
- export declare function entryCardSize(t: RenderTrigger): EntryElementSize;
54
- export interface EntrySeat {
55
- size: EntryElementSize;
56
- targets: string[];
57
- steer: boolean;
58
- trigger: RenderTrigger | null;
59
- }
60
- export declare function entrySeats(entryTargets: readonly string[], triggers: readonly RenderTrigger[] | null): EntrySeat[];
61
- export interface DerivedPlacement {
62
- cells: Record<string, Cell>;
63
- tags: Record<string, Cell>;
64
- entries: PlacedEntry[];
65
- warnings: string[];
66
- }
67
- export interface PlacedEntry {
68
- id: string;
69
- seat: EntrySeat;
70
- }
71
- export type DrawnBoxes = ReadonlyMap<string, {
72
- shape: NodeShape;
73
- width: number;
74
- belowExtra?: number;
75
- noteW?: number;
76
- }>;
77
- export declare function sizedBoxes(norm: NormalizedGraph, plan: PlacementPlan): Map<string, NodeSize>;
78
- export declare function placeCells(norm: NormalizedGraph, plan: PlacementPlan, drawn: DrawnBoxes, context?: RenderContext | null, authored?: Record<string, Partial<Cell>> | null): DerivedPlacement;
79
- export declare function placeDerived(graph: WorkflowGraph, context?: RenderContext | null, authored?: Record<string, Partial<Cell>> | null): DerivedPlacement;
80
- export declare function barCaptionOf(n: GeometryNode, all: readonly GeometryNode[]): GeometryBarCaption;
81
- export declare function seatBoxes(nodes: Map<string, GeometryNode>, entries: readonly GeometryEntryElement[], cells: Record<string, Cell>, tags: Record<string, Cell>): void;
@@ -1,15 +0,0 @@
1
- import type { Side } from "./geometry-core.js";
2
- import type { Cell } from "./grid.js";
3
- import type { Point, PortableShape } from "./types.js";
4
- export declare const slidesInColumns: (face: Side) => boolean;
5
- export interface Port {
6
- face: Side;
7
- index: number;
8
- column: number;
9
- row: number;
10
- point: Point;
11
- along: number;
12
- }
13
- export declare function admissibleCells(shape: PortableShape, cell: Cell, face: Side): number[];
14
- export declare function portAt(shape: PortableShape, cell: Cell, face: Side, index: number, leaving: boolean): Port;
15
- export declare function spreadClaims(cellCount: number, ideals: (number | null)[], pinned?: boolean[]): number[];
@@ -1,6 +0,0 @@
1
- import type { WorkflowGraph, WorkflowLayout } from "./types.js";
2
- export declare const SYNTHETIC_START_NODE_ID = "__start__";
3
- export declare function addressableNodeIds(graph: WorkflowGraph | null | undefined): Set<string>;
4
- export declare function layoutNodeReferences(layout: WorkflowLayout | null | undefined): string[];
5
- export declare function isCanonicallyEmptyLayout(layout: WorkflowLayout | null | undefined): boolean;
6
- export declare function hasEffectiveLayout(layout: WorkflowLayout | null | undefined, graph: WorkflowGraph | null | undefined): boolean;
@@ -1,15 +0,0 @@
1
- import type { Cell } from "./grid.js";
2
- import type { GeometryGateMark, GeometryLabel, GeometryNode, GeometryPort, GeometryRoute, RouteStat, WorkflowGeometry } from "./types.js";
3
- export interface RouteCellsResult {
4
- routes: GeometryRoute[];
5
- labels: GeometryLabel[];
6
- ports: GeometryPort[];
7
- gateMarks: GeometryGateMark[];
8
- accounting: Record<string, {
9
- how: string;
10
- len: number | null;
11
- }[]>;
12
- routeStats: RouteStat[];
13
- deepened: Record<string, Cell>;
14
- }
15
- export declare function routeCells(geometry: WorkflowGeometry, cells: Record<string, Cell>, tags: Record<string, Cell>, nodes: Map<string, GeometryNode>): RouteCellsResult;
@@ -1,3 +0,0 @@
1
- export declare function sha256HexOfBytes(bytes: Uint8Array): string;
2
- export declare function sha256HexOfUtf8(text: string): string;
3
- export declare function sha256Of(value: string): string;
@@ -1,7 +0,0 @@
1
- import type { Point, WorkflowGeometry } from "./types.js";
2
- export interface SvgOptions {
3
- idPrefix?: string;
4
- }
5
- export declare function escapeXml(value: unknown): string;
6
- export declare function orthoPath(pts: readonly Point[], radius?: number): string;
7
- export declare function geometryToSvg(geometry: WorkflowGeometry, options?: SvgOptions): string;
@@ -1,14 +0,0 @@
1
- export declare function measure(text: string, fontSize: number): number;
2
- export declare function ellipsize(text: string, maxWidth: number, fontSize: number): string;
3
- export declare function wrapLabel(text: string, maxWidth: number, fontSize: number, maxLines: number): string[];
4
- export declare function fmtDuration(seconds: number | null | undefined): string | null;
5
- export declare function rollUp(items: readonly string[], cap: number): string;
6
- export declare function compactList(items: readonly string[], maxW: number, fontSize: number): string | null;
7
- export declare function clamp(v: number, lo: number, hi: number): number;
8
- export declare function avg(xs: readonly number[]): number;
9
- export declare function round2(n: number): number;
10
- export declare function verbTextOf(verb: string): string;
11
- export declare function verbEchoesTarget(rawVerb: string, printedText: string, target: {
12
- id: string;
13
- label: string;
14
- } | null | undefined): boolean;
@@ -1,310 +0,0 @@
1
- import type { Cell } from "./grid.js";
2
- export type WorkflowNodeKind = "fork" | "join";
3
- export type WorkflowJoinPolicy = "all" | "first";
4
- export type WorkflowGuardKind = "allRequiredChecksPassed" | "check" | "approval";
5
- export type WorkflowGuardPlacement = "entry" | "exit";
6
- export type WorkflowEdge = string;
7
- export type WorkflowEdgeInput = WorkflowEdge | {
8
- target?: string | null;
9
- };
10
- export type WorkflowEdgeList = WorkflowEdge | WorkflowEdge[];
11
- export type WorkflowEdgeListInput = WorkflowEdgeInput | WorkflowEdgeInput[] | {
12
- edges?: WorkflowEdgeInput[];
13
- };
14
- export interface WorkflowApprovalPolicy {
15
- connection?: string | null;
16
- destination?: string | null;
17
- responders?: string[];
18
- }
19
- export interface WorkflowGuard {
20
- placement: WorkflowGuardPlacement;
21
- kind: WorkflowGuardKind;
22
- check?: string | null;
23
- checkStatus?: string | null;
24
- policy?: WorkflowApprovalPolicy | null;
25
- }
26
- export interface WorkflowCheck {
27
- name: string;
28
- required: boolean;
29
- }
30
- export interface WorkflowNode {
31
- name?: string | null;
32
- agent?: string | null;
33
- canWait?: boolean;
34
- prompt?: string | null;
35
- maxAttempts?: number | null;
36
- kind?: WorkflowNodeKind | null;
37
- joinPolicy?: WorkflowJoinPolicy | null;
38
- timeoutSeconds?: number | null;
39
- guards?: WorkflowGuard[];
40
- onError?: string | null;
41
- onStall?: string | null;
42
- transitions?: Record<string, WorkflowEdgeListInput>;
43
- }
44
- export interface WorkflowGraph {
45
- start: string | string[];
46
- nodes: Record<string, WorkflowNode>;
47
- ends?: string[];
48
- checks?: WorkflowCheck[];
49
- onError?: string | null;
50
- onStall?: string | null;
51
- approvalPolicy?: WorkflowApprovalPolicy | null;
52
- }
53
- export type WorkflowLayoutAccent = "success" | "danger" | "warning" | "info" | "neutral";
54
- export interface WorkflowLayoutNote {
55
- at: string;
56
- text: string;
57
- }
58
- export interface WorkflowLayoutCell {
59
- column: number;
60
- row: number;
61
- columnSpan?: number;
62
- rowSpan?: number;
63
- }
64
- export interface WorkflowLayout {
65
- cells?: Record<string, WorkflowLayoutCell>;
66
- accents?: Record<string, WorkflowLayoutAccent>;
67
- notes?: WorkflowLayoutNote[];
68
- }
69
- export interface WorkflowLayouts {
70
- authored?: WorkflowLayout | null;
71
- }
72
- export type Point = [number, number];
73
- export type Rect = [number, number, number, number];
74
- export type LayoutTier = "authored" | "derived";
75
- export interface EdgeIdentity {
76
- kind: "transition" | "handler" | "start";
77
- source: string | null;
78
- verb: string;
79
- index: number;
80
- target: string;
81
- }
82
- export type NodeShape = "box" | "pill" | "bar" | "ring";
83
- export type NormalizedNodeKind = "start" | "end" | "fork" | "join" | "node";
84
- export type EdgeRender = "normal" | "entry";
85
- export interface GeometryBarCaption {
86
- x: number;
87
- y: number;
88
- anchor: "middle" | "start";
89
- below: boolean;
90
- }
91
- export interface GeometryGateMark {
92
- id: string;
93
- routeId: string;
94
- placement: "target-side" | "source-side";
95
- x: number;
96
- y: number;
97
- angle: number;
98
- members: EdgeIdentity[];
99
- }
100
- export interface GeometryNode {
101
- id: string;
102
- label: string;
103
- kind: NormalizedNodeKind;
104
- isAgent: boolean;
105
- isDecision: boolean;
106
- guards: WorkflowGuard[];
107
- joinPolicy?: WorkflowJoinPolicy | null;
108
- timeoutSeconds?: number | null;
109
- shape: NodeShape;
110
- connect: number;
111
- lines: string[];
112
- width: number;
113
- height: number;
114
- note: string | null;
115
- noteLines: string[] | null;
116
- accent: WorkflowLayoutAccent | null;
117
- belowExtra: number;
118
- noteW: number;
119
- overhang: number;
120
- cx: number;
121
- cy: number;
122
- x0: number;
123
- y0: number;
124
- x1: number;
125
- y1: number;
126
- attach: Rect;
127
- barRect: Rect | null;
128
- barCaption?: GeometryBarCaption;
129
- }
130
- export interface GeometryEdge {
131
- id: string;
132
- source: string;
133
- target: string;
134
- verb: string;
135
- handler: boolean;
136
- identity: EdgeIdentity;
137
- render: EdgeRender;
138
- spine: boolean;
139
- }
140
- export interface GeometryEntryLine {
141
- text: string;
142
- size: number;
143
- fill: string;
144
- style: "" | "italic";
145
- }
146
- export interface GeometryEntryElement {
147
- id: string;
148
- triggerId?: string;
149
- triggerSlug?: string;
150
- shape: "dot" | "tag" | "card";
151
- mode: "start" | "steer";
152
- glyph: "event" | "schedule" | "manual" | null;
153
- muted: boolean;
154
- lines: GeometryEntryLine[];
155
- caption: string | null;
156
- captionBelow: boolean;
157
- width: number;
158
- height: number;
159
- r: number | null;
160
- x0: number;
161
- y0: number;
162
- x1: number;
163
- y1: number;
164
- cx: number;
165
- cy: number;
166
- attach: Rect;
167
- connect: number;
168
- belowExtra: number;
169
- noteW: number;
170
- block: Rect;
171
- }
172
- export interface PortableShape {
173
- id: string;
174
- shape: NodeShape | "dot" | "tag" | "card";
175
- width: number;
176
- height: number;
177
- cx: number;
178
- cy: number;
179
- x0: number;
180
- y0: number;
181
- x1: number;
182
- y1: number;
183
- attach: Rect;
184
- connect: number;
185
- belowExtra: number;
186
- noteW: number;
187
- r?: number | null;
188
- }
189
- export interface GeometryEntryLink {
190
- from: string;
191
- to: string;
192
- carries: EdgeIdentity[];
193
- steer: boolean;
194
- order: number;
195
- }
196
- export type RouteHow = "entry" | "spine" | "routed" | "rail" | "bus" | "self-loop";
197
- export interface RouteStyle {
198
- stroke: string;
199
- width: number;
200
- dashed: boolean;
201
- marker: "spine" | "norm" | "faint" | "open" | null;
202
- }
203
- export interface GeometryRoute {
204
- id: string;
205
- how: RouteHow;
206
- points: Point[];
207
- arrow: boolean;
208
- style: RouteStyle;
209
- seq: number;
210
- label: string;
211
- ignore: string[];
212
- members: EdgeIdentity[];
213
- memberEdgeIds: string[];
214
- sharedMembers: EdgeIdentity[];
215
- }
216
- export interface GeometryLabel {
217
- role: "edge";
218
- layer: "edge" | "node" | "label";
219
- x: number;
220
- y: number;
221
- text: string;
222
- size: number;
223
- fill: string;
224
- anchor: "start" | "middle" | "end";
225
- style: "" | "italic";
226
- weight: string;
227
- letterSpacing: string;
228
- rect: Rect;
229
- members: EdgeIdentity[];
230
- memberEdgeIds: string[];
231
- sharedMembers: EdgeIdentity[];
232
- seq: number;
233
- }
234
- export interface GeometryPort {
235
- x: number;
236
- y: number;
237
- node: string;
238
- side: "N" | "S" | "E" | "W";
239
- }
240
- export interface EdgeAccount {
241
- how: string;
242
- len: number | null;
243
- }
244
- export interface RouteStat {
245
- edgeId: string;
246
- how: RouteHow;
247
- len: number;
248
- span: number;
249
- factor: number | null;
250
- bends: number;
251
- }
252
- export interface VerbEcho {
253
- edge: string;
254
- verb: string;
255
- matched: "node id" | "display label";
256
- seam: "row label" | "edge/rail label";
257
- }
258
- export interface WorkflowGeometry {
259
- version: 1;
260
- tier: LayoutTier;
261
- nodes: GeometryNode[];
262
- edges: GeometryEdge[];
263
- cells: Record<string, Cell>;
264
- gateMarks: GeometryGateMark[];
265
- row: string[];
266
- rowLine: number;
267
- entries: GeometryEntryElement[];
268
- entryLinks: GeometryEntryLink[];
269
- routes: GeometryRoute[];
270
- labels: GeometryLabel[];
271
- ports: GeometryPort[];
272
- accounting: Record<string, EdgeAccount[]>;
273
- verbEchoes: VerbEcho[];
274
- warnings: string[];
275
- graphWarnings: string[];
276
- routeStats: RouteStat[];
277
- }
278
- export interface GeometryBounds {
279
- x: number;
280
- y: number;
281
- width: number;
282
- height: number;
283
- }
284
- export interface UnrenderableResult {
285
- unrenderable: {
286
- reason: string;
287
- };
288
- }
289
- export type ComputeLayoutResult = WorkflowGeometry | UnrenderableResult;
290
- export interface ComputeLayoutOptions {
291
- includeEnds?: string[];
292
- }
293
- export declare function isUnrenderable(result: ComputeLayoutResult): result is UnrenderableResult;
294
- export type TriggerKind = "event" | "schedule" | "manual";
295
- export type TriggerMode = "start" | "steer";
296
- export interface RenderTrigger {
297
- kind: TriggerKind;
298
- mode: TriggerMode;
299
- connection?: string;
300
- event?: string;
301
- filters?: string[];
302
- cron?: string;
303
- human?: string;
304
- binding?: string;
305
- triggerId?: string;
306
- triggerSlug?: string;
307
- }
308
- export interface RenderContext {
309
- triggers: RenderTrigger[];
310
- }
@@ -1,26 +0,0 @@
1
- import type { Point, PortableShape, Rect, WorkflowGeometry } from "./types.js";
2
- interface Obstacle {
3
- shape: PortableShape;
4
- rect: Rect;
5
- caption?: boolean;
6
- }
7
- interface ClearRect {
8
- shape: PortableShape;
9
- rect: Rect;
10
- what: string;
11
- }
12
- export declare function obstaclesOf(geometry: WorkflowGeometry): Obstacle[];
13
- export declare function clearRectsOf(geometry: WorkflowGeometry): ClearRect[];
14
- export declare function throughOwnHits(pts: readonly Point[], ignore: ReadonlySet<PortableShape>): number;
15
- export declare function verifyGeometry(geometry: WorkflowGeometry, label?: string): string[];
16
- export interface DetourMeasurement {
17
- name: string;
18
- how: string;
19
- factor: number;
20
- boxFactor: number | null;
21
- len: number;
22
- bends: number;
23
- notable: boolean;
24
- }
25
- export declare function detoursOf(geometry: WorkflowGeometry): DetourMeasurement[];
26
- export {};
@@ -1,42 +0,0 @@
1
- {
2
- "name": "@orchestraworks/workflow-render",
3
- "version": "0.3.0",
4
- "type": "module",
5
- "description": "Workflow graph rendering: the shared, UI-framework-free layout engine for workflow graphs",
6
- "license": "Apache-2.0",
7
- "author": "Living Computers",
8
- "homepage": "https://orchestraworks.ai",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/livingcomputers/software-factory.git"
12
- },
13
- "private": false,
14
- "sideEffects": false,
15
- "files": [
16
- "dist"
17
- ],
18
- "main": "./dist/index.js",
19
- "types": "./dist/index.d.ts",
20
- "exports": {
21
- ".": {
22
- "types": "./dist/index.d.ts",
23
- "import": "./dist/index.js"
24
- }
25
- },
26
- "scripts": {
27
- "build": "tsc",
28
- "build:release": "node scripts/build-dist.mjs",
29
- "prepack": "npm run build:release",
30
- "test": "vitest run",
31
- "regen:goldens": "npm run build && node scripts/regen-goldens.mjs",
32
- "lint": "tsc --noEmit",
33
- "typecheck:tests": "tsc --noEmit -p tsconfig.tests.json"
34
- },
35
- "devDependencies": {
36
- "@types/node": "^22.10.0",
37
- "esbuild": "0.28.2",
38
- "javascript-obfuscator": "5.2.0",
39
- "typescript": "^5.7.3",
40
- "vitest": "^4.1.8"
41
- }
42
- }