create-astrale-domain 0.1.6 → 0.2.0

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 (2) hide show
  1. package/dist/index.js +26 -6
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -795,7 +795,9 @@ var LINK_TARGETS = {
795
795
  "@astrale-os/adapter-cloudflare": "sdk/adapter-cloudflare",
796
796
  "@astrale-os/adapter-astrale": "sdk/adapter-astrale",
797
797
  "@astrale-os/kernel-core": "kernel/core",
798
- "@astrale-os/kernel-dsl": "kernel/dsl"
798
+ "@astrale-os/kernel-dsl": "kernel/dsl",
799
+ // The client SPA consumes the real shell (createShell + the kernel client).
800
+ "@astrale-os/shell": "shell/packages/shell"
799
801
  };
800
802
  var BODY_PACKAGE = "@astrale-os/adapter-cloudflare";
801
803
  var ADAPTER_PACKAGES = {
@@ -822,6 +824,7 @@ async function scaffold(opts) {
822
824
  await materializeAdapter(opts);
823
825
  await stampOrigin(opts.dir, opts.origin);
824
826
  await rewritePackageJson(opts.dir, opts.name, opts.link);
827
+ if (opts.link) await linkWorkspaceMember(join(opts.dir, "client", "package.json"));
825
828
  await writeFile(
826
829
  join(opts.dir, ".env.dev"),
827
830
  "# Dev secrets \u2014 the ENTIRE file is injected into the local runtime by `pnpm dev`.\n# Gitignored. See .env.example.\n"
@@ -861,6 +864,21 @@ async function setAdapterDep(dir, from, to) {
861
864
  );
862
865
  await writeFile(path, JSON.stringify(pkg, null, 2) + "\n");
863
866
  }
867
+ async function linkWorkspaceMember(pkgPath) {
868
+ if (!existsSync(pkgPath)) return;
869
+ const pkg = JSON.parse(await readFile(pkgPath, "utf-8"));
870
+ let changed = false;
871
+ for (const group of [pkg.dependencies, pkg.devDependencies]) {
872
+ if (!group) continue;
873
+ for (const [dep, rel] of Object.entries(LINK_TARGETS)) {
874
+ if (dep in group) {
875
+ group[dep] = `link:${join(WORKSPACE_ROOT, rel)}`;
876
+ changed = true;
877
+ }
878
+ }
879
+ }
880
+ if (changed) await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
881
+ }
864
882
  async function rewritePackageJson(dir, name, link) {
865
883
  const path = join(dir, "package.json");
866
884
  const pkg = JSON.parse(await readFile(path, "utf-8"));
@@ -888,7 +906,7 @@ function sdkZodVersion() {
888
906
  }
889
907
  async function blankOut(dir, origin) {
890
908
  await writeFile(
891
- join(dir, "schema", "note.ts"),
909
+ join(dir, "schema", "monitor.ts"),
892
910
  `// Author your classes/interfaces here, then register them in schema/index.ts.
893
911
  export {}
894
912
  `
@@ -951,14 +969,16 @@ export const methods: SchemaMethodsImpl<typeof schema, Deps> = { class: {} }
951
969
  `);
952
970
  await writeFile(join(dir, "views", "index.ts"), `export const views = {}
953
971
  `);
954
- await rm(join(dir, "schema", "compiled.ts"), { force: true });
955
972
  await rm(join(dir, "core"), { recursive: true, force: true });
956
973
  await rm(join(dir, "integrations"), { recursive: true, force: true });
957
974
  await rm(join(dir, "views", "welcome.ts"), { force: true });
958
- await rm(join(dir, "views", "note.ts"), { force: true });
975
+ await rm(join(dir, "views", "status-page.ts"), { force: true });
976
+ await rm(join(dir, "runtime", "monitor"), { recursive: true, force: true });
977
+ await rm(join(dir, "runtime", "status-page"), { recursive: true, force: true });
978
+ await rm(join(dir, "runtime", "shared.ts"), { force: true });
959
979
  await replaceInFile(
960
980
  join(dir, "domain.ts"),
961
- /\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Note:seed`,/,
981
+ /\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Monitor:seed`,/,
962
982
  ""
963
983
  );
964
984
  }
@@ -1068,7 +1088,7 @@ async function main() {
1068
1088
  {
1069
1089
  value: "template",
1070
1090
  label: "Template",
1071
- hint: 'a working "Note" class + a view + a seed'
1091
+ hint: 'a working "Monitor" class + a view + a seed'
1072
1092
  },
1073
1093
  { value: "blank", label: "Blank" }
1074
1094
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-astrale-domain",
3
- "version": "0.1.6",
3
+ "version": "0.2.0",
4
4
  "description": "Scaffold a standalone Astrale domain — npm create astrale-domain",
5
5
  "keywords": [
6
6
  "astrale",
@@ -19,8 +19,8 @@
19
19
  "type": "module",
20
20
  "dependencies": {
21
21
  "@clack/prompts": "^0.11.0",
22
- "@astrale-os/adapter-cloudflare": "^0.1.9",
23
- "@astrale-os/adapter-astrale": "^0.1.0"
22
+ "@astrale-os/adapter-cloudflare": "^0.2.0",
23
+ "@astrale-os/adapter-astrale": "^0.2.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@astrale-os/ox": ">=0.1.0 <1.0.0",