create-astrale-domain 0.1.6 → 0.2.1

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 +29 -7
  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 = {
@@ -817,11 +819,14 @@ async function scaffold(opts) {
817
819
  }
818
820
  await cp(src, opts.dir, {
819
821
  recursive: true,
820
- filter: (s) => !/\/(node_modules|\.astrale|dist-client|\.wrangler)(\/|$)/.test(`/${relative(src, s)}`)
822
+ filter: (s) => !/\/(node_modules|\.astrale|dist-client|\.wrangler|pnpm-lock\.yaml)(\/|$)/.test(
823
+ `/${relative(src, s)}`
824
+ )
821
825
  });
822
826
  await materializeAdapter(opts);
823
827
  await stampOrigin(opts.dir, opts.origin);
824
828
  await rewritePackageJson(opts.dir, opts.name, opts.link);
829
+ if (opts.link) await linkWorkspaceMember(join(opts.dir, "client", "package.json"));
825
830
  await writeFile(
826
831
  join(opts.dir, ".env.dev"),
827
832
  "# Dev secrets \u2014 the ENTIRE file is injected into the local runtime by `pnpm dev`.\n# Gitignored. See .env.example.\n"
@@ -861,6 +866,21 @@ async function setAdapterDep(dir, from, to) {
861
866
  );
862
867
  await writeFile(path, JSON.stringify(pkg, null, 2) + "\n");
863
868
  }
869
+ async function linkWorkspaceMember(pkgPath) {
870
+ if (!existsSync(pkgPath)) return;
871
+ const pkg = JSON.parse(await readFile(pkgPath, "utf-8"));
872
+ let changed = false;
873
+ for (const group of [pkg.dependencies, pkg.devDependencies]) {
874
+ if (!group) continue;
875
+ for (const [dep, rel] of Object.entries(LINK_TARGETS)) {
876
+ if (dep in group) {
877
+ group[dep] = `link:${join(WORKSPACE_ROOT, rel)}`;
878
+ changed = true;
879
+ }
880
+ }
881
+ }
882
+ if (changed) await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
883
+ }
864
884
  async function rewritePackageJson(dir, name, link) {
865
885
  const path = join(dir, "package.json");
866
886
  const pkg = JSON.parse(await readFile(path, "utf-8"));
@@ -888,7 +908,7 @@ function sdkZodVersion() {
888
908
  }
889
909
  async function blankOut(dir, origin) {
890
910
  await writeFile(
891
- join(dir, "schema", "note.ts"),
911
+ join(dir, "schema", "monitor.ts"),
892
912
  `// Author your classes/interfaces here, then register them in schema/index.ts.
893
913
  export {}
894
914
  `
@@ -951,14 +971,16 @@ export const methods: SchemaMethodsImpl<typeof schema, Deps> = { class: {} }
951
971
  `);
952
972
  await writeFile(join(dir, "views", "index.ts"), `export const views = {}
953
973
  `);
954
- await rm(join(dir, "schema", "compiled.ts"), { force: true });
955
974
  await rm(join(dir, "core"), { recursive: true, force: true });
956
975
  await rm(join(dir, "integrations"), { recursive: true, force: true });
957
976
  await rm(join(dir, "views", "welcome.ts"), { force: true });
958
- await rm(join(dir, "views", "note.ts"), { force: true });
977
+ await rm(join(dir, "views", "status-page.ts"), { force: true });
978
+ await rm(join(dir, "runtime", "monitor"), { recursive: true, force: true });
979
+ await rm(join(dir, "runtime", "status-page"), { recursive: true, force: true });
980
+ await rm(join(dir, "runtime", "shared.ts"), { force: true });
959
981
  await replaceInFile(
960
982
  join(dir, "domain.ts"),
961
- /\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Note:seed`,/,
983
+ /\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Monitor:seed`,/,
962
984
  ""
963
985
  );
964
986
  }
@@ -1068,7 +1090,7 @@ async function main() {
1068
1090
  {
1069
1091
  value: "template",
1070
1092
  label: "Template",
1071
- hint: 'a working "Note" class + a view + a seed'
1093
+ hint: 'a working "Monitor" class + a view + a seed'
1072
1094
  },
1073
1095
  { value: "blank", label: "Blank" }
1074
1096
  ]
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.1",
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",