bleam 0.0.12 → 0.0.13
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/ai.cjs +5 -4
- package/dist/ai.d.ts +1 -1
- package/dist/ai.js +4 -3
- package/dist/app-storage-D8W4n8ey.cjs +39 -0
- package/dist/app-storage-Isi5Bo0R.js +34 -0
- package/dist/cli.cjs +148 -22
- package/dist/cli.d.cts +13 -0
- package/dist/cli.d.ts +14 -1
- package/dist/cli.js +148 -22
- package/dist/config.d.ts +1 -1
- package/dist/elements-CFk0QHw0.d.cts +127 -0
- package/dist/elements-ClGQ41Sc.d.ts +127 -0
- package/dist/{ui.cjs → elements.cjs} +307 -168
- package/dist/elements.d.cts +2 -0
- package/dist/elements.d.ts +2 -0
- package/dist/{ui.js → elements.js} +306 -169
- package/dist/{files-BXVkPrPN.js → files-DErLhzCB.js} +5 -11
- package/dist/{files-DxaQ-Nv0.cjs → files-lMk-CpL_.cjs} +5 -11
- package/dist/files.cjs +1 -1
- package/dist/files.d.ts +1 -1
- package/dist/files.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/schema.cjs +1 -1
- package/dist/schema.d.cts +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +1 -1
- package/dist/secrets.cjs +146 -0
- package/dist/secrets.d.cts +14 -0
- package/dist/secrets.d.ts +14 -0
- package/dist/secrets.js +142 -0
- package/dist/{state-LssDgpff.cjs → state-BZYyrE2-.cjs} +4 -41
- package/dist/{state-Dh3HLixb.js → state-DkaRFkZJ.js} +4 -35
- package/dist/state.cjs +3 -2
- package/dist/state.d.cts +1 -1
- package/dist/state.d.ts +1 -1
- package/dist/state.js +3 -2
- package/dist/window.d.cts +1 -1
- package/dist/window.d.ts +3 -3
- package/package.json +11 -6
- package/templates/basic/app/index.tsx +2 -2
- package/templates/foundation-models/app/index.tsx +4 -4
- package/templates/image-generation/app/index.tsx +2 -2
- package/templates/native/modules/bleam-runtime/ios/AIModule.swift +7 -8
- package/templates/state/app/index.tsx +2 -2
- package/templates/text-generation/app/index.tsx +4 -4
- package/templates/updates/README.md +1 -1
- package/dist/ui-1WepaMS4.d.cts +0 -92
- package/dist/ui-D7bRLYee.d.ts +0 -92
- package/dist/ui.d.cts +0 -2
- package/dist/ui.d.ts +0 -2
- /package/dist/{config-Chi-flpJ.d.ts → config-Cms0rvqg.d.ts} +0 -0
- /package/dist/{files-VrkQlKIT.d.ts → files-4ZEoAWiv.d.ts} +0 -0
- /package/dist/{native-sqlite-yQLD5s9i.cjs → native-sqlite-Dw--FI9a.cjs} +0 -0
- /package/dist/{native-sqlite-xcGdamRD.js → native-sqlite-WzRNzCSh.js} +0 -0
- /package/dist/{schema-B5BfdswF.js → schema-B7ELMpuI.js} +0 -0
- /package/dist/{schema-BnVZOXfu.cjs → schema-B7SLUBLN.cjs} +0 -0
- /package/dist/{schema-D5eImHxu.d.cts → schema-BWsDPc6c.d.cts} +0 -0
- /package/dist/{schema-SSjokbtw.d.ts → schema-LxnzAfgw.d.ts} +0 -0
package/dist/ai.cjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
2
|
require('./native-runtime-CsXnXkQn.cjs');
|
|
3
3
|
require('./crypto-CT3VZ7lF.cjs');
|
|
4
|
-
const require_files = require('./files-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
const require_files = require('./files-lMk-CpL_.cjs');
|
|
5
|
+
const require_app_storage = require('./app-storage-D8W4n8ey.cjs');
|
|
6
|
+
const require_schema = require('./schema-B7SLUBLN.cjs');
|
|
7
|
+
const require_state = require('./state-BZYyrE2-.cjs');
|
|
7
8
|
let expo = require("expo");
|
|
8
9
|
expo = require_chunk.__toESM(expo);
|
|
9
10
|
let react = require("react");
|
|
@@ -3594,7 +3595,7 @@ function summaryFromJob(job) {
|
|
|
3594
3595
|
};
|
|
3595
3596
|
}
|
|
3596
3597
|
function jobRoot(id) {
|
|
3597
|
-
return require_files.files.directory(require_files.files.paths.shared, "ImageJobs",
|
|
3598
|
+
return require_files.files.directory(require_files.files.paths.shared, "ImageJobs", require_app_storage.currentAppStorageKey(), id);
|
|
3598
3599
|
}
|
|
3599
3600
|
async function copyInput(source, directory, name, fallbackExtension = ".png") {
|
|
3600
3601
|
const path = pathFromUri(source);
|
package/dist/ai.d.ts
CHANGED
package/dist/ai.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import "./native-runtime-C85Nuc4F.js";
|
|
2
2
|
import "./crypto-BB92-Upx.js";
|
|
3
|
-
import { a as nativeCopy, i as files } from "./files-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { a as nativeCopy, i as files } from "./files-DErLhzCB.js";
|
|
4
|
+
import { t as currentAppStorageKey } from "./app-storage-Isi5Bo0R.js";
|
|
5
|
+
import { c as object, s as number, u as string } from "./schema-B7ELMpuI.js";
|
|
6
|
+
import { a as transactionAtom, d as internalJotaiWritableAtom, f as internalStore, i as queryAtom, n as atomCollection, r as mutateAtom, u as internalJotaiAtom } from "./state-DkaRFkZJ.js";
|
|
6
7
|
import { requireNativeModule } from "expo";
|
|
7
8
|
import { use, useSyncExternalStore } from "react";
|
|
8
9
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const require_native_runtime = require('./native-runtime-CsXnXkQn.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/app-storage.ts
|
|
4
|
+
let cachedStorageKey;
|
|
5
|
+
function launchArgument(name) {
|
|
6
|
+
const argumentsList = NSProcessInfo.processInfo.arguments();
|
|
7
|
+
const count = Number(argumentsList.count ?? 0);
|
|
8
|
+
for (let index = 0; index < count - 1; index += 1) if (String(argumentsList.objectAtIndex(index)) === name) return String(argumentsList.objectAtIndex(index + 1));
|
|
9
|
+
}
|
|
10
|
+
function storageKey(name) {
|
|
11
|
+
return name.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "app";
|
|
12
|
+
}
|
|
13
|
+
function currentAppStorageKey() {
|
|
14
|
+
if (cachedStorageKey) return cachedStorageKey;
|
|
15
|
+
require_native_runtime.ensureNativeScript();
|
|
16
|
+
const configPath = launchArgument("--bleam-project-config");
|
|
17
|
+
if (configPath) try {
|
|
18
|
+
const text = String(NSString.stringWithContentsOfFileEncodingError(configPath, NSUTF8StringEncoding, null));
|
|
19
|
+
const config = JSON.parse(text);
|
|
20
|
+
if (typeof config.id === "string" && config.id) {
|
|
21
|
+
cachedStorageKey = config.id;
|
|
22
|
+
return cachedStorageKey;
|
|
23
|
+
}
|
|
24
|
+
if (typeof config.name === "string" && config.name) {
|
|
25
|
+
cachedStorageKey = storageKey(config.name);
|
|
26
|
+
return cachedStorageKey;
|
|
27
|
+
}
|
|
28
|
+
} catch {}
|
|
29
|
+
cachedStorageKey = "app";
|
|
30
|
+
return cachedStorageKey;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
Object.defineProperty(exports, 'currentAppStorageKey', {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () {
|
|
37
|
+
return currentAppStorageKey;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as ensureNativeScript } from "./native-runtime-C85Nuc4F.js";
|
|
2
|
+
|
|
3
|
+
//#region src/app-storage.ts
|
|
4
|
+
let cachedStorageKey;
|
|
5
|
+
function launchArgument(name) {
|
|
6
|
+
const argumentsList = NSProcessInfo.processInfo.arguments();
|
|
7
|
+
const count = Number(argumentsList.count ?? 0);
|
|
8
|
+
for (let index = 0; index < count - 1; index += 1) if (String(argumentsList.objectAtIndex(index)) === name) return String(argumentsList.objectAtIndex(index + 1));
|
|
9
|
+
}
|
|
10
|
+
function storageKey(name) {
|
|
11
|
+
return name.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "app";
|
|
12
|
+
}
|
|
13
|
+
function currentAppStorageKey() {
|
|
14
|
+
if (cachedStorageKey) return cachedStorageKey;
|
|
15
|
+
ensureNativeScript();
|
|
16
|
+
const configPath = launchArgument("--bleam-project-config");
|
|
17
|
+
if (configPath) try {
|
|
18
|
+
const text = String(NSString.stringWithContentsOfFileEncodingError(configPath, NSUTF8StringEncoding, null));
|
|
19
|
+
const config = JSON.parse(text);
|
|
20
|
+
if (typeof config.id === "string" && config.id) {
|
|
21
|
+
cachedStorageKey = config.id;
|
|
22
|
+
return cachedStorageKey;
|
|
23
|
+
}
|
|
24
|
+
if (typeof config.name === "string" && config.name) {
|
|
25
|
+
cachedStorageKey = storageKey(config.name);
|
|
26
|
+
return cachedStorageKey;
|
|
27
|
+
}
|
|
28
|
+
} catch {}
|
|
29
|
+
cachedStorageKey = "app";
|
|
30
|
+
return cachedStorageKey;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { currentAppStorageKey as t };
|
package/dist/cli.cjs
CHANGED
|
@@ -621,13 +621,14 @@ function writeBiomeConfig(configPath) {
|
|
|
621
621
|
}
|
|
622
622
|
}, null, 2)}\n`);
|
|
623
623
|
}
|
|
624
|
-
function writeProjectRuntimeConfig(projectRoot, config, origin) {
|
|
624
|
+
function writeProjectRuntimeConfig(projectRoot, config, origin, client) {
|
|
625
625
|
const projectConfigPath = node_path.default.join(projectRoot, ".bleam", "project.json");
|
|
626
626
|
(0, node_fs.mkdirSync)(node_path.default.dirname(projectConfigPath), { recursive: true });
|
|
627
627
|
(0, node_fs.writeFileSync)(projectConfigPath, `${JSON.stringify({
|
|
628
628
|
name: config.name,
|
|
629
|
+
id: client.projectId,
|
|
629
630
|
version: config.version,
|
|
630
|
-
bundleIdentifier:
|
|
631
|
+
bundleIdentifier: client.bundleIdentifier,
|
|
631
632
|
teamId: config.teamId,
|
|
632
633
|
appearance: config.appearance,
|
|
633
634
|
devServer: origin,
|
|
@@ -1166,19 +1167,127 @@ async function resolveRuntimeArtifact() {
|
|
|
1166
1167
|
throw new Error(`Failed to resolve the Bleam runtime.\n${runtimeResolutionDetails()}\n\nCause: ${error instanceof Error ? error.message : String(error)}`);
|
|
1167
1168
|
}
|
|
1168
1169
|
}
|
|
1169
|
-
function
|
|
1170
|
-
const
|
|
1170
|
+
function devProjectId(projectRoot) {
|
|
1171
|
+
const idPath = node_path.default.join(projectRoot, ".bleam", "project-id");
|
|
1172
|
+
if ((0, node_fs.existsSync)(idPath)) {
|
|
1173
|
+
const projectId$1 = (0, node_fs.readFileSync)(idPath, "utf8").trim();
|
|
1174
|
+
if (/^[0-9a-f]{32}$/i.test(projectId$1)) return projectId$1.toLowerCase();
|
|
1175
|
+
throw new Error(`Invalid Bleam project ID at ${prettyPath(idPath)}`);
|
|
1176
|
+
}
|
|
1177
|
+
const projectId = (0, node_crypto.randomUUID)().replaceAll("-", "");
|
|
1178
|
+
(0, node_fs.mkdirSync)(node_path.default.dirname(idPath), { recursive: true });
|
|
1179
|
+
(0, node_fs.writeFileSync)(idPath, `${projectId}\n`);
|
|
1180
|
+
return projectId;
|
|
1181
|
+
}
|
|
1182
|
+
function devBundleIdentifier(projectId) {
|
|
1183
|
+
return `dev.bleam.project.p${projectId}`;
|
|
1184
|
+
}
|
|
1185
|
+
function runBundleCommand(command, args) {
|
|
1186
|
+
const result = (0, node_child_process.spawnSync)(command, args, {
|
|
1187
|
+
encoding: "utf8",
|
|
1188
|
+
env: process.env
|
|
1189
|
+
});
|
|
1190
|
+
if (result.error) throw result.error;
|
|
1191
|
+
if (result.status !== 0) {
|
|
1192
|
+
const detail = result.stderr.trim() || result.stdout.trim();
|
|
1193
|
+
throw new Error(`${commandText(command, args)} failed${detail ? `: ${detail}` : ""}`);
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
function devAppFileName(name) {
|
|
1197
|
+
return `${name.replaceAll("/", "-")}.app`;
|
|
1198
|
+
}
|
|
1199
|
+
function setPlistValue(plistPath, key, type, value) {
|
|
1200
|
+
(0, node_child_process.spawnSync)("plutil", [
|
|
1201
|
+
"-remove",
|
|
1202
|
+
key,
|
|
1203
|
+
plistPath
|
|
1204
|
+
], { stdio: "ignore" });
|
|
1205
|
+
runBundleCommand("plutil", [
|
|
1206
|
+
"-insert",
|
|
1207
|
+
key,
|
|
1208
|
+
type,
|
|
1209
|
+
value,
|
|
1210
|
+
plistPath
|
|
1211
|
+
]);
|
|
1212
|
+
}
|
|
1213
|
+
function removePlistValue(plistPath, key) {
|
|
1214
|
+
(0, node_child_process.spawnSync)("plutil", [
|
|
1215
|
+
"-remove",
|
|
1216
|
+
key,
|
|
1217
|
+
plistPath
|
|
1218
|
+
], { stdio: "ignore" });
|
|
1219
|
+
}
|
|
1220
|
+
function personalizeRuntimeClient(options) {
|
|
1221
|
+
const appPlist = node_path.default.join(options.appPath, "Contents", "Info.plist");
|
|
1222
|
+
const servicePath = node_path.default.join(options.appPath, "Contents", "XPCServices", "GenerationService.xpc");
|
|
1223
|
+
const servicePlist = node_path.default.join(servicePath, "Contents", "Info.plist");
|
|
1224
|
+
setPlistValue(appPlist, "CFBundleIdentifier", "-string", options.bundleIdentifier);
|
|
1225
|
+
setPlistValue(appPlist, "CFBundleDisplayName", "-string", options.name);
|
|
1226
|
+
setPlistValue(appPlist, "CFBundleName", "-string", options.name);
|
|
1227
|
+
removePlistValue(appPlist, "AppGroupIdentifier");
|
|
1228
|
+
if ((0, node_fs.existsSync)(servicePlist)) {
|
|
1229
|
+
setPlistValue(servicePlist, "CFBundleIdentifier", "-string", `${options.bundleIdentifier}.GenerationService`);
|
|
1230
|
+
removePlistValue(servicePlist, "AppGroupIdentifier");
|
|
1231
|
+
}
|
|
1232
|
+
if (options.iconPath) {
|
|
1233
|
+
const iconName = "BleamProjectIcon.png";
|
|
1234
|
+
(0, node_fs.cpSync)(options.iconPath, node_path.default.join(options.appPath, "Contents", "Resources", iconName));
|
|
1235
|
+
setPlistValue(appPlist, "CFBundleIconFile", "-string", iconName);
|
|
1236
|
+
setPlistValue(appPlist, "CFBundleIcons", "-json", JSON.stringify({ CFBundlePrimaryIcon: {
|
|
1237
|
+
CFBundleIconFiles: ["BleamProjectIcon"],
|
|
1238
|
+
CFBundleIconName: "BleamProjectIcon"
|
|
1239
|
+
} }));
|
|
1240
|
+
}
|
|
1241
|
+
(0, node_fs.rmSync)(node_path.default.join(options.appPath, "Contents", "embedded.provisionprofile"), { force: true });
|
|
1242
|
+
(0, node_fs.rmSync)(node_path.default.join(servicePath, "Contents", "embedded.provisionprofile"), { force: true });
|
|
1243
|
+
if ((0, node_fs.existsSync)(servicePath)) runBundleCommand("codesign", [
|
|
1244
|
+
"--force",
|
|
1245
|
+
"--sign",
|
|
1246
|
+
"-",
|
|
1247
|
+
"--timestamp=none",
|
|
1248
|
+
servicePath
|
|
1249
|
+
]);
|
|
1250
|
+
runBundleCommand("codesign", [
|
|
1251
|
+
"--force",
|
|
1252
|
+
"--sign",
|
|
1253
|
+
"-",
|
|
1254
|
+
"--timestamp=none",
|
|
1255
|
+
options.appPath
|
|
1256
|
+
]);
|
|
1257
|
+
runBundleCommand("codesign", [
|
|
1258
|
+
"--verify",
|
|
1259
|
+
"--deep",
|
|
1260
|
+
"--strict",
|
|
1261
|
+
options.appPath
|
|
1262
|
+
]);
|
|
1263
|
+
}
|
|
1264
|
+
function copyRuntimeClient(projectRoot, runtime, config) {
|
|
1265
|
+
const projectId = devProjectId(projectRoot);
|
|
1266
|
+
const bundleIdentifier = devBundleIdentifier(projectId);
|
|
1267
|
+
const clientRoot = node_path.default.join(projectRoot, ".bleam", "client");
|
|
1268
|
+
const appFileName = devAppFileName(config.name);
|
|
1269
|
+
const clientAppPath = node_path.default.join(clientRoot, appFileName);
|
|
1171
1270
|
console.log(`Preparing Bleam app at ${prettyPath(clientAppPath)}`);
|
|
1172
|
-
(0, node_fs.rmSync)(
|
|
1271
|
+
(0, node_fs.rmSync)(clientRoot, {
|
|
1173
1272
|
recursive: true,
|
|
1174
1273
|
force: true
|
|
1175
1274
|
});
|
|
1176
|
-
(0, node_fs.mkdirSync)(
|
|
1275
|
+
(0, node_fs.mkdirSync)(clientRoot, { recursive: true });
|
|
1177
1276
|
(0, node_fs.cpSync)(runtime.appPath, clientAppPath, {
|
|
1178
1277
|
recursive: true,
|
|
1179
1278
|
verbatimSymlinks: true
|
|
1180
1279
|
});
|
|
1181
|
-
|
|
1280
|
+
personalizeRuntimeClient({
|
|
1281
|
+
appPath: clientAppPath,
|
|
1282
|
+
name: config.name,
|
|
1283
|
+
bundleIdentifier,
|
|
1284
|
+
iconPath: config.iconPath
|
|
1285
|
+
});
|
|
1286
|
+
return {
|
|
1287
|
+
appPath: clientAppPath,
|
|
1288
|
+
bundleIdentifier,
|
|
1289
|
+
projectId
|
|
1290
|
+
};
|
|
1182
1291
|
}
|
|
1183
1292
|
function cleanDevArtifacts(projectRoot) {
|
|
1184
1293
|
const bleamRoot = node_path.default.join(projectRoot, ".bleam");
|
|
@@ -1360,11 +1469,12 @@ function openRuntimeClient(appPath, projectConfigPath, manifest) {
|
|
|
1360
1469
|
if (code && code !== 0) console.error(`Failed to open Bleam runtime at ${appPath}`);
|
|
1361
1470
|
});
|
|
1362
1471
|
}
|
|
1363
|
-
function quitRuntimeClient() {
|
|
1364
|
-
|
|
1472
|
+
function quitRuntimeClient(bundleIdentifier) {
|
|
1473
|
+
const application = `application id ${JSON.stringify(bundleIdentifier)}`;
|
|
1474
|
+
(0, node_child_process.spawnSync)("osascript", ["-e", `if ${application} is running then tell ${application} to quit`], { stdio: "ignore" });
|
|
1365
1475
|
}
|
|
1366
|
-
async function launchRuntimeClient(appPath, projectConfigPath, manifest) {
|
|
1367
|
-
quitRuntimeClient();
|
|
1476
|
+
async function launchRuntimeClient(appPath, bundleIdentifier, projectConfigPath, manifest) {
|
|
1477
|
+
quitRuntimeClient(bundleIdentifier);
|
|
1368
1478
|
openRuntimeClient(appPath, projectConfigPath, manifest);
|
|
1369
1479
|
}
|
|
1370
1480
|
async function updateServiceHealthy(serviceUrl) {
|
|
@@ -1453,8 +1563,14 @@ async function startLocalUpdateService() {
|
|
|
1453
1563
|
serviceUrl
|
|
1454
1564
|
};
|
|
1455
1565
|
}
|
|
1456
|
-
function focusRuntimeClient() {
|
|
1457
|
-
|
|
1566
|
+
function focusRuntimeClient(bundleIdentifier) {
|
|
1567
|
+
const application = `application id ${JSON.stringify(bundleIdentifier)}`;
|
|
1568
|
+
const result = (0, node_child_process.spawnSync)("osascript", ["-e", `if ${application} is running then
|
|
1569
|
+
tell ${application} to activate
|
|
1570
|
+
return true
|
|
1571
|
+
end if
|
|
1572
|
+
return false`], { encoding: "utf8" });
|
|
1573
|
+
return result.status === 0 && result.stdout.trim() === "true";
|
|
1458
1574
|
}
|
|
1459
1575
|
function sendJson(res, status, value) {
|
|
1460
1576
|
res.writeHead(status, {
|
|
@@ -1593,12 +1709,14 @@ function setupInteractiveControls(options) {
|
|
|
1593
1709
|
if (key === "o") {
|
|
1594
1710
|
(async () => {
|
|
1595
1711
|
try {
|
|
1596
|
-
if (focusRuntimeClient()) {
|
|
1597
|
-
|
|
1712
|
+
if (focusRuntimeClient(options.bundleIdentifier)) {
|
|
1713
|
+
options.onOpen();
|
|
1714
|
+
console.log("Focused project app");
|
|
1598
1715
|
return;
|
|
1599
1716
|
}
|
|
1600
1717
|
console.log(`Opening Bleam app at ${prettyPath(options.clientAppPath)}`);
|
|
1601
|
-
await launchRuntimeClient(options.clientAppPath, options.projectConfigPath, options.manifest);
|
|
1718
|
+
await launchRuntimeClient(options.clientAppPath, options.bundleIdentifier, options.projectConfigPath, options.manifest);
|
|
1719
|
+
options.onOpen();
|
|
1602
1720
|
} catch (error) {
|
|
1603
1721
|
console.error(error instanceof Error ? error.message : String(error));
|
|
1604
1722
|
}
|
|
@@ -1782,11 +1900,11 @@ async function startDevServer(options) {
|
|
|
1782
1900
|
const config = readProjectConfig(options);
|
|
1783
1901
|
if (options.clean) cleanDevArtifacts(options.projectRoot);
|
|
1784
1902
|
const runtime = await resolveRuntimeArtifact();
|
|
1785
|
-
const
|
|
1903
|
+
const client = copyRuntimeClient(options.projectRoot, runtime, config);
|
|
1786
1904
|
console.log("Preparing Bleam dev workspace");
|
|
1787
1905
|
const workspaceRoot = createDevWorkspace(options.projectRoot, config);
|
|
1788
1906
|
const origin = `http://localhost:${options.port}`;
|
|
1789
|
-
const projectConfigPath = writeProjectRuntimeConfig(options.projectRoot, config, origin);
|
|
1907
|
+
const projectConfigPath = writeProjectRuntimeConfig(options.projectRoot, config, origin, client);
|
|
1790
1908
|
const updateService = await startLocalUpdateService();
|
|
1791
1909
|
const child = (0, node_child_process.spawn)(process.execPath, [
|
|
1792
1910
|
(0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href),
|
|
@@ -1827,7 +1945,7 @@ async function startDevServer(options) {
|
|
|
1827
1945
|
if (didCleanupDevSession) return;
|
|
1828
1946
|
didCleanupDevSession = true;
|
|
1829
1947
|
cleanupInteractiveControls();
|
|
1830
|
-
if (didLaunchRuntimeClient) quitRuntimeClient();
|
|
1948
|
+
if (didLaunchRuntimeClient) quitRuntimeClient(client.bundleIdentifier);
|
|
1831
1949
|
if (updateService.child?.exitCode === null) updateService.child.kill("SIGTERM");
|
|
1832
1950
|
};
|
|
1833
1951
|
const stop = (signal) => {
|
|
@@ -1853,15 +1971,19 @@ async function startDevServer(options) {
|
|
|
1853
1971
|
const manifest = await readDevManifest(origin);
|
|
1854
1972
|
cleanupInteractiveControls = setupInteractiveControls({
|
|
1855
1973
|
origin,
|
|
1856
|
-
clientAppPath,
|
|
1974
|
+
clientAppPath: client.appPath,
|
|
1975
|
+
bundleIdentifier: client.bundleIdentifier,
|
|
1857
1976
|
projectConfigPath,
|
|
1858
1977
|
manifest,
|
|
1978
|
+
onOpen: () => {
|
|
1979
|
+
didLaunchRuntimeClient = true;
|
|
1980
|
+
},
|
|
1859
1981
|
stop: () => stop("SIGINT")
|
|
1860
1982
|
});
|
|
1861
1983
|
if (options.run && process.env.BLEAM_NO_OPEN !== "1") try {
|
|
1862
1984
|
await waitForDevBundle(manifest.bundleUrl);
|
|
1863
|
-
console.log(`Opening
|
|
1864
|
-
await launchRuntimeClient(
|
|
1985
|
+
console.log(`Opening project app at ${prettyPath(client.appPath)}`);
|
|
1986
|
+
await launchRuntimeClient(client.appPath, client.bundleIdentifier, projectConfigPath, manifest);
|
|
1865
1987
|
didLaunchRuntimeClient = true;
|
|
1866
1988
|
} catch (error) {
|
|
1867
1989
|
console.error(`Initial app launch failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1945,6 +2067,9 @@ if (process.env.VITEST !== "true") main().catch((error) => {
|
|
|
1945
2067
|
const __test = {
|
|
1946
2068
|
createProject,
|
|
1947
2069
|
createBuildNativeWorkspace,
|
|
2070
|
+
devAppFileName,
|
|
2071
|
+
devBundleIdentifier,
|
|
2072
|
+
devProjectId,
|
|
1948
2073
|
hasCurrentPodInstall,
|
|
1949
2074
|
installedAppPath,
|
|
1950
2075
|
installArchivedApp,
|
|
@@ -1955,6 +2080,7 @@ const __test = {
|
|
|
1955
2080
|
parseBuildOptions,
|
|
1956
2081
|
parseNewOptions,
|
|
1957
2082
|
parsePublishOtaOptions,
|
|
2083
|
+
personalizeRuntimeClient,
|
|
1958
2084
|
podInstallInputStamp,
|
|
1959
2085
|
replaceOrInsertPlistString
|
|
1960
2086
|
};
|
package/dist/cli.d.cts
CHANGED
|
@@ -55,9 +55,21 @@ declare function nativeArchiveArgs(options: {
|
|
|
55
55
|
}): string[];
|
|
56
56
|
declare function installArchivedApp(archivePath: string, applications?: string): string;
|
|
57
57
|
declare function installedAppPath(appName: string): string;
|
|
58
|
+
declare function devProjectId(projectRoot: string): string;
|
|
59
|
+
declare function devBundleIdentifier(projectId: string): string;
|
|
60
|
+
declare function devAppFileName(name: string): string;
|
|
61
|
+
declare function personalizeRuntimeClient(options: {
|
|
62
|
+
appPath: string;
|
|
63
|
+
name: string;
|
|
64
|
+
bundleIdentifier: string;
|
|
65
|
+
iconPath?: string;
|
|
66
|
+
}): void;
|
|
58
67
|
declare const __test: {
|
|
59
68
|
createProject: typeof createProject;
|
|
60
69
|
createBuildNativeWorkspace: typeof createBuildNativeWorkspace;
|
|
70
|
+
devAppFileName: typeof devAppFileName;
|
|
71
|
+
devBundleIdentifier: typeof devBundleIdentifier;
|
|
72
|
+
devProjectId: typeof devProjectId;
|
|
61
73
|
hasCurrentPodInstall: typeof hasCurrentPodInstall;
|
|
62
74
|
installedAppPath: typeof installedAppPath;
|
|
63
75
|
installArchivedApp: typeof installArchivedApp;
|
|
@@ -68,6 +80,7 @@ declare const __test: {
|
|
|
68
80
|
parseBuildOptions: typeof parseBuildOptions;
|
|
69
81
|
parseNewOptions: typeof parseNewOptions;
|
|
70
82
|
parsePublishOtaOptions: typeof parsePublishOtaOptions;
|
|
83
|
+
personalizeRuntimeClient: typeof personalizeRuntimeClient;
|
|
71
84
|
podInstallInputStamp: typeof podInstallInputStamp;
|
|
72
85
|
replaceOrInsertPlistString: typeof replaceOrInsertPlistString;
|
|
73
86
|
};
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as BleamAppearance } from "./config-
|
|
2
|
+
import { t as BleamAppearance } from "./config-Cms0rvqg.js";
|
|
3
3
|
|
|
4
4
|
//#region src/cli.d.ts
|
|
5
5
|
interface BuildOptions {
|
|
@@ -55,9 +55,21 @@ declare function nativeArchiveArgs(options: {
|
|
|
55
55
|
}): string[];
|
|
56
56
|
declare function installArchivedApp(archivePath: string, applications?: string): string;
|
|
57
57
|
declare function installedAppPath(appName: string): string;
|
|
58
|
+
declare function devProjectId(projectRoot: string): string;
|
|
59
|
+
declare function devBundleIdentifier(projectId: string): string;
|
|
60
|
+
declare function devAppFileName(name: string): string;
|
|
61
|
+
declare function personalizeRuntimeClient(options: {
|
|
62
|
+
appPath: string;
|
|
63
|
+
name: string;
|
|
64
|
+
bundleIdentifier: string;
|
|
65
|
+
iconPath?: string;
|
|
66
|
+
}): void;
|
|
58
67
|
declare const __test: {
|
|
59
68
|
createProject: typeof createProject;
|
|
60
69
|
createBuildNativeWorkspace: typeof createBuildNativeWorkspace;
|
|
70
|
+
devAppFileName: typeof devAppFileName;
|
|
71
|
+
devBundleIdentifier: typeof devBundleIdentifier;
|
|
72
|
+
devProjectId: typeof devProjectId;
|
|
61
73
|
hasCurrentPodInstall: typeof hasCurrentPodInstall;
|
|
62
74
|
installedAppPath: typeof installedAppPath;
|
|
63
75
|
installArchivedApp: typeof installArchivedApp;
|
|
@@ -68,6 +80,7 @@ declare const __test: {
|
|
|
68
80
|
parseBuildOptions: typeof parseBuildOptions;
|
|
69
81
|
parseNewOptions: typeof parseNewOptions;
|
|
70
82
|
parsePublishOtaOptions: typeof parsePublishOtaOptions;
|
|
83
|
+
personalizeRuntimeClient: typeof personalizeRuntimeClient;
|
|
71
84
|
podInstallInputStamp: typeof podInstallInputStamp;
|
|
72
85
|
replaceOrInsertPlistString: typeof replaceOrInsertPlistString;
|
|
73
86
|
};
|