@superblocksteam/sdk 1.14.2 → 1.99.99-next.3

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.
Files changed (155) hide show
  1. package/.mocharc.json +7 -0
  2. package/.prettierrc +18 -0
  3. package/dist/cli-replacement/automatic-upgrades.d.ts +4 -0
  4. package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -0
  5. package/dist/cli-replacement/automatic-upgrades.js +246 -0
  6. package/dist/cli-replacement/automatic-upgrades.js.map +1 -0
  7. package/dist/cli-replacement/dev.d.mts +14 -0
  8. package/dist/cli-replacement/dev.d.mts.map +1 -0
  9. package/dist/cli-replacement/dev.mjs +195 -0
  10. package/dist/cli-replacement/dev.mjs.map +1 -0
  11. package/dist/cli-replacement/init.d.ts +14 -0
  12. package/dist/cli-replacement/init.d.ts.map +1 -0
  13. package/dist/cli-replacement/init.js +26 -0
  14. package/dist/cli-replacement/init.js.map +1 -0
  15. package/dist/client.d.ts +31 -17
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +137 -155
  18. package/dist/client.js.map +1 -0
  19. package/dist/dbfs/client.d.ts +6 -0
  20. package/dist/dbfs/client.d.ts.map +1 -0
  21. package/dist/dbfs/client.js +117 -0
  22. package/dist/dbfs/client.js.map +1 -0
  23. package/dist/dbfs/local.d.ts +15 -0
  24. package/dist/dbfs/local.d.ts.map +1 -0
  25. package/dist/dbfs/local.js +126 -0
  26. package/dist/dbfs/local.js.map +1 -0
  27. package/dist/dev-utils/custom-build.d.mts +4 -0
  28. package/dist/dev-utils/custom-build.d.mts.map +1 -0
  29. package/dist/dev-utils/custom-build.mjs +99 -0
  30. package/dist/dev-utils/custom-build.mjs.map +1 -0
  31. package/dist/dev-utils/custom-config.d.mts +2 -0
  32. package/dist/dev-utils/custom-config.d.mts.map +1 -0
  33. package/dist/dev-utils/custom-config.mjs +57 -0
  34. package/dist/dev-utils/custom-config.mjs.map +1 -0
  35. package/dist/dev-utils/dev-logger.d.mts +8 -0
  36. package/dist/dev-utils/dev-logger.d.mts.map +1 -0
  37. package/dist/dev-utils/dev-logger.mjs +25 -0
  38. package/dist/dev-utils/dev-logger.mjs.map +1 -0
  39. package/dist/dev-utils/dev-server.d.mts +18 -0
  40. package/dist/dev-utils/dev-server.d.mts.map +1 -0
  41. package/dist/dev-utils/dev-server.mjs +283 -0
  42. package/dist/dev-utils/dev-server.mjs.map +1 -0
  43. package/dist/dev-utils/dev-tracer.d.ts +3 -0
  44. package/dist/dev-utils/dev-tracer.d.ts.map +1 -0
  45. package/dist/dev-utils/dev-tracer.js +38 -0
  46. package/dist/dev-utils/dev-tracer.js.map +1 -0
  47. package/dist/dev-utils/vite-plugin-dd-rum.d.mts +10 -0
  48. package/dist/dev-utils/vite-plugin-dd-rum.d.mts.map +1 -0
  49. package/dist/dev-utils/vite-plugin-dd-rum.mjs +34 -0
  50. package/dist/dev-utils/vite-plugin-dd-rum.mjs.map +1 -0
  51. package/dist/dev-utils/vite-plugin-react-transform.d.mts +7 -0
  52. package/dist/dev-utils/vite-plugin-react-transform.d.mts.map +1 -0
  53. package/dist/dev-utils/vite-plugin-react-transform.mjs +110 -0
  54. package/dist/dev-utils/vite-plugin-react-transform.mjs.map +1 -0
  55. package/dist/dev-utils/vite-plugin-sb-cdn.d.mts +34 -0
  56. package/dist/dev-utils/vite-plugin-sb-cdn.d.mts.map +1 -0
  57. package/dist/dev-utils/vite-plugin-sb-cdn.mjs +720 -0
  58. package/dist/dev-utils/vite-plugin-sb-cdn.mjs.map +1 -0
  59. package/dist/errors.d.ts +1 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js +4 -9
  62. package/dist/errors.js.map +1 -0
  63. package/dist/flag.d.ts +2 -2
  64. package/dist/flag.d.ts.map +1 -0
  65. package/dist/flag.js +5 -9
  66. package/dist/flag.js.map +1 -0
  67. package/dist/index.d.ts +10 -4
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +10 -20
  70. package/dist/index.js.map +1 -0
  71. package/dist/sdk.d.ts +42 -18
  72. package/dist/sdk.d.ts.map +1 -0
  73. package/dist/sdk.js +47 -43
  74. package/dist/sdk.js.map +1 -0
  75. package/dist/socket/handlers.d.ts +3 -128
  76. package/dist/socket/handlers.d.ts.map +1 -0
  77. package/dist/socket/handlers.js +7 -9
  78. package/dist/socket/handlers.js.map +1 -0
  79. package/dist/socket/index.d.ts +4 -3
  80. package/dist/socket/index.d.ts.map +1 -0
  81. package/dist/socket/index.js +12 -21
  82. package/dist/socket/index.js.map +1 -0
  83. package/dist/socket/signing.d.ts +3 -1
  84. package/dist/socket/signing.d.ts.map +1 -0
  85. package/dist/socket/signing.js +8 -17
  86. package/dist/socket/signing.js.map +1 -0
  87. package/dist/types/common.d.ts +8 -103
  88. package/dist/types/common.d.ts.map +1 -0
  89. package/dist/types/common.js +8 -24
  90. package/dist/types/common.js.map +1 -0
  91. package/dist/types/index.d.ts +5 -4
  92. package/dist/types/index.d.ts.map +1 -0
  93. package/dist/types/index.js +5 -20
  94. package/dist/types/index.js.map +1 -0
  95. package/dist/types/plugin.d.ts +1 -0
  96. package/dist/types/plugin.d.ts.map +1 -0
  97. package/dist/types/plugin.js +3 -5
  98. package/dist/types/plugin.js.map +1 -0
  99. package/dist/types/signing.d.ts +2 -1
  100. package/dist/types/signing.d.ts.map +1 -0
  101. package/dist/types/signing.js +2 -2
  102. package/dist/types/signing.js.map +1 -0
  103. package/dist/types/socket.d.ts +1 -0
  104. package/dist/types/socket.d.ts.map +1 -0
  105. package/dist/types/socket.js +2 -5
  106. package/dist/types/socket.js.map +1 -0
  107. package/dist/utils.d.ts +3 -1
  108. package/dist/utils.d.ts.map +1 -0
  109. package/dist/utils.js +14 -23
  110. package/dist/utils.js.map +1 -0
  111. package/dist/version-control.d.mts +59 -0
  112. package/dist/version-control.d.mts.map +1 -0
  113. package/dist/version-control.mjs +899 -0
  114. package/dist/version-control.mjs.map +1 -0
  115. package/eslint.config.js +85 -0
  116. package/package.json +85 -30
  117. package/src/cli-replacement/automatic-upgrades.ts +335 -0
  118. package/src/cli-replacement/dev.mts +276 -0
  119. package/src/cli-replacement/init.ts +47 -0
  120. package/src/client.ts +114 -38
  121. package/src/dbfs/client.ts +162 -0
  122. package/src/dbfs/local.ts +163 -0
  123. package/src/dev-utils/custom-build.mts +113 -0
  124. package/src/dev-utils/custom-config.mts +66 -0
  125. package/src/dev-utils/dev-logger.mts +39 -0
  126. package/src/dev-utils/dev-server.mts +371 -0
  127. package/src/dev-utils/dev-tracer.ts +42 -0
  128. package/src/dev-utils/vite-plugin-dd-rum.mts +47 -0
  129. package/src/dev-utils/vite-plugin-react-transform.mts +130 -0
  130. package/src/dev-utils/vite-plugin-sb-cdn.mts +988 -0
  131. package/src/flag.ts +2 -3
  132. package/src/index.ts +120 -4
  133. package/src/sdk.ts +91 -17
  134. package/src/socket/handlers.ts +9 -147
  135. package/src/socket/index.ts +6 -9
  136. package/src/socket/signing.ts +7 -8
  137. package/src/types/common.ts +9 -119
  138. package/src/types/index.ts +4 -4
  139. package/src/types/signing.ts +1 -1
  140. package/src/types/socket.ts +1 -1
  141. package/src/utils.ts +5 -6
  142. package/src/version-control.mts +1351 -0
  143. package/test/dev-utils/fixture/index.html +12 -0
  144. package/test/dev-utils/fixture/main.jsx +22 -0
  145. package/test/dev-utils/fixture/package-lock.json +25 -0
  146. package/test/dev-utils/fixture/package.json +9 -0
  147. package/test/dev-utils/vite-plugin-sb-cdn.test.mts +74 -0
  148. package/test/tsconfig.json +9 -0
  149. package/test/version-control.test.mts +1412 -0
  150. package/tsconfig.json +15 -4
  151. package/tsconfig.tsbuildinfo +1 -1
  152. package/.eslintrc.json +0 -55
  153. package/dist/socket/socket.d.ts +0 -60
  154. package/dist/socket/socket.js +0 -261
  155. package/src/socket/socket.ts +0 -400
package/.mocharc.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "require": ["tsx"],
3
+ "extensions": [".js", ".mjs", ".ts", ".mts"],
4
+ "recursive": true,
5
+ "reporter": "spec",
6
+ "timeout": 60000
7
+ }
package/.prettierrc ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "printWidth": 80,
3
+ "tabWidth": 2,
4
+ "useTabs": false,
5
+ "semi": true,
6
+ "singleQuote": false,
7
+ "trailingComma": "all",
8
+ "arrowParens": "always",
9
+ "plugins": ["prettier-plugin-pkg"],
10
+ "overrides": [
11
+ {
12
+ "files": ["*.ts", "*.tsx", "*.mts"],
13
+ "options": {
14
+ "parser": "typescript"
15
+ }
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,4 @@
1
+ import type { ApplicationConfig } from "../types/common.js";
2
+ import type { LockService } from "@superblocksteam/vite-plugin-file-sync/lock-service";
3
+ export declare function checkVersionsAndUpgrade(lockService: LockService, config?: ApplicationConfig): Promise<void>;
4
+ //# sourceMappingURL=automatic-upgrades.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic-upgrades.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAsOvF,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,iBAAiB,iBA4F3B"}
@@ -0,0 +1,246 @@
1
+ import * as child_process from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { isNativeError } from "node:util/types";
4
+ import { resolveCommand } from "package-manager-detector";
5
+ import { detect } from "package-manager-detector/detect";
6
+ import gt from "semver/functions/gt.js";
7
+ import valid from "semver/functions/valid.js";
8
+ import { getLogger } from "../dev-utils/dev-logger.mjs";
9
+ const exec = promisify(child_process.exec);
10
+ const logger = getLogger();
11
+ async function getRemoteVersions(config) {
12
+ const { token, superblocksBaseUrl, id } = config;
13
+ try {
14
+ const response = await fetch(new URL(`api/v3/applications/${id}/cli-library-versions`, superblocksBaseUrl), {
15
+ method: "GET",
16
+ headers: { Authorization: `Bearer ${token}` },
17
+ });
18
+ if (response.ok) {
19
+ const data = (await response.json());
20
+ return data.data;
21
+ }
22
+ else {
23
+ const error = (await response.json());
24
+ console.log(`Could not get latest CLI version: ${error.responseMeta.message}`);
25
+ }
26
+ }
27
+ catch (error) {
28
+ if (isNativeError(error)) {
29
+ logger.error(error.message);
30
+ }
31
+ else {
32
+ logger.error(`${error}`);
33
+ }
34
+ }
35
+ }
36
+ async function getCurrentCliVersion() {
37
+ try {
38
+ const command = process.platform === "win32" ? "where" : "which";
39
+ const { stdout } = await exec(`${command} superblocks`);
40
+ const superblocksPath = stdout.trim();
41
+ if (!superblocksPath)
42
+ return undefined;
43
+ const { stdout: versionOutput } = await exec(`${superblocksPath} version --json`);
44
+ const json = JSON.parse(versionOutput);
45
+ // Extract version from string like "@superblocksteam/cli/2.0.0-next.1" or "@superblocksteam/cli-ephemeral/2.0.0-SNAPSHOT.1749077365"
46
+ return json.cliVersion?.replace(/@superblocksteam\/cli(-ephemeral)?\//, "");
47
+ }
48
+ catch (error) {
49
+ if (isNativeError(error)) {
50
+ logger.error(`Error getting CLI version: ${error.message}`);
51
+ }
52
+ return undefined;
53
+ }
54
+ }
55
+ async function getCurrentLibraryVersion(pm) {
56
+ try {
57
+ switch (pm.agent) {
58
+ case "npm":
59
+ return await getNpmLibraryVersion();
60
+ case "pnpm":
61
+ return await getPnpmLibraryVersion();
62
+ default:
63
+ console.error(`${pm.agent} is currently not supported for automatic upgrades.`);
64
+ return undefined;
65
+ }
66
+ }
67
+ catch (error) {
68
+ console.error("Could not resolve current library version. Skipping automatic upgrade.");
69
+ console.error(error);
70
+ return undefined;
71
+ }
72
+ }
73
+ async function getNpmLibraryVersion() {
74
+ const { stdout } = await exec("npm list @superblocksteam/library --json", {
75
+ cwd: process.cwd(),
76
+ });
77
+ const parsed = JSON.parse(stdout);
78
+ const packageData = parsed.dependencies?.["@superblocksteam/library"] ??
79
+ parsed.devDependencies?.["@superblocksteam/library"];
80
+ if (!packageData?.version)
81
+ return undefined;
82
+ // Check if this is an alias by examining the resolved URL
83
+ const resolved = packageData.resolved;
84
+ if (resolved && resolved.includes("@superblocksteam/")) {
85
+ const aliasMatch = resolved.match(/@superblocksteam\/([^\/]+)/);
86
+ if (aliasMatch && aliasMatch[1] !== "library") {
87
+ return {
88
+ version: packageData.version,
89
+ alias: `@superblocksteam/${aliasMatch[1]}`,
90
+ };
91
+ }
92
+ }
93
+ return { version: packageData.version };
94
+ }
95
+ async function getPnpmLibraryVersion() {
96
+ // First try the original package name
97
+ let packageData;
98
+ try {
99
+ const result = await exec("pnpm list @superblocksteam/library --json", {
100
+ cwd: process.cwd(),
101
+ });
102
+ const parsed = JSON.parse(result.stdout);
103
+ packageData =
104
+ parsed[0]?.dependencies?.["@superblocksteam/library"] ??
105
+ parsed[0]?.devDependencies?.["@superblocksteam/library"];
106
+ }
107
+ catch {
108
+ // Package not found with original name, might be aliased
109
+ }
110
+ // If not found, try the ephemeral alias
111
+ if (!packageData?.version) {
112
+ try {
113
+ const aliasResult = await exec("pnpm list @superblocksteam/library-ephemeral --json", { cwd: process.cwd() });
114
+ const aliasParsed = JSON.parse(aliasResult.stdout);
115
+ packageData =
116
+ aliasParsed[0]?.dependencies?.["@superblocksteam/library"] ??
117
+ aliasParsed[0]?.devDependencies?.["@superblocksteam/library"];
118
+ }
119
+ catch {
120
+ return undefined;
121
+ }
122
+ }
123
+ if (!packageData?.version)
124
+ return undefined;
125
+ // Check if this is an alias by looking at the 'from' field
126
+ const from = packageData.from;
127
+ if (from && from !== "@superblocksteam/library") {
128
+ return {
129
+ version: packageData.version,
130
+ alias: from,
131
+ };
132
+ }
133
+ return { version: packageData.version };
134
+ }
135
+ async function upgradeCliWithOclif(targetVersion) {
136
+ try {
137
+ const command = process.platform === "win32" ? "where" : "which";
138
+ const { stdout } = await exec(`${command} superblocks`);
139
+ const superblocksPath = stdout.trim();
140
+ if (!superblocksPath)
141
+ return false;
142
+ const { stdout: updateOutput } = await exec(`${superblocksPath} update --version=${targetVersion}`);
143
+ return !updateOutput.includes("not updatable");
144
+ }
145
+ catch (error) {
146
+ if (isNativeError(error)) {
147
+ logger.error(`Error checking CLI updatability: ${error.message}`);
148
+ }
149
+ return false;
150
+ }
151
+ }
152
+ async function upgradePackageWithPackageManager(pm, packageName, targetVersion, alias) {
153
+ const packageSpec = alias
154
+ ? `@superblocksteam/${packageName}@npm:${alias}@${targetVersion}`
155
+ : `@superblocksteam/${packageName}@${targetVersion}`;
156
+ const installCommand = resolveCommand(pm.agent, "install", [packageSpec]);
157
+ if (!installCommand) {
158
+ console.error("Could not determine how to upgrade Superblocks packages.");
159
+ return;
160
+ }
161
+ const { command, args } = installCommand;
162
+ await exec(`${command} ${args.join(" ")}`);
163
+ }
164
+ async function restartCli() {
165
+ const args = process.argv.slice(1);
166
+ const child = child_process.spawn(process.execPath, [...args], {
167
+ detached: true,
168
+ stdio: "inherit",
169
+ env: process.env,
170
+ });
171
+ child.unref();
172
+ process.nextTick(() => process.exit(0));
173
+ }
174
+ export async function checkVersionsAndUpgrade(lockService, config) {
175
+ // Detect package manager
176
+ const pm = await detect({
177
+ strategies: [
178
+ "packageManager-field",
179
+ "lockfile",
180
+ "install-metadata",
181
+ "devEngines-field",
182
+ ],
183
+ cwd: process.cwd(),
184
+ });
185
+ if (!pm || !config?.id)
186
+ return;
187
+ // Get current versions
188
+ const currentCliVersion = await getCurrentCliVersion();
189
+ const currentLibraryInfo = await getCurrentLibraryVersion(pm);
190
+ // Skip if we're in local development
191
+ if (!currentCliVersion ||
192
+ !valid(currentCliVersion) ||
193
+ currentCliVersion.startsWith("file:") ||
194
+ currentCliVersion.startsWith("link:") ||
195
+ !currentLibraryInfo ||
196
+ !valid(currentLibraryInfo.version) ||
197
+ currentLibraryInfo.version.startsWith("file:") ||
198
+ currentLibraryInfo.version.startsWith("link:")) {
199
+ return;
200
+ }
201
+ // Get target versions from server
202
+ const targetVersions = await getRemoteVersions(config);
203
+ if (!targetVersions)
204
+ return;
205
+ // Check if CLI needs upgrade
206
+ const cliNeedsUpgrade = targetVersions.cli && gt(targetVersions.cli, currentCliVersion);
207
+ // Check if library needs upgrade
208
+ const libraryNeedsUpgrade = targetVersions.library &&
209
+ gt(targetVersions.library, currentLibraryInfo.version);
210
+ if (!cliNeedsUpgrade && !libraryNeedsUpgrade) {
211
+ return; // Everything is up to date
212
+ }
213
+ let cliUpdated = false;
214
+ let libraryUpdated = false;
215
+ // Upgrade CLI if needed
216
+ if (cliNeedsUpgrade) {
217
+ const oclifUpgradeSucceeded = await upgradeCliWithOclif(targetVersions.cli);
218
+ if (!oclifUpgradeSucceeded) {
219
+ // Fall back to package manager upgrade
220
+ await upgradePackageWithPackageManager(pm, "cli", targetVersions.cli);
221
+ cliUpdated = true;
222
+ }
223
+ }
224
+ // Upgrade library if needed
225
+ if (libraryNeedsUpgrade) {
226
+ await upgradePackageWithPackageManager(pm, "library", targetVersions.library, currentLibraryInfo.alias);
227
+ libraryUpdated = true;
228
+ }
229
+ // Log what was updated
230
+ if (cliUpdated && libraryUpdated) {
231
+ logger.info("@superblocksteam/cli and @superblocksteam/library have been updated.");
232
+ }
233
+ else if (cliUpdated) {
234
+ logger.info("@superblocksteam/cli has been updated.");
235
+ }
236
+ else if (libraryUpdated) {
237
+ logger.info("@superblocksteam/library has been updated.");
238
+ }
239
+ // Restart CLI if anything was updated
240
+ if (cliUpdated || libraryUpdated) {
241
+ logger.info("Restarting the CLI…");
242
+ await lockService.releaseLock();
243
+ await restartCli();
244
+ }
245
+ }
246
+ //# sourceMappingURL=automatic-upgrades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automatic-upgrades.js","sourceRoot":"","sources":["../../src/cli-replacement/automatic-upgrades.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACxC,OAAO,KAAK,MAAM,2BAA2B,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAKxD,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAoB3B,KAAK,UAAU,iBAAiB,CAC9B,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,GAAG,CACL,uBAAuB,EAAE,uBAAuB,EAChD,kBAAkB,CACnB,EACD;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiC,CAAC;YACrE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;YACpE,OAAO,CAAC,GAAG,CACT,qCAAqC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAEvC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAC1C,GAAG,eAAe,iBAAiB,CACpC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA2B,CAAC;QACjE,qIAAqI;QACrI,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,EAAgB;IAEhB,IAAI,CAAC;QACH,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,OAAO,MAAM,oBAAoB,EAAE,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,MAAM,qBAAqB,EAAE,CAAC;YACvC;gBACE,OAAO,CAAC,KAAK,CACX,GAAG,EAAE,CAAC,KAAK,qDAAqD,CACjE,CAAC;gBACF,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,wEAAwE,CACzE,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,0CAA0C,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,GACf,MAAM,CAAC,YAAY,EAAE,CAAC,0BAA0B,CAAC;QACjD,MAAM,CAAC,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAW,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAE5C,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,KAAK,EAAE,oBAAoB,UAAU,CAAC,CAAC,CAAC,EAAE;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,qBAAqB;IAGlC,sCAAsC;IACtC,IAAI,WAAgB,CAAC;IAErB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2CAA2C,EAAE;YACrE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,WAAW;YACT,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBACrD,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAC5B,qDAAqD,EACrD,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CACvB,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnD,WAAW;gBACT,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,0BAA0B,CAAC;oBAC1D,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAE5C,2DAA2D;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QAEnC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CACzC,GAAG,eAAe,qBAAqB,aAAa,EAAE,CACvD,CAAC;QACF,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,EAAgB,EAChB,WAAmB,EACnB,aAAqB,EACrB,KAAc;IAEd,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,oBAAoB,WAAW,QAAQ,KAAK,IAAI,aAAa,EAAE;QACjE,CAAC,CAAC,oBAAoB,WAAW,IAAI,aAAa,EAAE,CAAC;IAEvD,MAAM,cAAc,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;IACzC,MAAM,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QAC7D,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,MAA0B;IAE1B,yBAAyB;IACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;QACtB,UAAU,EAAE;YACV,sBAAsB;YACtB,UAAU;YACV,kBAAkB;YAClB,kBAAkB;SACnB;QACD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE;QAAE,OAAO;IAE/B,uBAAuB;IACvB,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAE9D,qCAAqC;IACrC,IACE,CAAC,iBAAiB;QAClB,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACzB,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC;QACrC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC;QACrC,CAAC,kBAAkB;QACnB,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAClC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9C,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAC9C,CAAC;QACD,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,6BAA6B;IAC7B,MAAM,eAAe,GACnB,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAElE,iCAAiC;IACjC,MAAM,mBAAmB,GACvB,cAAc,CAAC,OAAO;QACtB,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,OAAO,CAAC,2BAA2B;IACrC,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,wBAAwB;IACxB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,qBAAqB,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE5E,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,uCAAuC;YACvC,MAAM,gCAAgC,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YACtE,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,gCAAgC,CACpC,EAAE,EACF,SAAS,EACT,cAAc,CAAC,OAAO,EACtB,kBAAkB,CAAC,KAAK,CACzB,CAAC;QACF,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,uBAAuB;IACvB,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CACT,sEAAsE,CACvE,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAsC;IACtC,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import "../dev-utils/dev-tracer.js";
2
+ import type { ApplicationConfig } from "../types/common.js";
3
+ export declare function dev(options: {
4
+ cwd: string;
5
+ pidfilePath?: string;
6
+ devServerPort?: number;
7
+ uploadFirst?: boolean;
8
+ downloadFirst?: boolean;
9
+ skipSync?: boolean;
10
+ applicationConfig?: ApplicationConfig;
11
+ logger?: (message: string) => void;
12
+ signal?: AbortSignal;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=dev.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.mts","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAwBpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA8D5D,wBAAsB,GAAG,CAAC,OAAO,EAAE;IAEjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAGnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,iBA2KA"}
@@ -0,0 +1,195 @@
1
+ import "../dev-utils/dev-tracer.js";
2
+ import * as child_process from "node:child_process";
3
+ import * as fsp from "node:fs/promises";
4
+ import { promisify } from "node:util";
5
+ import { maskUnixSignals } from "@superblocksteam/util";
6
+ import { AiService } from "@superblocksteam/vite-plugin-file-sync/ai-service";
7
+ import { LockService, LockType, } from "@superblocksteam/vite-plugin-file-sync/lock-service";
8
+ import { OperationQueue } from "@superblocksteam/vite-plugin-file-sync/operation-queue";
9
+ import { SyncService } from "@superblocksteam/vite-plugin-file-sync/sync-service";
10
+ import { green } from "colorette";
11
+ import { diffJson } from "diff";
12
+ import { resolveCommand } from "package-manager-detector";
13
+ import { detect } from "package-manager-detector/detect";
14
+ import { getLogger } from "../dev-utils/dev-logger.mjs";
15
+ import { createDevServer } from "../dev-utils/dev-server.mjs";
16
+ import tracer from "../dev-utils/dev-tracer.js";
17
+ import { SuperblocksSdk } from "../sdk.js";
18
+ import { checkVersionsAndUpgrade } from "./automatic-upgrades.js";
19
+ const exec = promisify(child_process.exec);
20
+ const passErrorToVSCode = (message, logger) => {
21
+ if (message) {
22
+ // Prefixing with `clierr:` will make the VS code extension capture this message and show it to the user.
23
+ logger.error(`clierr: ${JSON.stringify({ message })}`);
24
+ }
25
+ };
26
+ async function readPkgJson(cwd) {
27
+ try {
28
+ const { readPackage } = await import("read-pkg");
29
+ return await readPackage({ cwd });
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ async function installPackages(cwd, logger) {
36
+ try {
37
+ const pm = await detect({
38
+ strategies: [
39
+ "packageManager-field",
40
+ "lockfile",
41
+ "install-metadata",
42
+ "devEngines-field",
43
+ ],
44
+ cwd,
45
+ });
46
+ if (!pm) {
47
+ logger.warn("Could not detect package manager, skipping package installation");
48
+ return;
49
+ }
50
+ const installCommand = resolveCommand(pm.agent, "install", []);
51
+ if (!installCommand) {
52
+ logger.warn(`Could not determine install command for ${pm.agent}, skipping package installation`);
53
+ return;
54
+ }
55
+ const { command, args } = installCommand;
56
+ logger.info(`Running ${command} ${args.join(" ")} to install dependencies…`);
57
+ await exec(`${command} ${args.join(" ")}`, { cwd });
58
+ logger.info("Package installation completed successfully");
59
+ }
60
+ catch (error) {
61
+ logger.error(`Error during package installation: ${error}`);
62
+ throw error;
63
+ }
64
+ }
65
+ export async function dev(options) {
66
+ const logger = getLogger(options.logger);
67
+ const { cwd, pidfilePath, devServerPort, downloadFirst, uploadFirst, skipSync, applicationConfig, } = options;
68
+ if (pidfilePath) {
69
+ await fsp.writeFile(pidfilePath, `${process.pid}\n`);
70
+ }
71
+ const port = devServerPort ?? 5173;
72
+ const fsOperationQueue = new OperationQueue();
73
+ let syncService;
74
+ let lockService;
75
+ let aiService;
76
+ if (applicationConfig && !skipSync) {
77
+ lockService = new LockService({
78
+ authToken: applicationConfig.token,
79
+ superblocksBaseUrl: applicationConfig.superblocksBaseUrl,
80
+ applicationId: applicationConfig.id,
81
+ branchName: applicationConfig.branchName,
82
+ lockType: process.env.SUPERBLOCKS_IS_CSB === "true"
83
+ ? LockType.CSB
84
+ : LockType.LOCAL,
85
+ tracer,
86
+ });
87
+ syncService = new SyncService({
88
+ authToken: applicationConfig.token,
89
+ superblocksBaseUrl: applicationConfig.superblocksBaseUrl,
90
+ appRootDirPath: cwd,
91
+ applicationId: applicationConfig.id,
92
+ branchName: applicationConfig.branchName,
93
+ fsOperationQueue,
94
+ lockService,
95
+ tracer,
96
+ });
97
+ logger.info("Checking if local files are synced with the server");
98
+ try {
99
+ await maskUnixSignals(async () => {
100
+ const sdk = new SuperblocksSdk(applicationConfig.token, applicationConfig.superblocksBaseUrl, "");
101
+ if (lockService) {
102
+ try {
103
+ await lockService.acquireLock();
104
+ // TODO(code-mode): package naming is preventing upgrade in ephemeral environments
105
+ if (!process.env.PACKAGE_SUFFIX ||
106
+ process.env.PACKAGE_SUFFIX === "") {
107
+ await checkVersionsAndUpgrade(lockService, applicationConfig);
108
+ }
109
+ }
110
+ catch (error) {
111
+ logger.error("Failed to acquire lock on application", error);
112
+ passErrorToVSCode(error.context?.message, logger);
113
+ throw new Error(`Failed to acquire lock on application: ${error}`);
114
+ }
115
+ }
116
+ const [localContents, serverHash, currentUser] = await Promise.all([
117
+ sdk.hashLocalDirectory(cwd),
118
+ sdk.dbfsGetApplicationDirectoryHash({
119
+ applicationId: applicationConfig.id,
120
+ branch: applicationConfig.branchName,
121
+ }),
122
+ sdk.fetchCurrentUser(),
123
+ ]);
124
+ aiService = new AiService({
125
+ authToken: applicationConfig.token,
126
+ superblocksBaseUrl: applicationConfig.superblocksBaseUrl,
127
+ appRootDirPath: options.cwd,
128
+ applicationId: applicationConfig.id,
129
+ organizationId: currentUser.organizations[0].id,
130
+ anthropicApiKey: process.env.ANTHROPIC_API_KEY || "",
131
+ fsOperationQueue,
132
+ draftInterface: syncService,
133
+ });
134
+ const isSynced = localContents.hash === serverHash;
135
+ if (isSynced) {
136
+ logger.info("Local files are in sync with the server");
137
+ return;
138
+ }
139
+ logger.info("Local files are out of sync with the server");
140
+ if (!(downloadFirst || uploadFirst)) {
141
+ throw new Error("You must choose --download-first or --upload-first to use the dev command");
142
+ }
143
+ if (downloadFirst && uploadFirst) {
144
+ throw new Error("Choose either --download-first or --upload-first");
145
+ }
146
+ if (downloadFirst) {
147
+ logger.info("Starting directory sync from server before starting the local server");
148
+ // Read package.json before download
149
+ const packageJsonBefore = await readPkgJson(cwd);
150
+ await syncService.downloadDirectory();
151
+ // Read package.json after download and compare
152
+ const packageJsonAfter = await readPkgJson(cwd);
153
+ // Check if package.json changed
154
+ if (packageJsonBefore && packageJsonAfter) {
155
+ const diff = diffJson(packageJsonBefore, packageJsonAfter);
156
+ const hasChanges = diff.some((part) => part.added || part.removed);
157
+ if (hasChanges) {
158
+ logger.info("package.json has changed, installing packages…");
159
+ await installPackages(cwd, logger);
160
+ }
161
+ }
162
+ }
163
+ else if (uploadFirst) {
164
+ logger.info("Uploading local files to server before starting");
165
+ await syncService.uploadDirectory();
166
+ }
167
+ });
168
+ }
169
+ catch (error) {
170
+ logger.error(error.message);
171
+ process.exit(1);
172
+ }
173
+ }
174
+ else {
175
+ logger.info("Skipping directory sync");
176
+ }
177
+ const httpServer = await createDevServer({
178
+ root: options.cwd,
179
+ mode: "development",
180
+ port: port,
181
+ fsOperationQueue,
182
+ syncService,
183
+ lockService,
184
+ aiService,
185
+ logger: options.logger,
186
+ });
187
+ options.signal?.addEventListener("abort", () => {
188
+ logger.info("Server closed");
189
+ httpServer.close();
190
+ });
191
+ logger.debug(green(`Local server started at port ${port}`));
192
+ logger.debug(green(`Visit your application at:`));
193
+ logger.debug(green(`http://localhost:${port}`));
194
+ }
195
+ //# sourceMappingURL=dev.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.mjs","sourceRoot":"","sources":["../../src/cli-replacement/dev.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { FeatureFlags } from "../flag.js";
2
+ import type { SuperblocksSdk } from "../sdk.js";
3
+ import type { ExportViewMode } from "@superblocksteam/shared";
4
+ import type { VersionedResourceConfig } from "@superblocksteam/util";
5
+ export declare function fetchAndWriteApplication({ resourceId, viewMode, featureFlags, projectRootFolder, appRelativePath, sdk, skipSigningVerification, }: {
6
+ resourceId: string;
7
+ viewMode: ExportViewMode;
8
+ featureFlags: FeatureFlags;
9
+ projectRootFolder: string;
10
+ appRelativePath?: string;
11
+ sdk: SuperblocksSdk;
12
+ skipSigningVerification: boolean;
13
+ }): Promise<VersionedResourceConfig | undefined>;
14
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli-replacement/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,wBAAsB,wBAAwB,CAAC,EAC7C,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,GAAG,EACH,uBAAuB,GACxB,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAqB/C"}
@@ -0,0 +1,26 @@
1
+ import { ComponentEvent } from "@superblocksteam/shared";
2
+ import { COMPONENT_EVENT_HEADER } from "@superblocksteam/util";
3
+ import { writeApplicationToDisk } from "../version-control.mjs";
4
+ import { DEFAULT_BRANCH } from "../version-control.mjs";
5
+ export async function fetchAndWriteApplication({ resourceId, viewMode, featureFlags, projectRootFolder, appRelativePath, sdk, skipSigningVerification, }) {
6
+ const headers = {
7
+ [COMPONENT_EVENT_HEADER]: ComponentEvent.INIT,
8
+ };
9
+ const application = await sdk.fetchApplicationWithComponents({
10
+ applicationId: resourceId,
11
+ branch: DEFAULT_BRANCH,
12
+ viewMode: viewMode,
13
+ headers,
14
+ skipSigningVerification,
15
+ });
16
+ if (application) {
17
+ return await writeApplicationToDisk({
18
+ sdk,
19
+ resource: application,
20
+ projectRootFolder,
21
+ appRelativePath,
22
+ featureFlags,
23
+ });
24
+ }
25
+ }
26
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli-replacement/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,GAAG,EACH,uBAAuB,GASxB;IACC,MAAM,OAAO,GAA2B;QACtC,CAAC,sBAAsB,CAAC,EAAE,cAAc,CAAC,IAAI;KAC9C,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,8BAA8B,CAAC;QAC3D,aAAa,EAAE,UAAU;QACzB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,QAAQ;QAClB,OAAO;QACP,uBAAuB;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,sBAAsB,CAAC;YAClC,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,iBAAiB;YACjB,eAAe;YACf,YAAY;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}