@chuckcchen/vite-plugin 1.0.3 → 1.0.5

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/bundler.d.ts CHANGED
@@ -1,66 +1,26 @@
1
1
  /**
2
2
  * EdgeOne Vite Plugin Adapter - Server Bundling Module
3
3
  *
4
- * This module handles server-side code bundling using esbuild, main features include:
4
+ * Handles server-side code bundling using esbuild:
5
5
  * - Bundle framework's server build artifacts into a single file
6
6
  * - Generate HTTP request handling wrapper code
7
- * - Handle Node.js request to Web API Request conversion
8
7
  */
9
8
  import * as esbuild from "esbuild";
10
9
  import type { BuildContext, ServerBundleConfig, ServerWrapperConfig } from "./types.js";
11
10
  /**
12
11
  * Bundle server code using esbuild
13
- *
14
- * Bundle server entry file and all dependencies into a single JavaScript file
15
- * for running in EdgeOne edge function environment
16
- *
17
- * @param context - Build context containing project root and logger
18
- * @param config - Bundle configuration including entry points, output path, etc.
19
- * @returns esbuild build result containing metadata info
20
- *
21
- * @example
22
- * await bundleServerCode(context, {
23
- * entryPoints: ['server-wrapper.temp.js'],
24
- * outfile: '.edgeone/server-handler/handler.js'
25
- * });
26
12
  */
27
13
  export declare function bundleServerCode(context: BuildContext, config: ServerBundleConfig): Promise<esbuild.BuildResult>;
28
14
  /**
29
15
  * Create server wrapper file
30
16
  *
31
- * Wrap framework's server build artifacts into a unified HTTP request handler.
32
- * The wrapper is responsible for:
33
- * 1. Converting Node.js IncomingMessage to Web API Request object
34
- * 2. Calling framework's request handler function
35
- * 3. Exporting unified request handling interface
36
- *
37
- * @param context - Build context
38
- * @param config - Wrapper configuration
39
- * @returns Path to generated temporary wrapper file
40
- *
41
- * @example
42
- * const wrapperPath = await createServerWrapper(context, {
43
- * serverEntryPath: 'build/server/index.js'
44
- * });
17
+ * Wraps framework's server build into a unified HTTP request handler.
45
18
  */
46
19
  export declare function createServerWrapper(context: BuildContext, config: ServerWrapperConfig): Promise<string>;
47
20
  /**
48
21
  * Cleanup temporary wrapper file
49
- * Delete temporarily generated wrapper file after bundling completes
50
- *
51
- * @param wrapperPath - Wrapper file path
52
- */
53
- export declare function cleanupWrapper(wrapperPath: string): Promise<void>;
54
- /**
55
- * Get bundle result file size
56
- *
57
- * @param result - esbuild build result
58
- * @returns Bundled file size in bytes, returns 0 if unavailable
59
- *
60
- * @example
61
- * const result = await bundleServerCode(context, config);
62
- * const size = getBundleSize(result);
63
- * console.log(`Bundle size: ${formatSize(size)}`);
64
22
  */
65
- export declare function getBundleSize(result: esbuild.BuildResult): number;
23
+ export declare function cleanupWrapper(wrapperPath: string, logger?: {
24
+ verbose?: (msg: string) => void;
25
+ }): Promise<void>;
66
26
  //# sourceMappingURL=bundler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAaxF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA+B9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;AAkGD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,MAAM,CAWjE"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAYxF;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA6B9B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrH"}
package/dist/bundler.js CHANGED
@@ -1,18 +1,16 @@
1
1
  /**
2
2
  * EdgeOne Vite Plugin Adapter - Server Bundling Module
3
3
  *
4
- * This module handles server-side code bundling using esbuild, main features include:
4
+ * Handles server-side code bundling using esbuild:
5
5
  * - Bundle framework's server build artifacts into a single file
6
6
  * - Generate HTTP request handling wrapper code
7
- * - Handle Node.js request to Web API Request conversion
8
7
  */
9
8
  import * as esbuild from "esbuild";
10
9
  import path from "path";
11
- import { readFile, writeFile, deleteFile, ensureDirectory } from "./utils.js";
10
+ import { writeFile, deleteFile, ensureDirectory, generateServerWrapperCode, readFile } from "./utils.js";
12
11
  /**
13
12
  * Default ESM compatibility banner code
14
13
  * Provides CommonJS require, __filename, __dirname support in ESM modules
15
- * This is because some dependencies may still use CommonJS syntax
16
14
  */
17
15
  const DEFAULT_BANNER = `import { createRequire } from 'node:module';
18
16
  const require = createRequire(import.meta.url);
@@ -20,43 +18,28 @@ const __filename = new URL('', import.meta.url).pathname;
20
18
  const __dirname = new URL('.', import.meta.url).pathname;`;
21
19
  /**
22
20
  * Bundle server code using esbuild
23
- *
24
- * Bundle server entry file and all dependencies into a single JavaScript file
25
- * for running in EdgeOne edge function environment
26
- *
27
- * @param context - Build context containing project root and logger
28
- * @param config - Bundle configuration including entry points, output path, etc.
29
- * @returns esbuild build result containing metadata info
30
- *
31
- * @example
32
- * await bundleServerCode(context, {
33
- * entryPoints: ['server-wrapper.temp.js'],
34
- * outfile: '.edgeone/server-handler/handler.js'
35
- * });
36
21
  */
37
22
  export async function bundleServerCode(context, config) {
38
23
  const { projectRoot, logger } = context;
39
24
  logger.verbose("Bundling server code...");
40
- // Ensure output directory exists
41
25
  await ensureDirectory(path.dirname(config.outfile));
42
- // Bundle using esbuild
43
26
  const result = await esbuild.build({
44
- entryPoints: config.entryPoints, // Entry file list
45
- bundle: true, // Enable bundling, pack all dependencies together
46
- platform: "node", // Target platform is Node.js
47
- target: "node18", // Target Node.js version
48
- format: "esm", // Output format is ESM
49
- outfile: config.outfile, // Output file path
50
- minify: false, // Don't minify for easier debugging
51
- treeShaking: true, // Enable tree shaking to remove unused code
52
- external: ["node:*", ...(config.external || [])], // Exclude Node.js built-in modules
53
- metafile: true, // Generate metafile for bundle analysis
54
- logLevel: "warning", // Log level
55
- absWorkingDir: projectRoot, // Working directory
27
+ entryPoints: config.entryPoints,
28
+ bundle: true,
29
+ platform: "node",
30
+ target: "node18",
31
+ format: "esm",
32
+ outfile: config.outfile,
33
+ minify: false,
34
+ treeShaking: true,
35
+ external: ["node:*", ...(config.external || [])],
36
+ metafile: true,
37
+ logLevel: "warning",
38
+ absWorkingDir: projectRoot,
56
39
  banner: {
57
- js: DEFAULT_BANNER, // Add ESM compatibility banner
40
+ js: DEFAULT_BANNER,
58
41
  },
59
- ...config.esbuildOptions, // Merge additional esbuild options
42
+ ...config.esbuildOptions,
60
43
  });
61
44
  logger.verbose(`Server code bundled to: ${config.outfile}`);
62
45
  return result;
@@ -64,37 +47,27 @@ export async function bundleServerCode(context, config) {
64
47
  /**
65
48
  * Create server wrapper file
66
49
  *
67
- * Wrap framework's server build artifacts into a unified HTTP request handler.
68
- * The wrapper is responsible for:
69
- * 1. Converting Node.js IncomingMessage to Web API Request object
70
- * 2. Calling framework's request handler function
71
- * 3. Exporting unified request handling interface
72
- *
73
- * @param context - Build context
74
- * @param config - Wrapper configuration
75
- * @returns Path to generated temporary wrapper file
76
- *
77
- * @example
78
- * const wrapperPath = await createServerWrapper(context, {
79
- * serverEntryPath: 'build/server/index.js'
80
- * });
50
+ * Wraps framework's server build into a unified HTTP request handler.
81
51
  */
82
52
  export async function createServerWrapper(context, config) {
83
53
  const { projectRoot, logger } = context;
84
54
  logger.verbose("Creating server wrapper...");
85
- // Read original server build content
86
- const serverBuildContent = await readFile(config.serverEntryPath);
87
- // Generate wrapper content
88
55
  let wrapperContent;
89
56
  if (config.wrapperTemplate) {
90
- // Use custom template, replace placeholders
57
+ // Use custom template
58
+ const serverBuildContent = await readFile(config.serverEntryPath);
91
59
  wrapperContent = config.wrapperTemplate.replace("{{SERVER_BUILD_CONTENT}}", serverBuildContent);
92
60
  }
93
61
  else {
94
- // Use default wrapper template
95
- wrapperContent = generateDefaultWrapper(serverBuildContent, config);
62
+ // Use generateServerWrapperCode from utils
63
+ wrapperContent = await generateServerWrapperCode({
64
+ serverEntryPath: config.serverEntryPath,
65
+ handlerSetup: config.banner || "",
66
+ handlerCall: "handler(webRequest, ...args)",
67
+ mode: "inline",
68
+ additionalExports: config.exports,
69
+ });
96
70
  }
97
- // Write to temporary file
98
71
  const tempPath = path.join(projectRoot, "server-wrapper.temp.js");
99
72
  await writeFile(tempPath, wrapperContent);
100
73
  logger.verbose("Server wrapper created");
@@ -102,128 +75,13 @@ export async function createServerWrapper(context, config) {
102
75
  }
103
76
  /**
104
77
  * Cleanup temporary wrapper file
105
- * Delete temporarily generated wrapper file after bundling completes
106
- *
107
- * @param wrapperPath - Wrapper file path
108
78
  */
109
- export async function cleanupWrapper(wrapperPath) {
79
+ export async function cleanupWrapper(wrapperPath, logger) {
110
80
  try {
111
81
  await deleteFile(wrapperPath);
112
82
  }
113
- catch {
114
- // Ignore delete errors (file may not exist)
83
+ catch (error) {
84
+ logger?.verbose?.(`Failed to cleanup wrapper file ${wrapperPath}: ${error instanceof Error ? error.message : String(error)}`);
115
85
  }
116
86
  }
117
- /**
118
- * Generate default server wrapper code
119
- *
120
- * Wrapper code contains:
121
- * 1. Original server build content
122
- * 2. Node.js request to Web Request conversion function
123
- * 3. Unified request handler export
124
- *
125
- * @param serverBuildContent - Original server build code content
126
- * @param config - Wrapper configuration
127
- * @returns Generated wrapper code string
128
- */
129
- function generateDefaultWrapper(serverBuildContent, config) {
130
- const banner = config.banner || "";
131
- const exports = config.exports || [];
132
- // Build export statement
133
- const exportsStr = exports.length > 0
134
- ? exports.join(", ")
135
- : "default as handler";
136
- return `// ========== Server Build Content ==========
137
- ${serverBuildContent}
138
-
139
- // ========== HTTP Server Wrapper ==========
140
- ${banner}
141
-
142
- /**
143
- * Convert Node.js IncomingMessage to Web API Request
144
- *
145
- * EdgeOne edge functions use Web API standard Request/Response,
146
- * but some framework server builds may expect Node.js style request objects.
147
- * This function handles the conversion.
148
- *
149
- * @param nodeReq - Node.js IncomingMessage object
150
- * @returns Web API Request object
151
- */
152
- function nodeRequestToWebRequest(nodeReq) {
153
- // Build complete URL
154
- // Determine protocol based on whether connection is encrypted
155
- const protocol = nodeReq.connection?.encrypted ? 'https' : 'http';
156
- const host = nodeReq.headers.host || 'localhost';
157
- const url = \`\${protocol}://\${host}\${nodeReq.url}\`;
158
-
159
- // Convert request headers
160
- // Node.js headers are plain objects, need to convert to Headers instance
161
- const headers = new Headers();
162
- for (const [key, value] of Object.entries(nodeReq.headers)) {
163
- if (value) {
164
- if (Array.isArray(value)) {
165
- // Multi-value headers (like Set-Cookie) need multiple appends
166
- value.forEach(v => headers.append(key, v));
167
- } else {
168
- headers.set(key, value);
169
- }
170
- }
171
- }
172
-
173
- // Build Request init options
174
- const init = {
175
- method: nodeReq.method,
176
- headers: headers,
177
- };
178
-
179
- // Add request body for non-GET/HEAD requests
180
- // GET and HEAD requests should not have body
181
- if (nodeReq.method !== 'GET' && nodeReq.method !== 'HEAD') {
182
- init.body = nodeReq;
183
- }
184
-
185
- return new Request(url, init);
186
- }
187
-
188
- /**
189
- * Node.js request handler wrapper function
190
- *
191
- * This is the main entry exported for EdgeOne edge functions to call.
192
- * Responsible for converting Node.js request before passing to framework handler.
193
- *
194
- * @param nodeReq - Node.js request object
195
- * @param args - Other arguments (e.g. env variables, context, etc.)
196
- * @returns Framework handler return value (usually Response object)
197
- */
198
- async function nodeRequestHandler(nodeReq, ...args) {
199
- const webRequest = nodeRequestToWebRequest(nodeReq);
200
- return handler(webRequest, ...args);
201
- }
202
-
203
- export default nodeRequestHandler;
204
- export { ${exportsStr} };
205
- `;
206
- }
207
- /**
208
- * Get bundle result file size
209
- *
210
- * @param result - esbuild build result
211
- * @returns Bundled file size in bytes, returns 0 if unavailable
212
- *
213
- * @example
214
- * const result = await bundleServerCode(context, config);
215
- * const size = getBundleSize(result);
216
- * console.log(`Bundle size: ${formatSize(size)}`);
217
- */
218
- export function getBundleSize(result) {
219
- // Need metafile to get size info
220
- if (!result.metafile)
221
- return 0;
222
- const outputs = result.metafile.outputs;
223
- const outputKeys = Object.keys(outputs);
224
- if (outputKeys.length === 0)
225
- return 0;
226
- // Return size of first output file
227
- return outputs[outputKeys[0]].bytes;
228
- }
229
87
  //# sourceMappingURL=bundler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../src/bundler.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -20,15 +20,7 @@ import type { CoreAdapterOptions } from "./types.js";
20
20
  * @returns Vite plugin instance
21
21
  *
22
22
  * @example
23
- * // Basic usage
24
23
  * createCoreAdapter({ verbose: true })
25
- *
26
- * @example
27
- * // Using framework adapter
28
- * createCoreAdapter({
29
- * adapter: myFrameworkAdapter,
30
- * outputDir: '.edgeone'
31
- * })
32
24
  */
33
25
  export declare function createCoreAdapter(options?: CoreAdapterOptions): Plugin;
34
26
  export default createCoreAdapter;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAepB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAiJ1E;AAgTD,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAepB;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAqI1E;AA8RD,eAAe,iBAAiB,CAAC"}
package/dist/core.js CHANGED
@@ -22,25 +22,17 @@ import fs from "fs/promises";
22
22
  * @returns Vite plugin instance
23
23
  *
24
24
  * @example
25
- * // Basic usage
26
25
  * createCoreAdapter({ verbose: true })
27
- *
28
- * @example
29
- * // Using framework adapter
30
- * createCoreAdapter({
31
- * adapter: myFrameworkAdapter,
32
- * outputDir: '.edgeone'
33
- * })
34
26
  */
35
27
  export function createCoreAdapter(options = {}) {
36
28
  // Destructure config options with defaults
37
29
  const { verbose = false, // Enable verbose logging
38
- outputDir = ".edgeone", // Output directory
39
- cleanOutput = true, // Clean output directory before build
40
30
  adapter, // Framework adapter instance
41
31
  hooks = {}, // Custom hook functions
42
32
  ssr: ssrOption, // SSR mode configuration
43
33
  } = options;
34
+ // Fixed output directory
35
+ const outputDir = ".edgeone";
44
36
  // Create logger instance
45
37
  const logger = createLogger(verbose);
46
38
  // Plugin state variables
@@ -78,23 +70,11 @@ export function createCoreAdapter(options = {}) {
78
70
  logger.verbose("SSR mode:", isSSR);
79
71
  },
80
72
  /**
81
- * Hook called after build artifacts are written
82
- * This is where the main adapter processing logic resides
73
+ * Hook called after entire build process completes
74
+ * Using closeBundle instead of writeBundle to ensure all files are generated
75
+ * (including prerendered pages which may be generated in later stages)
83
76
  */
84
- async writeBundle(options, _bundle) {
85
- // Get the actual output directory from writeBundle options
86
- // This is more reliable than viteConfig.build.outDir in Vite 7 environment mode
87
- const actualOutDir = options.dir || viteConfig.build.outDir;
88
- // Detect if current build is SSR build based on output directory
89
- const isBuildingForSSR = detectSSRBuildFromOutDir(actualOutDir);
90
- logger.verbose("Build type:", isBuildingForSSR ? "SSR" : "Client");
91
- logger.verbose("Build outDir:", actualOutDir);
92
- // If in SSR mode but currently building client, skip
93
- // Wait for SSR build to complete before processing
94
- if (isSSR && !isBuildingForSSR) {
95
- logger.verbose("Skipping processing (waiting for SSR build to complete)");
96
- return;
97
- }
77
+ async closeBundle() {
98
78
  // Prevent duplicate processing
99
79
  if (hasProcessed) {
100
80
  logger.verbose("Skipping processing (already processed)");
@@ -136,9 +116,7 @@ export function createCoreAdapter(options = {}) {
136
116
  await hooks.afterBuild(context, artifacts);
137
117
  }
138
118
  // Clean output directory
139
- if (cleanOutput) {
140
- await cleanOutputDir(context);
141
- }
119
+ await cleanOutputDir(context);
142
120
  // Copy static assets
143
121
  if (artifacts.clientDir) {
144
122
  await copyStaticAssets(context, artifacts.clientDir);
@@ -147,8 +125,10 @@ export function createCoreAdapter(options = {}) {
147
125
  if (isSSR && artifacts.serverEntry) {
148
126
  await bundleServer(context, artifacts, adapter);
149
127
  }
150
- // Generate meta.json config file
151
- await generateMetaJson(context, adapter);
128
+ // Generate meta.json config file (only for SSR mode with server entry)
129
+ if (artifacts.serverEntry) {
130
+ await generateMetaJson(context, adapter);
131
+ }
152
132
  logger.verbose("EdgeOne adapter processing complete");
153
133
  }
154
134
  catch (error) {
@@ -158,25 +138,6 @@ export function createCoreAdapter(options = {}) {
158
138
  },
159
139
  };
160
140
  }
161
- /**
162
- * Detect if current build is SSR build based on output directory
163
- *
164
- * @param outDir - Output directory path
165
- * @returns Whether this is an SSR build
166
- */
167
- function detectSSRBuildFromOutDir(outDir) {
168
- if (!outDir)
169
- return false;
170
- // Normalize path separators
171
- const normalizedOutDir = outDir.replace(/\\/g, "/");
172
- // Check if output directory indicates server/SSR build
173
- return (normalizedOutDir.endsWith("/server") ||
174
- normalizedOutDir === "dist/server" ||
175
- normalizedOutDir === "server" ||
176
- normalizedOutDir.includes("/server/") ||
177
- normalizedOutDir.endsWith("/ssr") ||
178
- normalizedOutDir === "ssr");
179
- }
180
141
  /**
181
142
  * Detect build artifacts using default paths
182
143
  *
@@ -399,12 +360,10 @@ async function generateMetaJson(context, adapter) {
399
360
  }
400
361
  // Convert config to JSON string
401
362
  const metaContent = JSON.stringify(metaConfig, null, 2);
402
- // In SSR mode, also write a copy in server-handler directory
403
- if (isSSR) {
404
- const serverMetaPath = path.join(projectRoot, outputDir, "server-handler", "meta.json");
405
- await writeFile(serverMetaPath, metaContent);
406
- }
407
- // Write meta.json in output root directory
363
+ // Write meta.json in server-handler directory (for SSR runtime)
364
+ const serverMetaPath = path.join(projectRoot, outputDir, "server-handler", "meta.json");
365
+ await writeFile(serverMetaPath, metaContent);
366
+ // Write meta.json in output root directory (for deployment)
408
367
  const rootMetaPath = path.join(projectRoot, outputDir, "meta.json");
409
368
  await writeFile(rootMetaPath, metaContent);
410
369
  logger.verbose(`meta.json generated with ${routes.length} routes`);
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}