@base44-preview/vite-plugin 0.2.14-pr.23.8a41255 → 0.2.16-pr.25.411dcb7

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,7 +1,8 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, }: {
2
+ export declare function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker, }: {
3
3
  hmrNotifier: boolean;
4
4
  navigationNotifier: boolean;
5
5
  visualEditAgent: boolean;
6
+ analyticsTracker: boolean;
6
7
  }): Plugin;
7
8
  //# sourceMappingURL=html-injections-plugin.d.ts.map
@@ -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,GAChB,EAAE;IACD,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B,GA4DM,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;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,4 +1,4 @@
1
- export function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, }) {
1
+ export function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker, }) {
2
2
  return {
3
3
  name: "html-injections",
4
4
  apply: (config) => config.mode !== "production",
@@ -56,6 +56,18 @@ export function htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEd
56
56
  },
57
57
  ]
58
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
+ : []),
59
71
  ];
60
72
  },
61
73
  };
@@ -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,GAKhB;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;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":"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"}
package/dist/index.d.ts CHANGED
@@ -4,5 +4,6 @@ export default function vitePlugin(opts?: {
4
4
  hmrNotifier?: boolean;
5
5
  navigationNotifier?: boolean;
6
6
  visualEditAgent?: boolean;
7
+ analyticsTracker?: boolean;
7
8
  }): Plugin<any>[];
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -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;CACtB,iBA8MP"}
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"}
package/dist/index.js CHANGED
@@ -5,26 +5,31 @@ import { filterPackagesInProject } from "./utils.js";
5
5
  import { htmlInjectionsPlugin } from "./html-injections-plugin.js";
6
6
  const isRunningInSandbox = !!process.env.MODAL_SANDBOX_ID;
7
7
  export default function vitePlugin(opts = {}) {
8
- const { legacySDKImports = false, hmrNotifier = false, navigationNotifier = false, visualEditAgent = false, } = opts;
8
+ const { legacySDKImports = false, hmrNotifier = false, navigationNotifier = false, visualEditAgent = false, analyticsTracker = false, } = opts;
9
9
  return [
10
10
  {
11
11
  name: "base44",
12
12
  config: ({ mode, root = process.cwd() }) => {
13
13
  const env = loadEnv(mode ?? "development", root, "");
14
+ const isProductionBuild = mode === "production";
14
15
  return {
15
16
  resolve: {
16
17
  alias: {
17
18
  "@/": "/src/",
18
19
  },
19
20
  },
20
- ...(legacySDKImports
21
- ? {
22
- define: {
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
+ ? {
23
28
  "process.env.VITE_BASE44_APP_ID": JSON.stringify(env.VITE_BASE44_APP_ID),
24
29
  "process.env.VITE_BASE44_BACKEND_URL": JSON.stringify(env.VITE_BASE44_BACKEND_URL),
25
- },
26
- }
27
- : {}),
30
+ }
31
+ : {}),
32
+ },
28
33
  ...(isRunningInSandbox
29
34
  ? {
30
35
  server: {
@@ -149,7 +154,7 @@ export default function vitePlugin(opts = {}) {
149
154
  },
150
155
  errorOverlayPlugin(),
151
156
  visualEditPlugin(),
152
- htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent }),
157
+ htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
153
158
  ]
154
159
  : []),
155
160
  ];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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,OAKI,EAAE;IAEN,MAAM,EACJ,gBAAgB,GAAG,KAAK,EACxB,WAAW,GAAG,KAAK,EACnB,kBAAkB,GAAG,KAAK,EAC1B,eAAe,GAAG,KAAK,GACxB,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;gBAClB,oBAAoB,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;aAC3E;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=analytics-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-tracker.d.ts","sourceRoot":"","sources":["../../src/injections/analytics-tracker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
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();
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=analytics-tracker.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base44-preview/vite-plugin",
3
- "version": "0.2.14-pr.23.8a41255",
3
+ "version": "0.2.16-pr.25.411dcb7",
4
4
  "description": "The Vite plugin for base44 based applications",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -4,10 +4,12 @@ export function htmlInjectionsPlugin({
4
4
  hmrNotifier,
5
5
  navigationNotifier,
6
6
  visualEditAgent,
7
+ analyticsTracker,
7
8
  }: {
8
9
  hmrNotifier: boolean;
9
10
  navigationNotifier: boolean;
10
11
  visualEditAgent: boolean;
12
+ analyticsTracker: boolean;
11
13
  }) {
12
14
  return {
13
15
  name: "html-injections",
@@ -66,6 +68,18 @@ export function htmlInjectionsPlugin({
66
68
  },
67
69
  ]
68
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
+ : []),
69
83
  ];
70
84
  },
71
85
  } as Plugin;
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ export default function vitePlugin(
13
13
  hmrNotifier?: boolean;
14
14
  navigationNotifier?: boolean;
15
15
  visualEditAgent?: boolean;
16
+ analyticsTracker?: boolean;
16
17
  } = {}
17
18
  ) {
18
19
  const {
@@ -20,6 +21,7 @@ export default function vitePlugin(
20
21
  hmrNotifier = false,
21
22
  navigationNotifier = false,
22
23
  visualEditAgent = false,
24
+ analyticsTracker = false,
23
25
  } = opts;
24
26
 
25
27
  return [
@@ -27,6 +29,7 @@ export default function vitePlugin(
27
29
  name: "base44",
28
30
  config: ({ mode, root = process.cwd() }) => {
29
31
  const env = loadEnv(mode ?? "development", root, "");
32
+ const isProductionBuild = mode === "production";
30
33
 
31
34
  return {
32
35
  resolve: {
@@ -34,18 +37,22 @@ export default function vitePlugin(
34
37
  "@/": "/src/",
35
38
  },
36
39
  },
37
- ...(legacySDKImports
38
- ? {
39
- define: {
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
+ ? {
40
47
  "process.env.VITE_BASE44_APP_ID": JSON.stringify(
41
48
  env.VITE_BASE44_APP_ID
42
49
  ),
43
50
  "process.env.VITE_BASE44_BACKEND_URL": JSON.stringify(
44
51
  env.VITE_BASE44_BACKEND_URL
45
52
  ),
46
- },
47
- }
48
- : {}),
53
+ }
54
+ : {}),
55
+ },
49
56
  ...(isRunningInSandbox
50
57
  ? ({
51
58
  server: {
@@ -215,7 +222,7 @@ export default function vitePlugin(
215
222
  } as Plugin,
216
223
  errorOverlayPlugin(),
217
224
  visualEditPlugin(),
218
- htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent }),
225
+ htmlInjectionsPlugin({ hmrNotifier, navigationNotifier, visualEditAgent, analyticsTracker }),
219
226
  ]
220
227
  : []),
221
228
  ];
@@ -0,0 +1,54 @@
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();
54
+ }