@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.
- package/dist/html-injections-plugin.d.ts.map +1 -1
- package/dist/html-injections-plugin.js +53 -64
- package/dist/html-injections-plugin.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -12
- package/dist/index.js.map +1 -1
- package/dist/injections/analytics-tracker.js +36 -45
- package/dist/injections/analytics-tracker.js.map +1 -1
- package/package.json +1 -1
- package/src/html-injections-plugin.ts +68 -68
- package/src/index.ts +8 -12
- package/src/injections/analytics-tracker.ts +44 -53
|
@@ -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;
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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:
|
|
55
|
+
src: injection.src,
|
|
19
56
|
type: "module",
|
|
20
57
|
},
|
|
21
|
-
injectTo:
|
|
22
|
-
}
|
|
23
|
-
|
|
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":"
|
|
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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,39 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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,
|
|
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,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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
//
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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();
|