@workflow/builders 4.0.1-beta.5 → 4.0.1-beta.51

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 (88) hide show
  1. package/dist/apply-swc-transform.d.ts +14 -4
  2. package/dist/apply-swc-transform.d.ts.map +1 -1
  3. package/dist/apply-swc-transform.js +59 -9
  4. package/dist/apply-swc-transform.js.map +1 -1
  5. package/dist/base-builder.d.ts +65 -22
  6. package/dist/base-builder.d.ts.map +1 -1
  7. package/dist/base-builder.js +438 -115
  8. package/dist/base-builder.js.map +1 -1
  9. package/dist/build-queue.d.ts +18 -0
  10. package/dist/build-queue.d.ts.map +1 -0
  11. package/dist/build-queue.js +26 -0
  12. package/dist/build-queue.js.map +1 -0
  13. package/dist/config-helpers.d.ts +31 -0
  14. package/dist/config-helpers.d.ts.map +1 -1
  15. package/dist/config-helpers.js +60 -0
  16. package/dist/config-helpers.js.map +1 -1
  17. package/dist/constants.d.ts +2 -2
  18. package/dist/constants.js +2 -2
  19. package/dist/discover-entries-esbuild-plugin.d.ts +2 -3
  20. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
  21. package/dist/discover-entries-esbuild-plugin.js +57 -26
  22. package/dist/discover-entries-esbuild-plugin.js.map +1 -1
  23. package/dist/index.d.ts +9 -3
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +8 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/module-specifier.d.ts +85 -0
  28. package/dist/module-specifier.d.ts.map +1 -0
  29. package/dist/module-specifier.js +437 -0
  30. package/dist/module-specifier.js.map +1 -0
  31. package/dist/module-specifier.test.d.ts +2 -0
  32. package/dist/module-specifier.test.d.ts.map +1 -0
  33. package/dist/module-specifier.test.js +169 -0
  34. package/dist/module-specifier.test.js.map +1 -0
  35. package/dist/node-module-esbuild-plugin.d.ts +37 -0
  36. package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
  37. package/dist/node-module-esbuild-plugin.js +289 -9
  38. package/dist/node-module-esbuild-plugin.js.map +1 -1
  39. package/dist/node-module-esbuild-plugin.test.js +359 -88
  40. package/dist/node-module-esbuild-plugin.test.js.map +1 -1
  41. package/dist/pseudo-package-esbuild-plugin.d.ts +20 -0
  42. package/dist/pseudo-package-esbuild-plugin.d.ts.map +1 -0
  43. package/dist/pseudo-package-esbuild-plugin.js +47 -0
  44. package/dist/pseudo-package-esbuild-plugin.js.map +1 -0
  45. package/dist/pseudo-package-esbuild-plugin.test.d.ts +2 -0
  46. package/dist/pseudo-package-esbuild-plugin.test.d.ts.map +1 -0
  47. package/dist/pseudo-package-esbuild-plugin.test.js +315 -0
  48. package/dist/pseudo-package-esbuild-plugin.test.js.map +1 -0
  49. package/dist/request-converter.d.ts +3 -0
  50. package/dist/request-converter.d.ts.map +1 -0
  51. package/dist/request-converter.js +14 -0
  52. package/dist/request-converter.js.map +1 -0
  53. package/dist/standalone.d.ts +3 -0
  54. package/dist/standalone.d.ts.map +1 -1
  55. package/dist/standalone.js +37 -13
  56. package/dist/standalone.js.map +1 -1
  57. package/dist/swc-esbuild-plugin.d.ts +0 -2
  58. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  59. package/dist/swc-esbuild-plugin.js +33 -15
  60. package/dist/swc-esbuild-plugin.js.map +1 -1
  61. package/dist/transform-utils.d.ts +68 -0
  62. package/dist/transform-utils.d.ts.map +1 -0
  63. package/dist/transform-utils.js +97 -0
  64. package/dist/transform-utils.js.map +1 -0
  65. package/dist/transform-utils.test.d.ts +2 -0
  66. package/dist/transform-utils.test.d.ts.map +1 -0
  67. package/dist/transform-utils.test.js +266 -0
  68. package/dist/transform-utils.test.js.map +1 -0
  69. package/dist/types.d.ts +26 -2
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/types.js +2 -0
  72. package/dist/types.js.map +1 -1
  73. package/dist/vercel-build-output-api.d.ts.map +1 -1
  74. package/dist/vercel-build-output-api.js +36 -14
  75. package/dist/vercel-build-output-api.js.map +1 -1
  76. package/dist/workflow-alias.d.ts +3 -0
  77. package/dist/workflow-alias.d.ts.map +1 -0
  78. package/dist/workflow-alias.js +46 -0
  79. package/dist/workflow-alias.js.map +1 -0
  80. package/dist/workflow-alias.test.d.ts +2 -0
  81. package/dist/workflow-alias.test.d.ts.map +1 -0
  82. package/dist/workflow-alias.test.js +46 -0
  83. package/dist/workflow-alias.test.js.map +1 -0
  84. package/dist/workflows-extractor.d.ts +92 -0
  85. package/dist/workflows-extractor.d.ts.map +1 -0
  86. package/dist/workflows-extractor.js +1476 -0
  87. package/dist/workflows-extractor.js.map +1 -0
  88. package/package.json +10 -9
@@ -13,11 +13,21 @@ export type WorkflowManifest = {
13
13
  };
14
14
  };
15
15
  };
16
+ classes?: {
17
+ [relativeFileName: string]: {
18
+ [className: string]: {
19
+ classId: string;
20
+ };
21
+ };
22
+ };
16
23
  };
17
- export declare function applySwcTransform(filename: string, source: string, mode: 'workflow' | 'step' | 'client' | false, jscConfig?: {
18
- paths?: Record<string, string[]>;
19
- baseUrl?: string;
20
- }): Promise<{
24
+ export declare function applySwcTransform(filename: string, source: string, mode: 'workflow' | 'step' | 'client' | false,
25
+ /**
26
+ * Optional absolute path to the file being transformed.
27
+ * Used for module specifier resolution when filename is relative.
28
+ * If not provided, filename is joined with process.cwd().
29
+ */
30
+ absolutePath?: string): Promise<{
21
31
  code: string;
22
32
  workflowManifest: WorkflowManifest;
23
33
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"apply-swc-transform.d.ts","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE;QACN,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE;QACV,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,EAC5C,SAAS,CAAC,EAAE;IACV,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC,CAyCD"}
1
+ {"version":3,"file":"apply-swc-transform.d.ts","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE;QACN,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE;QACV,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;AAC5C;;;;GAIG;AACH,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC,CA6ED"}
@@ -1,26 +1,76 @@
1
+ import { createRequire } from 'node:module';
2
+ import { dirname, isAbsolute, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
1
4
  import { transform } from '@swc/core';
2
- import { createRequire } from 'module';
3
- const require = createRequire(import.meta.filename);
4
- export async function applySwcTransform(filename, source, mode, jscConfig) {
5
+ import { getDecoratorOptionsForDirectory } from './config-helpers.js';
6
+ import { resolveModuleSpecifier } from './module-specifier.js';
7
+ const require = createRequire(import.meta.url);
8
+ // Cache decorator options per directory - tsconfig doesn't change during a build
9
+ const decoratorOptionsCache = new Map();
10
+ function getDecoratorOptions() {
11
+ const cwd = process.cwd();
12
+ let cached = decoratorOptionsCache.get(cwd);
13
+ if (!cached) {
14
+ cached = getDecoratorOptionsForDirectory(cwd);
15
+ decoratorOptionsCache.set(cwd, cached);
16
+ }
17
+ return cached;
18
+ }
19
+ export async function applySwcTransform(filename, source, mode,
20
+ /**
21
+ * Optional absolute path to the file being transformed.
22
+ * Used for module specifier resolution when filename is relative.
23
+ * If not provided, filename is joined with process.cwd().
24
+ */
25
+ absolutePath) {
26
+ const decoratorOptions = await getDecoratorOptions();
27
+ const swcPluginPath = require.resolve('@workflow/swc-plugin', {
28
+ paths: [dirname(fileURLToPath(import.meta.url))],
29
+ });
5
30
  // Determine if this is a TypeScript file
6
- const isTypeScript = filename.endsWith('.ts') || filename.endsWith('.tsx');
7
- const isTsx = filename.endsWith('.tsx');
31
+ const isTypeScript = filename.endsWith('.ts') ||
32
+ filename.endsWith('.tsx') ||
33
+ filename.endsWith('.mts') ||
34
+ filename.endsWith('.cts');
35
+ // Resolve module specifier for packages (node_modules or workspace packages)
36
+ const projectRoot = process.cwd();
37
+ const absoluteFilename = absolutePath
38
+ ? absolutePath
39
+ : isAbsolute(filename)
40
+ ? filename
41
+ : join(projectRoot, filename);
42
+ const { moduleSpecifier } = resolveModuleSpecifier(absoluteFilename, projectRoot);
8
43
  // Transform with SWC to support syntax esbuild doesn't
9
44
  const result = await transform(source, {
10
45
  filename,
11
46
  swcrc: false,
12
47
  jsc: {
13
48
  parser: {
14
- syntax: isTypeScript ? 'typescript' : 'ecmascript',
15
- tsx: isTsx,
49
+ ...(isTypeScript
50
+ ? {
51
+ syntax: 'typescript',
52
+ tsx: filename.endsWith('.tsx'),
53
+ decorators: decoratorOptions.decorators,
54
+ }
55
+ : {
56
+ syntax: 'ecmascript',
57
+ jsx: filename.endsWith('.jsx'),
58
+ decorators: decoratorOptions.decorators,
59
+ }),
16
60
  },
17
61
  target: 'es2022',
18
62
  experimental: mode
19
63
  ? {
20
- plugins: [[require.resolve('@workflow/swc-plugin'), { mode }]],
64
+ plugins: [[swcPluginPath, { mode, moduleSpecifier }]],
21
65
  }
22
66
  : undefined,
23
- ...jscConfig,
67
+ transform: {
68
+ react: {
69
+ runtime: 'preserve',
70
+ },
71
+ legacyDecorator: decoratorOptions.legacyDecorator,
72
+ decoratorMetadata: decoratorOptions.decoratorMetadata,
73
+ },
24
74
  },
25
75
  // TODO: investigate proper source map support as they
26
76
  // won't even be used in Node.js by default unless we
@@ -1 +1 @@
1
- {"version":3,"file":"apply-swc-transform.js","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAmBpD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,MAAc,EACd,IAA4C,EAC5C,SAIC;IAKD,yCAAyC;IACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExC,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE;QACrC,QAAQ;QACR,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;gBAClD,GAAG,EAAE,KAAK;aACX;YACD,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,IAAI;gBAChB,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC/D;gBACH,CAAC,CAAC,SAAS;YACb,GAAG,SAAS;SACb;QACD,sDAAsD;QACtD,qDAAqD;QACrD,4CAA4C;QAC5C,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAC5C,wCAAwC,CACzC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CACd,CAAC;IAEtB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,gBAAgB,EAAE,eAAe,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"apply-swc-transform.js","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import * as esbuild from 'esbuild';
2
+ import { type WorkflowManifest } from './apply-swc-transform.js';
2
3
  import type { WorkflowConfig } from './types.js';
4
+ export interface DiscoveredEntries {
5
+ discoveredSteps: string[];
6
+ discoveredWorkflows: string[];
7
+ discoveredSerdeFiles: string[];
8
+ }
3
9
  /**
4
10
  * Base class for workflow builders. Provides common build logic for transforming
5
11
  * workflow source files into deployable bundles using esbuild and SWC.
@@ -9,19 +15,25 @@ import type { WorkflowConfig } from './types.js';
9
15
  export declare abstract class BaseBuilder {
10
16
  protected config: WorkflowConfig;
11
17
  constructor(config: WorkflowConfig);
18
+ /**
19
+ * Whether informational BaseBuilder logs should be printed.
20
+ * Subclasses can override this to silence progress logs while keeping warnings/errors.
21
+ */
22
+ protected get shouldLogBaseBuilderInfo(): boolean;
23
+ protected logBaseBuilderInfo(...args: unknown[]): void;
24
+ private logCreateWorkflowsBundleInfo;
25
+ private logCreateWebhookBundleInfo;
26
+ private logCreateManifestInfo;
12
27
  /**
13
28
  * Performs the complete build process for workflows.
14
29
  * Subclasses must implement this to define their specific build steps.
15
30
  */
16
31
  abstract build(): Promise<void>;
17
32
  /**
18
- * Extracts TypeScript path mappings and baseUrl from tsconfig.json/jsconfig.json.
19
- * Used to properly resolve module imports during bundling.
33
+ * Finds tsconfig.json/jsconfig.json for the project.
34
+ * Used by esbuild to properly resolve module imports during bundling.
20
35
  */
21
- protected getTsConfigOptions(): Promise<{
22
- baseUrl?: string;
23
- paths?: Record<string, string[]>;
24
- }>;
36
+ protected findTsConfigPath(): Promise<string | undefined>;
25
37
  /**
26
38
  * Discovers all source files in the configured directories.
27
39
  * Searches for TypeScript and JavaScript files while excluding common build
@@ -35,13 +47,11 @@ export declare abstract class BaseBuilder {
35
47
  * (e.g., when files are added/removed during watch mode).
36
48
  */
37
49
  private discoveredEntries;
38
- protected discoverEntries(inputs: string[], outdir: string): Promise<{
39
- discoveredSteps: string[];
40
- discoveredWorkflows: string[];
41
- }>;
50
+ protected discoverEntries(inputs: string[], outdir: string): Promise<DiscoveredEntries>;
42
51
  /**
43
52
  * Writes debug information to a JSON file for troubleshooting build issues.
44
- * Executes whenever called, regardless of environment variables.
53
+ * Uses atomic write (temp file + rename) to prevent race conditions when
54
+ * multiple builds run concurrently.
45
55
  */
46
56
  private writeDebugFile;
47
57
  /**
@@ -49,36 +59,45 @@ export declare abstract class BaseBuilder {
49
59
  * @param throwOnError - If true, throws an error when esbuild errors are present
50
60
  */
51
61
  private logEsbuildMessages;
62
+ /**
63
+ * Converts an absolute file path to a normalized relative path for the manifest.
64
+ */
65
+ private getRelativeFilepath;
52
66
  /**
53
67
  * Creates a bundle for workflow step functions.
54
68
  * Steps have full Node.js runtime access and handle side effects, API calls, etc.
55
69
  *
56
70
  * @param externalizeNonSteps - If true, only bundles step entry points and externalizes other code
71
+ * @returns Build context (for watch mode) and the collected workflow manifest
57
72
  */
58
- protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, tsBaseUrl, tsPaths, }: {
59
- tsPaths?: Record<string, string[]>;
60
- tsBaseUrl?: string;
73
+ protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, tsconfigPath, discoveredEntries, }: {
74
+ tsconfigPath?: string;
61
75
  inputFiles: string[];
62
76
  outfile: string;
63
77
  format?: 'cjs' | 'esm';
64
78
  externalizeNonSteps?: boolean;
65
- }): Promise<esbuild.BuildContext | undefined>;
79
+ discoveredEntries?: DiscoveredEntries;
80
+ }): Promise<{
81
+ context: esbuild.BuildContext | undefined;
82
+ manifest: WorkflowManifest;
83
+ }>;
66
84
  /**
67
85
  * Creates a bundle for workflow orchestration functions.
68
86
  * Workflows run in a sandboxed VM and coordinate step execution.
69
87
  *
70
88
  * @param bundleFinalOutput - If false, skips the final bundling step (used by Next.js)
71
89
  */
72
- protected createWorkflowsBundle({ inputFiles, format, outfile, bundleFinalOutput, tsBaseUrl, tsPaths, }: {
73
- tsPaths?: Record<string, string[]>;
74
- tsBaseUrl?: string;
90
+ protected createWorkflowsBundle({ inputFiles, format, outfile, bundleFinalOutput, tsconfigPath, discoveredEntries, }: {
91
+ tsconfigPath?: string;
75
92
  inputFiles: string[];
76
93
  outfile: string;
77
94
  format?: 'cjs' | 'esm';
78
95
  bundleFinalOutput?: boolean;
79
- }): Promise<void | {
80
- interimBundleCtx: esbuild.BuildContext;
81
- bundleFinal: (interimBundleResult: string) => Promise<void>;
96
+ discoveredEntries?: DiscoveredEntries;
97
+ }): Promise<{
98
+ manifest: WorkflowManifest;
99
+ interimBundleCtx?: esbuild.BuildContext;
100
+ bundleFinal?: (interimBundleResult: string) => Promise<void>;
82
101
  }>;
83
102
  /**
84
103
  * Creates a client library bundle for workflow execution.
@@ -110,7 +129,7 @@ export declare abstract class BaseBuilder {
110
129
  shouldAddHelpers?: boolean;
111
130
  shouldAddSourcemapSupport?: boolean;
112
131
  experimentalTriggers?: Array<{
113
- type: string;
132
+ type: 'queue/v2beta';
114
133
  topic: string;
115
134
  consumer: string;
116
135
  maxDeliveries?: number;
@@ -127,5 +146,29 @@ export declare abstract class BaseBuilder {
127
146
  */
128
147
  protected ensureDirectory(filePath: string): Promise<void>;
129
148
  private createSwcGitignore;
149
+ /**
150
+ * Whether the manifest should be exposed as a public HTTP route.
151
+ * Controlled by the `WORKFLOW_PUBLIC_MANIFEST` environment variable.
152
+ */
153
+ protected get shouldExposePublicManifest(): boolean;
154
+ /**
155
+ * Whether diagnostics artifacts should be emitted to Vercel output.
156
+ * This is enabled when the resolved world target is Vercel.
157
+ */
158
+ protected get shouldEmitVercelDiagnostics(): boolean;
159
+ /**
160
+ * Creates a manifest JSON file containing step/workflow/class metadata
161
+ * and graph data for visualization.
162
+ *
163
+ * @returns The manifest JSON string, or undefined if manifest creation failed.
164
+ */
165
+ protected createManifest({ workflowBundlePath, manifestDir, manifest, }: {
166
+ workflowBundlePath: string;
167
+ manifestDir: string;
168
+ manifest: WorkflowManifest;
169
+ }): Promise<string | undefined>;
170
+ private convertStepsManifest;
171
+ private convertWorkflowsManifest;
172
+ private convertClassesManifest;
130
173
  }
131
174
  //# sourceMappingURL=base-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}