From 59bb2400df4c931868a7270f8940ebf63375343a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillem=20C=C3=B3rdoba?=
 <guillemcordoba@users.noreply.github.com>
Date: Tue, 14 Jan 2025 09:14:44 +0100
Subject: [PATCH] Switch playground source to nix (#445)

* Switch playground source to nix

* Removed version

* Pin ts version for lit template

---------

Co-authored-by: Collins Muriuki <hello@collinsmuriuki.xyz>
---
 src/scaffold/app/nix.rs                                 | 3 +++
 src/templates/web_app.rs                                | 2 --
 src/versions.rs                                         | 5 -----
 templates/generic/web-app/README.md.hbs                 | 2 +-
 templates/generic/web-app/package.json.hbs              | 9 ++++-----
 templates/ui-frameworks/lit/web-app/ui/package.json.hbs | 2 +-
 6 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/src/scaffold/app/nix.rs b/src/scaffold/app/nix.rs
index f4f805c60..3407165a3 100644
--- a/src/scaffold/app/nix.rs
+++ b/src/scaffold/app/nix.rs
@@ -33,6 +33,8 @@ pub fn flake_nix(holo_enabled: bool, package_manager: &PackageManager) -> FileTr
 
     nixpkgs.follows = "holonix/nixpkgs";
     flake-parts.follows = "holonix/flake-parts";
+
+    playground.url = "github:darksoil-studio/holochain-playground?ref=main-0.4";
     {}
   }};
 
@@ -47,6 +49,7 @@ pub fn flake_nix(holo_enabled: bool, package_manager: &PackageManager) -> FileTr
         packages = (with pkgs; [
           nodejs_20
           binaryen
+          inputs'.playground.packages.hc-playground
           {}
           {}
         ]);
diff --git a/src/templates/web_app.rs b/src/templates/web_app.rs
index 28dc6d678..b599135b8 100644
--- a/src/templates/web_app.rs
+++ b/src/templates/web_app.rs
@@ -20,7 +20,6 @@ pub struct ScaffoldWebAppData<'a> {
     pub hdk_version: &'a str,
     pub hdi_version: &'a str,
     pub holochain_client_version: &'a str,
-    pub holochain_playground_cli_version: &'a str,
     pub holo_web_sdk_version: &'a str,
     pub hc_spin_version: &'a str,
     pub package_manager: PackageManager,
@@ -42,7 +41,6 @@ pub fn scaffold_web_app_template(
         hdi_version: versions::HDI_VERSION,
         holochain_client_version: versions::HOLOCHAIN_CLIENT_VERSION,
         holo_web_sdk_version: versions::WEB_SDK_VERSION,
-        holochain_playground_cli_version: versions::HOLOCHAIN_PLAYGROUND_CLI_VERSION,
         hc_spin_version: versions::HC_SPIN_VERSION,
         package_manager,
         tryorama_version: versions::TRYORAMA_VERSION,
diff --git a/src/versions.rs b/src/versions.rs
index de482cc26..e3100a5f2 100644
--- a/src/versions.rs
+++ b/src/versions.rs
@@ -18,8 +18,3 @@ pub const HDK_VERSION: &str = "0.4.0";
 
 /// crates.io <https://crates.io/crates/holochain/versions>
 pub const HOLOCHAIN_VERSION: &str = "0.4.0";
-
-/// source: <https://github.com/darksoil-studio/holochain-playground/tree/main/packages/cli/server>
-///
-/// npm: <https://www.npmjs.com/package/@holochain-playground/cli>
-pub const HOLOCHAIN_PLAYGROUND_CLI_VERSION: &str = "^0.300.0-rc.0";
diff --git a/templates/generic/web-app/README.md.hbs b/templates/generic/web-app/README.md.hbs
index 0164034bc..b17809254 100644
--- a/templates/generic/web-app/README.md.hbs
+++ b/templates/generic/web-app/README.md.hbs
@@ -56,4 +56,4 @@ This repository is using these tools:
 - [hc](https://github.com/holochain/holochain/tree/develop/crates/hc): Holochain CLI to easily manage Holochain development instances.
 - [@holochain/tryorama](https://www.npmjs.com/package/@holochain/tryorama): test framework.
 - [@holochain/client](https://www.npmjs.com/package/@holochain/client): client library to connect to Holochain from the UI.
-- [@holochain-playground/cli](https://www.npmjs.com/package/@holochain-playground/cli): introspection tooling to understand what's going on in the Holochain nodes.
+- [hc playground](https://github.com/darksoil-studio/holochain-playground): introspection tooling to understand what's going on in the Holochain nodes.
diff --git a/templates/generic/web-app/package.json.hbs b/templates/generic/web-app/package.json.hbs
index d18d7433d..9ebff28c1 100644
--- a/templates/generic/web-app/package.json.hbs
+++ b/templates/generic/web-app/package.json.hbs
@@ -7,15 +7,15 @@
   ],
   "scripts": {
     "start": "AGENTS=${AGENTS:-2} BOOTSTRAP_PORT=$(get-port) SIGNAL_PORT=$(get-port) {{(package_manager_command package_manager "network" null)}}",
-    "network": "hc sandbox clean && {{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "start" "ui")}}\" \"{{(package_manager_command package_manager "launch:happ" null)}}\" \"holochain-playground\"",
+    "network": "hc sandbox clean && {{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "start" "ui")}}\" \"{{(package_manager_command package_manager "launch:happ" null)}}\" \"hc playground\"",
     "test": "{{(package_manager_command package_manager "build:zomes" null)}} && hc app pack workdir --recursive && {{(package_manager_command package_manager "test" "tests")}}",
     "launch:happ": "hc-spin -n $AGENTS --ui-port $UI_PORT workdir/{{app_name}}.happ",
     "start:tauri": "AGENTS=${AGENTS:-2} BOOTSTRAP_PORT=$(get-port) SIGNAL_PORT=$(get-port) {{(package_manager_command package_manager "network:tauri" null)}}",
-    "network:tauri": "hc sandbox clean && {{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "start" "ui")}}\" \"{{(package_manager_command package_manager "launch:tauri" null)}}\" \"holochain-playground\"",
+    "network:tauri": "hc sandbox clean && {{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "start" "ui")}}\" \"{{(package_manager_command package_manager "launch:tauri" null)}}\" \"hc playground\"",
     "launch:tauri": "concurrently \"hc run-local-services --bootstrap-port $BOOTSTRAP_PORT --signal-port $SIGNAL_PORT\" \"echo pass | RUST_LOG=warn hc launch --piped -n $AGENTS workdir/{{app_name}}.happ --ui-port $UI_PORT network --bootstrap http://127.0.0.1:\"$BOOTSTRAP_PORT\" webrtc ws://127.0.0.1:\"$SIGNAL_PORT\"\"",
   {{#if holo_enabled}}
     "start:holo": "AGENTS=${AGENTS:-2} {{(package_manager_command package_manager "network:holo" null)}}",
-    "network:holo": "{{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "launch:holo-dev-server" null)}}\" \"holochain-playground ws://localhost:4444\" \"concurrently-repeat 'VITE_APP_CHAPERONE_URL=http://localhost:24274 VITE_APP_IS_HOLO=true {{(package_manager_command package_manager "start" "ui")}}' $AGENTS\"",
+    "network:holo": "{{(package_manager_command package_manager "build:happ" null)}} && UI_PORT=$(get-port) concurrently \"{{(package_manager_command package_manager "launch:holo-dev-server" null)}}\" \"hc playground ws://localhost:4444\" \"concurrently-repeat 'VITE_APP_CHAPERONE_URL=http://localhost:24274 VITE_APP_IS_HOLO=true {{(package_manager_command package_manager "start" "ui")}}' $AGENTS\"",
     "launch:holo-dev-server": "holo-dev-server workdir/{{app_name}}.happ",
   {{/if}}
   {{#if (eq package_manager "pnpm")}}
@@ -26,7 +26,6 @@
     "build:zomes": "cargo build --release --target wasm32-unknown-unknown"
   },
   "devDependencies": {
-    "@holochain-playground/cli": "{{holochain_playground_cli_version}}",
     "@holochain/hc-spin": "{{hc_spin_version}}",
     "concurrently": "^6.5.1",
   {{#if holo_enabled}}
@@ -37,4 +36,4 @@
   "engines": {
     "node": ">=16.0.0"
   }
-}
\ No newline at end of file
+}
diff --git a/templates/ui-frameworks/lit/web-app/ui/package.json.hbs b/templates/ui-frameworks/lit/web-app/ui/package.json.hbs
index 5bf4278b5..b792545ea 100644
--- a/templates/ui-frameworks/lit/web-app/ui/package.json.hbs
+++ b/templates/ui-frameworks/lit/web-app/ui/package.json.hbs
@@ -26,7 +26,7 @@
     "prettier": "^2.8.8",
     "rimraf": "^5.0.10",
     "tslib": "^2.8.0",
-    "typescript": "^5.6.3",
+    "typescript": "5.6.3",
     "vite": "^5.4.10",
     "vite-plugin-checker": "^0.5.6"
   },