everything-dev 1.16.0 → 1.16.2
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/cli/infra.cjs +127 -0
- package/dist/cli/infra.cjs.map +1 -0
- package/dist/cli/infra.mjs +124 -0
- package/dist/cli/infra.mjs.map +1 -0
- package/dist/cli/init.cjs +9 -0
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +2 -1
- package/dist/cli/init.d.cts.map +1 -1
- package/dist/cli/init.d.mts +2 -1
- package/dist/cli/init.d.mts.map +1 -1
- package/dist/cli/init.mjs +9 -1
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/sync.cjs +6 -0
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +6 -0
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli/upgrade.cjs +75 -7
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +74 -8
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/cli.cjs +2 -0
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +2 -0
- package/dist/cli.mjs.map +1 -1
- package/dist/config.cjs +2 -24
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +3 -25
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +2 -0
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +6 -2
- package/dist/contract.d.cts.map +1 -1
- package/dist/contract.d.mts +6 -2
- package/dist/contract.d.mts.map +1 -1
- package/dist/contract.meta.cjs +2 -2
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +2 -2
- package/dist/contract.meta.d.mts +2 -2
- package/dist/contract.meta.mjs +2 -2
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +2 -0
- package/dist/contract.mjs.map +1 -1
- package/dist/fastkv.cjs +0 -45
- package/dist/fastkv.cjs.map +1 -1
- package/dist/fastkv.d.cts +1 -19
- package/dist/fastkv.d.cts.map +1 -1
- package/dist/fastkv.d.mts +1 -19
- package/dist/fastkv.d.mts.map +1 -1
- package/dist/fastkv.mjs +1 -44
- package/dist/fastkv.mjs.map +1 -1
- package/dist/index.cjs +0 -2
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/merge.cjs +4 -11
- package/dist/merge.cjs.map +1 -1
- package/dist/merge.d.cts.map +1 -1
- package/dist/merge.d.mts.map +1 -1
- package/dist/merge.mjs +4 -11
- package/dist/merge.mjs.map +1 -1
- package/dist/near-cli.cjs +1 -1
- package/dist/near-cli.mjs +1 -1
- package/dist/plugin.cjs +51 -58
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +4 -2
- package/dist/plugin.d.cts.map +1 -1
- package/dist/plugin.d.mts +4 -2
- package/dist/plugin.d.mts.map +1 -1
- package/dist/plugin.mjs +50 -57
- package/dist/plugin.mjs.map +1 -1
- package/dist/types.d.cts +2 -2
- package/dist/types.d.mts +2 -2
- package/package.json +1 -1
- package/src/cli/infra.ts +190 -0
- package/src/cli/init.ts +4 -0
- package/src/cli/sync.ts +9 -0
- package/src/cli/upgrade.ts +117 -6
- package/src/cli.ts +6 -0
- package/src/config.ts +5 -34
- package/src/contract.meta.ts +2 -2
- package/src/contract.ts +2 -0
- package/src/fastkv.ts +0 -72
- package/src/merge.ts +6 -19
- package/src/plugin.ts +51 -70
package/src/plugin.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
1
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
2
|
import { basename, dirname, join, resolve } from "node:path";
|
|
4
3
|
import * as p from "@clack/prompts";
|
|
5
4
|
import { Effect } from "effect";
|
|
6
5
|
import { syncApiContractBridge } from "./api-contract";
|
|
7
6
|
import { buildRuntimeConfig, detectLocalPackages, prepareDevelopmentRuntimeConfig } from "./app";
|
|
7
|
+
import { ensureEnvFile, writeGeneratedInfra } from "./cli/infra";
|
|
8
8
|
import {
|
|
9
9
|
copyFilteredFiles,
|
|
10
10
|
fetchParentConfig,
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
readTemplatekeep,
|
|
14
14
|
resolveSourceDir,
|
|
15
15
|
runBunInstall,
|
|
16
|
+
runDockerComposeUp,
|
|
16
17
|
runTypesGen,
|
|
17
18
|
writeInitSnapshot,
|
|
18
19
|
} from "./cli/init";
|
|
@@ -57,38 +58,6 @@ import { run } from "./utils/run";
|
|
|
57
58
|
import { saveBosConfig } from "./utils/save-config";
|
|
58
59
|
import { colors } from "./utils/theme";
|
|
59
60
|
|
|
60
|
-
function ensureEnvFile(configDir: string, opts?: { domain?: string }): void {
|
|
61
|
-
const envPath = join(configDir, ".env");
|
|
62
|
-
const examplePath = join(configDir, ".env.example");
|
|
63
|
-
|
|
64
|
-
if (existsSync(envPath)) return;
|
|
65
|
-
|
|
66
|
-
if (!existsSync(examplePath)) return;
|
|
67
|
-
|
|
68
|
-
const content = readFileSync(examplePath, "utf-8");
|
|
69
|
-
const lines = content.split("\n");
|
|
70
|
-
|
|
71
|
-
const secret = randomBytes(32).toString("base64url");
|
|
72
|
-
const corsOrigin = opts?.domain
|
|
73
|
-
? `http://localhost:3000,https://${opts.domain}`
|
|
74
|
-
: "http://localhost:3000";
|
|
75
|
-
|
|
76
|
-
const updated = lines
|
|
77
|
-
.map((line) => {
|
|
78
|
-
if (/^BETTER_AUTH_SECRET=/.test(line)) {
|
|
79
|
-
return `BETTER_AUTH_SECRET=${secret}`;
|
|
80
|
-
}
|
|
81
|
-
if (/^CORS_ORIGIN=/.test(line)) {
|
|
82
|
-
return `CORS_ORIGIN=${corsOrigin}`;
|
|
83
|
-
}
|
|
84
|
-
return line;
|
|
85
|
-
})
|
|
86
|
-
.join("\n");
|
|
87
|
-
|
|
88
|
-
writeFileSync(envPath, updated);
|
|
89
|
-
p.log.info(`Created .env from .env.example with generated BETTER_AUTH_SECRET`);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
61
|
const buildCommands: Record<string, { cmd: string; args: string[] }> = {
|
|
93
62
|
host: { cmd: "bun", args: ["run", "build"] },
|
|
94
63
|
ui: { cmd: "bun", args: ["run", "build"] },
|
|
@@ -711,32 +680,19 @@ export default createPlugin({
|
|
|
711
680
|
pluginDomain = `${input.key}.${deps.bosConfig.domain ?? "everything.dev"}`;
|
|
712
681
|
}
|
|
713
682
|
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
const registryEntries: Record<string, string> = {
|
|
717
|
-
[`plugins/${account}/${input.key}/manifest.json`]: JSON.stringify(manifest),
|
|
718
|
-
[`plugins/${account}/${input.key}/metadata`]: JSON.stringify({
|
|
719
|
-
title: null,
|
|
720
|
-
description: null,
|
|
721
|
-
repoUrl: deps.bosConfig.repository ?? null,
|
|
722
|
-
version,
|
|
723
|
-
publishedAt: new Date().toISOString(),
|
|
724
|
-
cdnUrl: publishedUrl,
|
|
725
|
-
integrity,
|
|
726
|
-
}),
|
|
727
|
-
[`plugins/${account}/${input.key}/versions/${version}/manifest.json`]:
|
|
728
|
-
JSON.stringify(manifest),
|
|
729
|
-
};
|
|
683
|
+
try {
|
|
684
|
+
const registryEntries: Record<string, string> = {};
|
|
730
685
|
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
686
|
+
if (existsSync(pluginConfigPath)) {
|
|
687
|
+
try {
|
|
688
|
+
const publishedPluginConfig = JSON.parse(readFileSync(pluginConfigPath, "utf-8"));
|
|
689
|
+
delete publishedPluginConfig.development;
|
|
690
|
+
registryEntries[`apps/${account}/${pluginDomain}/bos.config.json`] =
|
|
691
|
+
JSON.stringify(publishedPluginConfig);
|
|
692
|
+
} catch {}
|
|
693
|
+
}
|
|
739
694
|
|
|
695
|
+
if (Object.keys(registryEntries).length > 0) {
|
|
740
696
|
const payload = JSON.stringify(registryEntries);
|
|
741
697
|
const argsBase64 = Buffer.from(payload).toString("base64");
|
|
742
698
|
const privateKey = process.env.NEAR_PRIVATE_KEY || process.env.BOS_NEAR_PRIVATE_KEY;
|
|
@@ -763,11 +719,11 @@ export default createPlugin({
|
|
|
763
719
|
);
|
|
764
720
|
}
|
|
765
721
|
}
|
|
766
|
-
} catch (registryError) {
|
|
767
|
-
console.warn(
|
|
768
|
-
`[publish] Plugin registry write skipped: ${registryError instanceof Error ? registryError.message : registryError}`,
|
|
769
|
-
);
|
|
770
722
|
}
|
|
723
|
+
} catch (registryError) {
|
|
724
|
+
console.warn(
|
|
725
|
+
`[publish] Plugin registry write skipped: ${registryError instanceof Error ? registryError.message : registryError}`,
|
|
726
|
+
);
|
|
771
727
|
}
|
|
772
728
|
|
|
773
729
|
await generateCodeArtifacts(deps.configDir, deps.bosConfig);
|
|
@@ -1355,6 +1311,7 @@ export default createPlugin({
|
|
|
1355
1311
|
}
|
|
1356
1312
|
|
|
1357
1313
|
directory = directory || domain || extendsGateway;
|
|
1314
|
+
const targetDir = resolve(directory);
|
|
1358
1315
|
plugins = plugins ?? [];
|
|
1359
1316
|
|
|
1360
1317
|
if (!parentConfig) {
|
|
@@ -1418,13 +1375,13 @@ export default createPlugin({
|
|
|
1418
1375
|
const s = p.spinner();
|
|
1419
1376
|
s.start("Setting up project");
|
|
1420
1377
|
|
|
1421
|
-
const filesCopied = await copyFilteredFiles(sourceDir,
|
|
1378
|
+
const filesCopied = await copyFilteredFiles(sourceDir, targetDir, patterns, {
|
|
1422
1379
|
withHost,
|
|
1423
1380
|
plugins,
|
|
1424
1381
|
pluginRoutes,
|
|
1425
1382
|
});
|
|
1426
1383
|
|
|
1427
|
-
await personalizeConfig(
|
|
1384
|
+
await personalizeConfig(targetDir, {
|
|
1428
1385
|
extendsAccount,
|
|
1429
1386
|
extendsGateway,
|
|
1430
1387
|
account: account || extendsAccount,
|
|
@@ -1435,27 +1392,51 @@ export default createPlugin({
|
|
|
1435
1392
|
withHost,
|
|
1436
1393
|
});
|
|
1437
1394
|
|
|
1438
|
-
await writeInitSnapshot(
|
|
1395
|
+
await writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
|
|
1439
1396
|
withHost,
|
|
1440
1397
|
plugins,
|
|
1441
1398
|
pluginRoutes,
|
|
1442
1399
|
});
|
|
1443
1400
|
|
|
1444
|
-
|
|
1401
|
+
const initConfig = await loadConfig({ cwd: targetDir });
|
|
1402
|
+
if (initConfig?.runtime) {
|
|
1403
|
+
writeGeneratedInfra(targetDir, initConfig.runtime);
|
|
1404
|
+
}
|
|
1405
|
+
ensureEnvFile(targetDir);
|
|
1445
1406
|
|
|
1446
1407
|
if (!input.noInstall) {
|
|
1447
|
-
await runBunInstall(
|
|
1448
|
-
await runTypesGen(
|
|
1449
|
-
await generateDatabaseMigrations(
|
|
1408
|
+
await runBunInstall(targetDir);
|
|
1409
|
+
await runTypesGen(targetDir);
|
|
1410
|
+
await generateDatabaseMigrations(targetDir);
|
|
1450
1411
|
}
|
|
1451
1412
|
|
|
1452
|
-
const initConfig = await loadConfig({ cwd: directory });
|
|
1453
1413
|
if (initConfig?.config) {
|
|
1454
|
-
await generateCodeArtifacts(
|
|
1414
|
+
await generateCodeArtifacts(targetDir, initConfig.config);
|
|
1455
1415
|
}
|
|
1456
1416
|
|
|
1457
1417
|
s.stop("Project initialized");
|
|
1458
1418
|
|
|
1419
|
+
if (!input.noInteractive) {
|
|
1420
|
+
const shouldStartDocker = await p.confirm({
|
|
1421
|
+
message: "Run docker compose up -d --wait?",
|
|
1422
|
+
initialValue: true,
|
|
1423
|
+
});
|
|
1424
|
+
|
|
1425
|
+
if (shouldStartDocker === true) {
|
|
1426
|
+
const dockerSpinner = p.spinner();
|
|
1427
|
+
dockerSpinner.start("Starting Docker services");
|
|
1428
|
+
try {
|
|
1429
|
+
await runDockerComposeUp(targetDir);
|
|
1430
|
+
dockerSpinner.stop("Docker services ready");
|
|
1431
|
+
} catch (error) {
|
|
1432
|
+
dockerSpinner.stop("Docker services not started");
|
|
1433
|
+
p.log.warn(
|
|
1434
|
+
`docker compose up -d --wait failed: ${error instanceof Error ? error.message : error}`,
|
|
1435
|
+
);
|
|
1436
|
+
}
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1459
1440
|
return {
|
|
1460
1441
|
status: "initialized" as const,
|
|
1461
1442
|
directory,
|