@clayroach/effect-unplugin 4.0.0-source-tracing.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.
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Core source trace transformer for Effect.gen yield* expressions.
3
+ *
4
+ * @since 0.0.1
5
+ */
6
+ import { parse } from "@babel/parser";
7
+ import * as _traverse from "@babel/traverse";
8
+ import * as _generate from "@babel/generator";
9
+ import * as t from "@babel/types";
10
+ // Handle CommonJS default exports - runtime interop
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const traverse = _traverse.default ?? _traverse;
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const generate = _generate.default ?? _generate;
15
+ const ALL_INSTRUMENTABLE = ["gen", "fork", "forkDaemon", "forkScoped", "all", "forEach", "filter", "reduce", "iterate", "loop"];
16
+ /**
17
+ * Resolves which Effect combinators should be instrumented with spans.
18
+ */
19
+ function resolveInstrumentable(options) {
20
+ const include = options.include ?? ALL_INSTRUMENTABLE;
21
+ const exclude = new Set(options.exclude ?? []);
22
+ return new Set(include.filter(name => !exclude.has(name)));
23
+ }
24
+ /**
25
+ * Determines if a call expression is Effect.gen() or a named import gen().
26
+ */
27
+ function isEffectGenCall(node, effectImportName, genImportName) {
28
+ const callee = node.callee;
29
+ // Effect.gen(...)
30
+ if (t.isMemberExpression(callee) && t.isIdentifier(callee.object) && callee.object.name === effectImportName && t.isIdentifier(callee.property) && callee.property.name === "gen") {
31
+ return true;
32
+ }
33
+ // gen(...) from named import
34
+ if (t.isIdentifier(callee) && callee.name === genImportName) {
35
+ return true;
36
+ }
37
+ return false;
38
+ }
39
+ /**
40
+ * Extracts function name from a yield* argument expression.
41
+ */
42
+ function extractFunctionName(node) {
43
+ // foo()
44
+ if (t.isCallExpression(node) && t.isIdentifier(node.callee)) {
45
+ return node.callee.name;
46
+ }
47
+ // obj.method()
48
+ if (t.isCallExpression(node) && t.isMemberExpression(node.callee) && t.isIdentifier(node.callee.property)) {
49
+ return node.callee.property.name;
50
+ }
51
+ // Effect.succeed(...)
52
+ if (t.isCallExpression(node) && t.isMemberExpression(node.callee) && t.isIdentifier(node.callee.object) && t.isIdentifier(node.callee.property)) {
53
+ return `${node.callee.object.name}.${node.callee.property.name}`;
54
+ }
55
+ return "unknown";
56
+ }
57
+ /**
58
+ * Creates a hoisted StackFrame variable declaration.
59
+ */
60
+ function createStackFrameDeclaration(info) {
61
+ return t.variableDeclaration("const", [t.variableDeclarator(t.identifier(info.varName), t.objectExpression([t.objectProperty(t.identifier("name"), t.stringLiteral(info.name)), t.objectProperty(t.identifier("stack"), t.arrowFunctionExpression([], t.stringLiteral(info.location))), t.objectProperty(t.identifier("parent"), t.identifier("undefined"))]))]);
62
+ }
63
+ /**
64
+ * Wraps a yield* argument with Effect.updateService.
65
+ */
66
+ function wrapWithUpdateService(argument, frameVarName, effectImportName, referencesImportName) {
67
+ return t.callExpression(t.memberExpression(t.identifier(effectImportName), t.identifier("updateService")), [argument, t.memberExpression(t.identifier(referencesImportName), t.identifier("CurrentStackFrame")), t.arrowFunctionExpression([t.identifier("parent")], t.objectExpression([t.spreadElement(t.identifier(frameVarName)), t.objectProperty(t.identifier("parent"), t.identifier("parent"))]))]);
68
+ }
69
+ /**
70
+ * Gets the variable name from a variable declarator parent.
71
+ */
72
+ function getAssignedVariableName(path) {
73
+ const parent = path.parent;
74
+ if (t.isVariableDeclarator(parent) && t.isIdentifier(parent.id)) {
75
+ return parent.id.name;
76
+ }
77
+ return null;
78
+ }
79
+ /**
80
+ * Creates a span name from variable name or location.
81
+ */
82
+ function createSpanName(variableName, fileName, line) {
83
+ if (variableName) {
84
+ return `${variableName} (${fileName}:${line})`;
85
+ }
86
+ return `${fileName}:${line}`;
87
+ }
88
+ /**
89
+ * Wraps an expression with Effect.withSpan().
90
+ */
91
+ function wrapWithSpan(expr, spanName, effectImportName) {
92
+ return t.callExpression(t.memberExpression(t.identifier(effectImportName), t.identifier("withSpan")), [expr, t.stringLiteral(spanName)]);
93
+ }
94
+ /**
95
+ * Finds or creates the Effect namespace import name.
96
+ */
97
+ function findOrGetEffectImport(ast) {
98
+ let effectName = null;
99
+ let genName = null;
100
+ for (const node of ast.program.body) {
101
+ if (!t.isImportDeclaration(node)) continue;
102
+ if (node.source.value !== "effect") continue;
103
+ for (const specifier of node.specifiers) {
104
+ // import * as Effect from "effect" or import { Effect } from "effect"
105
+ if (t.isImportNamespaceSpecifier(specifier)) {
106
+ effectName = specifier.local.name;
107
+ } else if (t.isImportSpecifier(specifier)) {
108
+ const imported = t.isIdentifier(specifier.imported) ? specifier.imported.name : specifier.imported.value;
109
+ if (imported === "Effect") {
110
+ effectName = specifier.local.name;
111
+ } else if (imported === "gen") {
112
+ genName = specifier.local.name;
113
+ }
114
+ }
115
+ }
116
+ }
117
+ return {
118
+ effectName: effectName ?? "Effect",
119
+ genName
120
+ };
121
+ }
122
+ /**
123
+ * Ensures References is imported from effect.
124
+ */
125
+ function ensureReferencesImport(ast) {
126
+ for (const node of ast.program.body) {
127
+ if (!t.isImportDeclaration(node)) continue;
128
+ if (node.source.value !== "effect") continue;
129
+ for (const specifier of node.specifiers) {
130
+ if (t.isImportSpecifier(specifier)) {
131
+ const imported = t.isIdentifier(specifier.imported) ? specifier.imported.name : specifier.imported.value;
132
+ if (imported === "References") {
133
+ return specifier.local.name;
134
+ }
135
+ }
136
+ }
137
+ // Add References to existing effect import
138
+ node.specifiers.push(t.importSpecifier(t.identifier("References"), t.identifier("References")));
139
+ return "References";
140
+ }
141
+ // No effect import found - add one (unlikely scenario)
142
+ const importDecl = t.importDeclaration([t.importSpecifier(t.identifier("References"), t.identifier("References"))], t.stringLiteral("effect"));
143
+ ast.program.body.unshift(importDecl);
144
+ return "References";
145
+ }
146
+ /**
147
+ * Extracts the filename from a full path.
148
+ */
149
+ function getFileName(filePath) {
150
+ const parts = filePath.split("/");
151
+ return parts[parts.length - 1] ?? filePath;
152
+ }
153
+ /**
154
+ * Transforms source code to inject source location tracing and span instrumentation.
155
+ *
156
+ * @since 0.0.1
157
+ * @category transform
158
+ */
159
+ export function transform(code, id, options = {}) {
160
+ const enableSourceTrace = options.sourceTrace !== false;
161
+ const extractFnName = options.extractFunctionName !== false;
162
+ const spanOptions = options.spans;
163
+ const enableSpans = spanOptions?.enabled === true;
164
+ let ast;
165
+ try {
166
+ ast = parse(code, {
167
+ sourceType: "module",
168
+ plugins: ["typescript", "jsx"],
169
+ sourceFilename: id
170
+ });
171
+ } catch {
172
+ return {
173
+ code,
174
+ transformed: false
175
+ };
176
+ }
177
+ const {
178
+ effectName,
179
+ genName
180
+ } = findOrGetEffectImport(ast);
181
+ // No Effect import found
182
+ if (!effectName && !genName) {
183
+ return {
184
+ code,
185
+ transformed: false
186
+ };
187
+ }
188
+ let hasTransformed = false;
189
+ const fileName = getFileName(id);
190
+ // Span instrumentation pass
191
+ if (enableSpans && effectName) {
192
+ const instrumentable = resolveInstrumentable(spanOptions);
193
+ const wrappedNodes = new WeakSet();
194
+ traverse(ast, {
195
+ CallExpression(path) {
196
+ if (wrappedNodes.has(path.node)) return;
197
+ const callee = path.node.callee;
198
+ if (!t.isMemberExpression(callee)) return;
199
+ if (!t.isIdentifier(callee.object) || callee.object.name !== effectName) return;
200
+ if (!t.isIdentifier(callee.property)) return;
201
+ const methodName = callee.property.name;
202
+ if (!instrumentable.has(methodName)) return;
203
+ const loc = path.node.loc;
204
+ if (!loc) return;
205
+ const variableName = getAssignedVariableName(path);
206
+ const spanName = createSpanName(variableName, fileName, loc.start.line);
207
+ const wrapped = wrapWithSpan(path.node, spanName, effectName);
208
+ wrappedNodes.add(path.node);
209
+ path.replaceWith(wrapped);
210
+ hasTransformed = true;
211
+ }
212
+ });
213
+ }
214
+ // Source trace pass
215
+ if (enableSourceTrace) {
216
+ const framesByLocation = new Map();
217
+ let frameCounter = 0;
218
+ // First pass: collect all yield* locations and create frame info
219
+ traverse(ast, {
220
+ CallExpression(path) {
221
+ if (!isEffectGenCall(path.node, effectName, genName)) return;
222
+ const generatorArg = path.node.arguments[0];
223
+ if (!t.isFunctionExpression(generatorArg) || !generatorArg.generator) return;
224
+ path.traverse({
225
+ // Skip nested Effect.gen calls to avoid processing their yield* twice
226
+ CallExpression(nestedPath) {
227
+ if (isEffectGenCall(nestedPath.node, effectName, genName)) {
228
+ nestedPath.skip();
229
+ }
230
+ },
231
+ YieldExpression(yieldPath) {
232
+ // Only process yield* (delegate)
233
+ if (!yieldPath.node.delegate || !yieldPath.node.argument) return;
234
+ const loc = yieldPath.node.loc;
235
+ if (!loc) return;
236
+ const location = `${id}:${loc.start.line}:${loc.start.column}`;
237
+ if (!framesByLocation.has(location)) {
238
+ const name = extractFnName ? extractFunctionName(yieldPath.node.argument) : "effect";
239
+ const varName = `_sf${frameCounter++}`;
240
+ const info = {
241
+ name,
242
+ location,
243
+ varName
244
+ };
245
+ framesByLocation.set(location, info);
246
+ }
247
+ }
248
+ });
249
+ }
250
+ });
251
+ if (framesByLocation.size > 0) {
252
+ const referencesName = ensureReferencesImport(ast);
253
+ // Second pass: wrap yield* expressions
254
+ traverse(ast, {
255
+ CallExpression(path) {
256
+ if (!isEffectGenCall(path.node, effectName, genName)) return;
257
+ const generatorArg = path.node.arguments[0];
258
+ if (!t.isFunctionExpression(generatorArg) || !generatorArg.generator) return;
259
+ path.traverse({
260
+ // Skip nested Effect.gen calls to avoid processing their yield* twice
261
+ CallExpression(nestedPath) {
262
+ if (isEffectGenCall(nestedPath.node, effectName, genName)) {
263
+ nestedPath.skip();
264
+ }
265
+ },
266
+ YieldExpression(yieldPath) {
267
+ if (!yieldPath.node.delegate || !yieldPath.node.argument) return;
268
+ const loc = yieldPath.node.loc;
269
+ if (!loc) return;
270
+ const location = `${id}:${loc.start.line}:${loc.start.column}`;
271
+ const frame = framesByLocation.get(location);
272
+ if (!frame) return;
273
+ const wrapped = wrapWithUpdateService(yieldPath.node.argument, frame.varName, effectName, referencesName);
274
+ yieldPath.node.argument = wrapped;
275
+ hasTransformed = true;
276
+ }
277
+ });
278
+ }
279
+ });
280
+ // Insert hoisted frame declarations after imports
281
+ const frameDeclarations = Array.from(framesByLocation.values()).map(createStackFrameDeclaration);
282
+ let insertIndex = 0;
283
+ for (let i = 0; i < ast.program.body.length; i++) {
284
+ if (!t.isImportDeclaration(ast.program.body[i])) {
285
+ insertIndex = i;
286
+ break;
287
+ }
288
+ insertIndex = i + 1;
289
+ }
290
+ ast.program.body.splice(insertIndex, 0, ...frameDeclarations);
291
+ }
292
+ }
293
+ if (!hasTransformed) {
294
+ return {
295
+ code,
296
+ transformed: false
297
+ };
298
+ }
299
+ const result = generate(ast, {
300
+ sourceMaps: true,
301
+ sourceFileName: id
302
+ }, code);
303
+ return {
304
+ code: result.code,
305
+ map: result.map,
306
+ transformed: true
307
+ };
308
+ }
309
+ //# sourceMappingURL=sourceTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceTrace.js","names":["parse","_traverse","_generate","t","traverse","default","generate","ALL_INSTRUMENTABLE","resolveInstrumentable","options","include","exclude","Set","filter","name","has","isEffectGenCall","node","effectImportName","genImportName","callee","isMemberExpression","isIdentifier","object","property","extractFunctionName","isCallExpression","createStackFrameDeclaration","info","variableDeclaration","variableDeclarator","identifier","varName","objectExpression","objectProperty","stringLiteral","arrowFunctionExpression","location","wrapWithUpdateService","argument","frameVarName","referencesImportName","callExpression","memberExpression","spreadElement","getAssignedVariableName","path","parent","isVariableDeclarator","id","createSpanName","variableName","fileName","line","wrapWithSpan","expr","spanName","findOrGetEffectImport","ast","effectName","genName","program","body","isImportDeclaration","source","value","specifier","specifiers","isImportNamespaceSpecifier","local","isImportSpecifier","imported","ensureReferencesImport","push","importSpecifier","importDecl","importDeclaration","unshift","getFileName","filePath","parts","split","length","transform","code","enableSourceTrace","sourceTrace","extractFnName","spanOptions","spans","enableSpans","enabled","sourceType","plugins","sourceFilename","transformed","hasTransformed","instrumentable","wrappedNodes","WeakSet","CallExpression","methodName","loc","start","wrapped","add","replaceWith","framesByLocation","Map","frameCounter","generatorArg","arguments","isFunctionExpression","generator","nestedPath","skip","YieldExpression","yieldPath","delegate","column","set","size","referencesName","frame","get","frameDeclarations","Array","from","values","map","insertIndex","i","splice","result","sourceMaps","sourceFileName"],"sources":["../src/sourceTrace.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ /**
5
+ * Filter pattern for file matching.
6
+ *
7
+ * @since 0.0.1
8
+ * @category models
9
+ */
10
+ export type FilterPattern = string | RegExp | ReadonlyArray<string | RegExp>;
11
+ /**
12
+ * Effect combinators that can be auto-instrumented with spans.
13
+ *
14
+ * @since 0.0.1
15
+ * @category models
16
+ */
17
+ export type InstrumentableEffect = "gen" | "fork" | "forkDaemon" | "forkScoped" | "all" | "forEach" | "filter" | "reduce" | "iterate" | "loop";
18
+ /**
19
+ * Options for auto-instrumentation with withSpan.
20
+ *
21
+ * @since 0.0.1
22
+ * @category models
23
+ */
24
+ export interface SpanInstrumentationOptions {
25
+ /**
26
+ * Enable auto-instrumentation with withSpan.
27
+ * @default false
28
+ */
29
+ readonly enabled?: boolean | undefined;
30
+ /**
31
+ * Effect combinators to instrument. Defaults to all supported combinators.
32
+ */
33
+ readonly include?: ReadonlyArray<InstrumentableEffect> | undefined;
34
+ /**
35
+ * Effect combinators to exclude from instrumentation.
36
+ */
37
+ readonly exclude?: ReadonlyArray<InstrumentableEffect> | undefined;
38
+ }
39
+ /**
40
+ * Options for the source trace transformer plugin.
41
+ *
42
+ * @since 0.0.1
43
+ * @category models
44
+ */
45
+ export interface SourceTraceOptions {
46
+ /**
47
+ * Files to include in transformation. Defaults to TypeScript/JavaScript files.
48
+ */
49
+ readonly include?: FilterPattern | undefined;
50
+ /**
51
+ * Files to exclude from transformation. Defaults to node_modules.
52
+ */
53
+ readonly exclude?: FilterPattern | undefined;
54
+ /**
55
+ * Extract function name from yield* expression for the stack frame.
56
+ * @default true
57
+ */
58
+ readonly extractFunctionName?: boolean | undefined;
59
+ /**
60
+ * Enable yield* source tracing with CurrentStackFrame.
61
+ * @default true
62
+ */
63
+ readonly sourceTrace?: boolean | undefined;
64
+ /**
65
+ * Auto-instrumentation options for wrapping Effect combinators with withSpan.
66
+ */
67
+ readonly spans?: SpanInstrumentationOptions | undefined;
68
+ /**
69
+ * Add @__PURE__ annotations to Effect calls for tree-shaking.
70
+ * @default false
71
+ */
72
+ readonly annotateEffects?: boolean | undefined;
73
+ }
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,CAAA;AAEV;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;IAClE;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAA;CACnE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAC5C;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAA;IACvD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/C"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @since 0.0.1
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":[null],"mappings":"AAAA","ignoreList":[]}
package/dist/vite.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const _default: (options?: import("./types.ts").SourceTraceOptions | undefined) => import("vite").Plugin<any> | import("vite").Plugin<any>[];
2
+ export default _default;
3
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":";AAkBA,wBAA4B"}
package/dist/vite.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Vite plugin for Effect source location tracing.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * // vite.config.ts
7
+ * import { defineConfig } from "vite"
8
+ * import effectSourceTrace from "@effect/unplugin/vite"
9
+ *
10
+ * export default defineConfig({
11
+ * plugins: [effectSourceTrace()]
12
+ * })
13
+ * ```
14
+ *
15
+ * @since 0.0.1
16
+ */
17
+ import unplugin from "./index.js";
18
+ export default unplugin.vite;
19
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","names":["unplugin","vite"],"sources":["../src/vite.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;AAgBA,OAAOA,QAAQ,MAAM,YAAY;AAEjC,eAAeA,QAAQ,CAACC,IAAI","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ declare const _default: (options?: import("./types.ts").SourceTraceOptions | undefined) => WebpackPluginInstance;
2
+ export default _default;
3
+ //# sourceMappingURL=webpack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":";AAiBA,wBAA+B"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Webpack plugin for Effect source location tracing.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * // webpack.config.js
7
+ * import effectSourceTrace from "@effect/unplugin/webpack"
8
+ *
9
+ * export default {
10
+ * plugins: [effectSourceTrace()]
11
+ * }
12
+ * ```
13
+ *
14
+ * @since 0.0.1
15
+ */
16
+ import unplugin from "./index.js";
17
+ export default unplugin.webpack;
18
+ //# sourceMappingURL=webpack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.js","names":["unplugin","webpack"],"sources":["../src/webpack.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;AAeA,OAAOA,QAAQ,MAAM,YAAY;AAEjC,eAAeA,QAAQ,CAACC,OAAO","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@clayroach/effect-unplugin",
3
+ "type": "module",
4
+ "version": "4.0.0-source-tracing.0",
5
+ "license": "MIT",
6
+ "description": "Build-time AST transformer for Effect source location tracing",
7
+ "homepage": "https://github.com/clayroach/effect",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/clayroach/effect.git",
11
+ "directory": "packages/tools/unplugin"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/clayroach/effect/issues"
15
+ },
16
+ "tags": [
17
+ "typescript",
18
+ "effect",
19
+ "unplugin",
20
+ "vite",
21
+ "webpack",
22
+ "rollup",
23
+ "esbuild"
24
+ ],
25
+ "keywords": [
26
+ "typescript",
27
+ "effect",
28
+ "unplugin",
29
+ "vite",
30
+ "webpack",
31
+ "rollup",
32
+ "esbuild"
33
+ ],
34
+ "sideEffects": [],
35
+ "exports": {
36
+ "./package.json": "./package.json",
37
+ ".": "./src/index.ts",
38
+ "./sourceTrace": "./src/sourceTrace.ts",
39
+ "./annotateEffects": "./src/annotateEffects.ts",
40
+ "./vite": "./src/vite.ts",
41
+ "./rollup": "./src/rollup.ts",
42
+ "./webpack": "./src/webpack.ts",
43
+ "./esbuild": "./src/esbuild.ts"
44
+ },
45
+ "files": [
46
+ "src/**/*.ts",
47
+ "dist/**/*.js",
48
+ "dist/**/*.js.map",
49
+ "dist/**/*.d.ts",
50
+ "dist/**/*.d.ts.map"
51
+ ],
52
+ "publishConfig": {
53
+ "exports": {
54
+ "./package.json": "./package.json",
55
+ ".": "./dist/index.js",
56
+ "./sourceTrace": "./dist/sourceTrace.js",
57
+ "./annotateEffects": "./dist/annotateEffects.js",
58
+ "./vite": "./dist/vite.js",
59
+ "./rollup": "./dist/rollup.js",
60
+ "./webpack": "./dist/webpack.js",
61
+ "./esbuild": "./dist/esbuild.js"
62
+ }
63
+ },
64
+ "scripts": {
65
+ "build": "tsc -b tsconfig.json && pnpm babel",
66
+ "build:tsgo": "tsgo -b tsconfig.json && pnpm babel",
67
+ "babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
68
+ "check": "tsc -b tsconfig.json",
69
+ "test": "vitest",
70
+ "coverage": "vitest --coverage"
71
+ },
72
+ "peerDependencies": {
73
+ "@clayroach/effect": "4.0.0-source-tracing.0"
74
+ },
75
+ "dependencies": {
76
+ "@babel/generator": "^7.27.5",
77
+ "@babel/parser": "^7.27.5",
78
+ "@babel/traverse": "^7.27.4",
79
+ "@babel/types": "^7.27.6",
80
+ "unplugin": "^2.3.4"
81
+ },
82
+ "devDependencies": {
83
+ "@types/babel__generator": "^7.27.0",
84
+ "@types/babel__traverse": "^7.20.7"
85
+ }
86
+ }