@rexeus/typeweaver-gen 0.5.0 → 0.6.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.
package/dist/index.d.ts DELETED
@@ -1,276 +0,0 @@
1
- import { IHttpOperationDefinition, IHttpResponseDefinition } from '@rexeus/typeweaver-core';
2
-
3
- type GetResourcesResult = {
4
- entityResources: EntityResources;
5
- sharedResponseResources: SharedResponseResource[];
6
- };
7
- type ExtendedResponseDefinition = IHttpResponseDefinition & {
8
- statusCodeName: string;
9
- isReference: boolean;
10
- };
11
- type EntityName = string;
12
- type OperationResource = {
13
- sourceDir: string;
14
- sourceFile: string;
15
- sourceFileName: string;
16
- definition: Omit<IHttpOperationDefinition, "responses"> & {
17
- responses: ExtendedResponseDefinition[];
18
- };
19
- outputDir: string;
20
- entityName: EntityName;
21
- outputRequestFile: string;
22
- outputRequestFileName: string;
23
- outputResponseFile: string;
24
- outputResponseFileName: string;
25
- outputRequestValidationFile: string;
26
- outputRequestValidationFileName: string;
27
- outputResponseValidationFile: string;
28
- outputResponseValidationFileName: string;
29
- outputClientFile: string;
30
- outputClientFileName: string;
31
- };
32
- type EntityResources = Record<EntityName, {
33
- operations: OperationResource[];
34
- responses: EntityResponseResource[];
35
- }>;
36
- type SharedResponseResource = IHttpResponseDefinition & {
37
- sourceDir: string;
38
- sourceFile: string;
39
- sourceFileName: string;
40
- outputFile: string;
41
- outputFileName: string;
42
- outputDir: string;
43
- };
44
- type EntityResponseResource = IHttpResponseDefinition & {
45
- sourceDir: string;
46
- sourceFile: string;
47
- sourceFileName: string;
48
- outputFile: string;
49
- outputFileName: string;
50
- outputDir: string;
51
- entityName: EntityName;
52
- };
53
-
54
- /**
55
- * Configuration for a typeweaver plugin
56
- */
57
- type PluginConfig = Record<string, unknown>;
58
- /**
59
- * Context provided to plugins during initialization and finalization
60
- */
61
- type PluginContext = {
62
- outputDir: string;
63
- inputDir: string;
64
- config: PluginConfig;
65
- };
66
- /**
67
- * Context provided to plugins during generation
68
- */
69
- type GeneratorContext = PluginContext & {
70
- resources: GetResourcesResult;
71
- templateDir: string;
72
- coreDir: string;
73
- writeFile: (relativePath: string, content: string) => void;
74
- renderTemplate: (templatePath: string, data: unknown) => string;
75
- addGeneratedFile: (relativePath: string) => void;
76
- getGeneratedFiles: () => string[];
77
- };
78
- /**
79
- * Plugin metadata
80
- */
81
- type PluginMetadata = {
82
- name: string;
83
- };
84
- /**
85
- * typeweaver plugin interface
86
- */
87
- type TypeweaverPlugin = PluginMetadata & {
88
- /**
89
- * Initialize the plugin
90
- * Called before any generation happens
91
- */
92
- initialize?(context: PluginContext): Promise<void> | void;
93
- /**
94
- * Collect and transform resources
95
- * Allows plugins to modify the resource collection
96
- */
97
- collectResources?(resources: GetResourcesResult): Promise<GetResourcesResult> | GetResourcesResult;
98
- /**
99
- * Main generation logic
100
- * Called with all resources and utilities
101
- */
102
- generate?(context: GeneratorContext): Promise<void> | void;
103
- /**
104
- * Finalize the plugin
105
- * Called after all generation is complete
106
- */
107
- finalize?(context: PluginContext): Promise<void> | void;
108
- };
109
- /**
110
- * Plugin constructor type
111
- */
112
- type PluginConstructor = new (config?: PluginConfig) => TypeweaverPlugin;
113
- /**
114
- * Plugin module export
115
- */
116
- type PluginModule = {
117
- default: PluginConstructor;
118
- };
119
- /**
120
- * Plugin registration entry
121
- */
122
- type PluginRegistration = {
123
- name: string;
124
- plugin: TypeweaverPlugin;
125
- config?: PluginConfig;
126
- };
127
- /**
128
- * typeweaver configuration
129
- */
130
- type TypeweaverConfig = {
131
- input: string;
132
- output: string;
133
- shared?: string;
134
- plugins?: (string | [string, PluginConfig])[];
135
- prettier?: boolean;
136
- clean?: boolean;
137
- };
138
- /**
139
- * Plugin loading error
140
- */
141
- declare class PluginLoadError extends Error {
142
- pluginName: string;
143
- constructor(pluginName: string, message: string);
144
- }
145
- /**
146
- * Plugin dependency error
147
- */
148
- declare class PluginDependencyError extends Error {
149
- pluginName: string;
150
- missingDependency: string;
151
- constructor(pluginName: string, missingDependency: string);
152
- }
153
-
154
- /**
155
- * Base class for typeweaver plugins
156
- * Provides default implementations and common utilities
157
- */
158
- declare abstract class BasePlugin implements TypeweaverPlugin {
159
- abstract name: string;
160
- description?: string;
161
- author?: string;
162
- depends?: string[];
163
- protected config: PluginConfig;
164
- constructor(config?: PluginConfig);
165
- /**
166
- * Default implementation - override in subclasses if needed
167
- */
168
- initialize(context: PluginContext): Promise<void>;
169
- /**
170
- * Default implementation - override in subclasses if needed
171
- */
172
- collectResources(resources: GetResourcesResult): GetResourcesResult;
173
- /**
174
- * Main generation logic - must be implemented by subclasses
175
- */
176
- abstract generate(context: GeneratorContext): Promise<void> | void;
177
- /**
178
- * Default implementation - override in subclasses if needed
179
- */
180
- finalize(context: PluginContext): Promise<void>;
181
- /**
182
- * Copy lib files from plugin package to generated lib folder
183
- */
184
- protected copyLibFiles(context: GeneratorContext, libSourceDir: string, libNamespace: string): void;
185
- }
186
-
187
- /**
188
- * Base class for template-based generator plugins
189
- * Provides utilities for working with EJS templates
190
- */
191
- declare abstract class BaseTemplatePlugin extends BasePlugin {
192
- /**
193
- * Render an EJS template with the given data
194
- */
195
- protected renderTemplate(templatePath: string, data: unknown): string;
196
- /**
197
- * Write a file relative to the output directory
198
- */
199
- protected writeFile(context: GeneratorContext, relativePath: string, content: string): void;
200
- /**
201
- * Ensure a directory exists
202
- */
203
- protected ensureDir(context: GeneratorContext, relativePath: string): void;
204
- /**
205
- * Get the template path for this plugin
206
- */
207
- protected getTemplatePath(context: GeneratorContext, templateName: string): string;
208
- }
209
-
210
- /**
211
- * Registry for managing typeweaver plugins
212
- */
213
- declare class PluginRegistry {
214
- private plugins;
215
- constructor();
216
- /**
217
- * Register a plugin
218
- */
219
- register(plugin: TypeweaverPlugin, config?: unknown): void;
220
- /**
221
- * Get a registered plugin
222
- */
223
- get(name: string): PluginRegistration | undefined;
224
- /**
225
- * Get all registered plugins
226
- */
227
- getAll(): PluginRegistration[];
228
- /**
229
- * Check if a plugin is registered
230
- */
231
- has(name: string): boolean;
232
- /**
233
- * Clear all registered plugins (except required ones)
234
- */
235
- clear(): void;
236
- }
237
-
238
- /**
239
- * Builder for plugin contexts
240
- */
241
- declare class PluginContextBuilder {
242
- private generatedFiles;
243
- /**
244
- * Create a basic plugin context
245
- */
246
- createPluginContext(params: {
247
- outputDir: string;
248
- inputDir: string;
249
- config: PluginConfig;
250
- }): PluginContext;
251
- /**
252
- * Create a generator context with utilities
253
- */
254
- createGeneratorContext(params: {
255
- outputDir: string;
256
- inputDir: string;
257
- config: PluginConfig;
258
- resources: GetResourcesResult;
259
- templateDir: string;
260
- coreDir: string;
261
- }): GeneratorContext;
262
- /**
263
- * Get all generated files
264
- */
265
- getGeneratedFiles(): string[];
266
- /**
267
- * Clear generated files tracking
268
- */
269
- clearGeneratedFiles(): void;
270
- }
271
-
272
- declare class Path {
273
- static relative(from: string, to: string): string;
274
- }
275
-
276
- export { BasePlugin, BaseTemplatePlugin, type EntityName, type EntityResources, type EntityResponseResource, type ExtendedResponseDefinition, type GeneratorContext, type GetResourcesResult, type OperationResource, Path, type PluginConfig, type PluginConstructor, type PluginContext, PluginContextBuilder, PluginDependencyError, PluginLoadError, type PluginMetadata, type PluginModule, type PluginRegistration, PluginRegistry, type SharedResponseResource, type TypeweaverConfig, type TypeweaverPlugin };
package/dist/index.js DELETED
@@ -1,215 +0,0 @@
1
- import fs from 'node:fs';
2
- import path3 from 'node:path';
3
- import { render } from 'ejs';
4
-
5
- // src/plugins/types.ts
6
- var PluginLoadError = class extends Error {
7
- constructor(pluginName, message) {
8
- super(`Failed to load plugin '${pluginName}': ${message}`);
9
- this.pluginName = pluginName;
10
- this.name = "PluginLoadError";
11
- }
12
- };
13
- var PluginDependencyError = class extends Error {
14
- constructor(pluginName, missingDependency) {
15
- super(
16
- `Plugin '${pluginName}' depends on '${missingDependency}' which is not loaded`
17
- );
18
- this.pluginName = pluginName;
19
- this.missingDependency = missingDependency;
20
- this.name = "PluginDependencyError";
21
- }
22
- };
23
- var BasePlugin = class {
24
- description;
25
- author;
26
- depends;
27
- config;
28
- constructor(config = {}) {
29
- this.config = config;
30
- }
31
- /**
32
- * Default implementation - override in subclasses if needed
33
- */
34
- async initialize(context) {
35
- }
36
- /**
37
- * Default implementation - override in subclasses if needed
38
- */
39
- collectResources(resources) {
40
- return resources;
41
- }
42
- /**
43
- * Default implementation - override in subclasses if needed
44
- */
45
- async finalize(context) {
46
- }
47
- /**
48
- * Copy lib files from plugin package to generated lib folder
49
- */
50
- copyLibFiles(context, libSourceDir, libNamespace) {
51
- const libDir = path3.join(context.outputDir, "lib", libNamespace);
52
- fs.mkdirSync(libDir, { recursive: true });
53
- if (fs.existsSync(libSourceDir)) {
54
- const files = fs.readdirSync(libSourceDir);
55
- for (const file of files) {
56
- const sourcePath = path3.join(libSourceDir, file);
57
- const targetPath = path3.join(libDir, file);
58
- if (fs.statSync(sourcePath).isFile()) {
59
- fs.copyFileSync(sourcePath, targetPath);
60
- }
61
- }
62
- }
63
- }
64
- };
65
- var BaseTemplatePlugin = class extends BasePlugin {
66
- /**
67
- * Render an EJS template with the given data
68
- */
69
- renderTemplate(templatePath, data) {
70
- const template = fs.readFileSync(templatePath, "utf8");
71
- return render(template, data);
72
- }
73
- /**
74
- * Write a file relative to the output directory
75
- */
76
- writeFile(context, relativePath, content) {
77
- context.writeFile(relativePath, content);
78
- }
79
- /**
80
- * Ensure a directory exists
81
- */
82
- ensureDir(context, relativePath) {
83
- const fullPath = path3.join(context.outputDir, relativePath);
84
- fs.mkdirSync(fullPath, { recursive: true });
85
- }
86
- /**
87
- * Get the template path for this plugin
88
- */
89
- getTemplatePath(context, templateName) {
90
- return path3.join(context.templateDir, templateName);
91
- }
92
- };
93
-
94
- // src/plugins/PluginRegistry.ts
95
- var PluginRegistry = class {
96
- plugins;
97
- constructor() {
98
- this.plugins = /* @__PURE__ */ new Map();
99
- }
100
- /**
101
- * Register a plugin
102
- */
103
- register(plugin, config) {
104
- if (this.plugins.has(plugin.name)) {
105
- console.info(
106
- `Skipping duplicate registration of required plugin: ${plugin.name}`
107
- );
108
- return;
109
- }
110
- const registration = {
111
- name: plugin.name,
112
- plugin,
113
- config
114
- };
115
- this.plugins.set(plugin.name, registration);
116
- console.info(`Registered plugin: ${plugin.name}`);
117
- }
118
- /**
119
- * Get a registered plugin
120
- */
121
- get(name) {
122
- return this.plugins.get(name);
123
- }
124
- /**
125
- * Get all registered plugins
126
- */
127
- getAll() {
128
- return Array.from(this.plugins.values());
129
- }
130
- /**
131
- * Check if a plugin is registered
132
- */
133
- has(name) {
134
- return this.plugins.has(name);
135
- }
136
- /**
137
- * Clear all registered plugins (except required ones)
138
- */
139
- clear() {
140
- this.plugins.clear();
141
- }
142
- };
143
- var PluginContextBuilder = class {
144
- generatedFiles = /* @__PURE__ */ new Set();
145
- /**
146
- * Create a basic plugin context
147
- */
148
- createPluginContext(params) {
149
- return {
150
- outputDir: params.outputDir,
151
- inputDir: params.inputDir,
152
- config: params.config
153
- };
154
- }
155
- /**
156
- * Create a generator context with utilities
157
- */
158
- createGeneratorContext(params) {
159
- const pluginContext = this.createPluginContext(params);
160
- return {
161
- ...pluginContext,
162
- resources: params.resources,
163
- templateDir: params.templateDir,
164
- coreDir: params.coreDir,
165
- // Utility functions
166
- writeFile: (relativePath, content) => {
167
- const fullPath = path3.join(params.outputDir, relativePath);
168
- const dir = path3.dirname(fullPath);
169
- fs.mkdirSync(dir, { recursive: true });
170
- fs.writeFileSync(fullPath, content);
171
- this.generatedFiles.add(relativePath);
172
- console.info(`Generated: ${relativePath}`);
173
- },
174
- renderTemplate: (templatePath, data) => {
175
- const fullTemplatePath = path3.isAbsolute(templatePath) ? templatePath : path3.join(params.templateDir, templatePath);
176
- const template = fs.readFileSync(fullTemplatePath, "utf8");
177
- return render(template, data);
178
- },
179
- addGeneratedFile: (relativePath) => {
180
- this.generatedFiles.add(relativePath);
181
- },
182
- getGeneratedFiles: () => {
183
- return Array.from(this.generatedFiles);
184
- }
185
- };
186
- }
187
- /**
188
- * Get all generated files
189
- */
190
- getGeneratedFiles() {
191
- return Array.from(this.generatedFiles);
192
- }
193
- /**
194
- * Clear generated files tracking
195
- */
196
- clearGeneratedFiles() {
197
- this.generatedFiles.clear();
198
- }
199
- };
200
- var Path = class {
201
- static relative(from, to) {
202
- const relativePath = path3.relative(from, to);
203
- if (relativePath.includes("node_modules")) {
204
- const parts = relativePath.split(path3.sep);
205
- const index = parts.indexOf("node_modules");
206
- return parts.slice(index + 1).join(path3.sep);
207
- }
208
- if (!relativePath.startsWith("./") && !relativePath.startsWith("../")) {
209
- return `./${relativePath}`;
210
- }
211
- return relativePath;
212
- }
213
- };
214
-
215
- export { BasePlugin, BaseTemplatePlugin, Path, PluginContextBuilder, PluginDependencyError, PluginLoadError, PluginRegistry };
@@ -1 +0,0 @@
1
- {"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js":{"bytes":569,"imports":[],"format":"esm"},"src/Resource.ts":{"bytes":1587,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/types.ts":{"bytes":2732,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/BasePlugin.ts":{"bytes":2072,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/BaseTemplatePlugin.ts":{"bytes":1312,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"src/plugins/BasePlugin.ts","kind":"import-statement","original":"./BasePlugin"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/PluginRegistry.ts":{"bytes":1322,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/PluginContext.ts":{"bytes":2430,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/index.ts":{"bytes":234,"imports":[{"path":"src/plugins/types.ts","kind":"import-statement","original":"./types"},{"path":"src/plugins/BasePlugin.ts","kind":"import-statement","original":"./BasePlugin"},{"path":"src/plugins/BaseTemplatePlugin.ts","kind":"import-statement","original":"./BaseTemplatePlugin"},{"path":"src/plugins/PluginRegistry.ts","kind":"import-statement","original":"./PluginRegistry"},{"path":"src/plugins/PluginContext.ts","kind":"import-statement","original":"./PluginContext"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/helpers/Path.ts":{"bytes":595,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":87,"imports":[{"path":"src/Resource.ts","kind":"import-statement","original":"./Resource"},{"path":"src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"src/helpers/Path.ts","kind":"import-statement","original":"./helpers/Path"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/cjs_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.cjs":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"exports":["BasePlugin","BaseTemplatePlugin","Path","PluginContextBuilder","PluginDependencyError","PluginLoadError","PluginRegistry"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/plugins/types.ts":{"bytesInOutput":551},"src/plugins/index.ts":{"bytesInOutput":0},"src/plugins/BasePlugin.ts":{"bytesInOutput":1145},"src/plugins/BaseTemplatePlugin.ts":{"bytesInOutput":861},"src/plugins/PluginRegistry.ts":{"bytesInOutput":950},"src/plugins/PluginContext.ts":{"bytesInOutput":1785},"src/helpers/Path.ts":{"bytesInOutput":490}},"bytes":6106}}}
@@ -1 +0,0 @@
1
- {"inputs":{"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js":{"bytes":322,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:url","kind":"import-statement","external":true}],"format":"esm"},"src/Resource.ts":{"bytes":1587,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/types.ts":{"bytes":2732,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/BasePlugin.ts":{"bytes":2072,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/BaseTemplatePlugin.ts":{"bytes":1312,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"src/plugins/BasePlugin.ts","kind":"import-statement","original":"./BasePlugin"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/PluginRegistry.ts":{"bytes":1322,"imports":[{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/PluginContext.ts":{"bytes":2430,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/plugins/index.ts":{"bytes":234,"imports":[{"path":"src/plugins/types.ts","kind":"import-statement","original":"./types"},{"path":"src/plugins/BasePlugin.ts","kind":"import-statement","original":"./BasePlugin"},{"path":"src/plugins/BaseTemplatePlugin.ts","kind":"import-statement","original":"./BaseTemplatePlugin"},{"path":"src/plugins/PluginRegistry.ts","kind":"import-statement","original":"./PluginRegistry"},{"path":"src/plugins/PluginContext.ts","kind":"import-statement","original":"./PluginContext"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/helpers/Path.ts":{"bytes":595,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":87,"imports":[{"path":"src/Resource.ts","kind":"import-statement","original":"./Resource"},{"path":"src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"src/helpers/Path.ts","kind":"import-statement","original":"./helpers/Path"},{"path":"/home/runner/work/typeweaver/typeweaver/node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3/node_modules/tsup/assets/esm_shims.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"ejs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"exports":["BasePlugin","BaseTemplatePlugin","Path","PluginContextBuilder","PluginDependencyError","PluginLoadError","PluginRegistry"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/plugins/types.ts":{"bytesInOutput":551},"src/plugins/index.ts":{"bytesInOutput":0},"src/plugins/BasePlugin.ts":{"bytesInOutput":1145},"src/plugins/BaseTemplatePlugin.ts":{"bytesInOutput":861},"src/plugins/PluginRegistry.ts":{"bytesInOutput":950},"src/plugins/PluginContext.ts":{"bytesInOutput":1785},"src/helpers/Path.ts":{"bytesInOutput":490}},"bytes":6106}}}