@macroforge/shared 0.1.40 → 0.1.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -7,6 +7,22 @@
7
7
  * Supported config file names in order of precedence.
8
8
  */
9
9
  export declare const CONFIG_FILES: readonly ["macroforge.config.ts", "macroforge.config.mts", "macroforge.config.js", "macroforge.config.mjs", "macroforge.config.cjs"];
10
+ /**
11
+ * Return type style for generated macro code.
12
+ *
13
+ * - `'vanilla'` (default): Plain TypeScript discriminated unions
14
+ * - Deserialize: `{ success: true; value: T } | { success: false; errors: FieldError[] }`
15
+ * - PartialOrd: `number | null`
16
+ *
17
+ * - `'custom'`: Uses `@rydshift/mirror` types
18
+ * - Deserialize: `Result<T, Array<FieldError>>`
19
+ * - PartialOrd: `Option<number>`
20
+ *
21
+ * - `'effect'`: Uses Effect library types
22
+ * - Deserialize: `Exit<FieldError[], T>`
23
+ * - PartialOrd: `Option.Option<number>`
24
+ */
25
+ export type ReturnTypesMode = "vanilla" | "custom" | "effect";
10
26
  /**
11
27
  * Result from parsing a config file.
12
28
  */
@@ -15,6 +31,36 @@ export interface ConfigLoadResult {
15
31
  generateConvenienceConst: boolean;
16
32
  hasForeignTypes: boolean;
17
33
  foreignTypeCount: number;
34
+ /** Return types mode as a string. Will be "vanilla", "custom", or "effect". */
35
+ returnTypes: string;
36
+ }
37
+ /**
38
+ * Vite plugin configuration options.
39
+ *
40
+ * @remarks
41
+ * These options control the Vite plugin behavior for type generation and metadata emission.
42
+ */
43
+ export interface VitePluginConfig {
44
+ /**
45
+ * Whether to generate `.d.ts` type definition files from expanded code.
46
+ * @default true
47
+ */
48
+ generateTypes?: boolean;
49
+ /**
50
+ * Output directory for generated type definitions, relative to project root.
51
+ * @default ".macroforge/types"
52
+ */
53
+ typesOutputDir?: string;
54
+ /**
55
+ * Whether to emit macro IR metadata as JSON files.
56
+ * @default true
57
+ */
58
+ emitMetadata?: boolean;
59
+ /**
60
+ * Output directory for metadata JSON files, relative to project root.
61
+ * @default ".macroforge/meta"
62
+ */
63
+ metadataOutputDir?: string;
18
64
  }
19
65
  /**
20
66
  * Configuration options loaded from `macroforge.config.js` (or .ts/.mjs/.cjs).
@@ -52,6 +98,21 @@ export interface MacroConfig {
52
98
  * Whether the config has foreign type handlers defined.
53
99
  */
54
100
  hasForeignTypes?: boolean;
101
+ /**
102
+ * Return type style for generated macro code.
103
+ *
104
+ * - `'vanilla'` (default): Plain TypeScript discriminated unions
105
+ * - `'custom'`: Uses `@rydshift/mirror` Result/Option types
106
+ * - `'effect'`: Uses Effect library Exit/Option types
107
+ */
108
+ returnTypes?: ReturnTypesMode;
109
+ /**
110
+ * Vite plugin configuration options.
111
+ *
112
+ * @remarks
113
+ * These options configure the `@macroforge/vite-plugin` behavior.
114
+ */
115
+ vite?: VitePluginConfig;
55
116
  }
56
117
  /**
57
118
  * Function type for loading config content.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,eAAO,MAAM,YAAY,sIAMf,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,KACb,gBAAgB,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,WAAW,CA8Bb"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,eAAO,MAAM,YAAY,sIAMf,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,KACb,gBAAgB,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,WAAW,CA+Bb"}
package/dist/config.js CHANGED
@@ -96,6 +96,7 @@ export function loadMacroConfig(startDir, loadConfigFn) {
96
96
  generateConvenienceConst: result.generateConvenienceConst,
97
97
  configPath,
98
98
  hasForeignTypes: result.hasForeignTypes,
99
+ returnTypes: result.returnTypes,
99
100
  };
100
101
  }
101
102
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AA8DX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,YAA2B;IAE3B,MAAM,QAAQ,GAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAExD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,GAAG,QAAQ;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AAkIX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,YAA2B;IAE3B,MAAM,QAAQ,GAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAExD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,WAAW,EAAE,MAAM,CAAC,WAA8B;aACnD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,GAAG,QAAQ;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  */
12
12
  export { parseMacroImportComments } from "./macro-imports.js";
13
13
  export { getExternalManifest, getExternalMacroInfo, getExternalDecoratorInfo, clearExternalManifestCache, type MacroManifest, type MacroManifestEntry, type DecoratorManifestEntry, type RequireFunction, } from "./external-manifest.js";
14
- export { CONFIG_FILES, findConfigFile, loadMacroConfig, type MacroConfig, type ConfigLoader, type ConfigLoadResult, } from "./config.js";
14
+ export { CONFIG_FILES, findConfigFile, loadMacroConfig, type MacroConfig, type VitePluginConfig, type ConfigLoader, type ConfigLoadResult, } from "./config.js";
15
15
  import { type RequireFunction } from "./external-manifest.js";
16
16
  /**
17
17
  * Collects decorator modules from external macro packages referenced in the code.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,eAAe,GAC1B,MAAM,EAAE,CAQV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,eAAe,GAC1B,MAAM,EAAE,CAQV"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAK3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAwB,MAAM,wBAAwB,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,SAA2B;IAE3B,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAK3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,GAKhB,MAAM,aAAa,CAAC;AAErB,iCAAiC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAwB,MAAM,wBAAwB,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,SAA2B;IAE3B,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@macroforge/shared",
3
- "version": "0.1.40",
3
+ "version": "0.1.43",
4
4
  "description": "Shared utilities for Macroforge plugins",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,12 +24,13 @@
24
24
  "cleanbuild": "npm run clean && npm run build"
25
25
  },
26
26
  "dependencies": {
27
- "macroforge": "^0.1.40"
27
+ "macroforge": "^0.1.43"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "typescript": ">=5.0.0"
31
31
  },
32
32
  "devDependencies": {
33
+ "@types/node": "^22.10.2",
33
34
  "typescript": "^5.9.3"
34
35
  }
35
36
  }