@stacksjs/stx 0.2.143 → 0.2.145

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.
@@ -32,8 +32,6 @@ export function hasUserImports(code) {
32
32
  const source = match[1];
33
33
  if (/\.css(?:\?.*)?$/.test(source))
34
34
  continue;
35
- if (source === "@stacksjs/browser")
36
- continue;
37
35
  if (!EXTERNAL_PATTERNS.some((p) => p.test(source))) {
38
36
  logBundlerDiagnostic("detected side-effect import:", source);
39
37
  return !0;
@@ -94,6 +94,7 @@ export declare interface VendorCssImport {
94
94
  export declare interface BrowserCoreAutoImportResult {
95
95
  code: string
96
96
  imports: string[]
97
+ models: string[]
97
98
  }
98
99
  // =============================================================================
99
100
  // Types
@@ -270,13 +270,19 @@ export function injectBrowserCoreAutoImports(code) {
270
270
  if (explicitlyImported.has(symbol) || locallyDeclared.has(symbol))
271
271
  return !1;
272
272
  return new RegExp(`\\b${symbol}\\b`).test(code);
273
- });
274
- if (imports.length === 0)
275
- return { code, imports };
273
+ }), models = detectModelUsage(code).filter((model) => !explicitlyImported.has(model) && !locallyDeclared.has(model));
274
+ if (imports.length === 0 && models.length === 0)
275
+ return { code, imports, models };
276
276
  return {
277
- code: `import { ${imports.join(", ")} } from '@stacksjs/browser'
277
+ code: `${[
278
+ imports.length > 0 ? `import { ${imports.join(", ")} } from '@stacksjs/browser'` : "",
279
+ models.length > 0 ? "import '@stacksjs/browser'" : "",
280
+ models.length > 0 ? `const { ${models.join(", ")} } = window.StacksBrowser || {}` : ""
281
+ ].filter(Boolean).join(`
282
+ `)}
278
283
  ${code}`,
279
- imports
284
+ imports,
285
+ models
280
286
  };
281
287
  }
282
288
  const JS_BUILTINS = new Set([
@@ -813,7 +819,7 @@ export async function processClientScript(scriptContent, options = {}) {
813
819
  code = cssExtraction.code;
814
820
  const vendorStyleTags = renderVendorStyleTags(cssExtraction.styles), browserCoreImports = injectBrowserCoreAutoImports(code);
815
821
  code = browserCoreImports.code;
816
- bundledBrowserImports = browserCoreImports.imports;
822
+ bundledBrowserImports = [...browserCoreImports.imports, ...browserCoreImports.models];
817
823
  const { hasUserImports, bundleClientScript } = await importOnce("stx/client-script-bundler", () => import("./client-script-bundler.js"));
818
824
  if (hasUserImports(code)) {
819
825
  code = await bundleClientScript(code, options.filePath || "", {