tywrap 0.1.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/LICENSE +21 -0
- package/README.md +319 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +263 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/index.d.ts +41 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +234 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/analyzer.d.ts +63 -0
- package/dist/core/analyzer.d.ts.map +1 -0
- package/dist/core/analyzer.js +676 -0
- package/dist/core/analyzer.js.map +1 -0
- package/dist/core/discovery.d.ts +85 -0
- package/dist/core/discovery.d.ts.map +1 -0
- package/dist/core/discovery.js +344 -0
- package/dist/core/discovery.js.map +1 -0
- package/dist/core/generator.d.ts +37 -0
- package/dist/core/generator.d.ts.map +1 -0
- package/dist/core/generator.js +368 -0
- package/dist/core/generator.js.map +1 -0
- package/dist/core/mapper.d.ts +40 -0
- package/dist/core/mapper.d.ts.map +1 -0
- package/dist/core/mapper.js +401 -0
- package/dist/core/mapper.js.map +1 -0
- package/dist/core/validation.d.ts +79 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +486 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/base.d.ts +12 -0
- package/dist/runtime/base.d.ts.map +1 -0
- package/dist/runtime/base.js +6 -0
- package/dist/runtime/base.js.map +1 -0
- package/dist/runtime/errors.d.ts +17 -0
- package/dist/runtime/errors.d.ts.map +1 -0
- package/dist/runtime/errors.js +21 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/http.d.ts +22 -0
- package/dist/runtime/http.d.ts.map +1 -0
- package/dist/runtime/http.js +79 -0
- package/dist/runtime/http.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +17 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/node.d.ts +48 -0
- package/dist/runtime/node.d.ts.map +1 -0
- package/dist/runtime/node.js +328 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/runtime/optimized-node.d.ts +131 -0
- package/dist/runtime/optimized-node.d.ts.map +1 -0
- package/dist/runtime/optimized-node.js +622 -0
- package/dist/runtime/optimized-node.js.map +1 -0
- package/dist/runtime/protocol.d.ts +3 -0
- package/dist/runtime/protocol.d.ts.map +1 -0
- package/dist/runtime/protocol.js +3 -0
- package/dist/runtime/protocol.js.map +1 -0
- package/dist/runtime/pyodide.d.ts +27 -0
- package/dist/runtime/pyodide.d.ts.map +1 -0
- package/dist/runtime/pyodide.js +191 -0
- package/dist/runtime/pyodide.js.map +1 -0
- package/dist/tools/python_suite.js +173 -0
- package/dist/tools/python_suite.js.map +1 -0
- package/dist/types/index.d.ts +299 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/tywrap.d.ts +29 -0
- package/dist/tywrap.d.ts.map +1 -0
- package/dist/tywrap.js +589 -0
- package/dist/tywrap.js.map +1 -0
- package/dist/utils/bundle-optimizer.d.ts +182 -0
- package/dist/utils/bundle-optimizer.d.ts.map +1 -0
- package/dist/utils/bundle-optimizer.js +680 -0
- package/dist/utils/bundle-optimizer.js.map +1 -0
- package/dist/utils/cache.d.ts +149 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +492 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/codec.d.ts +94 -0
- package/dist/utils/codec.d.ts.map +1 -0
- package/dist/utils/codec.js +150 -0
- package/dist/utils/codec.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +140 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/memory-profiler.d.ts +123 -0
- package/dist/utils/memory-profiler.d.ts.map +1 -0
- package/dist/utils/memory-profiler.js +426 -0
- package/dist/utils/memory-profiler.js.map +1 -0
- package/dist/utils/parallel-processor.d.ts +146 -0
- package/dist/utils/parallel-processor.d.ts.map +1 -0
- package/dist/utils/parallel-processor.js +636 -0
- package/dist/utils/parallel-processor.js.map +1 -0
- package/dist/utils/python.d.ts +8 -0
- package/dist/utils/python.d.ts.map +1 -0
- package/dist/utils/python.js +56 -0
- package/dist/utils/python.js.map +1 -0
- package/dist/utils/runtime.d.ts +153 -0
- package/dist/utils/runtime.d.ts.map +1 -0
- package/dist/utils/runtime.js +519 -0
- package/dist/utils/runtime.js.map +1 -0
- package/package.json +136 -0
- package/runtime/python_bridge.py +476 -0
- package/src/cli.ts +331 -0
- package/src/config/index.ts +289 -0
- package/src/core/analyzer.ts +788 -0
- package/src/core/discovery.ts +415 -0
- package/src/core/generator.ts +447 -0
- package/src/core/mapper.ts +504 -0
- package/src/core/validation.ts +693 -0
- package/src/index.ts +83 -0
- package/src/runtime/base.ts +32 -0
- package/src/runtime/errors.ts +19 -0
- package/src/runtime/http.ts +132 -0
- package/src/runtime/index.ts +24 -0
- package/src/runtime/node.ts +431 -0
- package/src/runtime/optimized-node.ts +838 -0
- package/src/runtime/protocol.ts +2 -0
- package/src/runtime/pyodide.ts +228 -0
- package/src/types/global.d.ts +60 -0
- package/src/types/index.ts +410 -0
- package/src/tywrap.ts +669 -0
- package/src/utils/bundle-optimizer.ts +876 -0
- package/src/utils/cache.ts +634 -0
- package/src/utils/codec.ts +275 -0
- package/src/utils/logger.ts +201 -0
- package/src/utils/memory-profiler.ts +582 -0
- package/src/utils/parallel-processor.ts +879 -0
- package/src/utils/python.ts +79 -0
- package/src/utils/runtime.ts +616 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundle Size Optimization for tywrap
|
|
3
|
+
* Implements tree-shaking, code splitting, and runtime optimization strategies
|
|
4
|
+
*/
|
|
5
|
+
import type { GeneratedCode } from '../types/index.js';
|
|
6
|
+
export interface BundleAnalysis {
|
|
7
|
+
totalSize: number;
|
|
8
|
+
compressedSize: number;
|
|
9
|
+
compressionRatio: number;
|
|
10
|
+
modules: ModuleAnalysis[];
|
|
11
|
+
runtime: RuntimeAnalysis;
|
|
12
|
+
suggestions: OptimizationSuggestion[];
|
|
13
|
+
}
|
|
14
|
+
export interface BundleManifest {
|
|
15
|
+
version: string;
|
|
16
|
+
target: BundleOptions['target'];
|
|
17
|
+
modules: string[];
|
|
18
|
+
runtime: BundleOptions['runtimeMode'] | 'minimal';
|
|
19
|
+
optimizations: {
|
|
20
|
+
treeShaking: boolean;
|
|
21
|
+
minified: boolean;
|
|
22
|
+
compressed: boolean;
|
|
23
|
+
codeSplitting: boolean;
|
|
24
|
+
};
|
|
25
|
+
stats: BundleAnalysis;
|
|
26
|
+
}
|
|
27
|
+
export interface ModuleAnalysis {
|
|
28
|
+
name: string;
|
|
29
|
+
size: number;
|
|
30
|
+
exports: string[];
|
|
31
|
+
imports: string[];
|
|
32
|
+
unusedExports: string[];
|
|
33
|
+
dependencies: string[];
|
|
34
|
+
treeshakeable: boolean;
|
|
35
|
+
complexity: number;
|
|
36
|
+
}
|
|
37
|
+
export interface RuntimeAnalysis {
|
|
38
|
+
coreSize: number;
|
|
39
|
+
bridgeSize: number;
|
|
40
|
+
codecSize: number;
|
|
41
|
+
utilsSize: number;
|
|
42
|
+
totalSize: number;
|
|
43
|
+
minimizable: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface OptimizationSuggestion {
|
|
46
|
+
type: 'tree-shaking' | 'code-splitting' | 'runtime-minimal' | 'compression' | 'lazy-loading';
|
|
47
|
+
severity: 'low' | 'medium' | 'high';
|
|
48
|
+
description: string;
|
|
49
|
+
estimatedSaving: number;
|
|
50
|
+
implementation: string;
|
|
51
|
+
}
|
|
52
|
+
export interface BundleOptions {
|
|
53
|
+
target: 'node' | 'browser' | 'deno' | 'bun' | 'universal';
|
|
54
|
+
minify: boolean;
|
|
55
|
+
compress: boolean;
|
|
56
|
+
treeShaking: boolean;
|
|
57
|
+
codeSplitting: boolean;
|
|
58
|
+
runtimeMode: 'full' | 'minimal' | 'lazy';
|
|
59
|
+
outputFormat: 'esm' | 'cjs' | 'umd';
|
|
60
|
+
}
|
|
61
|
+
export declare class BundleOptimizer {
|
|
62
|
+
private options;
|
|
63
|
+
private generatedModules;
|
|
64
|
+
private analysisCache;
|
|
65
|
+
constructor(options?: Partial<BundleOptions>);
|
|
66
|
+
/**
|
|
67
|
+
* Add generated module for optimization
|
|
68
|
+
*/
|
|
69
|
+
addModule(name: string, code: GeneratedCode): void;
|
|
70
|
+
/**
|
|
71
|
+
* Analyze bundle composition and identify optimization opportunities
|
|
72
|
+
*/
|
|
73
|
+
analyzeBundles(): Promise<BundleAnalysis>;
|
|
74
|
+
/**
|
|
75
|
+
* Analyze individual module
|
|
76
|
+
*/
|
|
77
|
+
private analyzeModule;
|
|
78
|
+
/**
|
|
79
|
+
* Extract export statements from TypeScript code
|
|
80
|
+
*/
|
|
81
|
+
private extractExports;
|
|
82
|
+
/**
|
|
83
|
+
* Extract import statements from TypeScript code
|
|
84
|
+
*/
|
|
85
|
+
private extractImports;
|
|
86
|
+
/**
|
|
87
|
+
* Extract module dependencies
|
|
88
|
+
*/
|
|
89
|
+
private extractDependencies;
|
|
90
|
+
private parseSource;
|
|
91
|
+
/**
|
|
92
|
+
* Calculate code complexity score
|
|
93
|
+
*/
|
|
94
|
+
private calculateComplexity;
|
|
95
|
+
/**
|
|
96
|
+
* Check if code is tree-shakeable
|
|
97
|
+
*/
|
|
98
|
+
private isTreeshakeable;
|
|
99
|
+
/**
|
|
100
|
+
* Analyze runtime overhead
|
|
101
|
+
*/
|
|
102
|
+
private analyzeRuntime;
|
|
103
|
+
/**
|
|
104
|
+
* Estimate bridge size based on target
|
|
105
|
+
*/
|
|
106
|
+
private estimateBridgeSize;
|
|
107
|
+
/**
|
|
108
|
+
* Estimate compressed size using typical compression ratios
|
|
109
|
+
*/
|
|
110
|
+
private estimateCompressedSize;
|
|
111
|
+
/**
|
|
112
|
+
* Generate optimization suggestions
|
|
113
|
+
*/
|
|
114
|
+
private generateOptimizationSuggestions;
|
|
115
|
+
/**
|
|
116
|
+
* Generate optimized bundle with tree-shaking
|
|
117
|
+
*/
|
|
118
|
+
generateOptimizedBundle(): Promise<{
|
|
119
|
+
modules: Map<string, string>;
|
|
120
|
+
runtime: string;
|
|
121
|
+
manifest: BundleManifest;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Apply tree-shaking to remove unused exports
|
|
125
|
+
*/
|
|
126
|
+
private applyTreeShaking;
|
|
127
|
+
/**
|
|
128
|
+
* Find functions that are actually used
|
|
129
|
+
*/
|
|
130
|
+
private findUsedFunctions;
|
|
131
|
+
private getExportedFunctionName;
|
|
132
|
+
private splitWhitespace;
|
|
133
|
+
/**
|
|
134
|
+
* Apply basic minification
|
|
135
|
+
*/
|
|
136
|
+
private applyMinification;
|
|
137
|
+
/**
|
|
138
|
+
* Generate minimal runtime based on target
|
|
139
|
+
*/
|
|
140
|
+
private generateMinimalRuntime;
|
|
141
|
+
/**
|
|
142
|
+
* Generate bridge implementation based on target
|
|
143
|
+
*/
|
|
144
|
+
private generateBridgeImplementation;
|
|
145
|
+
/**
|
|
146
|
+
* Save bundle analysis report
|
|
147
|
+
*/
|
|
148
|
+
saveAnalysisReport(filePath: string): Promise<BundleAnalysis>;
|
|
149
|
+
/**
|
|
150
|
+
* Clear all modules and cache
|
|
151
|
+
*/
|
|
152
|
+
clear(): void;
|
|
153
|
+
}
|
|
154
|
+
interface RollupBundleChunk {
|
|
155
|
+
code?: string;
|
|
156
|
+
}
|
|
157
|
+
type RollupBundle = Record<string, RollupBundleChunk>;
|
|
158
|
+
interface RollupPlugin {
|
|
159
|
+
name: string;
|
|
160
|
+
generateBundle: (options: unknown, bundle: RollupBundle) => void;
|
|
161
|
+
writeBundle: () => Promise<void>;
|
|
162
|
+
}
|
|
163
|
+
interface WebpackAsset {
|
|
164
|
+
source: () => string | Buffer;
|
|
165
|
+
}
|
|
166
|
+
interface WebpackCompilation {
|
|
167
|
+
assets: Record<string, WebpackAsset>;
|
|
168
|
+
}
|
|
169
|
+
interface WebpackCompiler {
|
|
170
|
+
hooks: {
|
|
171
|
+
emit: {
|
|
172
|
+
tap: (name: string, handler: (compilation: WebpackCompilation) => void) => void;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
interface WebpackPlugin {
|
|
177
|
+
apply: (compiler: WebpackCompiler) => void;
|
|
178
|
+
}
|
|
179
|
+
export declare function createRollupPlugin(options?: Partial<BundleOptions>): RollupPlugin;
|
|
180
|
+
export declare function createWebpackPlugin(options?: Partial<BundleOptions>): WebpackPlugin;
|
|
181
|
+
export {};
|
|
182
|
+
//# sourceMappingURL=bundle-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-optimizer.d.ts","sourceRoot":"","sources":["../../src/utils/bundle-optimizer.ts"],"names":[],"mappings":"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"}
|