about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/ty/typst-preview/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst-preview/package.nix45
1 files changed, 38 insertions, 7 deletions
diff --git a/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix b/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
index 5b0b1d29ac3c..0e5f12cdc4c3 100644
--- a/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
+++ b/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
@@ -14,28 +14,58 @@
 let
   # Keep the vscode "mgt19937.typst-preview" extension in sync when updating
   # this package at pkgs/applications/editors/vscode/extensions/default.nix
-  version = "0.9.2";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typst-preview";
     rev = "v${version}";
-    hash = "sha256-P11Nkn9Md5xsB9Z7v9O+CRvP18vPEC0Y973Or7i0y/4=";
+    hash = "sha256-BebOwlY2hm/SGYCtmsQICbo1V8sbUMYVWSM773Qmh04=";
+    fetchSubmodules = true;
   };
 
   frontendSrc = "${src}/addons/frontend";
+  domSrc = "${src}/addons/typst-dom";
+
+  typst-dom = mkYarnPackage {
+    inherit version;
+    pname = "typst-dom";
+    src = domSrc;
+    packageJSON = ./dom.json;
+
+    offlineCache = fetchYarnDeps {
+      yarnLock = "${domSrc}/yarn.lock";
+      hash = "sha256-SxOQ/RABUkiqE7dLaDS0kETGiir4SMWJ2w7i7zMEl7U=";
+    };
+
+    buildPhase = ''
+      runHook preBuild
+      yarn --offline build
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      cp -R deps/typst-dom $out
+      runHook postInstall
+    '';
+
+    doDist = false;
+  };
 
   frontend = mkYarnPackage {
     inherit version;
     pname = "typst-preview-frontend";
     src = frontendSrc;
-    packageJSON = ./package.json;
+    packageJSON = ./frontend.json;
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${frontendSrc}/yarn.lock";
-      hash = "sha256-7a7/UOfau84nLIAKj6Tn9rTUmeBJ7rYDFAdr55ZDLgA=";
+      hash = "sha256-6e3UNd8gIBnTtllpo/1AC1XzeZ88rdUiechoQfo5V1Y=";
     };
 
+    packageResolutions = { inherit typst-dom; };
+
     buildPhase = ''
       runHook preBuild
       yarn --offline build
@@ -50,6 +80,7 @@ let
 
     doDist = false;
   };
+
 in
 rustPlatform.buildRustPackage {
   pname = "typst-preview";
@@ -58,9 +89,9 @@ rustPlatform.buildRustPackage {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "hayagriva-0.4.0" = "sha256-377lXL3+TO8U91OopMYEI0NrWWwzy6+O7B65bLhP+X4=";
-      "typst-0.9.0" = "sha256-+rnsUSGi3QZlbC4i8racsM4U6+l8oA9YjjUOtQAIWOk=";
-      "typst-ts-compiler-0.4.0-rc9" = "sha256-NVmbAodDRJBJlGGDRjaEcTHGoCeN4hNjIynIDKqvNbM=";
+      "typst-0.10.0" = "sha256-/Oy4KigXu1E/S9myd+eigqlNvk5x+Ld9gTL9dtpoyqk=";
+      "typst-ts-compiler-0.4.2-rc5" =
+        "sha256-fhwTaAK19Nb7AKNJ9QBZgK1MO7g7s5AdSDqaBjLxT3w=";
     };
   };