@base44-preview/vite-plugin 0.2.16-pr.25.411dcb7 → 0.2.16-pr.25.4154914

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.
@@ -1 +1 @@
1
- {"version":3,"file":"html-injections-plugin.d.ts","sourceRoot":"","sources":["../src/html-injections-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,EAAE;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,GAwEM,MAAM,CACZ"}
1
+ {"version":3,"file":"html-injections-plugin.d.ts","sourceRoot":"","sources":["../src/html-injections-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAyCnC,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,EAAE;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,GAiCM,MAAM,CACZ"}
@@ -1,74 +1,63 @@
1
+ const INJECTIONS = {
2
+ unhandledErrors: {
3
+ src: "/node_modules/@base44/vite-plugin/dist/injections/unhandled-errors-handlers.js",
4
+ injectTo: "head",
5
+ when: "dev",
6
+ },
7
+ sandboxMount: {
8
+ src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-mount-observer.js",
9
+ injectTo: "body",
10
+ when: "dev",
11
+ },
12
+ hmrNotifier: {
13
+ src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-hmr-notifier.js",
14
+ injectTo: "head",
15
+ when: "dev",
16
+ },
17
+ navigationNotifier: {
18
+ src: "/node_modules/@base44/vite-plugin/dist/injections/navigation-notifier.js",
19
+ injectTo: "head",
20
+ when: "dev",
21
+ },
22
+ visualEditAgent: {
23
+ src: "/node_modules/@base44/vite-plugin/dist/injections/visual-edit-agent.js",
24
+ injectTo: "body",
25
+ when: "dev",
26
+ },
27
+ analyticsTracker: {
28
+ src: "/node_modules/@base44/vite-plugin/dist/injections/analytics-tracker.js",
29
+ injectTo: "head",
30
+ when: "production",
31
+ },
32
+ };
1
33
  export function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker, }) {
34
+ // Always-on injections in dev mode
35
+ const enabledInjections = {
36
+ unhandledErrors: true,
37
+ sandboxMount: true,
38
+ hmrNotifier,
39
+ navigationNotifier,
40
+ visualEditAgent,
41
+ analyticsTracker,
42
+ };
2
43
  return {
3
44
  name: "html-injections",
4
- apply: (config) => config.mode !== "production",
5
- transformIndexHtml() {
6
- return [
7
- {
8
- tag: "script",
9
- attrs: {
10
- src: "/node_modules/@base44/vite-plugin/dist/injections/unhandled-errors-handlers.js",
11
- type: "module",
12
- },
13
- injectTo: "head",
14
- },
15
- {
45
+ transformIndexHtml: {
46
+ order: "pre",
47
+ handler(_html, ctx) {
48
+ const isProductionBuild = ctx.bundle !== undefined;
49
+ const currentMode = isProductionBuild ? "production" : "dev";
50
+ return Object.entries(INJECTIONS)
51
+ .filter(([key, injection]) => enabledInjections[key] && injection.when === currentMode)
52
+ .map(([, injection]) => ({
16
53
  tag: "script",
17
54
  attrs: {
18
- src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-mount-observer.js",
55
+ src: injection.src,
19
56
  type: "module",
20
57
  },
21
- injectTo: "body",
22
- },
23
- ...(hmrNotifier
24
- ? [
25
- {
26
- tag: "script",
27
- attrs: {
28
- src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-hmr-notifier.js",
29
- type: "module",
30
- },
31
- injectTo: "head",
32
- },
33
- ]
34
- : []),
35
- ...(navigationNotifier
36
- ? [
37
- {
38
- tag: "script",
39
- attrs: {
40
- src: "/node_modules/@base44/vite-plugin/dist/injections/navigation-notifier.js",
41
- type: "module",
42
- },
43
- injectTo: "head",
44
- },
45
- ]
46
- : []),
47
- ...(visualEditAgent
48
- ? [
49
- {
50
- tag: "script",
51
- attrs: {
52
- src: "/node_modules/@base44/vite-plugin/dist/injections/visual-edit-agent.js",
53
- type: "module",
54
- },
55
- injectTo: "body",
56
- },
57
- ]
58
- : []),
59
- ...(analyticsTracker
60
- ? [
61
- {
62
- tag: "script",
63
- attrs: {
64
- src: "/node_modules/@base44/vite-plugin/dist/injections/analytics-tracker.js",
65
- type: "module",
66
- },
67
- injectTo: "head",
68
- },
69
- ]
70
- : []),
71
- ];
58
+ injectTo: injection.injectTo,
59
+ }));
60
+ },
72
61
  },
73
62
  };
74
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html-injections-plugin.js","sourceRoot":"","sources":["../src/html-injections-plugin.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,EACnC,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GAMjB;IACC,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QAC/C,kBAAkB;YAChB,OAAO;gBACL;oBACE,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,gFAAgF;wBACrF,IAAI,EAAE,QAAQ;qBACf;oBACD,QAAQ,EAAE,MAAM;iBACjB;gBACD;oBACE,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,6EAA6E;wBAClF,IAAI,EAAE,QAAQ;qBACf;oBACD,QAAQ,EAAE,MAAM;iBACjB;gBACD,GAAG,CAAC,WAAW;oBACb,CAAC,CAAC;wBACE;4BACE,GAAG,EAAE,QAAQ;4BACb,KAAK,EAAE;gCACL,GAAG,EAAE,2EAA2E;gCAChF,IAAI,EAAE,QAAQ;6BACf;4BACD,QAAQ,EAAE,MAAM;yBACjB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,kBAAkB;oBACpB,CAAC,CAAC;wBACE;4BACE,GAAG,EAAE,QAAQ;4BACb,KAAK,EAAE;gCACL,GAAG,EAAE,0EAA0E;gCAC/E,IAAI,EAAE,QAAQ;6BACf;4BACD,QAAQ,EAAE,MAAM;yBACjB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,eAAe;oBACjB,CAAC,CAAC;wBACE;4BACE,GAAG,EAAE,QAAQ;4BACb,KAAK,EAAE;gCACL,GAAG,EAAE,wEAAwE;gCAC7E,IAAI,EAAE,QAAQ;6BACf;4BACD,QAAQ,EAAE,MAAM;yBACjB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,gBAAgB;oBAClB,CAAC,CAAC;wBACE;4BACE,GAAG,EAAE,QAAQ;4BACb,KAAK,EAAE;gCACL,GAAG,EAAE,wEAAwE;gCAC7E,IAAI,EAAE,QAAQ;6BACf;4BACD,QAAQ,EAAE,MAAM;yBACjB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;KACQ,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"html-injections-plugin.js","sourceRoot":"","sources":["../src/html-injections-plugin.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,GAA8B;IAC5C,eAAe,EAAE;QACf,GAAG,EAAE,gFAAgF;QACrF,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,6EAA6E;QAClF,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ;IACD,WAAW,EAAE;QACX,GAAG,EAAE,2EAA2E;QAChF,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ;IACD,kBAAkB,EAAE;QAClB,GAAG,EAAE,0EAA0E;QAC/E,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ;IACD,eAAe,EAAE;QACf,GAAG,EAAE,wEAAwE;QAC7E,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,wEAAwE;QAC7E,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,YAAY;KACnB;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,EACnC,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GAMjB;IACC,mCAAmC;IACnC,MAAM,iBAAiB,GAA4B;QACjD,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI;QAClB,WAAW;QACX,kBAAkB;QAClB,eAAe;QACf,gBAAgB;KACjB,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,kBAAkB,EAAE;YAClB,KAAK,EAAE,KAAK;YACZ,OAAO,CAAC,KAAK,EAAE,GAAG;gBAChB,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;gBACnD,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE7D,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;qBAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAC3B,iBAAiB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,CACzD;qBACA,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvB,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,SAAS,CAAC,GAAG;wBAClB,IAAI,EAAE,QAAQ;qBACf;oBACD,QAAQ,EAAE,SAAS,CAAC,QAAQ;iBAC7B,CAAC,CAAC,CAAC;YACR,CAAC;SACF;KACQ,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAS/C,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACvB,iBAoNP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAS/C,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACvB,iBAgNP"}
package/dist/index.js CHANGED
@@ -11,25 +11,20 @@ export default function vitePlugin(opts = {}) {
11
11
  name: "base44",
12
12
  config: ({ mode, root = process.cwd() }) => {
13
13
  const env = loadEnv(mode ?? "development", root, "");
14
- const isProductionBuild = mode === "production";
15
14
  return {
16
15
  resolve: {
17
16
  alias: {
18
17
  "@/": "/src/",
19
18
  },
20
19
  },
21
- define: {
22
- // Expose MODAL_SANDBOX_ID to browser - empty in production builds so analytics tracks
23
- "import.meta.env.MODAL_SANDBOX_ID": isProductionBuild
24
- ? JSON.stringify("")
25
- : JSON.stringify(process.env.MODAL_SANDBOX_ID || ""),
26
- ...(legacySDKImports
27
- ? {
20
+ ...(legacySDKImports
21
+ ? {
22
+ define: {
28
23
  "process.env.VITE_BASE44_APP_ID": JSON.stringify(env.VITE_BASE44_APP_ID),
29
24
  "process.env.VITE_BASE44_BACKEND_URL": JSON.stringify(env.VITE_BASE44_BACKEND_URL),
30
- }
31
- : {}),
32
- },
25
+ },
26
+ }
27
+ : {}),
33
28
  ...(isRunningInSandbox
34
29
  ? {
35
30
  server: {
@@ -154,9 +149,10 @@ export default function vitePlugin(opts = {}) {
154
149
  },
155
150
  errorOverlayPlugin(),
156
151
  visualEditPlugin(),
157
- htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
158
152
  ]
159
153
  : []),
154
+ // HTML injections - handles both dev (sandbox) and production injections
155
+ htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
160
156
  ];
161
157
  }
162
158
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,OAMI,EAAE;IAEN,MAAM,EACJ,gBAAgB,GAAG,KAAK,EACxB,WAAW,GAAG,KAAK,EACnB,kBAAkB,GAAG,KAAK,EAC1B,eAAe,GAAG,KAAK,EACvB,gBAAgB,GAAG,KAAK,GACzB,GAAG,IAAI,CAAC;IAET,OAAO;QACL;YACE,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gBACzC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAErD,OAAO;oBACL,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,IAAI,EAAE,OAAO;yBACd;qBACF;oBACD,GAAG,CAAC,gBAAgB;wBAClB,CAAC,CAAC;4BACE,MAAM,EAAE;gCACN,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAC9C,GAAG,CAAC,kBAAkB,CACvB;gCACD,qCAAqC,EAAE,IAAI,CAAC,SAAS,CACnD,GAAG,CAAC,uBAAuB,CAC5B;6BACF;yBACF;wBACH,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,kBAAkB;wBACpB,CAAC,CAAE;4BACC,MAAM,EAAE;gCACN,IAAI,EAAE,IAAI;gCACV,IAAI,EAAE,SAAS,EAAE,8CAA8C;gCAC/D,IAAI,EAAE,IAAI;gCACV,UAAU,EAAE,IAAI;gCAChB,oDAAoD;gCACpD,YAAY,EAAE,IAAI;gCAClB,KAAK,EAAE;oCACL,gEAAgE;oCAChE,UAAU,EAAE,IAAI;oCAChB,QAAQ,EAAE,GAAG,EAAE,uCAAuC;oCACtD,yDAAyD;oCACzD,gBAAgB,EAAE;wCAChB,kBAAkB,EAAE,GAAG;wCACvB,YAAY,EAAE,EAAE;qCACjB;iCACF;6BACF;4BACD,KAAK,EAAE;gCACL,aAAa,EAAE;oCACb,MAAM,CAAC,OAAO,EAAE,IAAI;wCAClB,sCAAsC;wCACtC,IACE,OAAO,CAAC,IAAI,KAAK,mBAAmB;4CACpC,OAAO,CAAC,IAAI,KAAK,gBAAgB,EACjC,CAAC;4CACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wCACtD,CAAC;wCACD,iCAAiC;wCACjC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAChB,CAAC;iCACF;6BACF;yBACsB;wBAC3B,CAAC,CAAC,CAAC,GAAG,EAAE;4BACJ,IAAI,GAAG,CAAC,wBAAwB,EAAE,CAAC;gCACjC,OAAO,CAAC,GAAG,CACT,mCAAmC,GAAG,CAAC,wBAAwB,EAAE,CAClE,CAAC;gCACF,OAAO;oCACL,MAAM,EAAE;wCACN,KAAK,EAAE;4CACL,MAAM,EAAE;gDACN,MAAM,EAAE,GAAG,CAAC,wBAAwB;gDACpC,YAAY,EAAE,IAAI;6CACnB;yCACF;qCACF;iCACF,CAAC;4BACJ,CAAC;4BACD,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC,CAAC,EAAE,CAAC;oBACT,YAAY,EAAE;wBACZ,GAAG,CAAC,kBAAkB;4BACpB,CAAC,CAAC;gCACE,OAAO,EAAE,uBAAuB,CAC9B;oCACE,OAAO;oCACP,WAAW;oCACX,eAAe;oCACf,QAAQ;oCACR,QAAQ;oCACR,aAAa;iCACd,EACD,IAAI,CACL;6BACF;4BACH,CAAC,CAAC,EAAE,CAAC;wBACP,cAAc,EAAE;4BACd,MAAM,EAAE;gCACN,KAAK,EAAE,KAAK;6BACb;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;gBACvC,yEAAyE;gBACzE,2EAA2E;gBAC3E,IAAI,gBAAgB,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAC3C,MAAM,EACN,QAAQ,EACR,OAAO,CACR,CAAC;oBAEF,IAAI,kBAAkB,EAAE,CAAC;wBACvB,OAAO,kBAAkB,CAAC;oBAC5B,CAAC;oBAED,iFAAiF;oBACjF,uEAAuE;oBACvE,8CAA8C;oBAC9C,IACE,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC;wBACrC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAClC,CAAC;wBACD,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,iEAAiE;oBACjE,IACE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;wBAC5B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;4BAC1C,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAC7C,CAAC;wBACD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACjC,OAAO,IAAI,CAAC,OAAO,CACjB,yCAAyC,EACzC,QAAQ,EACR,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAClC,OAAO,IAAI,CAAC,OAAO,CACjB,0CAA0C,EAC1C,QAAQ,EACR,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC,OAAO,CACjB,6CAA6C,EAC7C,QAAQ,EACR,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/B,OAAO,IAAI,CAAC,OAAO,CACjB,uCAAuC,EACvC,QAAQ,EACR,OAAO,CACR,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACQ;QACX,GAAG,CAAC,kBAAkB;YACpB,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,YAAY;oBAClB,eAAe,CAAC,MAAM;wBACpB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;4BACxC,yBAAyB;4BACzB,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;4BAC7C,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;4BAC/D,IAAI,EAAE,CAAC;wBACT,CAAC,CAAC,CAAC;oBACL,CAAC;iBACQ;gBACX,kBAAkB,EAAE;gBACpB,gBAAgB,EAAE;aACnB;YACH,CAAC,CAAC,EAAE,CAAC;QACP,yEAAyE;QACzE,oBAAoB,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;KAC7F,CAAC;AACJ,CAAC"}
@@ -1,48 +1,39 @@
1
- // Only track page views in production (MODAL_SANDBOX_ID not set)
2
- if (!import.meta.env.MODAL_SANDBOX_ID) {
3
- let lastPath = "";
4
- function getPageNameFromPath(path) {
5
- const segments = path.split("/").filter(Boolean);
6
- return segments[0] || null;
7
- }
8
- async function initAnalytics() {
9
- try {
10
- // @ts-expect-error - SDK is provided by the consuming app, not this package
11
- const { createClient } = await import("@base44/sdk");
12
- const client = createClient({
13
- appId: import.meta.env.VITE_BASE44_APP_ID,
14
- serverUrl: import.meta.env.VITE_BASE44_BACKEND_URL || "",
15
- });
16
- function trackPageView() {
17
- const path = window.location.pathname;
18
- if (path === lastPath)
19
- return;
20
- lastPath = path;
21
- const pageName = getPageNameFromPath(path) || "home";
22
- client.appLogs.logUserInApp(pageName).catch(() => { });
23
- }
24
- // Intercept history.pushState
25
- const originalPushState = history.pushState.bind(history);
26
- history.pushState = function (...args) {
27
- originalPushState(...args);
28
- trackPageView();
29
- };
30
- // Intercept history.replaceState
31
- const originalReplaceState = history.replaceState.bind(history);
32
- history.replaceState = function (...args) {
33
- originalReplaceState(...args);
34
- trackPageView();
35
- };
36
- // Handle browser back/forward navigation
37
- window.addEventListener("popstate", trackPageView);
38
- // Track initial page view
39
- trackPageView();
40
- }
41
- catch {
42
- // Silently fail if SDK is not available
43
- }
44
- }
45
- initAnalytics();
1
+ // Analytics tracker - tracks page views in production
2
+ // This script is only injected in production builds
3
+ let lastPath = "";
4
+ function getPageNameFromPath(path) {
5
+ const segments = path.split("/").filter(Boolean);
6
+ return segments[0] || null;
46
7
  }
8
+ function trackPageView() {
9
+ const path = window.location.pathname;
10
+ if (path === lastPath)
11
+ return;
12
+ lastPath = path;
13
+ const pageName = getPageNameFromPath(path) || "home";
14
+ const appId = import.meta.env.VITE_BASE44_APP_ID;
15
+ const serverUrl = import.meta.env.VITE_BASE44_BACKEND_URL || "";
16
+ if (!appId)
17
+ return;
18
+ fetch(`${serverUrl}/app-logs/${appId}/log-user-in-app/${pageName}`, {
19
+ method: "POST",
20
+ }).catch(() => { });
21
+ }
22
+ // Intercept history.pushState
23
+ const originalPushState = history.pushState.bind(history);
24
+ history.pushState = function (...args) {
25
+ originalPushState(...args);
26
+ trackPageView();
27
+ };
28
+ // Intercept history.replaceState
29
+ const originalReplaceState = history.replaceState.bind(history);
30
+ history.replaceState = function (...args) {
31
+ originalReplaceState(...args);
32
+ trackPageView();
33
+ };
34
+ // Handle browser back/forward navigation
35
+ window.addEventListener("popstate", trackPageView);
36
+ // Track initial page view
37
+ trackPageView();
47
38
  export {};
48
39
  //# sourceMappingURL=analytics-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-tracker.js","sourceRoot":"","sources":["../../src/injections/analytics-tracker.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACtC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,SAAS,mBAAmB,CAAC,IAAY;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,IAAI,CAAC;YACH,4EAA4E;YAC5E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB;gBACzC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE;aACzD,CAAC,CAAC;YAEH,SAAS,aAAa;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACtC,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO;gBAC9B,QAAQ,GAAG,IAAI,CAAC;gBAEhB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;gBACrD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YAED,8BAA8B;YAC9B,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI;gBACnC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3B,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC;YAEF,iCAAiC;YACjC,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChE,OAAO,CAAC,YAAY,GAAG,UAAU,GAAG,IAAI;gBACtC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC9B,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC;YAEF,yCAAyC;YACzC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAEnD,0BAA0B;YAC1B,aAAa,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED,aAAa,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"analytics-tracker.js","sourceRoot":"","sources":["../../src/injections/analytics-tracker.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,oDAAoD;AAEpD,IAAI,QAAQ,GAAG,EAAE,CAAC;AAElB,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACtC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9B,QAAQ,GAAG,IAAI,CAAC;IAEhB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;IAEhE,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,KAAK,CAAC,GAAG,SAAS,aAAa,KAAK,oBAAoB,QAAQ,EAAE,EAAE;QAClE,MAAM,EAAE,MAAM;KACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,8BAA8B;AAC9B,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1D,OAAO,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI;IACnC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,iCAAiC;AACjC,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChE,OAAO,CAAC,YAAY,GAAG,UAAU,GAAG,IAAI;IACtC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEnD,0BAA0B;AAC1B,aAAa,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base44-preview/vite-plugin",
3
- "version": "0.2.16-pr.25.411dcb7",
3
+ "version": "0.2.16-pr.25.4154914",
4
4
  "description": "The Vite plugin for base44 based applications",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,5 +1,44 @@
1
1
  import type { Plugin } from "vite";
2
2
 
3
+ type Injection = {
4
+ src: string;
5
+ injectTo: "head" | "body";
6
+ when: "dev" | "production";
7
+ };
8
+
9
+ const INJECTIONS: Record<string, Injection> = {
10
+ unhandledErrors: {
11
+ src: "/node_modules/@base44/vite-plugin/dist/injections/unhandled-errors-handlers.js",
12
+ injectTo: "head",
13
+ when: "dev",
14
+ },
15
+ sandboxMount: {
16
+ src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-mount-observer.js",
17
+ injectTo: "body",
18
+ when: "dev",
19
+ },
20
+ hmrNotifier: {
21
+ src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-hmr-notifier.js",
22
+ injectTo: "head",
23
+ when: "dev",
24
+ },
25
+ navigationNotifier: {
26
+ src: "/node_modules/@base44/vite-plugin/dist/injections/navigation-notifier.js",
27
+ injectTo: "head",
28
+ when: "dev",
29
+ },
30
+ visualEditAgent: {
31
+ src: "/node_modules/@base44/vite-plugin/dist/injections/visual-edit-agent.js",
32
+ injectTo: "body",
33
+ when: "dev",
34
+ },
35
+ analyticsTracker: {
36
+ src: "/node_modules/@base44/vite-plugin/dist/injections/analytics-tracker.js",
37
+ injectTo: "head",
38
+ when: "production",
39
+ },
40
+ };
41
+
3
42
  export function htmlInjectionsPlugin({
4
43
  hmrNotifier,
5
44
  navigationNotifier,
@@ -11,76 +50,37 @@ export function htmlInjectionsPlugin({
11
50
  visualEditAgent: boolean;
12
51
  analyticsTracker: boolean;
13
52
  }) {
53
+ // Always-on injections in dev mode
54
+ const enabledInjections: Record<string, boolean> = {
55
+ unhandledErrors: true,
56
+ sandboxMount: true,
57
+ hmrNotifier,
58
+ navigationNotifier,
59
+ visualEditAgent,
60
+ analyticsTracker,
61
+ };
62
+
14
63
  return {
15
64
  name: "html-injections",
16
- apply: (config) => config.mode !== "production",
17
- transformIndexHtml() {
18
- return [
19
- {
20
- tag: "script",
21
- attrs: {
22
- src: "/node_modules/@base44/vite-plugin/dist/injections/unhandled-errors-handlers.js",
23
- type: "module",
24
- },
25
- injectTo: "head",
26
- },
27
- {
28
- tag: "script",
29
- attrs: {
30
- src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-mount-observer.js",
31
- type: "module",
32
- },
33
- injectTo: "body",
34
- },
35
- ...(hmrNotifier
36
- ? [
37
- {
38
- tag: "script",
39
- attrs: {
40
- src: "/node_modules/@base44/vite-plugin/dist/injections/sandbox-hmr-notifier.js",
41
- type: "module",
42
- },
43
- injectTo: "head",
44
- },
45
- ]
46
- : []),
47
- ...(navigationNotifier
48
- ? [
49
- {
50
- tag: "script",
51
- attrs: {
52
- src: "/node_modules/@base44/vite-plugin/dist/injections/navigation-notifier.js",
53
- type: "module",
54
- },
55
- injectTo: "head",
56
- },
57
- ]
58
- : []),
59
- ...(visualEditAgent
60
- ? [
61
- {
62
- tag: "script",
63
- attrs: {
64
- src: "/node_modules/@base44/vite-plugin/dist/injections/visual-edit-agent.js",
65
- type: "module",
66
- },
67
- injectTo: "body",
68
- },
69
- ]
70
- : []),
71
- ...(analyticsTracker
72
- ? [
73
- {
74
- tag: "script",
75
- attrs: {
76
- src: "/node_modules/@base44/vite-plugin/dist/injections/analytics-tracker.js",
77
- type: "module",
78
- },
79
- injectTo: "head",
80
- },
81
- ]
82
- : []),
83
- ];
65
+ transformIndexHtml: {
66
+ order: "pre",
67
+ handler(_html, ctx) {
68
+ const isProductionBuild = ctx.bundle !== undefined;
69
+ const currentMode = isProductionBuild ? "production" : "dev";
70
+
71
+ return Object.entries(INJECTIONS)
72
+ .filter(([key, injection]) =>
73
+ enabledInjections[key] && injection.when === currentMode
74
+ )
75
+ .map(([, injection]) => ({
76
+ tag: "script",
77
+ attrs: {
78
+ src: injection.src,
79
+ type: "module",
80
+ },
81
+ injectTo: injection.injectTo,
82
+ }));
83
+ },
84
84
  },
85
85
  } as Plugin;
86
86
  }
package/src/index.ts CHANGED
@@ -29,7 +29,6 @@ export default function vitePlugin(
29
29
  name: "base44",
30
30
  config: ({ mode, root = process.cwd() }) => {
31
31
  const env = loadEnv(mode ?? "development", root, "");
32
- const isProductionBuild = mode === "production";
33
32
 
34
33
  return {
35
34
  resolve: {
@@ -37,22 +36,18 @@ export default function vitePlugin(
37
36
  "@/": "/src/",
38
37
  },
39
38
  },
40
- define: {
41
- // Expose MODAL_SANDBOX_ID to browser - empty in production builds so analytics tracks
42
- "import.meta.env.MODAL_SANDBOX_ID": isProductionBuild
43
- ? JSON.stringify("")
44
- : JSON.stringify(process.env.MODAL_SANDBOX_ID || ""),
45
- ...(legacySDKImports
46
- ? {
39
+ ...(legacySDKImports
40
+ ? {
41
+ define: {
47
42
  "process.env.VITE_BASE44_APP_ID": JSON.stringify(
48
43
  env.VITE_BASE44_APP_ID
49
44
  ),
50
45
  "process.env.VITE_BASE44_BACKEND_URL": JSON.stringify(
51
46
  env.VITE_BASE44_BACKEND_URL
52
47
  ),
53
- }
54
- : {}),
55
- },
48
+ },
49
+ }
50
+ : {}),
56
51
  ...(isRunningInSandbox
57
52
  ? ({
58
53
  server: {
@@ -222,8 +217,9 @@ export default function vitePlugin(
222
217
  } as Plugin,
223
218
  errorOverlayPlugin(),
224
219
  visualEditPlugin(),
225
- htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
226
220
  ]
227
221
  : []),
222
+ // HTML injections - handles both dev (sandbox) and production injections
223
+ htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
228
224
  ];
229
225
  }
@@ -1,54 +1,45 @@
1
- // Only track page views in production (MODAL_SANDBOX_ID not set)
2
- if (!import.meta.env.MODAL_SANDBOX_ID) {
3
- let lastPath = "";
4
-
5
- function getPageNameFromPath(path: string): string | null {
6
- const segments = path.split("/").filter(Boolean);
7
- return segments[0] || null;
8
- }
9
-
10
- async function initAnalytics() {
11
- try {
12
- // @ts-expect-error - SDK is provided by the consuming app, not this package
13
- const { createClient } = await import("@base44/sdk");
14
-
15
- const client = createClient({
16
- appId: import.meta.env.VITE_BASE44_APP_ID,
17
- serverUrl: import.meta.env.VITE_BASE44_BACKEND_URL || "",
18
- });
19
-
20
- function trackPageView() {
21
- const path = window.location.pathname;
22
- if (path === lastPath) return;
23
- lastPath = path;
24
-
25
- const pageName = getPageNameFromPath(path) || "home";
26
- client.appLogs.logUserInApp(pageName).catch(() => {});
27
- }
28
-
29
- // Intercept history.pushState
30
- const originalPushState = history.pushState.bind(history);
31
- history.pushState = function (...args) {
32
- originalPushState(...args);
33
- trackPageView();
34
- };
35
-
36
- // Intercept history.replaceState
37
- const originalReplaceState = history.replaceState.bind(history);
38
- history.replaceState = function (...args) {
39
- originalReplaceState(...args);
40
- trackPageView();
41
- };
42
-
43
- // Handle browser back/forward navigation
44
- window.addEventListener("popstate", trackPageView);
45
-
46
- // Track initial page view
47
- trackPageView();
48
- } catch {
49
- // Silently fail if SDK is not available
50
- }
51
- }
52
-
53
- initAnalytics();
1
+ // Analytics tracker - tracks page views in production
2
+ // This script is only injected in production builds
3
+
4
+ let lastPath = "";
5
+
6
+ function getPageNameFromPath(path: string): string | null {
7
+ const segments = path.split("/").filter(Boolean);
8
+ return segments[0] || null;
9
+ }
10
+
11
+ function trackPageView() {
12
+ const path = window.location.pathname;
13
+ if (path === lastPath) return;
14
+ lastPath = path;
15
+
16
+ const pageName = getPageNameFromPath(path) || "home";
17
+ const appId = import.meta.env.VITE_BASE44_APP_ID;
18
+ const serverUrl = import.meta.env.VITE_BASE44_BACKEND_URL || "";
19
+
20
+ if (!appId) return;
21
+
22
+ fetch(`${serverUrl}/app-logs/${appId}/log-user-in-app/${pageName}`, {
23
+ method: "POST",
24
+ }).catch(() => {});
54
25
  }
26
+
27
+ // Intercept history.pushState
28
+ const originalPushState = history.pushState.bind(history);
29
+ history.pushState = function (...args) {
30
+ originalPushState(...args);
31
+ trackPageView();
32
+ };
33
+
34
+ // Intercept history.replaceState
35
+ const originalReplaceState = history.replaceState.bind(history);
36
+ history.replaceState = function (...args) {
37
+ originalReplaceState(...args);
38
+ trackPageView();
39
+ };
40
+
41
+ // Handle browser back/forward navigation
42
+ window.addEventListener("popstate", trackPageView);
43
+
44
+ // Track initial page view
45
+ trackPageView();