@lunora/cli 1.0.0-alpha.16 → 1.0.0-alpha.18

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.
@@ -644,6 +644,12 @@ const applyLunoraOverlay = async (options) => {
644
644
  writeFile(target, join$1("src", "server.ts"), SERVER_ENTRY, written);
645
645
  writeFile(target, "wrangler.jsonc", WRANGLER.replaceAll("__NAME__", name), written);
646
646
  writeFile(target, ".env.example", ENV_EXAMPLE, written);
647
+ writeFile(
648
+ target,
649
+ "pnpm-workspace.yaml",
650
+ "# pnpm reads its settings from here (the package.json `pnpm` field is no longer read).\nonlyBuiltDependencies:\n - esbuild\n - sharp\n - workerd\n",
651
+ written
652
+ );
647
653
  for (const file of adapter.files) {
648
654
  writeFile(target, file.path, file.contents, written);
649
655
  }
@@ -836,16 +842,14 @@ const stampLunoraDeps = (packageJsonText, distTag, versions) => {
836
842
  return text;
837
843
  };
838
844
  const PNPM_BUILT_DEPENDENCIES = ["esbuild", "sharp", "workerd"];
839
- const stampPnpmBuildAllowlist = (packageJsonText) => {
840
- try {
841
- const parsed = JSON.parse(packageJsonText);
842
- const merged = [.../* @__PURE__ */ new Set([...parsed.pnpm?.onlyBuiltDependencies ?? [], ...PNPM_BUILT_DEPENDENCIES])].toSorted((a, b) => a.localeCompare(b));
843
- const edits = modify(packageJsonText, ["pnpm", "onlyBuiltDependencies"], merged, { formattingOptions: { insertSpaces: true, tabSize: 4 } });
844
- return applyEdits(packageJsonText, edits);
845
- } catch {
846
- return packageJsonText;
847
- }
848
- };
845
+ const PNPM_WORKSPACE_FILENAME = "pnpm-workspace.yaml";
846
+ const pnpmWorkspaceYaml = () => [
847
+ "# pnpm reads its settings from here (the package.json `pnpm` field is no longer read).",
848
+ "# These native-build toolchain deps run their install scripts without `pnpm approve-builds`.",
849
+ "onlyBuiltDependencies:",
850
+ ...PNPM_BUILT_DEPENDENCIES.map((name) => ` - ${name}`),
851
+ ""
852
+ ].join("\n");
849
853
  const collectFiles = (directory) => {
850
854
  const out = [];
851
855
  for (const entry of walkSync(directory, { includeDirs: false, includeFiles: true })) {
@@ -865,7 +869,7 @@ const copyTemplate = async (sourceDirectory, target, name) => {
865
869
  const raw = readFileSync(source);
866
870
  let text = isTextFile(source) ? substitute(raw.toString("utf8"), name) : void 0;
867
871
  if (text !== void 0 && basename(source) === "package.json") {
868
- text = stampPnpmBuildAllowlist(stampLunoraDeps(text, distTag, versions));
872
+ text = stampLunoraDeps(text, distTag, versions);
869
873
  }
870
874
  if (text === void 0) {
871
875
  writeFileSync(destination, raw);
@@ -874,6 +878,11 @@ const copyTemplate = async (sourceDirectory, target, name) => {
874
878
  }
875
879
  written.push(destination);
876
880
  }
881
+ if (!files.some((source) => basename(source) === PNPM_WORKSPACE_FILENAME)) {
882
+ const workspacePath = join$1(target, PNPM_WORKSPACE_FILENAME);
883
+ writeFileSync(workspacePath, pnpmWorkspaceYaml(), "utf8");
884
+ written.push(workspacePath);
885
+ }
877
886
  return written;
878
887
  };
879
888
  const resolveTemplateSource = (templateType, source, ref) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/cli",
3
- "version": "1.0.0-alpha.16",
3
+ "version": "1.0.0-alpha.18",
4
4
  "description": "The Lunora CLI: init, dev, deploy, codegen, run, reset, and migrate commands",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -52,8 +52,8 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@bomb.sh/tab": "0.0.16",
55
- "@lunora/codegen": "1.0.0-alpha.6",
56
- "@lunora/config": "1.0.0-alpha.8",
55
+ "@lunora/codegen": "1.0.0-alpha.7",
56
+ "@lunora/config": "1.0.0-alpha.10",
57
57
  "@lunora/container": "1.0.0-alpha.1",
58
58
  "@lunora/d1": "1.0.0-alpha.4",
59
59
  "@lunora/seed": "1.0.0-alpha.2",