diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78ecb72..bbe0e07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,10 +10,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 @@ -22,7 +22,7 @@ jobs: uses: DeLaGuardo/setup-clojure@master with: cli: 1.11.1.1237 - bb: 1.0.168 + bb: 1.12.205 - name: Run clj-kondo lint run: clojure -M:clj-kondo --lint src @@ -39,5 +39,5 @@ jobs: - name: Check outdated dependencies uses: liquidz/antq-action@main with: - excludes: 'borkdude/carve clojure/brew-install' + excludes: 'borkdude/carve clojure/brew-install logseq/publish-spa' diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 08c6243..cd15ac8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,6 @@ on: push: - branches: [main] + # branches: [main] paths-ignore: - '*.md' permissions: @@ -11,15 +11,17 @@ jobs: name: Run the action on a test graph and publish steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build graph's SPA - uses: logseq/publish-spa@main + uses: logseq/publish-spa@feat/db with: - graph-directory: test/publish-test-graph + graph-directory: test/publish-test-db-graph theme-mode: dark + accent-color: cyan + version: 3c93fd2637d9615a3fd99b11c73d40a8c4f0ff2d - - name: add a nojekyll file # to make sure asset paths are correctly identified + - name: Add a nojekyll file # to make sure asset paths are correctly identified run: touch $GITHUB_WORKSPACE/www/.nojekyll - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8bd420a..eccdffd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: name: Run the action on a test graph steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run github action uses: logseq/publish-spa@main diff --git a/README.md b/README.md index a94256a..c0fc08e 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: logseq/publish-spa@v0.2.0 - - name: add a nojekyll file # to make sure asset paths are correctly identified + - name: Add a nojekyll file # to make sure asset paths are correctly identified run: touch $GITHUB_WORKSPACE/www/.nojekyll - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@v4 @@ -77,6 +77,10 @@ action with 0.9.2. Optional: Theme mode for frontend. Can be "dark" or "light". Defaults to "light". +##### `accent-color` + +Optional: Accent color for frontend. Can be one of "tomato", "red", "crimson", "pink", "plum", "purple", "violet", "indigo", "blue", "cyan", "teal", "green", "grass", "orange", "brown". Defaults to "blue". + ### CLI To use this as a CLI locally, first install diff --git a/action.yml b/action.yml index daaaffc..5f9b3cf 100644 --- a/action.yml +++ b/action.yml @@ -12,18 +12,22 @@ inputs: version: description: "Frontend version of Logseq - git tag or SHA" required: true - default: '0.9.8' + default: '65640ed8857199d89268295863cd556f5d90ea0b' theme-mode: description: "Theme mode of frontend. Can be 'dark' or 'light'" required: false default: 'light' + accent-color: + description: "Accent color of frontend. 10+ colors available." + required: false + default: 'blue' runs: using: "composite" steps: # First, build logseq's static/ and publishing assets - name: Checkout logseq - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: logseq/logseq path: .logseq-logseq @@ -31,10 +35,12 @@ runs: ## Placed here since node step requires it - name: Checkout action - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: logseq/publish-spa path: .logseq-publish-spa + # TODO: Remove when merging + ref: feat/db - name: Set up Clojure uses: DeLaGuardo/setup-clojure@master @@ -45,7 +51,7 @@ runs: - name: Set up Node uses: actions/setup-node@v3 with: - node-version: '18' + node-version: '22' cache: 'yarn' cache-dependency-path: .logseq-publish-spa/yarn.lock @@ -84,5 +90,5 @@ runs: shell: bash - name: Export graph to directory - run: cd .logseq-publish-spa && node publish_spa.mjs ${{ inputs.output-directory }} --static-directory .logseq-logseq/static --directory ${{ inputs.graph-directory }} --theme-mode ${{ inputs.theme-mode }} + run: cd .logseq-publish-spa && node publish_spa.mjs ${{ inputs.output-directory }} --static-directory .logseq-logseq/static --directory ${{ inputs.graph-directory }} --theme-mode ${{ inputs.theme-mode }} --accent-color ${{ inputs.accent-color }} shell: bash diff --git a/bb.edn b/bb.edn index 7cda99d..4355813 100644 --- a/bb.edn +++ b/bb.edn @@ -2,7 +2,7 @@ :deps {io.github.logseq/bb-tasks #_{:local/root "../bb-tasks"} - {:git/sha "70d3edeb287f5cec7192e642549a401f7d6d4263"}} + {:git/sha "acb3d3d5d38c4ac16f617cb10ae6f99fe1b8de6e"}} :pods {clj-kondo/clj-kondo {:version "2023.03.17"}} diff --git a/deps.edn b/deps.edn index e369559..d4fc0ab 100644 --- a/deps.edn +++ b/deps.edn @@ -1,6 +1,6 @@ {:aliases {:clj-kondo - {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}} + {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2025.06.05"}} :main-opts ["-m" "clj-kondo.main"]} :outdated {:replace-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}} diff --git a/nbb.edn b/nbb.edn index 59104bb..0b78932 100644 --- a/nbb.edn +++ b/nbb.edn @@ -1,18 +1,23 @@ {:deps {logseq/graph-parser {:git/url "https://github.com/logseq/logseq" - :git/sha "82cf4d3c65acbf230a3170640fe271dd74095067" - :git/tag "0.9.8" + :git/sha "65640ed8857199d89268295863cd556f5d90ea0b" :deps/root "deps/graph-parser"} #_{:local/root "../logseq/deps/graph-parser"} logseq/publishing {:git/url "https://github.com/logseq/logseq" - :git/sha "82cf4d3c65acbf230a3170640fe271dd74095067" - :git/tag "0.9.8" + :git/sha "65640ed8857199d89268295863cd556f5d90ea0b" :deps/root "deps/publishing"} + #_{:local/root "../logseq/deps/publishing"} ;; TODO: Remove workaround for error: 'Unable to compare versions for logseq/db' logseq/db {:git/url "https://github.com/logseq/logseq" - :git/sha "82cf4d3c65acbf230a3170640fe271dd74095067" - :git/tag "0.9.8" - :deps/root "deps/db"}}} + :git/sha "65640ed8857199d89268295863cd556f5d90ea0b" + :deps/root "deps/db"} + #_{:local/root "../logseq/deps/db"} + ;; TODO: Remove workaround for error: 'Unable to compare versions for logseq/common' + logseq/common + {:git/url "https://github.com/logseq/logseq" + :git/sha "65640ed8857199d89268295863cd556f5d90ea0b" + :deps/root "deps/common"} + #_{:local/root "../logseq/deps/db"}}} diff --git a/package.json b/package.json index b4cb5a1..6cb3eab 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,9 @@ }, "homepage": "https://github.com/logseq/publish-spa#readme", "dependencies": { - "@logseq/nbb-logseq": "^1.2.173", + "@logseq/nbb-logseq": "logseq/nbb-logseq#feat-db-v24", + "better-sqlite3": "11.10.0", "fs-extra": "^9.1.0", - "mldoc": "^1.5.1" + "mldoc": "^1.5.9" } } diff --git a/src/logseq/publish_spa.cljs b/src/logseq/publish_spa.cljs index 4901fdc..eae8ec2 100644 --- a/src/logseq/publish_spa.cljs +++ b/src/logseq/publish_spa.cljs @@ -4,8 +4,11 @@ [logseq.publishing :as publishing] ["fs" :as fs] ["path" :as node-path] + [logseq.db.common.sqlite-cli :as sqlite-cli] + [datascript.core :as d] [babashka.cli :as cli] - [clojure.edn :as edn])) + [clojure.edn :as edn] + [logseq.db.sqlite.util :as sqlite-util])) (defn- get-db [graph-dir] (let [{:keys [conn]} (gp-cli/parse-graph graph-dir {:verbose false})] @conn)) @@ -15,14 +18,17 @@ {:directory {:desc "Graph directory to export" :alias :d :default "."} + :dev {:coerce :boolean + :desc "Dev mode"} :help {:alias :h :desc "Print help"} :static-directory {:desc "Logseq's static directory" :alias :s :default "../logseq/static"}}) -(defn- validate-directories [graph-dir static-dir] - (when-not (fs/existsSync (node-path/join graph-dir "logseq" "config.edn")) +(defn- validate-directories [graph-dir static-dir {:keys [graph-db?]}] + (when (and (not graph-db?) + (not (fs/existsSync (node-path/join graph-dir "logseq" "config.edn")))) (println (str "Error: Invalid graph directory '" graph-dir "' as it has no logseq/config.edn.")) (js/process.exit 1)) @@ -39,6 +45,56 @@ (println "Warning: Skipping :theme-mode since it is invalid. Must be 'light' or 'dark'.") "light")))) +(def ^:private valid-colors + "From frontend.colors/color-list" + [:tomato :red :crimson :pink :plum :purple :violet :indigo :blue :cyan :teal :green :grass :orange :brown]) + +(defn- get-accent-color [color*] + (let [color (keyword (or color* "blue"))] + (if (contains? (set valid-colors) color) + color + (do + (println "Warning: Skipping :accent-color since it is invalid.") + :blue)))) + +(defn- build-common-export-options + [options] + {:ui/theme (get-theme-mode (:theme-mode options)) + :ui/radix-color (get-accent-color (:accent-color options)) + :dev? (boolean (:dev options)) + :notification-fn (fn [msg] + (if (= "error" (:type msg)) + (do (js/console.error (:payload msg)) + (js/process.exit 1)) + (js/console.log (:payload msg))))}) + +(defn- publish-file-graph [static-dir graph-dir output-path options] + (let [repo-config (-> (node-path/join graph-dir "logseq" "config.edn") fs/readFileSync str edn/read-string)] + (publishing/export (get-db graph-dir) + static-dir + graph-dir + output-path + (merge (build-common-export-options options) + {:repo (node-path/basename graph-dir) + :repo-config repo-config})))) + +(defn- publish-db-graph [static-dir graph-dir output-path options] + (let [db-name (node-path/basename graph-dir) + conn (sqlite-cli/open-db! (node-path/dirname graph-dir) db-name) + repo-config (-> (d/q '[:find ?content + :where [?b :file/path "logseq/config.edn"] [?b :file/content ?content]] + @conn) + ffirst + edn/read-string)] + (publishing/export @conn + static-dir + graph-dir + output-path + (merge (build-common-export-options options) + {:repo (str sqlite-util/db-version-prefix db-name) + :repo-config repo-config + :db-graph? true})))) + (defn ^:api -main [& args] (let [options (cli/parse-opts args {:spec spec}) @@ -48,21 +104,16 @@ (js/process.exit 1)) _ (when js/process.env.CI (println "Options:" (pr-str options))) [static-dir graph-dir output-path] - ;; Offset relative paths for CI since it is run in a different dir - (map #(if js/process.env.CI (node-path/resolve ".." %) %) + (map #(if js/process.env.CI + ;; Offset relative paths for CI since it is run in a different dir + (node-path/resolve ".." %) + ;; Resolve static dir so that copied js assets don't have incorrect relative paths + (node-path/resolve "." %)) [(:static-directory options) (:directory options) (first args)]) - _ (validate-directories graph-dir static-dir) - repo-config (-> (node-path/join graph-dir "logseq" "config.edn") fs/readFileSync str edn/read-string)] - (publishing/export (get-db graph-dir) - static-dir - graph-dir - output-path - {:repo-config repo-config - :ui/theme (get-theme-mode (:theme-mode options)) - :notification-fn (fn [msg] - (if (= "error" (:type msg)) - (do (js/console.error (:payload msg)) - (js/process.exit 1)) - (js/console.log (:payload msg))))}))) + graph-db? (sqlite-cli/db-graph-directory? graph-dir) + _ (validate-directories graph-dir static-dir {:graph-db? graph-db?})] + (if graph-db? + (publish-db-graph static-dir graph-dir output-path options) + (publish-file-graph static-dir graph-dir output-path options)))) #js {:main -main} diff --git a/test/publish-test-db-graph/db.sqlite b/test/publish-test-db-graph/db.sqlite new file mode 100644 index 0000000..c716797 Binary files /dev/null and b/test/publish-test-db-graph/db.sqlite differ diff --git a/yarn.lock b/yarn.lock index b6be2e9..683a9d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,11 @@ # yarn lockfile v1 -"@logseq/nbb-logseq@^1.2.173": - version "1.2.173" - resolved "https://registry.yarnpkg.com/@logseq/nbb-logseq/-/nbb-logseq-1.2.173.tgz#27a52c350f06ac9c337d73687738f6ea8b2fc3f3" - integrity sha512-ABKPtVnSOiS4Zpk9+UTaGcs5H6EUmRADr9FJ0aEAVpa0WfAyvUbX/NgkQGMe1kKRv3EbIuLwaxfy+txr31OtAg== +"@logseq/nbb-logseq@logseq/nbb-logseq#feat-db-v24": + version "1.2.173-feat-db-v24" + resolved "https://codeload.github.com/logseq/nbb-logseq/tar.gz/3d5b78b0382c7253bf9874c1f38586dd338434f4" dependencies: - import-meta-resolve "^2.1.0" + import-meta-resolve "^4.1.0" ansi-regex@^2.0.0: version "2.1.1" @@ -24,11 +23,53 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +better-sqlite3@11.10.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-11.10.0.tgz#2b1b14c5acd75a43fd84d12cc291ea98cef57d98" + integrity sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ== + dependencies: + bindings "^1.5.0" + prebuild-install "^7.1.1" + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -59,7 +100,24 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -end-of-stream@^1.1.0: +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +detect-libc@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -79,6 +137,16 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -86,6 +154,11 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -108,15 +181,35 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -import-meta-resolve@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9" - integrity sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA== +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +import-meta-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== invert-kv@^2.0.0: version "2.0.0" @@ -169,6 +262,13 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -190,18 +290,45 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mldoc@^1.5.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-1.5.3.tgz#98d5bb276ac6908d72e1c58c27916e488ef9d395" - integrity sha512-hkI3PtjBHhbZqTr1U5/A8TIrIzg9DGZzCMLrfzePAdM+97GNeZijmPqUQXWEAyEQsDPnkipMoQZsBXxhnwzfJA== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimist@^1.2.0, minimist@^1.2.3: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mldoc@^1.5.9: + version "1.5.9" + resolved "https://registry.yarnpkg.com/mldoc/-/mldoc-1.5.9.tgz#43d740351c64285f0f4988ac9497922d54ae66fc" + integrity sha512-87FQ7hseS87tsk+VdpIigpu8LH+GwmbbFgpxgFwvnbH5oOjmIrc47laH4Dyggzqiy8/vMjDHkl7vsId0eXhCDQ== dependencies: yargs "^12.0.2" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-abi@^3.3.0: + version "3.46.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.46.0.tgz#491adaa8d227ca9702f30b27b2b6b248caa1348f" + integrity sha512-LXvP3AqTIrtvH/jllXjkNVbYifpRbt9ThTtymSMSuHmhugQLAWr99QQFTm+ZRht9ziUvdGOgB+esme1C6iE6Lg== + dependencies: + semver "^7.3.5" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -274,6 +401,24 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== +prebuild-install@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -282,6 +427,25 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -292,11 +456,23 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@^7.3.5: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -319,6 +495,20 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -336,6 +526,13 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -355,11 +552,49 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -390,6 +625,11 @@ wrappy@1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"