🔥 Remove unused svg parsing code from common

This commit is contained in:
Andrey Antukh 2025-05-15 12:29:35 +02:00
parent c8a211742a
commit 1fea1e8f5b
11 changed files with 37 additions and 89 deletions

View file

@ -118,7 +118,6 @@
(ex/raise :type :validation (ex/raise :type :validation
:code :cant-persist-already-persisted-file)) :code :cant-persist-already-persisted-file))
(let [changes (->> (db/cursor conn (let [changes (->> (db/cursor conn
(sql/select :file-change {:file-id id} (sql/select :file-change {:file-id id}
{:order-by [[:revn :asc]]}) {:order-by [[:revn :asc]]})

View file

@ -76,7 +76,8 @@
:extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}} :extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}}
:shadow-cljs :shadow-cljs
{:main-opts ["-m" "shadow.cljs.devtools.cli"]} {:main-opts ["-m" "shadow.cljs.devtools.cli"]
:jvm-opts ["--sun-misc-unsafe-memory-access=allow"]}
:outdated :outdated
{:extra-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}} {:extra-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}}

View file

@ -11,8 +11,7 @@
"url": "https://github.com/penpot/penpot" "url": "https://github.com/penpot/penpot"
}, },
"dependencies": { "dependencies": {
"luxon": "^3.4.4", "luxon": "^3.4.4"
"sax": "^1.4.1"
}, },
"devDependencies": { "devDependencies": {
"concurrently": "^9.0.1", "concurrently": "^9.0.1",

View file

@ -6,8 +6,6 @@
(ns app.common.svg (ns app.common.svg
(:require (:require
#?(:clj [clojure.xml :as xml]
:cljs [tubax.core :as tubax])
[app.common.data :as d] [app.common.data :as d]
[app.common.data.macros :as dm] [app.common.data.macros :as dm]
[app.common.geom.matrix :as gmt] [app.common.geom.matrix :as gmt]
@ -15,15 +13,7 @@
[app.common.geom.shapes :as gsh] [app.common.geom.shapes :as gsh]
[app.common.math :as mth] [app.common.math :as mth]
[app.common.uuid :as uuid] [app.common.uuid :as uuid]
[cuerdas.core :as str]) [cuerdas.core :as str]))
#?(:clj
(:import
clojure.lang.XMLHandler
java.io.InputStream
javax.xml.XMLConstants
javax.xml.parsers.SAXParserFactory
org.apache.commons.io.IOUtils)))
;; Regex for XML ids per Spec ;; Regex for XML ids per Spec
;; https://www.w3.org/TR/2008/REC-xml-20081126/#sec-common-syn ;; https://www.w3.org/TR/2008/REC-xml-20081126/#sec-common-syn
@ -1030,24 +1020,3 @@
:height (d/parse-integer (:height attrs) 0)})))] :height (d/parse-integer (:height attrs) 0)})))]
(reduce-nodes redfn [] svg-data))) (reduce-nodes redfn [] svg-data)))
#?(:clj
(defn- secure-parser-factory
[^InputStream input ^XMLHandler handler]
(.. (doto (SAXParserFactory/newInstance)
(.setFeature XMLConstants/FEATURE_SECURE_PROCESSING true)
(.setFeature "http://apache.org/xml/features/disallow-doctype-decl" true))
(newSAXParser)
(parse input handler))))
(defn strip-doctype
[data]
(cond-> data
(str/includes? data "<!DOCTYPE")
(str/replace #"<\!DOCTYPE[^>]*>" "")))
(defn parse
[text]
#?(:cljs (tubax/xml->clj text)
:clj (let [text (strip-doctype text)]
(dm/with-open [istream (IOUtils/toInputStream text "UTF-8")]
(xml/parse istream secure-parser-factory)))))

View file

@ -1,26 +0,0 @@
;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) KALEIDOS INC
(ns common-tests.files-builder-test
(:require
[app.common.files.builder :as builder]
[clojure.test :as t]))
(t/deftest test-strip-image-extension
(t/testing "removes extension from supported image files"
(t/is (= (builder/strip-image-extension "foo.png") "foo"))
(t/is (= (builder/strip-image-extension "foo.webp") "foo"))
(t/is (= (builder/strip-image-extension "foo.jpg") "foo"))
(t/is (= (builder/strip-image-extension "foo.jpeg") "foo"))
(t/is (= (builder/strip-image-extension "foo.svg") "foo"))
(t/is (= (builder/strip-image-extension "foo.gif") "foo")))
(t/testing "does not remove extension for unsupported files"
(t/is (= (builder/strip-image-extension "foo.txt") "foo.txt"))
(t/is (= (builder/strip-image-extension "foo.bmp") "foo.bmp")))
(t/testing "leaves filename intact when it has no extension"
(t/is (= (builder/strip-image-extension "README") "README"))))

View file

@ -0,0 +1,26 @@
;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) KALEIDOS INC
(ns common-tests.media-test
(:require
[app.common.media :as media]
[clojure.test :as t]))
(t/deftest test-strip-image-extension
(t/testing "removes extension from supported image files"
(t/is (= (media/strip-image-extension "foo.png") "foo"))
(t/is (= (media/strip-image-extension "foo.webp") "foo"))
(t/is (= (media/strip-image-extension "foo.jpg") "foo"))
(t/is (= (media/strip-image-extension "foo.jpeg") "foo"))
(t/is (= (media/strip-image-extension "foo.svg") "foo"))
(t/is (= (media/strip-image-extension "foo.gif") "foo")))
(t/testing "does not remove extension for unsupported files"
(t/is (= (media/strip-image-extension "foo.txt") "foo.txt"))
(t/is (= (media/strip-image-extension "foo.bmp") "foo.bmp")))
(t/testing "leaves filename intact when it has no extension"
(t/is (= (media/strip-image-extension "README") "README"))))

View file

@ -9,7 +9,6 @@
[clojure.test :as t] [clojure.test :as t]
[common-tests.colors-test] [common-tests.colors-test]
[common-tests.data-test] [common-tests.data-test]
[common-tests.files-builder-test]
[common-tests.files-changes-test] [common-tests.files-changes-test]
[common-tests.files-migrations-test] [common-tests.files-migrations-test]
[common-tests.geom-point-test] [common-tests.geom-point-test]
@ -29,6 +28,7 @@
[common-tests.logic.swap-and-reset-test] [common-tests.logic.swap-and-reset-test]
[common-tests.logic.swap-as-override-test] [common-tests.logic.swap-as-override-test]
[common-tests.logic.token-test] [common-tests.logic.token-test]
[common-tests.media-test]
[common-tests.pages-helpers-test] [common-tests.pages-helpers-test]
[common-tests.record-test] [common-tests.record-test]
[common-tests.schema-test] [common-tests.schema-test]
@ -58,7 +58,6 @@
(t/run-tests (t/run-tests
'common-tests.colors-test 'common-tests.colors-test
'common-tests.data-test 'common-tests.data-test
'common-tests.files-builder-test
'common-tests.files-changes-test 'common-tests.files-changes-test
'common-tests.files-migrations-test 'common-tests.files-migrations-test
'common-tests.geom-point-test 'common-tests.geom-point-test
@ -78,6 +77,7 @@
'common-tests.logic.swap-and-reset-test 'common-tests.logic.swap-and-reset-test
'common-tests.logic.swap-as-override-test 'common-tests.logic.swap-as-override-test
'common-tests.logic.token-test 'common-tests.logic.token-test
'common-tests.media-test
'common-tests.pages-helpers-test 'common-tests.pages-helpers-test
'common-tests.record-test 'common-tests.record-test
'common-tests.schema-test 'common-tests.schema-test
@ -85,11 +85,11 @@
'common-tests.svg-test 'common-tests.svg-test
'common-tests.text-test 'common-tests.text-test
'common-tests.time-test 'common-tests.time-test
'common-tests.types.modifiers-test
'common-tests.types.shape-interactions-test
'common-tests.types.shape-decode-encode-test
'common-tests.types.tokens-lib-test
'common-tests.types.components-test
'common-tests.types.absorb-assets-test 'common-tests.types.absorb-assets-test
'common-tests.types.components-test
'common-tests.types.modifiers-test
'common-tests.types.path-data-test 'common-tests.types.path-data-test
'common-tests.types.shape-decode-encode-test
'common-tests.types.shape-interactions-test
'common-tests.types.tokens-lib-test
'common-tests.uuid-test)) 'common-tests.uuid-test))

View file

@ -1,4 +0,0 @@
(ns beicon.impl.rxjs
(:require ["rxjs" :as rx]))
(goog/exportSymbol "rxjsMain" rx)

View file

@ -1,4 +0,0 @@
(ns beicon.impl.rxjs-operators
(:require ["rxjs/operators" :as rxop]))
(goog/exportSymbol "rxjsOperators" rxop)

View file

@ -1,4 +0,0 @@
(ns tubax.saxjs
(:require ["sax" :as sax]))
(goog/exportSymbol "sax" sax)

View file

@ -260,7 +260,6 @@ __metadata:
concurrently: "npm:^9.0.1" concurrently: "npm:^9.0.1"
luxon: "npm:^3.4.4" luxon: "npm:^3.4.4"
nodemon: "npm:^3.1.7" nodemon: "npm:^3.1.7"
sax: "npm:^1.4.1"
shadow-cljs: "npm:3.0.5" shadow-cljs: "npm:3.0.5"
source-map-support: "npm:^0.5.21" source-map-support: "npm:^0.5.21"
ws: "npm:^8.17.0" ws: "npm:^8.17.0"
@ -981,13 +980,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"sax@npm:^1.4.1":
version: 1.4.1
resolution: "sax@npm:1.4.1"
checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c
languageName: node
linkType: hard
"semver@npm:^7.3.5": "semver@npm:^7.3.5":
version: 7.6.2 version: 7.6.2
resolution: "semver@npm:7.6.2" resolution: "semver@npm:7.6.2"