 The following warnings are supported:
 
   :preamble-missing, missing preamble
+  :unprovided, required namespace not provided
   :undeclared-var, undeclared var
   :undeclared-ns, var references non-existent namespace
   :undeclared-ns-form, namespace reference in ns form that does not exist

(def-key ::warning-value #{:error :warning :off})

;; *** TODO differnet ns??
(def-key ::access-controls            ::warning-value)
(def-key ::ambiguous-function-decl    ::warning-value)
(def-key ::debugger-statement-present ::warning-value)
(def-key ::check-regexp               ::warning-value)
(def-key ::check-types                ::warning-value)
(def-key ::check-useless-code         ::warning-value)
(def-key ::check-variables            ::warning-value)
(def-key ::const                      ::warning-value)
(def-key ::constant-property          ::warning-value)
(def-key ::deprecated                 ::warning-value)
(def-key ::duplicate-message          ::warning-value)
(def-key ::es5-strict                 ::warning-value)
(def-key ::externs-validation         ::warning-value)
(def-key ::fileoverview-jsdoc         ::warning-value)
(def-key ::global-this                ::warning-value)
(def-key ::internet-explorer-checks   ::warning-value)
(def-key ::invalid-casts              ::warning-value)
(def-key ::missing-properties         ::warning-value)
(def-key ::non-standard-jsdoc         ::warning-value)
(def-key ::strict-module-dep-check    ::warning-value)
(def-key ::tweaks                     ::warning-value)
(def-key ::undefined-names            ::warning-value)
(def-key ::undefined-variables        ::warning-value)
(def-key ::unknown-defines            ::warning-value)
(def-key ::visiblity                  ::warning-value)


;; opt none helper
(defn- opt-none? [opt]

   :opt-un
   [::access-controls
    ::ambiguous-function-decl
    ::analyzer-checks
    ::check-eventful-object-disposal
    ::check-regexp
    ::check-types
    ::check-useless-code
    ::check-variables
    ::closure-dep-method-usage-checks
    ::common-js-module-load
    ::conformance-violations
    ::const
    ::constant-property
    ::debugger-statement-present
    ::deprecated
    ::deprecated-annotations
    ::duplicate-message
    ::duplicate-vars
    ::es3
    ::es5-strict
    ::externs-validation
    ::extra-require
    ::fileoverview-jsdoc
    ::function-params
    ::global-this
    ::inferred-const-checks
    ::internet-explorer-checks
    ::invalid-casts
    ::j2cl-checks
    ::late-provide
    ::lint-checks
    ::message-descriptions
    ::misplaced-type-annotation
    ::missing-getcssname
    ::missing-override
    ::missing-polyfill
    ::missing-properties
    ::missing-provide
    ::missing-require
    ::missing-return
    ::non-standard-jsdoc
    ::report-unknown-types
    ::strict-missing-require
    ::strict-module-dep-check
    ::strict-requires
    ::suspicious-code
    ::tweaks
    ::type-invalidation
    ::undefined-names
    ::undefined-variables
    ::underscore
    ::unknown-defines
    ::unused-local-variable
    ::unused-private-property
    ::use-of-goog-base
    ::violated-module-dep
    ::visiblity])

  "Configure warnings generated by the Closure compiler. A map from
