@superblocksteam/sdk 1.14.2 → 2.0.3-next.101
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/.mocharc.json +7 -0
- package/.prettierrc +18 -0
- package/dist/cli-replacement/dev.d.mts +19 -0
- package/dist/cli-replacement/dev.d.mts.map +1 -0
- package/dist/cli-replacement/dev.mjs +129 -0
- package/dist/cli-replacement/dev.mjs.map +1 -0
- package/dist/cli-replacement/init.d.ts +14 -0
- package/dist/cli-replacement/init.d.ts.map +1 -0
- package/dist/cli-replacement/init.js +26 -0
- package/dist/cli-replacement/init.js.map +1 -0
- package/dist/client.d.ts +31 -17
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +137 -155
- package/dist/client.js.map +1 -0
- package/dist/dbfs/client.d.ts +6 -0
- package/dist/dbfs/client.d.ts.map +1 -0
- package/dist/dbfs/client.js +117 -0
- package/dist/dbfs/client.js.map +1 -0
- package/dist/dbfs/local.d.ts +15 -0
- package/dist/dbfs/local.d.ts.map +1 -0
- package/dist/dbfs/local.js +126 -0
- package/dist/dbfs/local.js.map +1 -0
- package/dist/dev-utils/custom-build.d.mts +4 -0
- package/dist/dev-utils/custom-build.d.mts.map +1 -0
- package/dist/dev-utils/custom-build.mjs +99 -0
- package/dist/dev-utils/custom-build.mjs.map +1 -0
- package/dist/dev-utils/custom-config.d.mts +2 -0
- package/dist/dev-utils/custom-config.d.mts.map +1 -0
- package/dist/dev-utils/custom-config.mjs +57 -0
- package/dist/dev-utils/custom-config.mjs.map +1 -0
- package/dist/dev-utils/dev-logger.d.mts +8 -0
- package/dist/dev-utils/dev-logger.d.mts.map +1 -0
- package/dist/dev-utils/dev-logger.mjs +25 -0
- package/dist/dev-utils/dev-logger.mjs.map +1 -0
- package/dist/dev-utils/dev-server.d.mts +18 -0
- package/dist/dev-utils/dev-server.d.mts.map +1 -0
- package/dist/dev-utils/dev-server.mjs +265 -0
- package/dist/dev-utils/dev-server.mjs.map +1 -0
- package/dist/dev-utils/dev-tracer.d.ts +3 -0
- package/dist/dev-utils/dev-tracer.d.ts.map +1 -0
- package/dist/dev-utils/dev-tracer.js +28 -0
- package/dist/dev-utils/dev-tracer.js.map +1 -0
- package/dist/dev-utils/vite-plugin-dd-rum.d.mts +10 -0
- package/dist/dev-utils/vite-plugin-dd-rum.d.mts.map +1 -0
- package/dist/dev-utils/vite-plugin-dd-rum.mjs +34 -0
- package/dist/dev-utils/vite-plugin-dd-rum.mjs.map +1 -0
- package/dist/dev-utils/vite-plugin-react-transform.d.mts +7 -0
- package/dist/dev-utils/vite-plugin-react-transform.d.mts.map +1 -0
- package/dist/dev-utils/vite-plugin-react-transform.mjs +110 -0
- package/dist/dev-utils/vite-plugin-react-transform.mjs.map +1 -0
- package/dist/dev-utils/vite-plugin-sb-cdn.d.mts +34 -0
- package/dist/dev-utils/vite-plugin-sb-cdn.d.mts.map +1 -0
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs +720 -0
- package/dist/dev-utils/vite-plugin-sb-cdn.mjs.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +4 -9
- package/dist/errors.js.map +1 -0
- package/dist/flag.d.ts +2 -2
- package/dist/flag.d.ts.map +1 -0
- package/dist/flag.js +5 -9
- package/dist/flag.js.map +1 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -20
- package/dist/index.js.map +1 -0
- package/dist/sdk.d.ts +42 -18
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +47 -43
- package/dist/sdk.js.map +1 -0
- package/dist/socket/handlers.d.ts +3 -128
- package/dist/socket/handlers.d.ts.map +1 -0
- package/dist/socket/handlers.js +7 -9
- package/dist/socket/handlers.js.map +1 -0
- package/dist/socket/index.d.ts +4 -3
- package/dist/socket/index.d.ts.map +1 -0
- package/dist/socket/index.js +12 -21
- package/dist/socket/index.js.map +1 -0
- package/dist/socket/signing.d.ts +3 -1
- package/dist/socket/signing.d.ts.map +1 -0
- package/dist/socket/signing.js +8 -17
- package/dist/socket/signing.js.map +1 -0
- package/dist/socket/socket.d.ts +3 -2
- package/dist/socket/socket.d.ts.map +1 -0
- package/dist/socket/socket.js +9 -19
- package/dist/socket/socket.js.map +1 -0
- package/dist/types/common.d.ts +2 -103
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +8 -24
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -20
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +1 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +3 -5
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/signing.d.ts +2 -1
- package/dist/types/signing.d.ts.map +1 -0
- package/dist/types/signing.js +2 -2
- package/dist/types/signing.js.map +1 -0
- package/dist/types/socket.d.ts +1 -0
- package/dist/types/socket.d.ts.map +1 -0
- package/dist/types/socket.js +2 -5
- package/dist/types/socket.js.map +1 -0
- package/dist/utils.d.ts +3 -1
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +14 -23
- package/dist/utils.js.map +1 -0
- package/dist/version-control.d.mts +59 -0
- package/dist/version-control.d.mts.map +1 -0
- package/dist/version-control.mjs +899 -0
- package/dist/version-control.mjs.map +1 -0
- package/eslint.config.js +85 -0
- package/package.json +76 -30
- package/src/cli-replacement/dev.mts +194 -0
- package/src/cli-replacement/init.ts +47 -0
- package/src/client.ts +114 -38
- package/src/dbfs/client.ts +162 -0
- package/src/dbfs/local.ts +163 -0
- package/src/dev-utils/custom-build.mts +113 -0
- package/src/dev-utils/custom-config.mts +66 -0
- package/src/dev-utils/dev-logger.mts +39 -0
- package/src/dev-utils/dev-server.mts +342 -0
- package/src/dev-utils/dev-tracer.ts +31 -0
- package/src/dev-utils/vite-plugin-dd-rum.mts +47 -0
- package/src/dev-utils/vite-plugin-react-transform.mts +130 -0
- package/src/dev-utils/vite-plugin-sb-cdn.mts +988 -0
- package/src/flag.ts +2 -3
- package/src/index.ts +119 -4
- package/src/sdk.ts +91 -17
- package/src/socket/handlers.ts +9 -147
- package/src/socket/index.ts +6 -9
- package/src/socket/signing.ts +7 -8
- package/src/socket/socket.ts +8 -9
- package/src/types/common.ts +2 -119
- package/src/types/index.ts +4 -4
- package/src/types/signing.ts +1 -1
- package/src/types/socket.ts +1 -1
- package/src/utils.ts +5 -6
- package/src/version-control.mts +1351 -0
- package/test/dev-utils/fixture/index.html +12 -0
- package/test/dev-utils/fixture/main.jsx +22 -0
- package/test/dev-utils/fixture/package-lock.json +25 -0
- package/test/dev-utils/fixture/package.json +9 -0
- package/test/dev-utils/vite-plugin-sb-cdn.test.mts +74 -0
- package/test/tsconfig.json +9 -0
- package/test/version-control.test.mts +1412 -0
- package/tsconfig.json +15 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/.eslintrc.json +0 -55
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
// Tracer has to be imported after the express import
|
|
2
|
+
// eslint-disable-next-line import/order
|
|
3
|
+
import tracer from "./dev-tracer.js";
|
|
4
|
+
import net from "node:net";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { getSuperblocksResourceConfigIfExists } from "@superblocksteam/util";
|
|
7
|
+
import { fileSyncVitePlugin } from "@superblocksteam/vite-plugin-file-sync";
|
|
8
|
+
import react from "@vitejs/plugin-react";
|
|
9
|
+
import { red, yellow } from "colorette";
|
|
10
|
+
import express from "express";
|
|
11
|
+
import { createLogger, createServer, loadEnv } from "vite";
|
|
12
|
+
import tsconfigPaths from "vite-tsconfig-paths";
|
|
13
|
+
import pkg from "../../package.json" with { type: "json" };
|
|
14
|
+
import { customComponentsPlugin, isCustomComponentsEnabled, } from "./custom-build.mjs";
|
|
15
|
+
import { getLogger } from "./dev-logger.mjs";
|
|
16
|
+
import { ddRumPlugin } from "./vite-plugin-dd-rum.mjs";
|
|
17
|
+
import { superblocksCdnPlugin } from "./vite-plugin-sb-cdn.mjs";
|
|
18
|
+
let httpServer;
|
|
19
|
+
// The "Dev Server" is a long-running HTTP server that manages the Vite server
|
|
20
|
+
export async function createDevServer({ root, mode, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride, port, }) {
|
|
21
|
+
const logger = getLogger(loggerOverride);
|
|
22
|
+
if (httpServer) {
|
|
23
|
+
logger.debug("Dev server already running");
|
|
24
|
+
return httpServer;
|
|
25
|
+
}
|
|
26
|
+
// even if Vite is not running, we can receive requests
|
|
27
|
+
const resourceConfig = await getSuperblocksResourceConfigIfExists();
|
|
28
|
+
if (resourceConfig?.configType !== "APPLICATION_V2") {
|
|
29
|
+
throw new Error("Invalid resource configuration type");
|
|
30
|
+
}
|
|
31
|
+
const healthResponse = {
|
|
32
|
+
status: "healthy",
|
|
33
|
+
applicationId: resourceConfig.id,
|
|
34
|
+
// TODO(code-mode): add branch name
|
|
35
|
+
cliVersion: pkg.version,
|
|
36
|
+
};
|
|
37
|
+
let viteServer;
|
|
38
|
+
const app = express();
|
|
39
|
+
let isViteServerInitialized = false;
|
|
40
|
+
let viteResolve;
|
|
41
|
+
let viteReject;
|
|
42
|
+
const vitePromise = new Promise((resolve, reject) => {
|
|
43
|
+
viteResolve = resolve;
|
|
44
|
+
viteReject = reject;
|
|
45
|
+
});
|
|
46
|
+
async function gracefulShutdown(logger) {
|
|
47
|
+
try {
|
|
48
|
+
if (lockService?.isLocked) {
|
|
49
|
+
await syncService?.uploadDirectoryNowIfNeeded(); // Perform a final sync before disconnecting
|
|
50
|
+
await lockService.releaseLock(); // Release the lock before closing the vite server
|
|
51
|
+
}
|
|
52
|
+
// Cleanup the vite server
|
|
53
|
+
if (viteServer) {
|
|
54
|
+
await viteServer?.close();
|
|
55
|
+
viteServer = null;
|
|
56
|
+
isViteServerInitialized = false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
logger.error(`Error during graceful shutdown: ${e}`);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
const closeTimeout = setTimeout(() => {
|
|
64
|
+
logger.info("Dev server closed");
|
|
65
|
+
process.exit(0);
|
|
66
|
+
}, 1000); // Fallback to exit if the HTTP server doesn't close within 1 second
|
|
67
|
+
// Then close the HTTP server
|
|
68
|
+
httpServer.close(() => {
|
|
69
|
+
logger.info("Dev server closed");
|
|
70
|
+
clearTimeout(closeTimeout);
|
|
71
|
+
process.exit(0);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
app.use((req, res, next) => {
|
|
76
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
77
|
+
if (req.url === "/_sb_connect" ||
|
|
78
|
+
req.url === "/_sb_disconnect" ||
|
|
79
|
+
req.url === "/_sb_health" ||
|
|
80
|
+
req.url === "/_sb_status") {
|
|
81
|
+
return next();
|
|
82
|
+
}
|
|
83
|
+
// hold the request until the vite server is initialized
|
|
84
|
+
vitePromise.then(() => {
|
|
85
|
+
// If the server is already closed, don't hold the request
|
|
86
|
+
if (isViteServerInitialized) {
|
|
87
|
+
next();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
res.status(500).send("Dev server is not running");
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
app.get("/_sb_health", async (_req, res) => {
|
|
95
|
+
res.setHeader("Content-Type", "application/json");
|
|
96
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
97
|
+
res.send(JSON.stringify(healthResponse));
|
|
98
|
+
});
|
|
99
|
+
// Attach the vite server to the express app
|
|
100
|
+
app.get("/_sb_connect", async (_req, res) => {
|
|
101
|
+
res.setHeader("Content-Type", "application/json");
|
|
102
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
103
|
+
if (isViteServerInitialized) {
|
|
104
|
+
res.send(JSON.stringify(healthResponse));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
isViteServerInitialized = true;
|
|
108
|
+
// TODO(code-mode): should this include any validation checks, such as getting a token?
|
|
109
|
+
startVite({
|
|
110
|
+
app,
|
|
111
|
+
root,
|
|
112
|
+
mode,
|
|
113
|
+
fsOperationQueue,
|
|
114
|
+
syncService,
|
|
115
|
+
lockService,
|
|
116
|
+
aiService,
|
|
117
|
+
logger: loggerOverride,
|
|
118
|
+
httpServer,
|
|
119
|
+
}).then((server) => {
|
|
120
|
+
viteResolve();
|
|
121
|
+
viteServer = server;
|
|
122
|
+
res.send(JSON.stringify(healthResponse));
|
|
123
|
+
}, viteReject);
|
|
124
|
+
});
|
|
125
|
+
app.get("/_sb_disconnect", async (_req, res) => {
|
|
126
|
+
// TODO(code-mode): should this include any validation checks, such as getting a token?
|
|
127
|
+
await gracefulShutdown(logger);
|
|
128
|
+
res.send("ok");
|
|
129
|
+
});
|
|
130
|
+
app.get("/_sb_status", async (_req, res) => {
|
|
131
|
+
res.setHeader("Content-Type", "application/json");
|
|
132
|
+
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
133
|
+
if (lockService?.isLocked) {
|
|
134
|
+
res.send({
|
|
135
|
+
connectedUsers: lockService.connectedUsers,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
res.send({
|
|
140
|
+
connectedUsers: [],
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
process.on("SIGINT", async () => {
|
|
145
|
+
logger.info("SIGINT received");
|
|
146
|
+
await gracefulShutdown(logger);
|
|
147
|
+
});
|
|
148
|
+
process.on("SIGTERM", async () => {
|
|
149
|
+
logger.info("SIGTERM received");
|
|
150
|
+
await gracefulShutdown(logger);
|
|
151
|
+
});
|
|
152
|
+
process.on("SIGABRT", async () => {
|
|
153
|
+
logger.info("SIGABRT received");
|
|
154
|
+
await gracefulShutdown(logger);
|
|
155
|
+
});
|
|
156
|
+
httpServer = await app.listen(port);
|
|
157
|
+
return httpServer;
|
|
158
|
+
}
|
|
159
|
+
async function startVite({ app, httpServer, root, mode, fsOperationQueue, syncService, lockService, aiService, logger: loggerOverride, }) {
|
|
160
|
+
const viteLogger = createLogger();
|
|
161
|
+
const logger = getLogger(loggerOverride);
|
|
162
|
+
viteLogger.info = logger.info;
|
|
163
|
+
viteLogger.warn = (msg) => {
|
|
164
|
+
logger.warn(yellow(msg));
|
|
165
|
+
};
|
|
166
|
+
viteLogger.warnOnce = (msg) => {
|
|
167
|
+
logger.warn(yellow(msg));
|
|
168
|
+
};
|
|
169
|
+
viteLogger.error = (msg) => {
|
|
170
|
+
logger.error(red(msg));
|
|
171
|
+
};
|
|
172
|
+
viteLogger.clearScreen = () => { };
|
|
173
|
+
const isCustomBuildEnabled = await isCustomComponentsEnabled();
|
|
174
|
+
const customFolder = path.join(root, "custom");
|
|
175
|
+
const cdnUrl = process.env.SUPERBLOCKS_CDN_URL ?? "http://localhost:4040/cdn";
|
|
176
|
+
const env = loadEnv(mode, root, "");
|
|
177
|
+
const hmrPort = await getFreePort();
|
|
178
|
+
const viteServer = await createServer({
|
|
179
|
+
root,
|
|
180
|
+
mode,
|
|
181
|
+
resolve: {
|
|
182
|
+
alias: {
|
|
183
|
+
"react-router": "@superblocksteam/library",
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
clearScreen: process.env.SUPERBLOCKS_CLI_ENV !== "local",
|
|
187
|
+
optimizeDeps: {
|
|
188
|
+
include: ["lodash", "react-is"],
|
|
189
|
+
exclude: [],
|
|
190
|
+
},
|
|
191
|
+
// See https://vite.dev/config/server-options.html#server-middlewaremode
|
|
192
|
+
// appType: "custom",
|
|
193
|
+
server: {
|
|
194
|
+
middlewareMode: true,
|
|
195
|
+
// port: port,
|
|
196
|
+
watch: {
|
|
197
|
+
ignored: [`${customFolder}/**/*`],
|
|
198
|
+
},
|
|
199
|
+
hmr: {
|
|
200
|
+
port: hmrPort,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
build: {
|
|
204
|
+
commonjsOptions: {
|
|
205
|
+
include: ["react-is"],
|
|
206
|
+
},
|
|
207
|
+
rollupOptions: {
|
|
208
|
+
external: [`${customFolder}/**/*`],
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
plugins: [
|
|
212
|
+
tsconfigPaths(),
|
|
213
|
+
customComponentsPlugin(),
|
|
214
|
+
// TODO(omar): there is a type mismatch in the monorepo
|
|
215
|
+
fileSyncVitePlugin({
|
|
216
|
+
fsOperationQueue,
|
|
217
|
+
syncService,
|
|
218
|
+
lockService,
|
|
219
|
+
aiService,
|
|
220
|
+
httpServer,
|
|
221
|
+
tracer,
|
|
222
|
+
logger,
|
|
223
|
+
}, { isCustomBuildEnabled }),
|
|
224
|
+
// for now, only use the CDN locally
|
|
225
|
+
superblocksCdnPlugin({
|
|
226
|
+
imports: {
|
|
227
|
+
"@superblocksteam/library": `${cdnUrl}/index.js`,
|
|
228
|
+
},
|
|
229
|
+
cssImports: {
|
|
230
|
+
"@superblocksteam/library/index.css": `${cdnUrl}/index.css`,
|
|
231
|
+
},
|
|
232
|
+
}),
|
|
233
|
+
react(),
|
|
234
|
+
ddRumPlugin({
|
|
235
|
+
clientToken: env.SUPERBLOCKS_LIBRARY_DD_CLIENT_TOKEN ?? "",
|
|
236
|
+
applicationId: env.SUPERBLOCKS_LIBRARY_DD_APPLICATION_ID ?? "",
|
|
237
|
+
env: env.SUPERBLOCKS_LIBRARY_ENV ?? "prod",
|
|
238
|
+
// TODO: Version should be injected from the library. Replace once we have the autoupgrade feature.
|
|
239
|
+
version: "1.0.0",
|
|
240
|
+
}),
|
|
241
|
+
],
|
|
242
|
+
});
|
|
243
|
+
app.use(viteServer.middlewares);
|
|
244
|
+
return viteServer;
|
|
245
|
+
}
|
|
246
|
+
const DEFAULT_HMR_PORT = 24678;
|
|
247
|
+
function getFreePort() {
|
|
248
|
+
return new Promise((resolve) => {
|
|
249
|
+
const server = net.createServer();
|
|
250
|
+
server.listen(0, () => {
|
|
251
|
+
const address = server.address();
|
|
252
|
+
if (typeof address === "string") {
|
|
253
|
+
resolve(DEFAULT_HMR_PORT);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const port = address?.port;
|
|
257
|
+
if (!port) {
|
|
258
|
+
resolve(DEFAULT_HMR_PORT);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
server.close(() => resolve(port));
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=dev-server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-server.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-server.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-tracer.d.ts","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AA8B9B,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import tracer from "dd-trace";
|
|
2
|
+
import packageJson from "../../package.json" with { type: "json" };
|
|
3
|
+
tracer.init({
|
|
4
|
+
service: "sdk-dev-server",
|
|
5
|
+
version: packageJson.version,
|
|
6
|
+
env: "prod",
|
|
7
|
+
logInjection: true,
|
|
8
|
+
});
|
|
9
|
+
tracer.use("http", {
|
|
10
|
+
hooks: {
|
|
11
|
+
request: (span, req) => {
|
|
12
|
+
let resource = "GET";
|
|
13
|
+
if (req) {
|
|
14
|
+
resource = `${req?.method} ${"path" in req ? req?.path : req?.url}`;
|
|
15
|
+
}
|
|
16
|
+
span?.setTag("resource.name", resource);
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
tracer.use("express", {
|
|
21
|
+
hooks: {
|
|
22
|
+
request: (span, req) => {
|
|
23
|
+
span?.setTag("resource.name", `${req?.method} ${req?.url}`);
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
export default tracer;
|
|
28
|
+
//# sourceMappingURL=dev-tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-tracer.js","sourceRoot":"","sources":["../../src/dev-utils/dev-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnE,MAAM,CAAC,IAAI,CAAC;IACV,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,GAAG,EAAE,MAAM;IACX,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,GAAG,EAAE,CAAC;gBACR,QAAQ,GAAG,GAAG,GAAG,EAAE,MAAM,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;IACpB,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACrB,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;KACF;CACF,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
type DdRumPluginOptions = {
|
|
3
|
+
clientToken: string;
|
|
4
|
+
applicationId: string;
|
|
5
|
+
env: string;
|
|
6
|
+
version: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function ddRumPlugin(options: DdRumPluginOptions): Plugin;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=vite-plugin-dd-rum.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-dd-rum.d.mts","sourceRoot":"","sources":["../../src/dev-utils/vite-plugin-dd-rum.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAqC/D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function ddRumPlugin(options) {
|
|
2
|
+
return {
|
|
3
|
+
name: "vite-plugin-dd-rum",
|
|
4
|
+
transformIndexHtml(html) {
|
|
5
|
+
if (process.env.SUPERBLOCKS_CLI_ENV === "local" ||
|
|
6
|
+
!options.clientToken ||
|
|
7
|
+
!options.applicationId) {
|
|
8
|
+
return html;
|
|
9
|
+
}
|
|
10
|
+
return html.replace("</head>", `<script>
|
|
11
|
+
(function(h,o,u,n,d) {
|
|
12
|
+
h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
|
|
13
|
+
d=o.createElement(u);d.async=1;d.src=n
|
|
14
|
+
n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
|
|
15
|
+
})(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v6/datadog-rum.js','DD_RUM')
|
|
16
|
+
window.DD_RUM.onReady(function() {
|
|
17
|
+
window.DD_RUM.init({
|
|
18
|
+
clientToken: "${options.clientToken ?? ""}",
|
|
19
|
+
applicationId: "${options.applicationId ?? ""}",
|
|
20
|
+
site: 'datadoghq.com',
|
|
21
|
+
service: 'superblocks-library',
|
|
22
|
+
env: "${options.env ?? ""}",
|
|
23
|
+
version: "${options.version ?? ""}",
|
|
24
|
+
sessionSampleRate: 100,
|
|
25
|
+
sessionReplaySampleRate: 100,
|
|
26
|
+
enablePrivacyForActionName: true
|
|
27
|
+
});
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
</head>`);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=vite-plugin-dd-rum.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-dd-rum.mjs","sourceRoot":"","sources":["../../src/dev-utils/vite-plugin-dd-rum.mts"],"names":[],"mappings":"AASA,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,kBAAkB,CAAC,IAAI;YACrB,IACE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO;gBAC3C,CAAC,OAAO,CAAC,WAAW;gBACpB,CAAC,OAAO,CAAC,aAAa,EACtB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CACjB,SAAS,EACT;;;;;;;;8BAQsB,OAAO,CAAC,WAAW,IAAI,EAAE;gCACvB,OAAO,CAAC,aAAa,IAAI,EAAE;;;sBAGrC,OAAO,CAAC,GAAG,IAAI,EAAE;0BACb,OAAO,CAAC,OAAO,IAAI,EAAE;;;;;;;cAOjC,CACP,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Vite plugin to transform React modules to actual ESM with named exports.
|
|
4
|
+
* This ensures React and React DOM can be properly consumed by browsers when used in import maps.
|
|
5
|
+
*/
|
|
6
|
+
export declare function reactTransformPlugin(): Plugin;
|
|
7
|
+
//# sourceMappingURL=vite-plugin-react-transform.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-react-transform.d.mts","sourceRoot":"","sources":["../../src/dev-utils/vite-plugin-react-transform.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAwH7C"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import baseDebug from "debug";
|
|
2
|
+
const debug = baseDebug("sb:sdk:vite-plugin-react-transform");
|
|
3
|
+
/**
|
|
4
|
+
* Vite plugin to transform React modules to actual ESM with named exports.
|
|
5
|
+
* This ensures React and React DOM can be properly consumed by browsers when used in import maps.
|
|
6
|
+
*/
|
|
7
|
+
export function reactTransformPlugin() {
|
|
8
|
+
return {
|
|
9
|
+
name: "vite-plugin-react-transform",
|
|
10
|
+
enforce: "pre", // Run before other plugins
|
|
11
|
+
async transform(code, id) {
|
|
12
|
+
// Check for React modules
|
|
13
|
+
if (id.includes("node_modules/.vite/deps/react.js")) {
|
|
14
|
+
debug(`Adding named exports to React: ${id}`);
|
|
15
|
+
// We're going to assume this is using the require_react pattern
|
|
16
|
+
// Let's first check if the original React bundle is accessible
|
|
17
|
+
try {
|
|
18
|
+
// Parse the code to find exports
|
|
19
|
+
// For Vite bundled React, the code likely uses the format:
|
|
20
|
+
// import { require_react } from "/chunk-XYZ.js";
|
|
21
|
+
// export default require_react();
|
|
22
|
+
// Let's use regex to find all possible export names from the bundle
|
|
23
|
+
// This pattern looks for property accesses on require_react() in the code
|
|
24
|
+
const requireReactPattern = /require_react\(\)\.([a-zA-Z0-9_]+)/g;
|
|
25
|
+
const reactExports = new Set();
|
|
26
|
+
// Find all matches
|
|
27
|
+
let match;
|
|
28
|
+
while ((match = requireReactPattern.exec(code)) !== null) {
|
|
29
|
+
if (match[1]) {
|
|
30
|
+
reactExports.add(match[1]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Add known React exports that might not be directly accessed in the bundle
|
|
34
|
+
// prettier-ignore
|
|
35
|
+
const knownReactExports = [
|
|
36
|
+
"Children", "Component", "Fragment", "Profiler", "PureComponent",
|
|
37
|
+
"StrictMode", "Suspense", "cloneElement", "createContext",
|
|
38
|
+
"createElement", "createFactory", "createRef", "forwardRef",
|
|
39
|
+
"isValidElement", "lazy", "memo", "useCallback", "useContext",
|
|
40
|
+
"useDebugValue", "useEffect", "useImperativeHandle",
|
|
41
|
+
"useLayoutEffect", "useMemo", "useReducer", "useRef", "useState",
|
|
42
|
+
"useSyncExternalStore", "startTransition", "useTransition",
|
|
43
|
+
"useDeferredValue", "useId", "useInsertionEffect", "version",
|
|
44
|
+
"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED",
|
|
45
|
+
];
|
|
46
|
+
// Add all known exports to our set
|
|
47
|
+
for (const namedExport of knownReactExports) {
|
|
48
|
+
reactExports.add(namedExport);
|
|
49
|
+
}
|
|
50
|
+
debug("Found exports: %O", reactExports);
|
|
51
|
+
debug(`Found ${reactExports.size} React exports to add`);
|
|
52
|
+
// Generate named export statements for all found properties
|
|
53
|
+
const exportStatements = Array.from(reactExports)
|
|
54
|
+
.map((name) => `export const ${name} = require_react().${name};`)
|
|
55
|
+
.join("\n");
|
|
56
|
+
// Return the original code plus the generated exports
|
|
57
|
+
return `${code}\n\n${exportStatements}`;
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
console.error(err);
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Check for React DOM modules
|
|
65
|
+
if (id.includes("node_modules/.vite/deps/react-dom.js")) {
|
|
66
|
+
debug(`Adding named exports to React DOM: ${id}`);
|
|
67
|
+
try {
|
|
68
|
+
// Similar approach for React DOM
|
|
69
|
+
const requireReactDomPattern = /require_react_dom\(\)\.([a-zA-Z0-9_]+)/g;
|
|
70
|
+
const reactDomExports = new Set();
|
|
71
|
+
// Find all matches
|
|
72
|
+
let match;
|
|
73
|
+
while ((match = requireReactDomPattern.exec(code)) !== null) {
|
|
74
|
+
if (match[1]) {
|
|
75
|
+
reactDomExports.add(match[1]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Add known React DOM exports
|
|
79
|
+
const knownReactDomExports = [
|
|
80
|
+
"createPortal",
|
|
81
|
+
"findDOMNode",
|
|
82
|
+
"flushSync",
|
|
83
|
+
"hydrate",
|
|
84
|
+
"render",
|
|
85
|
+
"unmountComponentAtNode",
|
|
86
|
+
"unstable_batchedUpdates",
|
|
87
|
+
"createRoot",
|
|
88
|
+
"hydrateRoot",
|
|
89
|
+
];
|
|
90
|
+
// Add all known exports to our set
|
|
91
|
+
knownReactDomExports.forEach((exp) => reactDomExports.add(exp));
|
|
92
|
+
debug(`Found ${reactDomExports.size} React DOM exports to add`);
|
|
93
|
+
debug("React DOM exports: %O", reactDomExports);
|
|
94
|
+
// Generate export statements for all found properties
|
|
95
|
+
const exportStatements = Array.from(reactDomExports)
|
|
96
|
+
.map((name) => `export const ${name} = require_react_dom().${name};`)
|
|
97
|
+
.join("\n");
|
|
98
|
+
// Return the original code plus the generated exports
|
|
99
|
+
return `${code}\n\n// Add named exports for remote library consumption\n${exportStatements}`;
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
console.error(err);
|
|
103
|
+
throw err;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return null; // Let Vite handle other modules
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=vite-plugin-react-transform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-react-transform.mjs","sourceRoot":"","sources":["../../src/dev-utils/vite-plugin-react-transform.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Plugin } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Options for configuring the import map plugin
|
|
4
|
+
*/
|
|
5
|
+
export interface ImportMapOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Base imports that apply globally
|
|
8
|
+
*/
|
|
9
|
+
imports?: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Additional scoped imports to add manually
|
|
12
|
+
*/
|
|
13
|
+
scopes?: Record<string, Record<string, string>>;
|
|
14
|
+
/**
|
|
15
|
+
* CSS imports that need to be loaded from CDN
|
|
16
|
+
*/
|
|
17
|
+
cssImports?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a Vite plugin that injects an import map into the HTML.
|
|
21
|
+
* It analyzes remote modules to find their imports and maps them to local Vite modules.
|
|
22
|
+
*
|
|
23
|
+
* Features:
|
|
24
|
+
* - Automatically discovers and maps imports in remote modules
|
|
25
|
+
* - Efficiently fetches binary data once and reuses it for multiple purposes
|
|
26
|
+
* - In production mode, adds integrity hashes and modulepreload directives
|
|
27
|
+
* - In development mode, only adds the import map for faster iteration
|
|
28
|
+
* - Ensures proper ordering of elements in head for correct module resolution
|
|
29
|
+
*
|
|
30
|
+
* @param options - The import map configuration options
|
|
31
|
+
* @returns A Vite plugin that injects the import map into HTML
|
|
32
|
+
*/
|
|
33
|
+
export declare function superblocksCdnPlugin(options: ImportMapOptions): Promise<Plugin[]>;
|
|
34
|
+
//# sourceMappingURL=vite-plugin-sb-cdn.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-sb-cdn.d.mts","sourceRoot":"","sources":["../../src/dev-utils/vite-plugin-sb-cdn.mts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,MAAM,EAIZ,MAAM,MAAM,CAAC;AAQd;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAsbD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAofnB"}
|