{:lint-as
 {promesa.core/let clojure.core/let
  promesa.core/->> clojure.core/->>
  promesa.core/-> clojure.core/->
  promesa.exec.csp/go-loop clojure.core/loop
  rumext.v2/defc clojure.core/defn
  rumext.v2/fnc clojure.core/fn
  promesa.util/with-open clojure.core/with-open
  app.common.data/export clojure.core/def
  app.common.data.macros/get-in clojure.core/get-in
  app.common.data.macros/with-open clojure.core/with-open
  app.common.data.macros/select-keys clojure.core/select-keys
  app.common.logging/with-context clojure.core/do}

 :hooks
 {:analyze-call
  {app.common.data.macros/export hooks.export/export
   potok.core/reify hooks.export/potok-reify
   app.util.services/defmethod hooks.export/service-defmethod
   app.common.record/defrecord hooks.export/penpot-defrecord
   app.db/with-atomic hooks.export/penpot-with-atomic
   rumext.v2/fnc hooks.export/rumext-fnc
   }}

 :output
 {:exclude-files
  ["data_readers.clj"
   "src/app/util/perf.cljs"
   "src/app/common/logging.cljc"
   "src/app/common/exceptions.cljc"
   "^(?:backend|frontend|exporter|common)/build.clj"
   "^(?:backend|frontend|exporter|common)/deps.edn"
   "^(?:backend|frontend|exporter|common)/scripts/"
   "^(?:backend|frontend|exporter|common)/dev/"
   "^(?:backend|frontend|exporter|common)/test/"]

  :linter-name true}

 :linters
 {:unsorted-required-namespaces
  {:level :warning}

  :potok/reify-type
  {:level :error}

  :unresolved-namespace
  {:level :warning
   :exclude [data_readers]}

  :single-key-in
  {:level :warning}

  :non-arg-vec-return-type-hint
  {:level :off}

  :redundant-do
  {:level :off}

  :earmuffed-var-not-dynamic
  {:level :off}

  :dynamic-var-not-earmuffed
  {:level :off}

  :used-underscored-binding
  {:level :warning}

  :unused-binding
  {:exclude-destructured-as true
   :exclude-destructured-keys-in-fn-args false
   }
  }}