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.
Files changed (137) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +319 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +263 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/config/index.d.ts +41 -0
  8. package/dist/config/index.d.ts.map +1 -0
  9. package/dist/config/index.js +234 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/core/analyzer.d.ts +63 -0
  12. package/dist/core/analyzer.d.ts.map +1 -0
  13. package/dist/core/analyzer.js +676 -0
  14. package/dist/core/analyzer.js.map +1 -0
  15. package/dist/core/discovery.d.ts +85 -0
  16. package/dist/core/discovery.d.ts.map +1 -0
  17. package/dist/core/discovery.js +344 -0
  18. package/dist/core/discovery.js.map +1 -0
  19. package/dist/core/generator.d.ts +37 -0
  20. package/dist/core/generator.d.ts.map +1 -0
  21. package/dist/core/generator.js +368 -0
  22. package/dist/core/generator.js.map +1 -0
  23. package/dist/core/mapper.d.ts +40 -0
  24. package/dist/core/mapper.d.ts.map +1 -0
  25. package/dist/core/mapper.js +401 -0
  26. package/dist/core/mapper.js.map +1 -0
  27. package/dist/core/validation.d.ts +79 -0
  28. package/dist/core/validation.d.ts.map +1 -0
  29. package/dist/core/validation.js +486 -0
  30. package/dist/core/validation.js.map +1 -0
  31. package/dist/index.d.ts +26 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +29 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/runtime/base.d.ts +12 -0
  36. package/dist/runtime/base.d.ts.map +1 -0
  37. package/dist/runtime/base.js +6 -0
  38. package/dist/runtime/base.js.map +1 -0
  39. package/dist/runtime/errors.d.ts +17 -0
  40. package/dist/runtime/errors.d.ts.map +1 -0
  41. package/dist/runtime/errors.js +21 -0
  42. package/dist/runtime/errors.js.map +1 -0
  43. package/dist/runtime/http.d.ts +22 -0
  44. package/dist/runtime/http.d.ts.map +1 -0
  45. package/dist/runtime/http.js +79 -0
  46. package/dist/runtime/http.js.map +1 -0
  47. package/dist/runtime/index.d.ts +8 -0
  48. package/dist/runtime/index.d.ts.map +1 -0
  49. package/dist/runtime/index.js +17 -0
  50. package/dist/runtime/index.js.map +1 -0
  51. package/dist/runtime/node.d.ts +48 -0
  52. package/dist/runtime/node.d.ts.map +1 -0
  53. package/dist/runtime/node.js +328 -0
  54. package/dist/runtime/node.js.map +1 -0
  55. package/dist/runtime/optimized-node.d.ts +131 -0
  56. package/dist/runtime/optimized-node.d.ts.map +1 -0
  57. package/dist/runtime/optimized-node.js +622 -0
  58. package/dist/runtime/optimized-node.js.map +1 -0
  59. package/dist/runtime/protocol.d.ts +3 -0
  60. package/dist/runtime/protocol.d.ts.map +1 -0
  61. package/dist/runtime/protocol.js +3 -0
  62. package/dist/runtime/protocol.js.map +1 -0
  63. package/dist/runtime/pyodide.d.ts +27 -0
  64. package/dist/runtime/pyodide.d.ts.map +1 -0
  65. package/dist/runtime/pyodide.js +191 -0
  66. package/dist/runtime/pyodide.js.map +1 -0
  67. package/dist/tools/python_suite.js +173 -0
  68. package/dist/tools/python_suite.js.map +1 -0
  69. package/dist/types/index.d.ts +299 -0
  70. package/dist/types/index.d.ts.map +1 -0
  71. package/dist/types/index.js +5 -0
  72. package/dist/types/index.js.map +1 -0
  73. package/dist/tywrap.d.ts +29 -0
  74. package/dist/tywrap.d.ts.map +1 -0
  75. package/dist/tywrap.js +589 -0
  76. package/dist/tywrap.js.map +1 -0
  77. package/dist/utils/bundle-optimizer.d.ts +182 -0
  78. package/dist/utils/bundle-optimizer.d.ts.map +1 -0
  79. package/dist/utils/bundle-optimizer.js +680 -0
  80. package/dist/utils/bundle-optimizer.js.map +1 -0
  81. package/dist/utils/cache.d.ts +149 -0
  82. package/dist/utils/cache.d.ts.map +1 -0
  83. package/dist/utils/cache.js +492 -0
  84. package/dist/utils/cache.js.map +1 -0
  85. package/dist/utils/codec.d.ts +94 -0
  86. package/dist/utils/codec.d.ts.map +1 -0
  87. package/dist/utils/codec.js +150 -0
  88. package/dist/utils/codec.js.map +1 -0
  89. package/dist/utils/logger.d.ts +42 -0
  90. package/dist/utils/logger.d.ts.map +1 -0
  91. package/dist/utils/logger.js +140 -0
  92. package/dist/utils/logger.js.map +1 -0
  93. package/dist/utils/memory-profiler.d.ts +123 -0
  94. package/dist/utils/memory-profiler.d.ts.map +1 -0
  95. package/dist/utils/memory-profiler.js +426 -0
  96. package/dist/utils/memory-profiler.js.map +1 -0
  97. package/dist/utils/parallel-processor.d.ts +146 -0
  98. package/dist/utils/parallel-processor.d.ts.map +1 -0
  99. package/dist/utils/parallel-processor.js +636 -0
  100. package/dist/utils/parallel-processor.js.map +1 -0
  101. package/dist/utils/python.d.ts +8 -0
  102. package/dist/utils/python.d.ts.map +1 -0
  103. package/dist/utils/python.js +56 -0
  104. package/dist/utils/python.js.map +1 -0
  105. package/dist/utils/runtime.d.ts +153 -0
  106. package/dist/utils/runtime.d.ts.map +1 -0
  107. package/dist/utils/runtime.js +519 -0
  108. package/dist/utils/runtime.js.map +1 -0
  109. package/package.json +136 -0
  110. package/runtime/python_bridge.py +476 -0
  111. package/src/cli.ts +331 -0
  112. package/src/config/index.ts +289 -0
  113. package/src/core/analyzer.ts +788 -0
  114. package/src/core/discovery.ts +415 -0
  115. package/src/core/generator.ts +447 -0
  116. package/src/core/mapper.ts +504 -0
  117. package/src/core/validation.ts +693 -0
  118. package/src/index.ts +83 -0
  119. package/src/runtime/base.ts +32 -0
  120. package/src/runtime/errors.ts +19 -0
  121. package/src/runtime/http.ts +132 -0
  122. package/src/runtime/index.ts +24 -0
  123. package/src/runtime/node.ts +431 -0
  124. package/src/runtime/optimized-node.ts +838 -0
  125. package/src/runtime/protocol.ts +2 -0
  126. package/src/runtime/pyodide.ts +228 -0
  127. package/src/types/global.d.ts +60 -0
  128. package/src/types/index.ts +410 -0
  129. package/src/tywrap.ts +669 -0
  130. package/src/utils/bundle-optimizer.ts +876 -0
  131. package/src/utils/cache.ts +634 -0
  132. package/src/utils/codec.ts +275 -0
  133. package/src/utils/logger.ts +201 -0
  134. package/src/utils/memory-profiler.ts +582 -0
  135. package/src/utils/parallel-processor.ts +879 -0
  136. package/src/utils/python.ts +79 -0
  137. 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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"}