@clayroach/unplugin 0.1.0-source-trace.2
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/LICENSE +21 -0
- package/README.md +93 -0
- package/dist/cjs/esbuild.js +34 -0
- package/dist/cjs/esbuild.js.map +1 -0
- package/dist/cjs/index.js +113 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/rollup.js +33 -0
- package/dist/cjs/rollup.js.map +1 -0
- package/dist/cjs/rspack.js +33 -0
- package/dist/cjs/rspack.js.map +1 -0
- package/dist/cjs/transformers/index.js +17 -0
- package/dist/cjs/transformers/index.js.map +1 -0
- package/dist/cjs/transformers/sourceTrace.js +57 -0
- package/dist/cjs/transformers/sourceTrace.js.map +1 -0
- package/dist/cjs/utils/effectDetection.js +58 -0
- package/dist/cjs/utils/effectDetection.js.map +1 -0
- package/dist/cjs/utils/hoisting.js +71 -0
- package/dist/cjs/utils/hoisting.js.map +1 -0
- package/dist/cjs/vite.js +33 -0
- package/dist/cjs/vite.js.map +1 -0
- package/dist/cjs/webpack.js +33 -0
- package/dist/cjs/webpack.js.map +1 -0
- package/dist/dts/esbuild.d.ts +30 -0
- package/dist/dts/esbuild.d.ts.map +1 -0
- package/dist/dts/index.d.ts +46 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/rollup.d.ts +29 -0
- package/dist/dts/rollup.d.ts.map +1 -0
- package/dist/dts/rspack.d.ts +29 -0
- package/dist/dts/rspack.d.ts.map +1 -0
- package/dist/dts/transformers/index.d.ts +7 -0
- package/dist/dts/transformers/index.d.ts.map +1 -0
- package/dist/dts/transformers/sourceTrace.d.ts +41 -0
- package/dist/dts/transformers/sourceTrace.d.ts.map +1 -0
- package/dist/dts/utils/effectDetection.d.ts +35 -0
- package/dist/dts/utils/effectDetection.d.ts.map +1 -0
- package/dist/dts/utils/hoisting.d.ts +41 -0
- package/dist/dts/utils/hoisting.d.ts.map +1 -0
- package/dist/dts/vite.d.ts +29 -0
- package/dist/dts/vite.d.ts.map +1 -0
- package/dist/dts/webpack.d.ts +29 -0
- package/dist/dts/webpack.d.ts.map +1 -0
- package/dist/esm/esbuild.js +28 -0
- package/dist/esm/esbuild.js.map +1 -0
- package/dist/esm/index.js +109 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/rollup.js +27 -0
- package/dist/esm/rollup.js.map +1 -0
- package/dist/esm/rspack.js +27 -0
- package/dist/esm/rspack.js.map +1 -0
- package/dist/esm/transformers/index.js +7 -0
- package/dist/esm/transformers/index.js.map +1 -0
- package/dist/esm/transformers/sourceTrace.js +50 -0
- package/dist/esm/transformers/sourceTrace.js.map +1 -0
- package/dist/esm/utils/effectDetection.js +59 -0
- package/dist/esm/utils/effectDetection.js.map +1 -0
- package/dist/esm/utils/hoisting.js +70 -0
- package/dist/esm/utils/hoisting.js.map +1 -0
- package/dist/esm/vite.js +27 -0
- package/dist/esm/vite.js.map +1 -0
- package/dist/esm/webpack.js +27 -0
- package/dist/esm/webpack.js.map +1 -0
- package/esbuild/package.json +6 -0
- package/package.json +81 -0
- package/rollup/package.json +6 -0
- package/rspack/package.json +6 -0
- package/src/esbuild.ts +30 -0
- package/src/index.ts +218 -0
- package/src/rollup.ts +29 -0
- package/src/rspack.ts +29 -0
- package/src/transformers/index.ts +6 -0
- package/src/transformers/sourceTrace.ts +102 -0
- package/src/utils/effectDetection.ts +81 -0
- package/src/utils/hoisting.ts +132 -0
- package/src/vite.ts +29 -0
- package/src/webpack.ts +29 -0
- package/vite/package.json +6 -0
- package/webpack/package.json +6 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* esbuild plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // build.js
|
|
7
|
+
* import * as esbuild from "esbuild"
|
|
8
|
+
* import effectPlugin from "@effect/unplugin/esbuild"
|
|
9
|
+
*
|
|
10
|
+
* await esbuild.build({
|
|
11
|
+
* plugins: [
|
|
12
|
+
* effectPlugin({
|
|
13
|
+
* sourceTrace: true
|
|
14
|
+
* })
|
|
15
|
+
* ]
|
|
16
|
+
* })
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @since 0.1.0
|
|
20
|
+
*/
|
|
21
|
+
import { type EffectPluginOptions } from "./index.js";
|
|
22
|
+
/**
|
|
23
|
+
* esbuild plugin for Effect transformations.
|
|
24
|
+
*
|
|
25
|
+
* @since 0.1.0
|
|
26
|
+
*/
|
|
27
|
+
declare const _default: (options?: EffectPluginOptions | undefined) => import("unplugin").EsbuildPlugin;
|
|
28
|
+
export default _default;
|
|
29
|
+
export type { EffectPluginOptions };
|
|
30
|
+
//# sourceMappingURL=esbuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../../src/esbuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;;AACH,wBAA+B;AAE/B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type UnpluginInstance } from "unplugin";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for the Effect plugin.
|
|
4
|
+
*
|
|
5
|
+
* @since 0.1.0
|
|
6
|
+
*/
|
|
7
|
+
export interface EffectPluginOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Enable source trace injection into Effect.gen yields.
|
|
10
|
+
* When enabled, logs will automatically include source locations.
|
|
11
|
+
*
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
readonly sourceTrace?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Enable @__PURE__ annotations for tree-shaking.
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
readonly annotateEffects?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Glob patterns to include in transformation.
|
|
23
|
+
*
|
|
24
|
+
* @default ["**\/*.ts", "**\/*.tsx"]
|
|
25
|
+
*/
|
|
26
|
+
readonly include?: ReadonlyArray<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Glob patterns to exclude from transformation.
|
|
29
|
+
*
|
|
30
|
+
* @default ["**\/node_modules/**", "**\/*.d.ts"]
|
|
31
|
+
*/
|
|
32
|
+
readonly exclude?: ReadonlyArray<string>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The unplugin instance.
|
|
36
|
+
*
|
|
37
|
+
* @since 0.1.0
|
|
38
|
+
*/
|
|
39
|
+
export declare const unplugin: UnpluginInstance<EffectPluginOptions | undefined, boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Default export for convenience.
|
|
42
|
+
*
|
|
43
|
+
* @since 0.1.0
|
|
44
|
+
*/
|
|
45
|
+
export default unplugin;
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAwC,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAmCtF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAElC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAExC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACzC;AA2GD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,gBAAgB,CAAC,mBAAmB,GAAG,SAAS,EAAE,OAAO,CAAmC,CAAA;AAEnH;;;;GAIG;AACH,eAAe,QAAQ,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rollup plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // rollup.config.js
|
|
7
|
+
* import effectPlugin from "@effect/unplugin/rollup"
|
|
8
|
+
*
|
|
9
|
+
* export default {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { type EffectPluginOptions } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Rollup plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
declare const _default: (options?: EffectPluginOptions | undefined) => import("rollup").Plugin<any> | import("rollup").Plugin<any>[];
|
|
27
|
+
export default _default;
|
|
28
|
+
export type { EffectPluginOptions };
|
|
29
|
+
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;;AACH,wBAA8B;AAE9B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rspack plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // rspack.config.js
|
|
7
|
+
* const effectPlugin = require("@effect/unplugin/rspack").default
|
|
8
|
+
*
|
|
9
|
+
* module.exports = {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { type EffectPluginOptions } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Rspack plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
declare const _default: (options?: EffectPluginOptions | undefined) => RspackPluginInstance;
|
|
27
|
+
export default _default;
|
|
28
|
+
export type { EffectPluginOptions };
|
|
29
|
+
//# sourceMappingURL=rspack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rspack.d.ts","sourceRoot":"","sources":["../../src/rspack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;;AACH,wBAA8B;AAE9B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transformers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source location trace transformer.
|
|
3
|
+
*
|
|
4
|
+
* This transformer injects source location metadata into Effect.gen yield expressions.
|
|
5
|
+
* It transforms `yield* _(effect)` into `yield* _(effect, trace)` where trace is a
|
|
6
|
+
* hoisted SourceLocation object.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
*/
|
|
10
|
+
import type { Visitor } from "@babel/traverse";
|
|
11
|
+
import { type HoistingState } from "../utils/hoisting.js";
|
|
12
|
+
/**
|
|
13
|
+
* Options for the source trace transformer.
|
|
14
|
+
*/
|
|
15
|
+
export interface SourceTraceOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Filter function to determine if a file should be transformed.
|
|
18
|
+
* Defaults to transforming all .ts and .tsx files.
|
|
19
|
+
*/
|
|
20
|
+
readonly filter?: (filename: string) => boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* State passed through the transformer.
|
|
24
|
+
*/
|
|
25
|
+
interface TransformState {
|
|
26
|
+
filename: string;
|
|
27
|
+
hoisting: HoistingState;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a Babel visitor that injects source trace metadata into Effect.gen yields.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createSourceTraceVisitor(filename: string, _options?: SourceTraceOptions): Visitor<TransformState>;
|
|
33
|
+
/**
|
|
34
|
+
* Creates the source trace transformer plugin.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sourceTraceTransformer(options?: SourceTraceOptions): {
|
|
37
|
+
visitor: Visitor<TransformState>;
|
|
38
|
+
name: string;
|
|
39
|
+
};
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=sourceTrace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceTrace.d.ts","sourceRoot":"","sources":["../../../src/transformers/sourceTrace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAA;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;CAChD;AAED;;GAEG;AACH,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA4CzB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG;IACpE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb,CAKA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for detecting Effect patterns in AST nodes.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import type * as t from "@babel/types";
|
|
7
|
+
/**
|
|
8
|
+
* Checks if a CallExpression is `Effect.gen(...)`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isEffectGenCall(node: t.Node): node is t.CallExpression;
|
|
11
|
+
/**
|
|
12
|
+
* Minimal path-like interface for AST traversal.
|
|
13
|
+
* This mirrors the essential properties of Babel's NodePath without importing the full type.
|
|
14
|
+
*/
|
|
15
|
+
interface PathLike {
|
|
16
|
+
parent?: t.Node | null;
|
|
17
|
+
parentPath?: PathLike | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Checks if a node is inside an Effect.gen generator function.
|
|
21
|
+
* This walks up the AST to find if there's an enclosing generator function
|
|
22
|
+
* that is an argument to Effect.gen.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isInsideEffectGen(path: PathLike): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Checks if a CallExpression is a call to the adapter function `_()`.
|
|
27
|
+
* The adapter is the first argument passed to the generator function.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isAdapterCall(node: t.CallExpression): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if a YieldExpression is a `yield* _(effect)` pattern.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isYieldAdapterCall(node: t.YieldExpression): boolean;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=effectDetection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectDetection.d.ts","sourceRoot":"","sources":["../../../src/utils/effectDetection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,cAAc,CA0BtE;AAED;;;GAGG;AACH,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAUzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,GAAG,OAAO,CAKnE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for hoisting trace metadata to module scope.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as t from "@babel/types";
|
|
7
|
+
/**
|
|
8
|
+
* State for tracking hoisted trace declarations.
|
|
9
|
+
*/
|
|
10
|
+
export interface HoistingState {
|
|
11
|
+
/** Map from dedup key to hoisted identifier */
|
|
12
|
+
readonly hoistedTraces: Map<string, t.Identifier>;
|
|
13
|
+
/** Counter for generating unique identifiers */
|
|
14
|
+
counter: number;
|
|
15
|
+
/** Statements to prepend to the program body */
|
|
16
|
+
readonly statements: Array<t.Statement>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new hoisting state.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createHoistingState(): HoistingState;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a unique deduplication key for a source location.
|
|
24
|
+
* Uses line:column to disambiguate multiple yields on the same line.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createDedupKey(filename: string, line: number, column: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* Gets or creates a hoisted trace identifier for the given source location.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getOrCreateTraceIdentifier(state: HoistingState, filename: string, line: number, column: number, label?: string): t.Identifier;
|
|
31
|
+
/**
|
|
32
|
+
* Extracts a label from a VariableDeclarator if the yield is part of an assignment.
|
|
33
|
+
* For example: `const user = yield* _(fetchUser(id))` extracts "user"
|
|
34
|
+
*/
|
|
35
|
+
export declare function extractLabelFromParent(path: {
|
|
36
|
+
parent?: t.Node | null;
|
|
37
|
+
parentPath?: {
|
|
38
|
+
node?: t.Node | null;
|
|
39
|
+
} | null;
|
|
40
|
+
}): string | undefined;
|
|
41
|
+
//# sourceMappingURL=hoisting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoisting.d.ts","sourceRoot":"","sources":["../../../src/utils/hoisting.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;IACjD,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;CACxC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAMnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,CAAC,CAAC,UAAU,CAiEd;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAC7C,GAAG,MAAM,GAAG,SAAS,CAMrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // vite.config.ts
|
|
7
|
+
* import effectPlugin from "@effect/unplugin/vite"
|
|
8
|
+
*
|
|
9
|
+
* export default {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { type EffectPluginOptions } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Vite plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
declare const _default: (options?: EffectPluginOptions | undefined) => import("vite").Plugin<any> | import("vite").Plugin<any>[];
|
|
27
|
+
export default _default;
|
|
28
|
+
export type { EffectPluginOptions };
|
|
29
|
+
//# sourceMappingURL=vite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../src/vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;;AACH,wBAA4B;AAE5B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webpack plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // webpack.config.js
|
|
7
|
+
* const effectPlugin = require("@effect/unplugin/webpack").default
|
|
8
|
+
*
|
|
9
|
+
* module.exports = {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { type EffectPluginOptions } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Webpack plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
declare const _default: (options?: EffectPluginOptions | undefined) => WebpackPluginInstance;
|
|
27
|
+
export default _default;
|
|
28
|
+
export type { EffectPluginOptions };
|
|
29
|
+
//# sourceMappingURL=webpack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../../src/webpack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAY,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;;AACH,wBAA+B;AAE/B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* esbuild plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // build.js
|
|
7
|
+
* import * as esbuild from "esbuild"
|
|
8
|
+
* import effectPlugin from "@effect/unplugin/esbuild"
|
|
9
|
+
*
|
|
10
|
+
* await esbuild.build({
|
|
11
|
+
* plugins: [
|
|
12
|
+
* effectPlugin({
|
|
13
|
+
* sourceTrace: true
|
|
14
|
+
* })
|
|
15
|
+
* ]
|
|
16
|
+
* })
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @since 0.1.0
|
|
20
|
+
*/
|
|
21
|
+
import { unplugin } from "./index.js";
|
|
22
|
+
/**
|
|
23
|
+
* esbuild plugin for Effect transformations.
|
|
24
|
+
*
|
|
25
|
+
* @since 0.1.0
|
|
26
|
+
*/
|
|
27
|
+
export default unplugin.esbuild;
|
|
28
|
+
//# sourceMappingURL=esbuild.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/esbuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAA4B,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;AACH,eAAe,QAAQ,CAAC,OAAO,CAAA"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import _generate from "@babel/generator";
|
|
2
|
+
import { parse } from "@babel/parser";
|
|
3
|
+
import _traverse from "@babel/traverse";
|
|
4
|
+
import { createUnplugin } from "unplugin";
|
|
5
|
+
import { createSourceTraceVisitor } from "./transformers/sourceTrace.js";
|
|
6
|
+
// Handle both ESM and CJS module exports for Babel packages
|
|
7
|
+
const traverse = typeof _traverse === "function"
|
|
8
|
+
? _traverse
|
|
9
|
+
: _traverse.default;
|
|
10
|
+
const generate = typeof _generate === "function"
|
|
11
|
+
? _generate
|
|
12
|
+
: _generate.default;
|
|
13
|
+
/**
|
|
14
|
+
* Default file patterns to include.
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_INCLUDE = [/\.[jt]sx?$/];
|
|
17
|
+
/**
|
|
18
|
+
* Default file patterns to exclude.
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_EXCLUDE = [/node_modules/, /\.d\.ts$/];
|
|
21
|
+
/**
|
|
22
|
+
* Checks if a file should be transformed based on include/exclude patterns.
|
|
23
|
+
*/
|
|
24
|
+
function shouldTransform(id, include, exclude) {
|
|
25
|
+
// Check excludes first
|
|
26
|
+
for (const pattern of exclude) {
|
|
27
|
+
if (typeof pattern === "string") {
|
|
28
|
+
if (id.includes(pattern))
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
else if (pattern.test(id)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Check includes
|
|
36
|
+
for (const pattern of include) {
|
|
37
|
+
if (typeof pattern === "string") {
|
|
38
|
+
if (id.includes(pattern))
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
else if (pattern.test(id)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates the unplugin factory.
|
|
49
|
+
*/
|
|
50
|
+
const unpluginFactory = (options = {}) => {
|
|
51
|
+
const { annotateEffects: _annotateEffects = false, exclude = DEFAULT_EXCLUDE, include = DEFAULT_INCLUDE, sourceTrace = true } = options;
|
|
52
|
+
return {
|
|
53
|
+
name: "@effect/unplugin",
|
|
54
|
+
transformInclude(id) {
|
|
55
|
+
return shouldTransform(id, include, exclude);
|
|
56
|
+
},
|
|
57
|
+
transform(code, id) {
|
|
58
|
+
// Parse the source code
|
|
59
|
+
const ast = parse(code, {
|
|
60
|
+
sourceType: "module",
|
|
61
|
+
plugins: ["typescript", "jsx"]
|
|
62
|
+
});
|
|
63
|
+
// Collect visitors
|
|
64
|
+
const visitors = [];
|
|
65
|
+
if (sourceTrace) {
|
|
66
|
+
visitors.push(createSourceTraceVisitor(id));
|
|
67
|
+
}
|
|
68
|
+
// Combine visitors
|
|
69
|
+
if (visitors.length === 0) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
// Initialize state for each visitor
|
|
73
|
+
const states = visitors.map(() => ({
|
|
74
|
+
filename: id,
|
|
75
|
+
hoisting: {
|
|
76
|
+
hoistedTraces: new Map(),
|
|
77
|
+
counter: 0,
|
|
78
|
+
statements: []
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
// Run each visitor
|
|
82
|
+
for (let i = 0; i < visitors.length; i++) {
|
|
83
|
+
traverse(ast, visitors[i], undefined, states[i]);
|
|
84
|
+
}
|
|
85
|
+
// Generate output
|
|
86
|
+
const output = generate(ast, {
|
|
87
|
+
sourceMaps: true,
|
|
88
|
+
sourceFileName: id
|
|
89
|
+
}, code);
|
|
90
|
+
return {
|
|
91
|
+
code: output.code,
|
|
92
|
+
map: output.map
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* The unplugin instance.
|
|
99
|
+
*
|
|
100
|
+
* @since 0.1.0
|
|
101
|
+
*/
|
|
102
|
+
export const unplugin = createUnplugin(unpluginFactory);
|
|
103
|
+
/**
|
|
104
|
+
* Default export for convenience.
|
|
105
|
+
*
|
|
106
|
+
* @since 0.1.0
|
|
107
|
+
*/
|
|
108
|
+
export default unplugin;
|
|
109
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rollup plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // rollup.config.js
|
|
7
|
+
* import effectPlugin from "@effect/unplugin/rollup"
|
|
8
|
+
*
|
|
9
|
+
* export default {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { unplugin } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Rollup plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
export default unplugin.rollup;
|
|
27
|
+
//# sourceMappingURL=rollup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAA4B,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;AACH,eAAe,QAAQ,CAAC,MAAM,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rspack plugin export for @effect/unplugin.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* // rspack.config.js
|
|
7
|
+
* const effectPlugin = require("@effect/unplugin/rspack").default
|
|
8
|
+
*
|
|
9
|
+
* module.exports = {
|
|
10
|
+
* plugins: [
|
|
11
|
+
* effectPlugin({
|
|
12
|
+
* sourceTrace: true
|
|
13
|
+
* })
|
|
14
|
+
* ]
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
import { unplugin } from "./index.js";
|
|
21
|
+
/**
|
|
22
|
+
* Rspack plugin for Effect transformations.
|
|
23
|
+
*
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
export default unplugin.rspack;
|
|
27
|
+
//# sourceMappingURL=rspack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rspack.js","sourceRoot":"","sources":["../../src/rspack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAA4B,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;GAIG;AACH,eAAe,QAAQ,CAAC,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transformers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as t from "@babel/types";
|
|
2
|
+
import { isYieldAdapterCall } from "../utils/effectDetection.js";
|
|
3
|
+
import { createHoistingState, extractLabelFromParent, getOrCreateTraceIdentifier } from "../utils/hoisting.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Babel visitor that injects source trace metadata into Effect.gen yields.
|
|
6
|
+
*/
|
|
7
|
+
export function createSourceTraceVisitor(filename, _options) {
|
|
8
|
+
return {
|
|
9
|
+
Program: {
|
|
10
|
+
enter(_path, state) {
|
|
11
|
+
state.filename = filename;
|
|
12
|
+
state.hoisting = createHoistingState();
|
|
13
|
+
},
|
|
14
|
+
exit(path, state) {
|
|
15
|
+
// Prepend all hoisted statements to the program body
|
|
16
|
+
if (state.hoisting.statements.length > 0) {
|
|
17
|
+
path.unshiftContainer("body", state.hoisting.statements);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
YieldExpression(path, state) {
|
|
22
|
+
const node = path.node;
|
|
23
|
+
// Only transform yield* _(effect) patterns
|
|
24
|
+
if (!isYieldAdapterCall(node)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Get source location
|
|
28
|
+
const loc = node.loc;
|
|
29
|
+
if (!loc)
|
|
30
|
+
return;
|
|
31
|
+
// Extract label from parent (e.g., `const user = yield* _(...)`)
|
|
32
|
+
const label = extractLabelFromParent(path);
|
|
33
|
+
// Get or create hoisted trace identifier
|
|
34
|
+
const traceId = getOrCreateTraceIdentifier(state.hoisting, state.filename, loc.start.line, loc.start.column, label);
|
|
35
|
+
// Inject trace as second argument: _(effect) -> _(effect, trace)
|
|
36
|
+
const callExpr = node.argument;
|
|
37
|
+
callExpr.arguments.push(t.cloneNode(traceId));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Creates the source trace transformer plugin.
|
|
43
|
+
*/
|
|
44
|
+
export function sourceTraceTransformer(options) {
|
|
45
|
+
return {
|
|
46
|
+
name: "effect-source-trace",
|
|
47
|
+
visitor: createSourceTraceVisitor("", options)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=sourceTrace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceTrace.js","sourceRoot":"","sources":["../../../src/transformers/sourceTrace.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAE3B,MAAM,sBAAsB,CAAA;AAqB7B;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,QAA6B;IAE7B,OAAO;QACL,OAAO,EAAE;YACP,KAAK,CAAC,KAAK,EAAE,KAAK;gBAChB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;gBACzB,KAAK,CAAC,QAAQ,GAAG,mBAAmB,EAAE,CAAA;YACxC,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,KAAK;gBACd,qDAAqD;gBACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;SACF;QAED,eAAe,CAAC,IAAiC,EAAE,KAAK;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAEtB,2CAA2C;YAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAM;YACR,CAAC;YAED,sBAAsB;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,IAAI,CAAC,GAAG;gBAAE,OAAM;YAEhB,iEAAiE;YACjE,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;YAE1C,yCAAyC;YACzC,MAAM,OAAO,GAAG,0BAA0B,CACxC,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,EACd,GAAG,CAAC,KAAK,CAAC,IAAI,EACd,GAAG,CAAC,KAAK,CAAC,MAAM,EAChB,KAAK,CACN,CAAA;YAED,iEAAiE;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA4B,CAAA;YAClD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA4B;IAIjE,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC;KAC/C,CAAA;AACH,CAAC"}
|