From 87f80ff6be5e2a132b583a9c380fff5db3cb2b07 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Sat, 20 Aug 2022 11:31:33 -0400 Subject: [PATCH] feat(unstable): initial support for npm specifiers (#15484) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartek IwaƄczuk --- Cargo.lock | 4 + cli/Cargo.toml | 1 + cli/cache/mod.rs | 17 + cli/compat/esm_resolver.rs | 3 +- cli/compat/mod.rs | 41 +- cli/graph_util.rs | 28 +- cli/lsp/cache.rs | 4 +- cli/lsp/diagnostics.rs | 3 + cli/main.rs | 2 +- cli/module_loader.rs | 103 +- cli/node/analyze.rs | 161 + cli/node/mod.rs | 730 + cli/npm/cache.rs | 43 +- cli/npm/mod.rs | 171 +- cli/npm/registry.rs | 35 +- cli/npm/resolution.rs | 59 +- cli/proc_state.rs | 117 +- cli/standalone.rs | 1 + cli/tests/integration/mod.rs | 2 + cli/tests/integration/npm_tests.rs | 123 + cli/tests/testdata/commonjs/init.js | 11 +- cli/tests/testdata/npm/cjs_sub_path/main.js | 21 + cli/tests/testdata/npm/cjs_sub_path/main.out | 16 + cli/tests/testdata/npm/cjs_with_deps/main.js | 12 + cli/tests/testdata/npm/cjs_with_deps/main.out | 15 + .../testdata/npm/dynamic_import/main.out | 4 + cli/tests/testdata/npm/dynamic_import/main.ts | 3 + .../testdata/npm/dynamic_import/other.ts | 4 + cli/tests/testdata/npm/esm/main.js | 7 + cli/tests/testdata/npm/esm/main.out | 2 + cli/tests/testdata/npm/esm/test.js | 5 + cli/tests/testdata/npm/esm/test.out | 12 + .../testdata/npm/import_map/import_map.json | 5 + cli/tests/testdata/npm/import_map/main.js | 7 + cli/tests/testdata/npm/import_map/main.out | 2 + .../ajv-formats/ajv-formats-2.1.1.tgz | Bin 0 -> 14851 bytes .../npm/registry/ajv-formats/registry.json | 2462 ++ .../testdata/npm/registry/ajv/ajv-8.11.0.tgz | Bin 0 -> 219252 bytes .../testdata/npm/registry/ajv/registry.json | 31201 ++++++++++++++++ .../ansi-styles/ansi-styles-4.3.0.tgz | Bin 0 -> 5849 bytes .../npm/registry/ansi-styles/registry.json | 1839 + .../assertion-error/assertion-error-1.1.0.tgz | Bin 0 -> 2668 bytes .../registry/assertion-error/registry.json | 318 + .../testdata/npm/registry/chai/chai-4.3.6.tgz | Bin 0 -> 140277 bytes .../testdata/npm/registry/chai/registry.json | 4684 +++ .../npm/registry/chalk/chalk-4.1.2.tgz | Bin 0 -> 11577 bytes .../npm/registry/chalk/chalk-5.0.1.tgz | Bin 0 -> 13294 bytes .../testdata/npm/registry/chalk/registry.json | 3744 ++ .../check-error/check-error-1.0.2.tgz | Bin 0 -> 4986 bytes .../npm/registry/check-error/registry.json | 333 + .../color-convert/color-convert-2.0.1.tgz | Bin 0 -> 8996 bytes .../npm/registry/color-convert/registry.json | 1997 + .../registry/color-name/color-name-1.1.4.tgz | Bin 0 -> 2868 bytes .../npm/registry/color-name/registry.json | 384 + .../npm/registry/deep-eql/deep-eql-3.0.1.tgz | Bin 0 -> 10566 bytes .../npm/registry/deep-eql/registry.json | 1428 + .../fast-deep-equal/fast-deep-equal-3.1.3.tgz | Bin 0 -> 3656 bytes .../registry/fast-deep-equal/registry.json | 996 + .../get-func-name/get-func-name-2.0.0.tgz | Bin 0 -> 3581 bytes .../npm/registry/get-func-name/registry.json | 238 + .../npm/registry/has-flag/has-flag-4.0.0.tgz | Bin 0 -> 2206 bytes .../npm/registry/has-flag/registry.json | 487 + .../json-schema-traverse-1.0.0.tgz | Bin 0 -> 6074 bytes .../json-schema-traverse/registry.json | 541 + .../npm/registry/loupe/loupe-2.3.4.tgz | Bin 0 -> 14566 bytes .../testdata/npm/registry/loupe/registry.json | 3035 ++ .../npm/registry/pathval/pathval-1.1.1.tgz | Bin 0 -> 5554 bytes .../npm/registry/pathval/registry.json | 605 + .../npm/registry/punycode/punycode-2.1.1.tgz | Bin 0 -> 7270 bytes .../npm/registry/punycode/registry.json | 1517 + .../require-from-string/registry.json | 463 + .../require-from-string-2.0.2.tgz | Bin 0 -> 1816 bytes .../npm/registry/supports-color/registry.json | 3517 ++ .../supports-color/supports-color-7.2.0.tgz | Bin 0 -> 3210 bytes .../npm/registry/type-detect/registry.json | 1510 + .../type-detect/type-detect-4.0.8.tgz | Bin 0 -> 8070 bytes .../npm/registry/uri-js/registry.json | 1074 + .../npm/registry/uri-js/uri-js-4.4.1.tgz | Bin 0 -> 132003 bytes cli/worker.rs | 114 +- ext/node/01_node.js | 111 + ext/node/{01_require.js => 02_require.js} | 214 +- ext/node/Cargo.toml | 2 + ext/node/errors.rs | 122 + ext/node/lib.rs | 376 +- ext/node/package_json.rs | 159 + ext/node/resolution.rs | 696 + runtime/build.rs | 2 +- runtime/examples/hello_runtime.rs | 1 + runtime/web_worker.rs | 4 +- runtime/worker.rs | 5 +- test_util/Cargo.toml | 1 + test_util/src/lib.rs | 72 +- 92 files changed, 65674 insertions(+), 352 deletions(-) create mode 100644 cli/node/analyze.rs create mode 100644 cli/node/mod.rs create mode 100644 cli/tests/integration/npm_tests.rs create mode 100644 cli/tests/testdata/npm/cjs_sub_path/main.js create mode 100644 cli/tests/testdata/npm/cjs_sub_path/main.out create mode 100644 cli/tests/testdata/npm/cjs_with_deps/main.js create mode 100644 cli/tests/testdata/npm/cjs_with_deps/main.out create mode 100644 cli/tests/testdata/npm/dynamic_import/main.out create mode 100644 cli/tests/testdata/npm/dynamic_import/main.ts create mode 100644 cli/tests/testdata/npm/dynamic_import/other.ts create mode 100644 cli/tests/testdata/npm/esm/main.js create mode 100644 cli/tests/testdata/npm/esm/main.out create mode 100644 cli/tests/testdata/npm/esm/test.js create mode 100644 cli/tests/testdata/npm/esm/test.out create mode 100644 cli/tests/testdata/npm/import_map/import_map.json create mode 100644 cli/tests/testdata/npm/import_map/main.js create mode 100644 cli/tests/testdata/npm/import_map/main.out create mode 100644 cli/tests/testdata/npm/registry/ajv-formats/ajv-formats-2.1.1.tgz create mode 100644 cli/tests/testdata/npm/registry/ajv-formats/registry.json create mode 100644 cli/tests/testdata/npm/registry/ajv/ajv-8.11.0.tgz create mode 100644 cli/tests/testdata/npm/registry/ajv/registry.json create mode 100644 cli/tests/testdata/npm/registry/ansi-styles/ansi-styles-4.3.0.tgz create mode 100644 cli/tests/testdata/npm/registry/ansi-styles/registry.json create mode 100644 cli/tests/testdata/npm/registry/assertion-error/assertion-error-1.1.0.tgz create mode 100644 cli/tests/testdata/npm/registry/assertion-error/registry.json create mode 100644 cli/tests/testdata/npm/registry/chai/chai-4.3.6.tgz create mode 100644 cli/tests/testdata/npm/registry/chai/registry.json create mode 100644 cli/tests/testdata/npm/registry/chalk/chalk-4.1.2.tgz create mode 100644 cli/tests/testdata/npm/registry/chalk/chalk-5.0.1.tgz create mode 100644 cli/tests/testdata/npm/registry/chalk/registry.json create mode 100644 cli/tests/testdata/npm/registry/check-error/check-error-1.0.2.tgz create mode 100644 cli/tests/testdata/npm/registry/check-error/registry.json create mode 100644 cli/tests/testdata/npm/registry/color-convert/color-convert-2.0.1.tgz create mode 100644 cli/tests/testdata/npm/registry/color-convert/registry.json create mode 100644 cli/tests/testdata/npm/registry/color-name/color-name-1.1.4.tgz create mode 100644 cli/tests/testdata/npm/registry/color-name/registry.json create mode 100644 cli/tests/testdata/npm/registry/deep-eql/deep-eql-3.0.1.tgz create mode 100644 cli/tests/testdata/npm/registry/deep-eql/registry.json create mode 100644 cli/tests/testdata/npm/registry/fast-deep-equal/fast-deep-equal-3.1.3.tgz create mode 100644 cli/tests/testdata/npm/registry/fast-deep-equal/registry.json create mode 100644 cli/tests/testdata/npm/registry/get-func-name/get-func-name-2.0.0.tgz create mode 100644 cli/tests/testdata/npm/registry/get-func-name/registry.json create mode 100644 cli/tests/testdata/npm/registry/has-flag/has-flag-4.0.0.tgz create mode 100644 cli/tests/testdata/npm/registry/has-flag/registry.json create mode 100644 cli/tests/testdata/npm/registry/json-schema-traverse/json-schema-traverse-1.0.0.tgz create mode 100644 cli/tests/testdata/npm/registry/json-schema-traverse/registry.json create mode 100644 cli/tests/testdata/npm/registry/loupe/loupe-2.3.4.tgz create mode 100644 cli/tests/testdata/npm/registry/loupe/registry.json create mode 100644 cli/tests/testdata/npm/registry/pathval/pathval-1.1.1.tgz create mode 100644 cli/tests/testdata/npm/registry/pathval/registry.json create mode 100644 cli/tests/testdata/npm/registry/punycode/punycode-2.1.1.tgz create mode 100644 cli/tests/testdata/npm/registry/punycode/registry.json create mode 100644 cli/tests/testdata/npm/registry/require-from-string/registry.json create mode 100644 cli/tests/testdata/npm/registry/require-from-string/require-from-string-2.0.2.tgz create mode 100644 cli/tests/testdata/npm/registry/supports-color/registry.json create mode 100644 cli/tests/testdata/npm/registry/supports-color/supports-color-7.2.0.tgz create mode 100644 cli/tests/testdata/npm/registry/type-detect/registry.json create mode 100644 cli/tests/testdata/npm/registry/type-detect/type-detect-4.0.8.tgz create mode 100644 cli/tests/testdata/npm/registry/uri-js/registry.json create mode 100644 cli/tests/testdata/npm/registry/uri-js/uri-js-4.4.1.tgz create mode 100644 ext/node/01_node.js rename ext/node/{01_require.js => 02_require.js} (81%) create mode 100644 ext/node/errors.rs create mode 100644 ext/node/package_json.rs create mode 100644 ext/node/resolution.rs diff --git a/Cargo.lock b/Cargo.lock index da61d07244..dad9744508 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -834,6 +834,7 @@ dependencies = [ "notify", "once_cell", "os_pipe", + "path-clean", "percent-encoding 2.1.0", "pin-project", "pretty_assertions", @@ -1140,6 +1141,8 @@ name = "deno_node" version = "0.2.0" dependencies = [ "deno_core", + "regex", + "serde", ] [[package]] @@ -4601,6 +4604,7 @@ dependencies = [ "pretty_assertions", "pty", "regex", + "reqwest", "rustls-pemfile 1.0.0", "serde", "serde_json", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 266d551e30..0940dd0b55 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -83,6 +83,7 @@ node_resolver = "=0.1.1" notify = "=5.0.0-pre.15" once_cell = "=1.12.0" os_pipe = "=1.0.1" +path-clean = "=0.1.0" percent-encoding = "=2.1.0" pin-project = "1.0.11" # don't pin because they yank crates from cargo rand = { version = "=0.8.5", features = ["small_rng"] } diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs index 7482826cf8..d7cf8aca46 100644 --- a/cli/cache/mod.rs +++ b/cli/cache/mod.rs @@ -2,7 +2,9 @@ use crate::errors::get_error_class_name; use crate::file_fetcher::FileFetcher; +use crate::npm; +use deno_core::futures; use deno_core::futures::FutureExt; use deno_core::ModuleSpecifier; use deno_graph::source::CacheInfo; @@ -53,6 +55,10 @@ impl FetchCacher { impl Loader for FetchCacher { fn get_cache_info(&self, specifier: &ModuleSpecifier) -> Option { + if specifier.scheme() == "npm" { + return None; + } + let local = self.file_fetcher.get_local_path(specifier)?; if local.is_file() { let emit = self @@ -74,6 +80,17 @@ impl Loader for FetchCacher { specifier: &ModuleSpecifier, is_dynamic: bool, ) -> LoadFuture { + if specifier.scheme() == "npm" { + return Box::pin(futures::future::ready( + match npm::NpmPackageReference::from_specifier(specifier) { + Ok(_) => Ok(Some(deno_graph::source::LoadResponse::External { + specifier: specifier.clone(), + })), + Err(err) => Err(err), + }, + )); + } + let specifier = specifier.clone(); let mut permissions = if is_dynamic { self.dynamic_permissions.clone() diff --git a/cli/compat/esm_resolver.rs b/cli/compat/esm_resolver.rs index d8aee1d092..77d0fe47e4 100644 --- a/cli/compat/esm_resolver.rs +++ b/cli/compat/esm_resolver.rs @@ -11,6 +11,7 @@ use deno_core::url::Url; use deno_core::ModuleSpecifier; use deno_graph::source::ResolveResponse; use deno_graph::source::Resolver; +use deno_runtime::deno_node::DEFAULT_CONDITIONS; use regex::Regex; use std::path::PathBuf; @@ -74,8 +75,6 @@ impl Resolver for NodeEsmResolver { } } -static DEFAULT_CONDITIONS: &[&str] = &["deno", "node", "import"]; - /// This function is an implementation of `defaultResolve` in /// `lib/internal/modules/esm/resolve.js` from Node. fn node_resolve( diff --git a/cli/compat/mod.rs b/cli/compat/mod.rs index df5174fd32..ab8a1ff2df 100644 --- a/cli/compat/mod.rs +++ b/cli/compat/mod.rs @@ -1,6 +1,6 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. -mod errors; +pub mod errors; mod esm_resolver; use crate::file_fetcher::FileFetcher; @@ -75,15 +75,15 @@ static NODE_COMPAT_URL: Lazy = Lazy::new(|| { static GLOBAL_URL_STR: Lazy = Lazy::new(|| format!("{}node/global.ts", NODE_COMPAT_URL.as_str())); -static PROCESS_URL_STR: Lazy = - Lazy::new(|| format!("{}node/process.ts", NODE_COMPAT_URL.as_str())); - pub static GLOBAL_URL: Lazy = Lazy::new(|| Url::parse(&GLOBAL_URL_STR).unwrap()); static MODULE_URL_STR: Lazy = Lazy::new(|| format!("{}node/module.ts", NODE_COMPAT_URL.as_str())); +pub static MODULE_ALL_URL: Lazy = + Lazy::new(|| Url::parse(&MODULE_ALL_URL_STR).unwrap()); + static MODULE_ALL_URL_STR: Lazy = Lazy::new(|| format!("{}node/module_all.ts", NODE_COMPAT_URL.as_str())); @@ -98,7 +98,7 @@ pub fn get_node_imports() -> Vec<(Url, Vec)> { vec![(COMPAT_IMPORT_URL.clone(), vec![GLOBAL_URL_STR.clone()])] } -fn try_resolve_builtin_module(specifier: &str) -> Option { +pub fn try_resolve_builtin_module(specifier: &str) -> Option { if SUPPORTED_MODULES.contains(&specifier) { let ext = match specifier { "stream/promises" => "mjs", @@ -112,28 +112,6 @@ fn try_resolve_builtin_module(specifier: &str) -> Option { } } -#[allow(unused)] -pub async fn load_builtin_node_modules( - js_runtime: &mut JsRuntime, -) -> Result<(), AnyError> { - let source_code = &format!( - r#"(async function loadBuiltinNodeModules(moduleAllUrl, processUrl) {{ - const [moduleAll, processModule] = await Promise.all([ - import(moduleAllUrl), - import(processUrl) - ]); - Deno[Deno.internal].require.initializeCommonJs(moduleAll.default, processModule.default); - }})('{}', '{}');"#, - MODULE_ALL_URL_STR.as_str(), - PROCESS_URL_STR.as_str(), - ); - - let value = - js_runtime.execute_script(&located_script_name!(), source_code)?; - js_runtime.resolve_value(value).await?; - Ok(()) -} - #[allow(unused)] pub fn load_cjs_module_from_ext_node( js_runtime: &mut JsRuntime, @@ -214,7 +192,7 @@ pub fn setup_builtin_modules( /// For all discovered reexports the analysis will be performed recursively. /// /// If successful a source code for equivalent ES module is returned. -pub async fn translate_cjs_to_esm( +pub fn translate_cjs_to_esm( file_fetcher: &FileFetcher, specifier: &ModuleSpecifier, code: String, @@ -271,7 +249,7 @@ pub async fn translate_cjs_to_esm( // TODO(bartlomieju): Node actually checks if a given export exists in `exports` object, // but it might not be necessary here since our analysis is more detailed? source.push(format!( - "export const {} = reexport{}.{};", + "export const {0} = Deno[Deno.internal].require.bindExport(reexport{1}.{2}, reexport{1});", export, idx, export )); } @@ -294,7 +272,10 @@ pub async fn translate_cjs_to_esm( for export in analysis.exports.iter().filter(|e| e.as_str() != "default") { // TODO(bartlomieju): Node actually checks if a given export exists in `exports` object, // but it might not be necessary here since our analysis is more detailed? - source.push(format!("export const {} = mod.{};", export, export)); + source.push(format!( + "export const {} = Deno[Deno.internal].require.bindExport(mod.{}, mod);", + export, export + )); } let translated_source = source.join("\n"); diff --git a/cli/graph_util.rs b/cli/graph_util.rs index 85ba13120c..1c58fd9b6f 100644 --- a/cli/graph_util.rs +++ b/cli/graph_util.rs @@ -3,6 +3,8 @@ use crate::colors; use crate::emit::TsTypeLib; use crate::errors::get_error_class_name; +use crate::npm::NpmPackageReference; +use crate::npm::NpmPackageReq; use deno_ast::ParsedSource; use deno_core::error::custom_error; @@ -58,6 +60,7 @@ pub enum ModuleEntry { #[derive(Debug, Default)] pub struct GraphData { modules: HashMap, + npm_packages: HashSet, /// Map of first known referrer locations for each module. Used to enhance /// error messages. referrer_map: HashMap, @@ -91,6 +94,13 @@ impl GraphData { if !reload && self.modules.contains_key(&specifier) { continue; } + if specifier.scheme() == "npm" { + // the loader enforces npm specifiers are valid, so it's ok to unwrap here + let reference = + NpmPackageReference::from_specifier(&specifier).unwrap(); + self.npm_packages.insert(reference.req); + continue; + } if let Some(found) = graph.redirects.get(&specifier) { let module_entry = ModuleEntry::Redirect(found.clone()); self.modules.insert(specifier.clone(), module_entry); @@ -167,6 +177,11 @@ impl GraphData { self.modules.iter() } + /// Gets the unique npm package requirements from all the encountered graphs. + pub fn npm_package_reqs(&self) -> Vec { + self.npm_packages.iter().cloned().collect() + } + /// Walk dependencies from `roots` and return every encountered specifier. /// Return `None` if any modules are not known. pub fn walk<'a>( @@ -199,6 +214,10 @@ impl GraphData { } } while let Some(specifier) = visiting.pop_front() { + if NpmPackageReference::from_specifier(specifier).is_ok() { + continue; // skip analyzing npm specifiers + } + let (specifier, entry) = match self.modules.get_key_value(specifier) { Some(pair) => pair, None => return None, @@ -228,7 +247,13 @@ impl GraphData { } } } - for (_, dep) in dependencies.iter().rev() { + for (dep_specifier, dep) in dependencies.iter().rev() { + // todo(dsherret): ideally there would be a way to skip external dependencies + // in the graph here rather than specifically npm package references + if NpmPackageReference::from_str(dep_specifier).is_ok() { + continue; + } + if !dep.is_dynamic || follow_dynamic { let mut resolutions = vec![&dep.maybe_code]; if check_types { @@ -278,6 +303,7 @@ impl GraphData { } Some(Self { modules, + npm_packages: self.npm_packages.clone(), referrer_map, // TODO(nayeemrmn): Implement `Clone` on `GraphImport`. graph_imports: self diff --git a/cli/lsp/cache.rs b/cli/lsp/cache.rs index 77f356486d..c4512a8039 100644 --- a/cli/lsp/cache.rs +++ b/cli/lsp/cache.rs @@ -67,7 +67,7 @@ impl CacheMetadata { &self, specifier: &ModuleSpecifier, ) -> Option>> { - if specifier.scheme() == "file" { + if specifier.scheme() == "file" || specifier.scheme() == "npm" { return None; } let version = self @@ -83,7 +83,7 @@ impl CacheMetadata { } fn refresh(&self, specifier: &ModuleSpecifier) -> Option { - if specifier.scheme() == "file" { + if specifier.scheme() == "file" || specifier.scheme() == "npm" { return None; } let cache_filename = self.cache.get_cache_filename(specifier)?; diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs index 7c5ab936a6..aef5ae8898 100644 --- a/cli/lsp/diagnostics.rs +++ b/cli/lsp/diagnostics.rs @@ -14,6 +14,7 @@ use super::tsc::TsServer; use crate::args::LintConfig; use crate::diagnostics; +use crate::npm::NpmPackageReference; use deno_ast::MediaType; use deno_core::anyhow::anyhow; @@ -846,6 +847,8 @@ fn diagnose_resolved( .push(DenoDiagnostic::NoAssertType.to_lsp_diagnostic(&range)), } } + } else if NpmPackageReference::from_specifier(specifier).is_ok() { + // ignore npm specifiers for now } else { // When the document is not available, it means that it cannot be found // in the cache or locally on the disk, so we want to issue a diagnostic diff --git a/cli/main.rs b/cli/main.rs index db625e4042..17f3fcffa7 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -23,7 +23,7 @@ mod lockfile; mod logger; mod lsp; mod module_loader; -#[allow(unused)] +mod node; mod npm; mod ops; mod proc_state; diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 8da2059074..235c35fcd8 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -3,6 +3,8 @@ use crate::emit::emit_parsed_source; use crate::emit::TsTypeLib; use crate::graph_util::ModuleEntry; +use crate::node; +use crate::npm::NpmPackageResolver; use crate::proc_state::ProcState; use crate::text_encoding::code_without_source_map; use crate::text_encoding::source_map_from_code; @@ -115,6 +117,57 @@ impl CliModuleLoader { )), } } + + fn load_sync( + &self, + specifier: &ModuleSpecifier, + ) -> Result { + let code_source = if self.ps.npm_resolver.in_npm_package(specifier) { + let file_path = specifier.to_file_path().unwrap(); + let code = std::fs::read_to_string(file_path)?; + let is_cjs = self.ps.cjs_resolutions.lock().contains(specifier); + + let code = if is_cjs { + // translate cjs to esm if it's cjs and inject node globals + node::translate_cjs_to_esm( + &self.ps.file_fetcher, + specifier, + code, + MediaType::Cjs, + &self.ps.npm_resolver, + )? + } else { + // only inject node globals for esm + node::esm_code_with_node_globals(specifier, code)? + }; + + ModuleCodeSource { + code, + found_url: specifier.clone(), + media_type: MediaType::from(specifier), + } + } else { + self.load_prepared_module(specifier)? + }; + let code = if self.ps.options.is_inspecting() { + // we need the code with the source map in order for + // it to work with --inspect or --inspect-brk + code_source.code + } else { + // reduce memory and throw away the source map + // because we don't need it + code_without_source_map(code_source.code) + }; + Ok(ModuleSource { + code: code.into_bytes().into_boxed_slice(), + module_url_specified: specifier.to_string(), + module_url_found: code_source.found_url.to_string(), + module_type: match code_source.media_type { + MediaType::Json => ModuleType::Json, + _ => ModuleType::JavaScript, + }, + }) + } } impl ModuleLoader for CliModuleLoader { @@ -136,28 +189,7 @@ impl ModuleLoader for CliModuleLoader { // NOTE: this block is async only because of `deno_core` interface // requirements; module was already loaded when constructing module graph // during call to `prepare_load` so we can load it synchronously. - let result = self.load_prepared_module(specifier).map(|code_source| { - let code = if self.ps.options.is_inspecting() { - // we need the code with the source map in order for - // it to work with --inspect or --inspect-brk - code_source.code - } else { - // reduce memory and throw away the source map - // because we don't need it - code_without_source_map(code_source.code) - }; - ModuleSource { - code: code.into_bytes().into_boxed_slice(), - module_url_specified: specifier.to_string(), - module_url_found: code_source.found_url.to_string(), - module_type: match code_source.media_type { - MediaType::Json => ModuleType::Json, - _ => ModuleType::JavaScript, - }, - } - }); - - Box::pin(deno_core::futures::future::ready(result)) + Box::pin(deno_core::futures::future::ready(self.load_sync(specifier))) } fn prepare_load( @@ -167,6 +199,11 @@ impl ModuleLoader for CliModuleLoader { _maybe_referrer: Option, is_dynamic: bool, ) -> Pin>>> { + if self.ps.npm_resolver.in_npm_package(specifier) { + // nothing to prepare + return Box::pin(deno_core::futures::future::ready(Ok(()))); + } + let specifier = specifier.clone(); let ps = self.ps.clone(); let state = op_state.borrow(); @@ -198,21 +235,15 @@ impl ModuleLoader for CliModuleLoader { impl SourceMapGetter for CliModuleLoader { fn get_source_map(&self, file_name: &str) -> Option> { - if let Ok(specifier) = resolve_url(file_name) { - match specifier.scheme() { - // we should only be looking for emits for schemes that denote external - // modules, which the disk_cache supports - "wasm" | "file" | "http" | "https" | "data" | "blob" => (), - _ => return None, - } - if let Ok(source) = self.load_prepared_module(&specifier) { - source_map_from_code(&source.code) - } else { - None - } - } else { - None + let specifier = resolve_url(file_name).ok()?; + match specifier.scheme() { + // we should only be looking for emits for schemes that denote external + // modules, which the disk_cache supports + "wasm" | "file" | "http" | "https" | "data" | "blob" => (), + _ => return None, } + let source = self.load_prepared_module(&specifier).ok()?; + source_map_from_code(&source.code) } fn get_source_line( diff --git a/cli/node/analyze.rs b/cli/node/analyze.rs new file mode 100644 index 0000000000..9da2cbf4ba --- /dev/null +++ b/cli/node/analyze.rs @@ -0,0 +1,161 @@ +// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. + +use std::collections::HashSet; + +use deno_ast::swc::common::SyntaxContext; +use deno_ast::view::Node; +use deno_ast::view::NodeTrait; +use deno_ast::ModuleSpecifier; +use deno_ast::ParsedSource; +use deno_ast::SourceRanged; +use deno_core::error::AnyError; +use std::fmt::Write; + +static NODE_GLOBALS: &[&str] = &[ + "Buffer", + "clearImmediate", + "clearInterval", + "clearTimeout", + "global", + "process", + "setImmediate", + "setInterval", + "setTimeout", +]; + +// TODO(dsherret): this code is way more inefficient than it needs to be. +// +// In the future, we should disable capturing tokens & scope analysis +// and instead only use swc's APIs to go through the portions of the tree +// that we know will affect the global scope while still ensuring that +// `var` decls are taken into consideration. + +pub fn esm_code_with_node_globals( + specifier: &ModuleSpecifier, + code: String, +) -> Result { + let parsed_source = deno_ast::parse_program(deno_ast::ParseParams { + specifier: specifier.to_string(), + text_info: deno_ast::SourceTextInfo::from_string(code), + media_type: deno_ast::MediaType::from(specifier), + capture_tokens: true, + scope_analysis: true, + maybe_syntax: None, + })?; + let top_level_decls = analyze_top_level_decls(&parsed_source)?; + let mut globals = Vec::with_capacity(NODE_GLOBALS.len()); + let has_global_this = top_level_decls.contains("globalThis"); + for global in NODE_GLOBALS.iter() { + if !top_level_decls.contains(&global.to_string()) { + globals.push(*global); + } + } + + let mut result = String::new(); + let has_deno_decl = top_level_decls.contains("Deno"); + let global_this_expr = if has_deno_decl { + if top_level_decls.contains("window") { + // Will probably never happen, but if it does then we should consider + // creating an obscure global name to get this from. + panic!("The node esm module had a local `Deno` declaration and `window` declaration."); + } + // fallback to using `window.Deno` + "window.Deno[Deno.internal].node.globalThis" + } else { + "Deno[Deno.internal].node.globalThis" + }; + let global_this_expr = if has_global_this { + global_this_expr + } else { + write!(result, "var globalThis = {};", global_this_expr).unwrap(); + "globalThis" + }; + for global in globals { + write!(result, "var {0} = {1}.{0};", global, global_this_expr).unwrap(); + } + + result.push_str(parsed_source.text_info().text_str()); + + Ok(result) +} + +fn analyze_top_level_decls( + parsed_source: &ParsedSource, +) -> Result, AnyError> { + let top_level_context = parsed_source.top_level_context(); + + parsed_source.with_view(|program| { + let mut results = HashSet::new(); + visit_children(program.into(), top_level_context, &mut results); + Ok(results) + }) +} + +fn visit_children( + node: Node, + top_level_context: SyntaxContext, + results: &mut HashSet, +) { + if let Node::Ident(ident) = node { + if ident.ctxt() == top_level_context && is_local_declaration_ident(node) { + results.insert(ident.sym().to_string()); + } + } + + for child in node.children() { + visit_children(child, top_level_context, results); + } +} + +fn is_local_declaration_ident(node: Node) -> bool { + if let Some(parent) = node.parent() { + match parent { + Node::BindingIdent(decl) => decl.id.range().contains(&node.range()), + Node::ClassDecl(decl) => decl.ident.range().contains(&node.range()), + Node::ClassExpr(decl) => decl + .ident + .as_ref() + .map(|i| i.range().contains(&node.range())) + .unwrap_or(false), + Node::TsInterfaceDecl(decl) => decl.id.range().contains(&node.range()), + Node::FnDecl(decl) => decl.ident.range().contains(&node.range()), + Node::FnExpr(decl) => decl + .ident + .as_ref() + .map(|i| i.range().contains(&node.range())) + .unwrap_or(false), + Node::TsModuleDecl(decl) => decl.id.range().contains(&node.range()), + Node::TsNamespaceDecl(decl) => decl.id.range().contains(&node.range()), + Node::VarDeclarator(decl) => decl.name.range().contains(&node.range()), + Node::ImportNamedSpecifier(decl) => { + decl.local.range().contains(&node.range()) + } + Node::ImportDefaultSpecifier(decl) => { + decl.local.range().contains(&node.range()) + } + Node::ImportStarAsSpecifier(decl) => decl.range().contains(&node.range()), + Node::KeyValuePatProp(decl) => decl.key.range().contains(&node.range()), + Node::AssignPatProp(decl) => decl.key.range().contains(&node.range()), + _ => false, + } + } else { + false + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_esm_code_with_node_globals() { + let r = esm_code_with_node_globals( + &ModuleSpecifier::parse("https://example.com/foo/bar.js").unwrap(), + "export const x = 1;".to_string(), + ) + .unwrap(); + assert!(r.contains("var globalThis = Deno[Deno.internal].node.globalThis;")); + assert!(r.contains("var process = globalThis.process;")); + assert!(r.contains("export const x = 1;")); + } +} diff --git a/cli/node/mod.rs b/cli/node/mod.rs new file mode 100644 index 0000000000..2af4f23089 --- /dev/null +++ b/cli/node/mod.rs @@ -0,0 +1,730 @@ +// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. + +use std::collections::HashSet; +use std::path::Path; +use std::path::PathBuf; + +use deno_ast::MediaType; +use deno_ast::ModuleSpecifier; +use deno_core::anyhow::Context; +use deno_core::error::generic_error; +use deno_core::error::AnyError; +use deno_core::located_script_name; +use deno_core::serde_json::Map; +use deno_core::serde_json::Value; +use deno_core::url::Url; +use deno_core::JsRuntime; +use deno_graph::source::ResolveResponse; +use deno_runtime::deno_node::get_package_scope_config; +use deno_runtime::deno_node::legacy_main_resolve; +use deno_runtime::deno_node::package_exports_resolve; +use deno_runtime::deno_node::package_imports_resolve; +use deno_runtime::deno_node::package_resolve; +use deno_runtime::deno_node::DenoDirNpmResolver; +use deno_runtime::deno_node::PackageJson; +use deno_runtime::deno_node::DEFAULT_CONDITIONS; +use once_cell::sync::Lazy; +use path_clean::PathClean; +use regex::Regex; + +use crate::compat; +use crate::file_fetcher::FileFetcher; +use crate::npm::GlobalNpmPackageResolver; +use crate::npm::NpmPackageReference; +use crate::npm::NpmPackageResolver; + +mod analyze; + +pub use analyze::esm_code_with_node_globals; + +static RESERVED_WORDS: Lazy> = Lazy::new(|| { + HashSet::from([ + "break", + "case", + "catch", + "class", + "const", + "continue", + "debugger", + "default", + "delete", + "do", + "else", + "export", + "extends", + "false", + "finally", + "for", + "function", + "if", + "import", + "in", + "instanceof", + "new", + "null", + "return", + "super", + "switch", + "this", + "throw", + "true", + "try", + "typeof", + "var", + "void", + "while", + "with", + "yield", + "let", + "enum", + "implements", + "interface", + "package", + "private", + "protected", + "public", + "static", + ]) +}); + +pub async fn initialize_runtime( + js_runtime: &mut JsRuntime, +) -> Result<(), AnyError> { + let source_code = &format!( + r#"(async function loadBuiltinNodeModules(moduleAllUrl) {{ + const moduleAll = await import(moduleAllUrl); + Deno[Deno.internal].node.initialize(moduleAll.default); + }})('{}');"#, + compat::MODULE_ALL_URL.as_str(), + ); + + let value = + js_runtime.execute_script(&located_script_name!(), source_code)?; + js_runtime.resolve_value(value).await?; + Ok(()) +} + +/// This function is an implementation of `defaultResolve` in +/// `lib/internal/modules/esm/resolve.js` from Node. +pub fn node_resolve( + specifier: &str, + referrer: &ModuleSpecifier, + npm_resolver: &dyn DenoDirNpmResolver, +) -> Result, AnyError> { + // TODO(bartlomieju): skipped "policy" part as we don't plan to support it + + if let Some(resolved) = compat::try_resolve_builtin_module(specifier) { + return Ok(Some(ResolveResponse::Esm(resolved))); + } + + if let Ok(url) = Url::parse(specifier) { + if url.scheme() == "data" { + return Ok(Some(ResolveResponse::Specifier(url))); + } + + let protocol = url.scheme(); + + if protocol == "node" { + let split_specifier = url.as_str().split(':'); + let specifier = split_specifier.skip(1).collect::(); + if let Some(resolved) = compat::try_resolve_builtin_module(&specifier) { + return Ok(Some(ResolveResponse::Esm(resolved))); + } else { + return Err(generic_error(format!("Unknown module {}", specifier))); + } + } + + if protocol != "file" && protocol != "data" { + return Err(compat::errors::err_unsupported_esm_url_scheme(&url)); + } + + // todo(THIS PR): I think this is handled upstream so can be removed? + if referrer.scheme() == "data" { + let url = referrer.join(specifier).map_err(AnyError::from)?; + return Ok(Some(ResolveResponse::Specifier(url))); + } + } + + let conditions = DEFAULT_CONDITIONS; + let url = module_resolve(specifier, referrer, conditions, npm_resolver)?; + let url = match url { + Some(url) => url, + None => return Ok(None), + }; + + let resolve_response = url_to_resolve_response(url, npm_resolver)?; + // TODO(bartlomieju): skipped checking errors for commonJS resolution and + // "preserveSymlinksMain"/"preserveSymlinks" options. + Ok(Some(resolve_response)) +} + +pub fn node_resolve_npm_reference( + reference: &NpmPackageReference, + npm_resolver: &GlobalNpmPackageResolver, +) -> Result, AnyError> { + let package_folder = npm_resolver + .resolve_package_from_deno_module(&reference.req)? + .folder_path; + let maybe_url = package_config_resolve( + reference.sub_path.as_deref().unwrap_or("."), + &package_folder, + npm_resolver, + ) + .map(Some) + .with_context(|| { + format!("Error resolving package config for '{}'.", reference) + })?; + let url = match maybe_url { + Some(url) => url, + None => return Ok(None), + }; + + let resolve_response = url_to_resolve_response(url, npm_resolver)?; + // TODO(bartlomieju): skipped checking errors for commonJS resolution and + // "preserveSymlinksMain"/"preserveSymlinks" options. + Ok(Some(resolve_response)) +} + +fn package_config_resolve( + package_subpath: &str, + package_dir: &Path, + npm_resolver: &dyn DenoDirNpmResolver, +) -> Result { + let package_json_path = package_dir.join("package.json"); + // todo(dsherret): remove base from this code + let base = + ModuleSpecifier::from_directory_path(package_json_path.parent().unwrap()) + .unwrap(); + let package_config = + PackageJson::load(npm_resolver, package_json_path.clone())?; + let package_json_url = + ModuleSpecifier::from_file_path(&package_json_path).unwrap(); + if let Some(exports) = &package_config.exports { + return package_exports_resolve( + package_json_url, + package_subpath.to_string(), + exports, + &base, + DEFAULT_CONDITIONS, + npm_resolver, + ); + } + if package_subpath == "." { + return legacy_main_resolve(&package_json_url, &package_config, &base); + } + + package_json_url + .join(package_subpath) + .map_err(AnyError::from) +} + +fn url_to_resolve_response( + url: ModuleSpecifier, + npm_resolver: &dyn DenoDirNpmResolver, +) -> Result { + Ok(if url.as_str().starts_with("http") { + ResolveResponse::Esm(url) + } else if url.as_str().ends_with(".js") { + let package_config = get_package_scope_config(&url, npm_resolver)?; + if package_config.typ == "module" { + ResolveResponse::Esm(url) + } else { + ResolveResponse::CommonJs(url) + } + } else if url.as_str().ends_with(".cjs") { + ResolveResponse::CommonJs(url) + } else { + ResolveResponse::Esm(url) + }) +} + +fn finalize_resolution( + resolved: ModuleSpecifier, + base: &ModuleSpecifier, +) -> Result { + // TODO(bartlomieju): this is not part of Node resolution algorithm + // (as it doesn't support http/https); but I had to short circuit here + // for remote modules because they are mainly used to polyfill `node` built + // in modules. Another option would be to leave the resolved URLs + // as `node:` and do the actual remapping to std's polyfill + // in module loader. I'm not sure which approach is better. + if resolved.scheme().starts_with("http") { + return Ok(resolved); + } + + // todo(dsherret): cache + let encoded_sep_re = Regex::new(r"%2F|%2C").unwrap(); + + if encoded_sep_re.is_match(resolved.path()) { + return Err(compat::errors::err_invalid_module_specifier( + resolved.path(), + "must not include encoded \"/\" or \"\\\\\" characters", + Some(to_file_path_string(base)), + )); + } + + let path = to_file_path(&resolved); + + // TODO(bartlomieju): currently not supported + // if (getOptionValue('--experimental-specifier-resolution') === 'node') { + // ... + // } + + let p_str = path.to_str().unwrap(); + let p = if p_str.ends_with('/') { + p_str[p_str.len() - 1..].to_string() + } else { + p_str.to_string() + }; + + let (is_dir, is_file) = if let Ok(stats) = std::fs::metadata(&p) { + (stats.is_dir(), stats.is_file()) + } else { + (false, false) + }; + if is_dir { + return Err(compat::errors::err_unsupported_dir_import( + resolved.as_str(), + base.as_str(), + )); + } else if !is_file { + return Err(compat::errors::err_module_not_found( + resolved.as_str(), + base.as_str(), + "module", + )); + } + + Ok(resolved) +} + +fn module_resolve( + specifier: &str, + referrer: &ModuleSpecifier, + conditions: &[&str], + npm_resolver: &dyn DenoDirNpmResolver, +) -> Result, AnyError> { + let url = if should_be_treated_as_relative_or_absolute_path(specifier) { + let resolved_specifier = referrer.join(specifier)?; + Some(resolved_specifier) + } else if specifier.starts_with('#') { + Some(package_imports_resolve( + specifier, + referrer, + conditions, + npm_resolver, + )?) + } else if let Ok(resolved) = Url::parse(specifier) { + Some(resolved) + } else { + Some(package_resolve( + specifier, + referrer, + conditions, + npm_resolver, + )?) + }; + Ok(match url { + Some(url) => Some(finalize_resolution(url, referrer)?), + None => None, + }) +} + +fn add_export(source: &mut Vec, name: &str, initializer: &str) { + // TODO(bartlomieju): Node actually checks if a given export exists in `exports` object, + // but it might not be necessary here since our analysis is more detailed? + if RESERVED_WORDS.contains(name) { + // we can't create an identifier with a reserved word, so assign it to a temporary + // variable that won't have a conflict, then re-export it as a string + source.push(format!( + "const __deno_reexport_temp__{} = {};", + name, initializer + )); + source.push(format!( + "export {{ __deno_reexport_temp__{0} as \"{0}\" }};", + name + )); + } else { + source.push(format!("export const {} = {};", name, initializer)); + } +} + +/// Translates given CJS module into ESM. This function will perform static +/// analysis on the file to find defined exports and reexports. +/// +/// For all discovered reexports the analysis will be performed recursively. +/// +/// If successful a source code for equivalent ES module is returned. +pub fn translate_cjs_to_esm( + file_fetcher: &FileFetcher, + specifier: &ModuleSpecifier, + code: String, + media_type: MediaType, + npm_resolver: &GlobalNpmPackageResolver, +) -> Result { + let parsed_source = deno_ast::parse_script(deno_ast::ParseParams { + specifier: specifier.to_string(), + text_info: deno_ast::SourceTextInfo::new(code.into()), + media_type, + capture_tokens: true, + scope_analysis: false, + maybe_syntax: None, + })?; + let analysis = parsed_source.analyze_cjs(); + + let mut source = vec![ + r#"const require = Deno[Deno.internal].require.Module.createRequire(import.meta.url);"#.to_string(), + ]; + + // if there are reexports, handle them first + for (idx, reexport) in analysis.reexports.iter().enumerate() { + // Firstly, resolve relate reexport specifier + // todo(dsherret): call module_resolve instead? + let resolved_reexport = resolve( + reexport, + specifier, + // FIXME(bartlomieju): check if these conditions are okay, probably + // should be `deno-require`, because `deno` is already used in `esm_resolver.rs` + &["deno", "require", "default"], + npm_resolver, + )?; + let reexport_specifier = + ModuleSpecifier::from_file_path(&resolved_reexport).unwrap(); + // Secondly, read the source code from disk + let reexport_file = file_fetcher.get_source(&reexport_specifier).unwrap(); + // Now perform analysis again + { + let parsed_source = deno_ast::parse_script(deno_ast::ParseParams { + specifier: reexport_specifier.to_string(), + text_info: deno_ast::SourceTextInfo::new(reexport_file.source), + media_type: reexport_file.media_type, + capture_tokens: true, + scope_analysis: false, + maybe_syntax: None, + })?; + let analysis = parsed_source.analyze_cjs(); + + source.push(format!( + "const reexport{} = require(\"{}\");", + idx, reexport + )); + + for export in analysis.exports.iter().filter(|e| e.as_str() != "default") + { + add_export(&mut source, export, &format!("Deno[Deno.internal].require.bindExport(reexport{0}.{1}, reexport{0})", idx, export)); + } + } + } + + source.push(format!( + "const mod = require(\"{}\");", + specifier + .to_file_path() + .unwrap() + .to_str() + .unwrap() + .replace('\\', "\\\\") + .replace('\'', "\\\'") + .replace('\"', "\\\"") + )); + + let mut had_default = false; + for export in analysis.exports.iter() { + if export.as_str() == "default" { + // todo(dsherret): we should only do this if there was a `_esModule: true` instead + source.push(format!( + "export default Deno[Deno.internal].require.bindExport(mod.{}, mod);", + export, + )); + had_default = true; + } else { + add_export( + &mut source, + export, + &format!( + "Deno[Deno.internal].require.bindExport(mod.{}, mod)", + export + ), + ); + } + } + + if !had_default { + source.push("export default mod;".to_string()); + } + + let translated_source = source.join("\n"); + Ok(translated_source) +} + +fn resolve_package_target_string( + target: &str, + subpath: Option, +) -> String { + if let Some(subpath) = subpath { + target.replace('*', &subpath) + } else { + target.to_string() + } +} + +fn resolve( + specifier: &str, + referrer: &ModuleSpecifier, + conditions: &[&str], + npm_resolver: &dyn DenoDirNpmResolver, +) -> Result { + if specifier.starts_with('/') { + todo!(); + } + + let referrer_path = referrer.to_file_path().unwrap(); + if specifier.starts_with("./") || specifier.starts_with("../") { + if let Some(parent) = referrer_path.parent() { + return file_extension_probe(parent.join(specifier), &referrer_path); + } else { + todo!(); + } + } + + // We've got a bare specifier or maybe bare_specifier/blah.js" + + let (_, package_subpath) = parse_specifier(specifier).unwrap(); + + // todo(dsherret): use not_found error on not found here + let module_dir = + npm_resolver.resolve_package_folder_from_path(&referrer_path)?; + + let package_json_path = module_dir.join("package.json"); + if package_json_path.exists() { + let package_json = PackageJson::load(npm_resolver, package_json_path)?; + + if let Some(map) = package_json.exports { + if let Some((key, subpath)) = exports_resolve(&map, &package_subpath) { + let value = map.get(&key).unwrap(); + let s = conditions_resolve(value, conditions); + + let t = resolve_package_target_string(&s, subpath); + return Ok(module_dir.join(t).clean()); + } else { + todo!() + } + } + + // old school + if package_subpath != "." { + let d = module_dir.join(package_subpath); + if let Ok(m) = d.metadata() { + if m.is_dir() { + return Ok(d.join("index.js").clean()); + } + } + return file_extension_probe(d, &referrer_path); + } else if let Some(main) = package_json.main { + return Ok(module_dir.join(main).clean()); + } else { + return Ok(module_dir.join("index.js").clean()); + } + } + + Err(not_found(specifier, &referrer_path)) +} + +fn conditions_resolve(value: &Value, conditions: &[&str]) -> String { + match value { + Value::String(s) => s.to_string(), + Value::Object(map) => { + for condition in conditions { + if let Some(x) = map.get(&condition.to_string()) { + if let Value::String(s) = x { + return s.to_string(); + } else { + todo!() + } + } + } + todo!() + } + _ => todo!(), + } +} + +fn parse_specifier(specifier: &str) -> Option<(String, String)> { + let mut separator_index = specifier.find('/'); + let mut valid_package_name = true; + // let mut is_scoped = false; + if specifier.is_empty() { + valid_package_name = false; + } else if specifier.starts_with('@') { + // is_scoped = true; + if let Some(index) = separator_index { + separator_index = specifier[index + 1..].find('/'); + } else { + valid_package_name = false; + } + } + + let package_name = if let Some(index) = separator_index { + specifier[0..index].to_string() + } else { + specifier.to_string() + }; + + // Package name cannot have leading . and cannot have percent-encoding or separators. + for ch in package_name.chars() { + if ch == '%' || ch == '\\' { + valid_package_name = false; + break; + } + } + + if !valid_package_name { + return None; + } + + let package_subpath = if let Some(index) = separator_index { + format!(".{}", specifier.chars().skip(index).collect::()) + } else { + ".".to_string() + }; + + Some((package_name, package_subpath)) +} + +fn exports_resolve( + map: &Map, + subpath: &str, +) -> Option<(String, Option)> { + if map.contains_key(subpath) { + return Some((subpath.to_string(), None)); + } + + // best match + let mut best_match = None; + for key in map.keys() { + if let Some(pattern_index) = key.find('*') { + let key_sub = &key[0..pattern_index]; + if subpath.starts_with(key_sub) { + if subpath.ends_with('/') { + todo!() + } + let pattern_trailer = &key[pattern_index + 1..]; + + if subpath.len() > key.len() + && subpath.ends_with(pattern_trailer) + // && pattern_key_compare(best_match, key) == 1 + && key.rfind('*') == Some(pattern_index) + { + let rest = subpath + [pattern_index..(subpath.len() - pattern_trailer.len())] + .to_string(); + best_match = Some((key, rest)); + } + } + } + } + + if let Some((key, subpath_)) = best_match { + return Some((key.to_string(), Some(subpath_))); + } + + None +} + +fn to_file_path(url: &ModuleSpecifier) -> PathBuf { + url + .to_file_path() + .unwrap_or_else(|_| panic!("Provided URL was not file:// URL: {}", url)) +} + +fn to_file_path_string(url: &ModuleSpecifier) -> String { + to_file_path(url).display().to_string() +} + +fn should_be_treated_as_relative_or_absolute_path(specifier: &str) -> bool { + if specifier.is_empty() { + return false; + } + + if specifier.starts_with('/') { + return true; + } + + is_relative_specifier(specifier) +} + +// TODO(ry) We very likely have this utility function elsewhere in Deno. +fn is_relative_specifier(specifier: &str) -> bool { + let specifier_len = specifier.len(); + let specifier_chars: Vec<_> = specifier.chars().collect(); + + if !specifier_chars.is_empty() && specifier_chars[0] == '.' { + if specifier_len == 1 || specifier_chars[1] == '/' { + return true; + } + if specifier_chars[1] == '.' + && (specifier_len == 2 || specifier_chars[2] == '/') + { + return true; + } + } + false +} + +fn file_extension_probe( + mut p: PathBuf, + referrer: &Path, +) -> Result { + if p.exists() && !p.is_dir() { + Ok(p.clean()) + } else { + p.set_extension("js"); + if p.exists() && !p.is_dir() { + Ok(p) + } else { + Err(not_found(&p.clean().to_string_lossy(), referrer)) + } + } +} + +fn not_found(path: &str, referrer: &Path) -> AnyError { + let msg = format!( + "[ERR_MODULE_NOT_FOUND] Cannot find module \"{}\" imported from \"{}\"", + path, + referrer.to_string_lossy() + ); + std::io::Error::new(std::io::ErrorKind::NotFound, msg).into() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_add_export() { + let mut source = vec![]; + + let exports = vec!["static", "server", "app"]; + for export in exports { + add_export(&mut source, export, "init"); + } + assert_eq!( + source, + vec![ + "const __deno_reexport_temp__static = init;".to_string(), + "export { __deno_reexport_temp__static as \"static\" };".to_string(), + "export const server = init;".to_string(), + "export const app = init;".to_string(), + ] + ) + } + + #[test] + fn test_resolve_package_target_string() { + assert_eq!(resolve_package_target_string("foo", None), "foo"); + assert_eq!( + resolve_package_target_string("*foo", Some("bar".to_string())), + "barfoo" + ); + } +} diff --git a/cli/npm/cache.rs b/cli/npm/cache.rs index 7270fad2f6..0efbe93f75 100644 --- a/cli/npm/cache.rs +++ b/cli/npm/cache.rs @@ -6,6 +6,7 @@ use std::path::PathBuf; use deno_ast::ModuleSpecifier; use deno_core::anyhow::bail; +use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::url::Url; use deno_runtime::colors; @@ -37,20 +38,23 @@ impl Default for ReadonlyNpmCache { // This only gets used when creating the tsc runtime and for testing, and so // it shouldn't ever actually access the DenoDir, so it doesn't support a // custom root. - Self::from_deno_dir(&crate::deno_dir::DenoDir::new(None).unwrap()) + Self::from_deno_dir(&crate::deno_dir::DenoDir::new(None).unwrap()).unwrap() } } impl ReadonlyNpmCache { - pub fn new(root_dir: PathBuf) -> Self { + pub fn new(root_dir: PathBuf) -> Result { + std::fs::create_dir_all(&root_dir) + .with_context(|| format!("Error creating {}", root_dir.display()))?; + let root_dir = crate::fs_util::canonicalize_path(&root_dir)?; let root_dir_url = Url::from_directory_path(&root_dir).unwrap(); - Self { + Ok(Self { root_dir, root_dir_url, - } + }) } - pub fn from_deno_dir(dir: &DenoDir) -> Self { + pub fn from_deno_dir(dir: &DenoDir) -> Result { Self::new(dir.root.join("npm")) } @@ -65,16 +69,14 @@ impl ReadonlyNpmCache { } pub fn package_name_folder(&self, name: &str, registry_url: &Url) -> PathBuf { - let mut dir = self - .root_dir - .join(fs_util::root_url_to_safe_local_dirname(registry_url)); + let mut dir = self.registry_folder(registry_url); let mut parts = name.split('/').map(Cow::Borrowed).collect::>(); // package names were not always enforced to be lowercase and so we need // to ensure package names, which are therefore case sensitive, are stored // on a case insensitive file system to not have conflicts. We do this by // first putting it in a "_" folder then hashing the package name. if name.to_lowercase() != name { - let mut last_part = parts.last_mut().unwrap(); + let last_part = parts.last_mut().unwrap(); *last_part = Cow::Owned(crate::checksum::gen(&[last_part.as_bytes()])); // We can't just use the hash as part of the directory because it may // have a collision with an actual package name in case someone wanted @@ -90,6 +92,12 @@ impl ReadonlyNpmCache { dir } + pub fn registry_folder(&self, registry_url: &Url) -> PathBuf { + self + .root_dir + .join(fs_util::root_url_to_safe_local_dirname(registry_url)) + } + pub fn resolve_package_id_from_specifier( &self, specifier: &ModuleSpecifier, @@ -147,12 +155,8 @@ impl ReadonlyNpmCache { pub struct NpmCache(ReadonlyNpmCache); impl NpmCache { - pub fn new(root_dir: PathBuf) -> Self { - Self(ReadonlyNpmCache::new(root_dir)) - } - - pub fn from_deno_dir(dir: &DenoDir) -> Self { - Self(ReadonlyNpmCache::from_deno_dir(dir)) + pub fn from_deno_dir(dir: &DenoDir) -> Result { + Ok(Self(ReadonlyNpmCache::from_deno_dir(dir)?)) } pub fn as_readonly(&self) -> ReadonlyNpmCache { @@ -228,6 +232,10 @@ impl NpmCache { self.0.package_name_folder(name, registry_url) } + pub fn registry_folder(&self, registry_url: &Url) -> PathBuf { + self.0.registry_folder(registry_url) + } + pub fn resolve_package_id_from_specifier( &self, specifier: &ModuleSpecifier, @@ -242,7 +250,6 @@ impl NpmCache { #[cfg(test)] mod test { use deno_core::url::Url; - use std::path::PathBuf; use super::ReadonlyNpmCache; use crate::npm::NpmPackageId; @@ -250,7 +257,7 @@ mod test { #[test] fn should_get_lowercase_package_folder() { let root_dir = crate::deno_dir::DenoDir::new(None).unwrap().root; - let cache = ReadonlyNpmCache::new(root_dir.clone()); + let cache = ReadonlyNpmCache::new(root_dir.clone()).unwrap(); let registry_url = Url::parse("https://registry.npmjs.org/").unwrap(); // all lowercase should be as-is @@ -273,7 +280,7 @@ mod test { fn should_handle_non_all_lowercase_package_names() { // it was possible at one point for npm packages to not just be lowercase let root_dir = crate::deno_dir::DenoDir::new(None).unwrap().root; - let cache = ReadonlyNpmCache::new(root_dir.clone()); + let cache = ReadonlyNpmCache::new(root_dir.clone()).unwrap(); let registry_url = Url::parse("https://registry.npmjs.org/").unwrap(); let json_uppercase_hash = "db1a21a0bc2ef8fbe13ac4cf044e8c9116d29137d5ed8b916ab63dcb2d4290df"; diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index d0ffaff2f5..810cee6457 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -5,15 +5,19 @@ mod registry; mod resolution; mod tarball; +use std::io::ErrorKind; +use std::path::Path; use std::path::PathBuf; use std::sync::Arc; use deno_ast::ModuleSpecifier; +use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::futures; use deno_core::url::Url; +use deno_runtime::deno_node::DenoDirNpmResolver; pub use resolution::NpmPackageId; pub use resolution::NpmPackageReference; pub use resolution::NpmPackageReq; @@ -65,7 +69,7 @@ pub trait NpmPackageResolver { } } -#[derive(Clone, Debug)] +#[derive(Debug, Clone)] pub struct GlobalNpmPackageResolver { cache: NpmCache, resolution: Arc, @@ -73,12 +77,8 @@ pub struct GlobalNpmPackageResolver { } impl GlobalNpmPackageResolver { - pub fn new(root_cache_dir: PathBuf, reload: bool) -> Self { - Self::from_cache(NpmCache::new(root_cache_dir), reload) - } - - pub fn from_deno_dir(dir: &DenoDir, reload: bool) -> Self { - Self::from_cache(NpmCache::from_deno_dir(dir), reload) + pub fn from_deno_dir(dir: &DenoDir, reload: bool) -> Result { + Ok(Self::from_cache(NpmCache::from_deno_dir(dir)?, reload)) } fn from_cache(cache: NpmCache, reload: bool) -> Self { @@ -98,11 +98,6 @@ impl GlobalNpmPackageResolver { self.resolution.has_packages() } - /// Gets all the packages. - pub fn all_packages(&self) -> Vec { - self.resolution.all_packages() - } - /// Adds a package requirement to the resolver. pub async fn add_package_reqs( &self, @@ -113,22 +108,38 @@ impl GlobalNpmPackageResolver { /// Caches all the packages in parallel. pub async fn cache_packages(&self) -> Result<(), AnyError> { - let handles = self.resolution.all_packages().into_iter().map(|package| { - let cache = self.cache.clone(); - let registry_url = self.registry_url.clone(); - tokio::task::spawn(async move { - cache - .ensure_package(&package.id, &package.dist, ®istry_url) + if std::env::var("DENO_UNSTABLE_NPM_SYNC_DOWNLOAD") == Ok("1".to_string()) { + // for some of the tests, we want downloading of packages + // to be deterministic so that the output is always the same + let mut packages = self.resolution.all_packages(); + packages.sort_by(|a, b| a.id.cmp(&b.id)); + for package in packages { + self + .cache + .ensure_package(&package.id, &package.dist, &self.registry_url) .await .with_context(|| { format!("Failed caching npm package '{}'.", package.id) - }) - }) - }); - let results = futures::future::join_all(handles).await; - for result in results { - // surface the first error - result??; + })?; + } + } else { + let handles = self.resolution.all_packages().into_iter().map(|package| { + let cache = self.cache.clone(); + let registry_url = self.registry_url.clone(); + tokio::task::spawn(async move { + cache + .ensure_package(&package.id, &package.dist, ®istry_url) + .await + .with_context(|| { + format!("Failed caching npm package '{}'.", package.id) + }) + }) + }); + let results = futures::future::join_all(handles).await; + for result in results { + // surface the first error + result??; + } } Ok(()) } @@ -141,6 +152,7 @@ impl GlobalNpmPackageResolver { } /// Creates an inner clone. + #[allow(unused)] pub fn snapshot(&self) -> NpmPackageResolverSnapshot { NpmPackageResolverSnapshot { cache: self.cache.as_readonly(), @@ -246,3 +258,112 @@ impl NpmPackageResolver for NpmPackageResolverSnapshot { Ok(self.local_package_info(&pkg_id)) } } + +impl DenoDirNpmResolver for GlobalNpmPackageResolver { + fn resolve_package_folder_from_package( + &self, + specifier: &str, + referrer: &std::path::Path, + ) -> Result { + let referrer = specifier_to_path(referrer)?; + self + .resolve_package_from_package(specifier, &referrer) + .map(|p| p.folder_path) + } + + fn resolve_package_folder_from_path( + &self, + path: &Path, + ) -> Result { + let specifier = specifier_to_path(path)?; + self + .resolve_package_from_specifier(&specifier) + .map(|p| p.folder_path) + } + + fn in_npm_package(&self, path: &Path) -> bool { + let specifier = match ModuleSpecifier::from_file_path(path) { + Ok(p) => p, + Err(_) => return false, + }; + self.resolve_package_from_specifier(&specifier).is_ok() + } + + fn ensure_read_permission(&self, path: &Path) -> Result<(), AnyError> { + let registry_path = self.cache.registry_folder(&self.registry_url); + ensure_read_permission(®istry_path, path) + } +} + +impl DenoDirNpmResolver for NpmPackageResolverSnapshot { + fn resolve_package_folder_from_package( + &self, + specifier: &str, + referrer: &std::path::Path, + ) -> Result { + let referrer = specifier_to_path(referrer)?; + self + .resolve_package_from_package(specifier, &referrer) + .map(|p| p.folder_path) + } + + fn resolve_package_folder_from_path( + &self, + path: &Path, + ) -> Result { + let specifier = specifier_to_path(path)?; + self + .resolve_package_from_specifier(&specifier) + .map(|p| p.folder_path) + } + + fn in_npm_package(&self, path: &Path) -> bool { + let specifier = match ModuleSpecifier::from_file_path(path) { + Ok(p) => p, + Err(_) => return false, + }; + self.resolve_package_from_specifier(&specifier).is_ok() + } + + fn ensure_read_permission(&self, path: &Path) -> Result<(), AnyError> { + let registry_path = self.cache.registry_folder(&self.registry_url); + ensure_read_permission(®istry_path, path) + } +} + +fn specifier_to_path(path: &Path) -> Result { + match ModuleSpecifier::from_file_path(&path) { + Ok(specifier) => Ok(specifier), + Err(()) => bail!("Could not convert '{}' to url.", path.display()), + } +} + +fn ensure_read_permission( + registry_path: &Path, + path: &Path, +) -> Result<(), AnyError> { + // allow reading if it's in the deno_dir node modules + if path.starts_with(®istry_path) + && path + .components() + .all(|c| !matches!(c, std::path::Component::ParentDir)) + { + // todo(dsherret): cache this? + if let Ok(registry_path) = std::fs::canonicalize(registry_path) { + match std::fs::canonicalize(path) { + Ok(path) if path.starts_with(registry_path) => { + return Ok(()); + } + Err(e) if e.kind() == ErrorKind::NotFound => { + return Ok(()); + } + _ => {} // ignore + } + } + } + + Err(deno_core::error::custom_error( + "PermissionDenied", + format!("Reading {} is not allowed", path.display()), + )) +} diff --git a/cli/npm/registry.rs b/cli/npm/registry.rs index 016fd6e4aa..5da5b6c7fe 100644 --- a/cli/npm/registry.rs +++ b/cli/npm/registry.rs @@ -12,6 +12,7 @@ use deno_core::parking_lot::Mutex; use deno_core::serde::Deserialize; use deno_core::serde_json; use deno_core::url::Url; +use deno_runtime::colors; use deno_runtime::deno_fetch::reqwest; use serde::Serialize; @@ -63,8 +64,13 @@ impl NpmPackageVersionInfo { } else { (entry.0.clone(), entry.1.clone()) }; - let version_req = NpmVersionReq::parse(&version_req) - .with_context(|| format!("Dependency: {}", bare_specifier))?; + let version_req = + NpmVersionReq::parse(&version_req).with_context(|| { + format!( + "error parsing version requirement for dependency: {}@{}", + bare_specifier, version_req + ) + })?; Ok(NpmDependencyEntry { bare_specifier, name, @@ -98,7 +104,22 @@ pub struct NpmRegistryApi { impl NpmRegistryApi { pub fn default_url() -> Url { - Url::parse("https://registry.npmjs.org").unwrap() + let env_var_name = "DENO_NPM_REGISTRY"; + if let Ok(registry_url) = std::env::var(env_var_name) { + // ensure there is a trailing slash for the directory + let registry_url = format!("{}/", registry_url.trim_end_matches('/')); + match Url::parse(®istry_url) { + Ok(url) => url, + Err(err) => { + eprintln!("{}: Invalid {} environment variable. Please provide a valid url.\n\n{:#}", + colors::red_bold("error"), + env_var_name, err); + std::process::exit(1); + } + } + } else { + Url::parse("https://registry.npmjs.org").unwrap() + } } pub fn new(cache: NpmCache, reload: bool) -> Self { @@ -125,7 +146,7 @@ impl NpmRegistryApi { let maybe_package_info = self.maybe_package_info(name).await?; match maybe_package_info { Some(package_info) => Ok(package_info), - None => bail!("package '{}' does not exist", name), + None => bail!("npm package '{}' does not exist", name), } } @@ -271,6 +292,7 @@ fn npm_version_req_parse_part( text: &str, ) -> Result { let text = text.trim(); + let text = text.strip_prefix('v').unwrap_or(text); let mut chars = text.chars().enumerate().peekable(); let mut final_text = String::new(); while chars.peek().is_some() { @@ -307,6 +329,11 @@ mod test { } } + #[test] + pub fn npm_version_req_with_v() { + assert!(NpmVersionReq::parse("v1.0.0").is_ok()); + } + #[test] pub fn npm_version_req_ranges() { let tester = NpmVersionReqTester( diff --git a/cli/npm/resolution.rs b/cli/npm/resolution.rs index 4caa27330e..d92004db0f 100644 --- a/cli/npm/resolution.rs +++ b/cli/npm/resolution.rs @@ -105,13 +105,14 @@ impl std::fmt::Display for NpmPackageReference { } } -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)] pub struct NpmPackageId { pub name: String, pub version: semver::Version, } impl NpmPackageId { + #[allow(unused)] pub fn scope(&self) -> Option<&str> { if self.name.starts_with('@') && self.name.contains('/') { self.name.split('/').next() @@ -169,17 +170,19 @@ impl NpmResolutionSnapshot { referrer: &NpmPackageId, ) -> Result<&NpmResolutionPackage, AnyError> { match self.packages.get(referrer) { - Some(referrer_package) => match referrer_package.dependencies.get(name) { - Some(id) => Ok(self.packages.get(id).unwrap()), - None => { - bail!( - "could not find package '{}' referenced by '{}'", - name, - referrer - ) + Some(referrer_package) => { + match referrer_package.dependencies.get(name_without_path(name)) { + Some(id) => Ok(self.packages.get(id).unwrap()), + None => { + bail!( + "could not find npm package '{}' referenced by '{}'", + name, + referrer + ) + } } - }, - None => bail!("could not find referrer package '{}'", referrer), + } + None => bail!("could not find referrer npm package '{}'", referrer), } } @@ -276,7 +279,7 @@ impl NpmResolution { let dependencies = version_and_info .info .dependencies_as_entries() - .with_context(|| format!("Package: {}", id))?; + .with_context(|| format!("npm package: {}", id))?; pending_dependencies.push_back((id.clone(), dependencies)); snapshot.packages.insert( @@ -334,7 +337,7 @@ impl NpmResolution { .info .dependencies_as_entries() .with_context(|| { - format!("Package: {}@{}", dep.name, version_and_info.version) + format!("npm package: {}@{}", dep.name, version_and_info.version) })?; let id = NpmPackageId { @@ -452,7 +455,7 @@ fn get_resolved_package_version_and_info( // version, but next time to a different version because it has new information. None => bail!( concat!( - "Could not find package '{}' matching {}{}. ", + "Could not find npm package '{}' matching {}{}. ", "Try retreiving the latest npm package information by running with --reload", ), pkg_name, @@ -464,3 +467,31 @@ fn get_resolved_package_version_and_info( ), } } + +fn name_without_path(name: &str) -> &str { + let mut search_start_index = 0; + if name.starts_with('@') { + if let Some(slash_index) = name.find('/') { + search_start_index = slash_index + 1; + } + } + if let Some(slash_index) = &name[search_start_index..].find('/') { + // get the name up until the path slash + &name[0..search_start_index + slash_index] + } else { + name + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_name_without_path() { + assert_eq!(name_without_path("foo"), "foo"); + assert_eq!(name_without_path("@foo/bar"), "@foo/bar"); + assert_eq!(name_without_path("@foo/bar/baz"), "@foo/bar"); + assert_eq!(name_without_path("@hello"), "@hello"); + } +} diff --git a/cli/proc_state.rs b/cli/proc_state.rs index 590e6a3c93..a314b55d25 100644 --- a/cli/proc_state.rs +++ b/cli/proc_state.rs @@ -22,10 +22,15 @@ use crate::graph_util::ModuleEntry; use crate::http_cache; use crate::lockfile::as_maybe_locker; use crate::lockfile::Lockfile; +use crate::node; +use crate::npm::GlobalNpmPackageResolver; +use crate::npm::NpmPackageReference; +use crate::npm::NpmPackageResolver; use crate::resolver::ImportMapResolver; use crate::resolver::JsxResolver; use deno_core::anyhow::anyhow; +use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::custom_error; use deno_core::error::AnyError; @@ -79,6 +84,8 @@ pub struct Inner { pub compiled_wasm_module_store: CompiledWasmModuleStore, maybe_resolver: Option>, maybe_file_watcher_reporter: Option, + pub npm_resolver: GlobalNpmPackageResolver, + pub cjs_resolutions: Mutex>, } impl Deref for ProcState { @@ -210,6 +217,8 @@ impl ProcState { warn!("{}", ignored_options); } let emit_cache = EmitCache::new(dir.gen_cache.clone()); + let npm_resolver = + GlobalNpmPackageResolver::from_deno_dir(&dir, cli_options.reload_flag())?; Ok(ProcState(Arc::new(Inner { dir, @@ -232,6 +241,8 @@ impl ProcState { compiled_wasm_module_store, maybe_resolver, maybe_file_watcher_reporter, + npm_resolver, + cjs_resolutions: Default::default(), }))) } @@ -383,8 +394,7 @@ impl ProcState { &module.specifier, module.maybe_source.as_ref().unwrap().to_string(), module.media_type, - ) - .await?; + )?; let mut graph_data = self.graph_data.write(); graph_data .add_cjs_esm_translation(&module.specifier, translated_source); @@ -403,7 +413,7 @@ impl ProcState { graph_data.entries().map(|(s, _)| s).cloned().collect() }; - { + let npm_package_references = { let mut graph_data = self.graph_data.write(); graph_data.add_graph(&graph, reload_on_watch); let check_js = self.options.check_js(); @@ -414,6 +424,21 @@ impl ProcState { check_js, ) .unwrap()?; + graph_data.npm_package_reqs() + }; + + if !npm_package_references.is_empty() { + self + .npm_resolver + .add_package_reqs(npm_package_references) + .await?; + self.npm_resolver.cache_packages().await?; + + // add the builtin node modules to the graph data + let node_std_graph = self + .create_graph(vec![(compat::MODULE_ALL_URL.clone(), ModuleKind::Esm)]) + .await?; + self.graph_data.write().add_graph(&node_std_graph, false); } // type check if necessary @@ -457,12 +482,48 @@ impl ProcState { Ok(()) } + fn handle_node_resolve_result( + &self, + result: Result, AnyError>, + ) -> Result { + let response = match result? { + Some(response) => response, + None => bail!("Not found."), + }; + if let ResolveResponse::CommonJs(specifier) = &response { + // remember that this was a common js resolution + self.cjs_resolutions.lock().insert(specifier.clone()); + } + response.to_result() + } + pub fn resolve( &self, specifier: &str, referrer: &str, ) -> Result { if let Ok(referrer) = deno_core::resolve_url_or_path(referrer) { + if self.npm_resolver.in_npm_package(&referrer) { + // we're in an npm package, so use node resolution + return self + .handle_node_resolve_result(node::node_resolve( + specifier, + &referrer, + &self.npm_resolver, + )) + .with_context(|| { + format!( + "Could not resolve '{}' from '{}'.", + specifier, + self + .npm_resolver + .resolve_package_from_specifier(&referrer) + .unwrap() + .id + ) + }); + } + let graph_data = self.graph_data.read(); let found_referrer = graph_data.follow_redirect(&referrer); let maybe_resolved = match graph_data.get(&found_referrer) { @@ -473,7 +534,19 @@ impl ProcState { }; match maybe_resolved { - Some(Resolved::Ok { specifier, .. }) => return Ok(specifier.clone()), + Some(Resolved::Ok { specifier, .. }) => { + if let Ok(reference) = NpmPackageReference::from_specifier(specifier) + { + return self + .handle_node_resolve_result(node::node_resolve_npm_reference( + &reference, + &self.npm_resolver, + )) + .with_context(|| format!("Could not resolve '{}'.", reference)); + } else { + return Ok(specifier.clone()); + } + } Some(Resolved::Err(err)) => { return Err(custom_error( "TypeError", @@ -555,19 +628,31 @@ impl ProcState { .map(|im| im.as_resolver()) }; - Ok( - create_graph( - roots, - false, - maybe_imports, - &mut cache, - maybe_resolver, - maybe_locker, - None, - None, - ) - .await, + let graph = create_graph( + roots, + false, + maybe_imports, + &mut cache, + maybe_resolver, + maybe_locker, + None, + None, ) + .await; + + // add the found npm package references to the npm resolver and cache them + let mut package_reqs = Vec::new(); + for (specifier, _) in graph.specifiers() { + if let Ok(reference) = NpmPackageReference::from_specifier(&specifier) { + package_reqs.push(reference.req); + } + } + if !package_reqs.is_empty() { + self.npm_resolver.add_package_reqs(package_reqs).await?; + self.npm_resolver.cache_packages().await?; + } + + Ok(graph) } } diff --git a/cli/standalone.rs b/cli/standalone.rs index 4072e5eb7e..147a1a57e7 100644 --- a/cli/standalone.rs +++ b/cli/standalone.rs @@ -297,6 +297,7 @@ pub async fn run( maybe_inspector_server: None, should_break_on_first_statement: false, module_loader, + npm_resolver: None, // not currently supported get_error_class_fn: Some(&get_error_class_name), origin_storage_dir: None, blob_store, diff --git a/cli/tests/integration/mod.rs b/cli/tests/integration/mod.rs index 53c83c009b..742c0e3a74 100644 --- a/cli/tests/integration/mod.rs +++ b/cli/tests/integration/mod.rs @@ -84,6 +84,8 @@ mod install; mod lint; #[path = "lsp_tests.rs"] mod lsp; +#[path = "npm_tests.rs"] +mod npm; #[path = "repl_tests.rs"] mod repl; #[path = "run_tests.rs"] diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs new file mode 100644 index 0000000000..fa5f3979a6 --- /dev/null +++ b/cli/tests/integration/npm_tests.rs @@ -0,0 +1,123 @@ +// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. + +use deno_core::url::Url; +use test_util as util; + +// NOTE: It's possible to automatically update the npm registry data in the test server +// by setting the DENO_TEST_UTIL_UPDATE_NPM=1 environment variable. + +itest!(esm_module { + args: "run --allow-read npm/esm/main.js", + output: "npm/esm/main.out", + envs: env_vars(), + http_server: true, +}); + +itest!(esm_module_eval { + args_vec: vec![ + "eval", + "import chalk from 'npm:chalk@5'; console.log(chalk.green('chalk esm loads'));", + ], + output: "npm/esm/main.out", + envs: env_vars(), + http_server: true, +}); + +itest!(esm_module_deno_test { + args: "test --allow-read npm/esm/test.js", + output: "npm/esm/test.out", + envs: env_vars(), + http_server: true, +}); + +itest!(cjs_with_deps { + args: "run --allow-read --unstable npm/cjs_with_deps/main.js", + output: "npm/cjs_with_deps/main.out", + envs: env_vars(), + http_server: true, +}); + +itest!(cjs_sub_path { + args: "run --allow-read --unstable npm/cjs_sub_path/main.js", + output: "npm/cjs_sub_path/main.out", + envs: env_vars(), + http_server: true, +}); + +itest!(dynamic_import { + args: "run --allow-read --unstable npm/dynamic_import/main.ts", + output: "npm/dynamic_import/main.out", + envs: env_vars(), + http_server: true, +}); + +itest!(import_map { + args: "run --allow-read --unstable --import-map npm/import_map/import_map.json npm/import_map/main.js", + output: "npm/import_map/main.out", + envs: env_vars(), + http_server: true, +}); + +#[test] +fn parallel_downloading() { + let (out, _err) = util::run_and_collect_output_with_args( + true, + vec![ + "run", + "--allow-read", + "--unstable", + "npm/cjs_with_deps/main.js", + ], + None, + // don't use the sync env var + Some(env_vars_no_sync_download()), + true, + ); + assert!(out.contains("chalk cjs loads")); +} + +#[test] +fn ensure_registry_files_local() { + // ensures the registry files all point at local tarballs + let registry_dir_path = util::testdata_path().join("npm").join("registry"); + for entry in std::fs::read_dir(®istry_dir_path).unwrap() { + let entry = entry.unwrap(); + if entry.metadata().unwrap().is_dir() { + let registry_json_path = registry_dir_path + .join(entry.file_name()) + .join("registry.json"); + let file_text = std::fs::read_to_string(®istry_json_path).unwrap(); + if file_text.contains("https://registry.npmjs.org/") { + panic!( + "file {} contained a reference to the npm registry", + registry_json_path.display(), + ); + } + } + } +} + +fn std_file_url() -> String { + let u = Url::from_directory_path(util::std_path()).unwrap(); + u.to_string() +} + +fn env_vars_no_sync_download() -> Vec<(String, String)> { + vec![ + ("DENO_NODE_COMPAT_URL".to_string(), std_file_url()), + ( + "DENO_NPM_REGISTRY".to_string(), + "http://localhost:4545/npm/registry/".to_string(), + ), + ] +} + +fn env_vars() -> Vec<(String, String)> { + let mut env_vars = env_vars_no_sync_download(); + env_vars.push(( + // make downloads determinstic + "DENO_UNSTABLE_NPM_SYNC_DOWNLOAD".to_string(), + "1".to_string(), + )); + env_vars +} diff --git a/cli/tests/testdata/commonjs/init.js b/cli/tests/testdata/commonjs/init.js index 142ae7c76f..77992a0ad7 100644 --- a/cli/tests/testdata/commonjs/init.js +++ b/cli/tests/testdata/commonjs/init.js @@ -2,16 +2,9 @@ import { fromFileUrl } from "../../../../test_util/std/path/mod.ts"; const DENO_NODE_COMPAT_URL = Deno.env.get("DENO_NODE_COMPAT_URL"); const moduleAllUrl = `${DENO_NODE_COMPAT_URL}node/module_all.ts`; -const processUrl = `${DENO_NODE_COMPAT_URL}node/process.ts`; let moduleName = import.meta.resolve(Deno.args[0]); moduleName = fromFileUrl(moduleName); -const [moduleAll, processModule] = await Promise.all([ - import(moduleAllUrl), - import(processUrl), -]); -Deno[Deno.internal].require.initializeCommonJs( - moduleAll.default, - processModule.default, -); +const moduleAll = await import(moduleAllUrl); +Deno[Deno.internal].node.initialize(moduleAll.default); Deno[Deno.internal].require.Module._load(moduleName, null, true); diff --git a/cli/tests/testdata/npm/cjs_sub_path/main.js b/cli/tests/testdata/npm/cjs_sub_path/main.js new file mode 100644 index 0000000000..ba3cce8dbf --- /dev/null +++ b/cli/tests/testdata/npm/cjs_sub_path/main.js @@ -0,0 +1,21 @@ +// this package will require a subpath like "ajv/dist/compile/codegen" +// and also get the parent directory index.js file using require("..") +import Ajv from "npm:ajv@~8.11"; +import addFormats from "npm:ajv-formats@2.1.1"; +import { expect } from "npm:chai@4.2"; + +const ajv = new Ajv(); +addFormats(ajv); + +const schema = { + type: "string", + format: "date", + formatMinimum: "2016-02-06", + formatExclusiveMaximum: "2016-12-27", +}; +const validate = ajv.compile(schema); + +expect(validate("2016-02-06")).to.be.true; +expect(validate("2016-02-05")).to.be.false; + +console.log("Fini"); diff --git a/cli/tests/testdata/npm/cjs_sub_path/main.out b/cli/tests/testdata/npm/cjs_sub_path/main.out new file mode 100644 index 0000000000..593b557ddf --- /dev/null +++ b/cli/tests/testdata/npm/cjs_sub_path/main.out @@ -0,0 +1,16 @@ +Download http://localhost:4545/npm/registry/ajv/ajv-8.11.0.tgz +Download http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.1.1.tgz +Download http://localhost:4545/npm/registry/assertion-error/assertion-error-1.1.0.tgz +Download http://localhost:4545/npm/registry/chai/chai-4.3.6.tgz +Download http://localhost:4545/npm/registry/check-error/check-error-1.0.2.tgz +Download http://localhost:4545/npm/registry/deep-eql/deep-eql-3.0.1.tgz +Download http://localhost:4545/npm/registry/fast-deep-equal/fast-deep-equal-3.1.3.tgz +Download http://localhost:4545/npm/registry/get-func-name/get-func-name-2.0.0.tgz +Download http://localhost:4545/npm/registry/json-schema-traverse/json-schema-traverse-1.0.0.tgz +Download http://localhost:4545/npm/registry/loupe/loupe-2.3.4.tgz +Download http://localhost:4545/npm/registry/pathval/pathval-1.1.1.tgz +Download http://localhost:4545/npm/registry/punycode/punycode-2.1.1.tgz +Download http://localhost:4545/npm/registry/require-from-string/require-from-string-2.0.2.tgz +Download http://localhost:4545/npm/registry/type-detect/type-detect-4.0.8.tgz +Download http://localhost:4545/npm/registry/uri-js/uri-js-4.4.1.tgz +Fini diff --git a/cli/tests/testdata/npm/cjs_with_deps/main.js b/cli/tests/testdata/npm/cjs_with_deps/main.js new file mode 100644 index 0000000000..420136c926 --- /dev/null +++ b/cli/tests/testdata/npm/cjs_with_deps/main.js @@ -0,0 +1,12 @@ +import chalk from "npm:chalk@4"; +import { expect } from "npm:chai@4.2"; + +console.log(chalk.green("chalk cjs loads")); + +const timeout = setTimeout(() => {}, 0); +expect(timeout).to.be.a("number"); +clearTimeout(timeout); + +const interval = setInterval(() => {}, 100); +expect(interval).to.be.a("number"); +clearInterval(interval); diff --git a/cli/tests/testdata/npm/cjs_with_deps/main.out b/cli/tests/testdata/npm/cjs_with_deps/main.out new file mode 100644 index 0000000000..ad31742d9e --- /dev/null +++ b/cli/tests/testdata/npm/cjs_with_deps/main.out @@ -0,0 +1,15 @@ +Download http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.3.0.tgz +Download http://localhost:4545/npm/registry/assertion-error/assertion-error-1.1.0.tgz +Download http://localhost:4545/npm/registry/chai/chai-4.3.6.tgz +Download http://localhost:4545/npm/registry/chalk/chalk-4.1.2.tgz +Download http://localhost:4545/npm/registry/check-error/check-error-1.0.2.tgz +Download http://localhost:4545/npm/registry/color-convert/color-convert-2.0.1.tgz +Download http://localhost:4545/npm/registry/color-name/color-name-1.1.4.tgz +Download http://localhost:4545/npm/registry/deep-eql/deep-eql-3.0.1.tgz +Download http://localhost:4545/npm/registry/get-func-name/get-func-name-2.0.0.tgz +Download http://localhost:4545/npm/registry/has-flag/has-flag-4.0.0.tgz +Download http://localhost:4545/npm/registry/loupe/loupe-2.3.4.tgz +Download http://localhost:4545/npm/registry/pathval/pathval-1.1.1.tgz +Download http://localhost:4545/npm/registry/supports-color/supports-color-7.2.0.tgz +Download http://localhost:4545/npm/registry/type-detect/type-detect-4.0.8.tgz +chalk cjs loads diff --git a/cli/tests/testdata/npm/dynamic_import/main.out b/cli/tests/testdata/npm/dynamic_import/main.out new file mode 100644 index 0000000000..3ba847c7e7 --- /dev/null +++ b/cli/tests/testdata/npm/dynamic_import/main.out @@ -0,0 +1,4 @@ +A +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +B +C diff --git a/cli/tests/testdata/npm/dynamic_import/main.ts b/cli/tests/testdata/npm/dynamic_import/main.ts new file mode 100644 index 0000000000..8b850a8eea --- /dev/null +++ b/cli/tests/testdata/npm/dynamic_import/main.ts @@ -0,0 +1,3 @@ +const importName = "./other.ts"; +console.log("A"); +await import(importName); diff --git a/cli/tests/testdata/npm/dynamic_import/other.ts b/cli/tests/testdata/npm/dynamic_import/other.ts new file mode 100644 index 0000000000..e5d3b6dc3f --- /dev/null +++ b/cli/tests/testdata/npm/dynamic_import/other.ts @@ -0,0 +1,4 @@ +console.log("B"); +const chalk = (await import("npm:chalk@5")).default; + +console.log(chalk.green("C")); diff --git a/cli/tests/testdata/npm/esm/main.js b/cli/tests/testdata/npm/esm/main.js new file mode 100644 index 0000000000..3dfa8122ae --- /dev/null +++ b/cli/tests/testdata/npm/esm/main.js @@ -0,0 +1,7 @@ +import chalk from "npm:chalk@5"; + +console.log(chalk.green("chalk esm loads")); + +export function test(value) { + return chalk.red(value); +} diff --git a/cli/tests/testdata/npm/esm/main.out b/cli/tests/testdata/npm/esm/main.out new file mode 100644 index 0000000000..b6c6dbb59a --- /dev/null +++ b/cli/tests/testdata/npm/esm/main.out @@ -0,0 +1,2 @@ +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +chalk esm loads diff --git a/cli/tests/testdata/npm/esm/test.js b/cli/tests/testdata/npm/esm/test.js new file mode 100644 index 0000000000..b9c91c7151 --- /dev/null +++ b/cli/tests/testdata/npm/esm/test.js @@ -0,0 +1,5 @@ +import { test } from "./main.js"; + +Deno.test("test", () => { + console.log(test("test")); +}); diff --git a/cli/tests/testdata/npm/esm/test.out b/cli/tests/testdata/npm/esm/test.out new file mode 100644 index 0000000000..0f8ef20093 --- /dev/null +++ b/cli/tests/testdata/npm/esm/test.out @@ -0,0 +1,12 @@ +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +Check [WILDCARD]/std/node/module_all.ts +chalk esm loads +running 1 test from ./npm/esm/test.js +test ... +------- output ------- +test +----- output end ----- +test ... ok ([WILDCARD]ms) + +ok | 1 passed | 0 failed ([WILDCARD]s) + diff --git a/cli/tests/testdata/npm/import_map/import_map.json b/cli/tests/testdata/npm/import_map/import_map.json new file mode 100644 index 0000000000..a7ed13b82e --- /dev/null +++ b/cli/tests/testdata/npm/import_map/import_map.json @@ -0,0 +1,5 @@ +{ + "imports": { + "chalk": "npm:chalk@5" + } +} diff --git a/cli/tests/testdata/npm/import_map/main.js b/cli/tests/testdata/npm/import_map/main.js new file mode 100644 index 0000000000..fe7ef549aa --- /dev/null +++ b/cli/tests/testdata/npm/import_map/main.js @@ -0,0 +1,7 @@ +import chalk from "chalk"; + +console.log(chalk.green("chalk import map loads")); + +export function test(value) { + return chalk.red(value); +} diff --git a/cli/tests/testdata/npm/import_map/main.out b/cli/tests/testdata/npm/import_map/main.out new file mode 100644 index 0000000000..755eb73386 --- /dev/null +++ b/cli/tests/testdata/npm/import_map/main.out @@ -0,0 +1,2 @@ +Download http://localhost:4545/npm/registry/chalk/chalk-5.0.1.tgz +chalk import map loads diff --git a/cli/tests/testdata/npm/registry/ajv-formats/ajv-formats-2.1.1.tgz b/cli/tests/testdata/npm/registry/ajv-formats/ajv-formats-2.1.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ff6708c534a58e9fbc82621b4ea081dd1c67b5a5 GIT binary patch literal 14851 zcmb{2QZQEF7+qOM>pMCCq?C6)yi2MQhFk&P=f*2^E z{|4xdpPk8ON7Mb!OueI(I|j#CAW=zSwmCGB-R)^9g;e_%Jgd_HSbLzB?ccJXpPRWE z$);nBzpPvTxaRo&ap~AviL+qGnTs=|jk%vC`yHUVdtm?jDLw^!qXdi^H)>Z}T3y^* zpjD^63Y?@`H>y^t#{g;2qSao)eE*VckNlST8!7~*_Uj;2$D;rK20XU6yVTrt;aME> zWXcZX7$|JV_!pdTcbN+hf;`0lD%hP@NRUUE+LdQBiY^sfe2q9q%KEVQOO_ zJY!nzRP%QqAExCQ0tV(h_`{~O8@VKY*BqteO%VGlxhR9a9LjmWy|o17*7)6Jgq+=( zq>qc|{no6yi_G+D!akpk<(+%H0YMMnD$rp=U%BAhSr}I3)I;W3e07gocLRQ==oco>dMH zcaQizoXnftBR^V~uYJX88;8q?ah|yL?iZ1pe_O*GkP>o){otdwch?RCAgQPNE`W8g zs>Cw3fDnwEb2mQ^3@NiqhoCQ!V+9-B9XzzN4z58Rs^JvIK(J4CZsCV{tbr~6{R)ZA~8_#okK#FQP8G(b04f39uc#;5>R$# zK>O(D?;9OpY#UIFMf2PPzqbQ!XEc6I#|j)KV- z3w?ZG42^YRm2CvJEbuBSb}5z_RB{20hqR2y|{|b-R^?Bo}3W%MK&B* z@W15pK=w%wf5PTZ8JM4Bxv|1^C@mwEmOh0T>(F3=&ftBQ+=BBip#A zdtR44BJ;nawa9eCCpu&1cY-l?6rqnnJ>D6q;gVDa(-WtddK{@Y62;kv7OcR4Hgn1a&A+tZ zrMD_tVQ^|ezMYXK!e*BG^JstGRpbNOYwqY+ zQoZE*D`zcQTb@%tX!EKZN`%#+n8}JQQ%>Kg3VJ$#uJpk*V_+#MU?V~3MrufzUcd~G z<1ox>1uvz2%m)=pcP?k;qf1}KtG6!g&*@OAeIOJ263bJ0tecSu3(Jn*|_C9z4U`Ozsi8TZP+R~XhpVsBQdWJ0=%#zTb*ds zjYxtbpcMMCtt$7!Us2#y_u)U>J*zV%5N2f zr~(@(TvVKUD@%?i4uORt{|Aeyt1u_$C=f8;C-MpB!!Ys3L#v~X6BvYLjHBX_2G&>WFpbNp3 zx@k2p8#~`@L3X{rekQYiLU;Xb79SjDhlHV=Q*eb3>*aQ0#m!y@929}SSDBZPJ|!E(_%bBEPeKizf@y8Nju(qJKJ8^aM{Jo9(zGGgfL>SFfm zwour1nfp5SDFzO`UfzPZ{TRv9#h}+as{+z9=Wd|ziVUGZkh^>TKp-SkHnMy1ax$y^ z?6Krys7L4iIjl0M%Cc;VtmEmckpz8d@6CpKC|IXP%bp(fd${DyVy!MzrWmMt(%o)7 z`;($YQOMsc1YF@o0jCuL&Z==b;6Qs^%nu6%;C+$ib`zB>aqyM#M`u!%x2X6#h7?wn zFqo1$yF3L_HkB}>N|jrA2~tK408?pIMOVjYXn4HQninw<=hq!mRB88Fo9Iw(qCI_v z&bUU7{jhniatOT^$Uj@T?_-`L@zdh5sncEt@NuutCGdHmawc~dx3?NgL4W<{>g^SjlfbBb4D4WCSK;AAE+U7$#G6Z( zD1I&wxOJ`#ncueTxM*=1lEB+f4uv>kpP=`TfCsPr%-y&dFT>UuGyn2r!~dYk7X9Dh zQXSs<$G-RVd+_Op8xpkB@VWcBzHIK`JnVJw)!7_TMr{)&29t1_-J+huOn(oZI*j6QD;^fo?OHkAt6c5VpW&|4^-8^qcC+EtN-L1Jt|CM7<0degtg=kzc1uzUNLYe-%0s{- ztD<4Q**kccd?st`%txbCz40!{JvNrk2T$`Vle|71 z67}hNvOIxY%j;4qPhee@C3!#=3J?( zi=I}YlN1*9fnDNR7)E% z_;NY!x@zesWj${hORfLFBjgbx7=k#C4mb_C`q~9jDaOpgOUpJ2!qBr+lF1zY`z&lJ z?cepTwi#sk1_T%~2h`^kTbjQ+t@SH2%yY*r&TwBRUFyLQuv|u!0wPtVu zT{lJ)qc}|bi`3{yXk=MgAcDH;u1udIX^c393977OTXsEgWFm|}7zidbI7#r3Zneay zQF^gWddiC=U79SLO8D&Ns1!erN}#B9GD{^ptN^-SoiPK-(~`xpXc0Xw-oLGM2o6r3 zG6OnJo~9H7yQtfn*&x?)RD>};D4U}yHGm7HC%K;ne_zMQT$+s5Z%GYkjWCn6&%v_J z=_B?62(qkS&wYqaRQqSBGmvRq&SKb=#UvEuPKwbsdG6rv@Tk%@p@$FQ5DDxxvDB+E zx4P++IvBcQ(Iw&wwG-q!OJWuMwAoMa< z$x6X5$nkOqL=X9P#H)J8VjOFQYR2j?CJ<9*7e61cA3yNlFPLvYC)ztC!+?P4&rfyw zSikqnPqwmV%kyty>RUJZE}8_y(W5KIs}pA--#90A8%59-7AGeqeH|LmNy=&7ICzWe zvm~g-{YppIX`CbC(+F%&e1sLs*<2-$Q%ZnCkC9i=5kuDq>)&6%8HAIOqf~~+hu*5yqIT}fPV3SJ5 z*4Bo=&V~TJ32XA4)@HK>W7|^L$zC-8|MZcUF5y6WLfq7uS;7azr2A=|HSgk+$2MFU zC}`ju+C)u?LN@F{X+mdYN5Y)G81-X@|HcMjX|U;UaTxCebguBLWgcs`JuzAj8;s+VRfeT-PFUR`lUj6C3*H+Gr?el!_C3!MU(t$!exhIBZCz zkHmBiKVfHKbZdCWjf=M{BjQ>Oep{Jo%wx7rR;*;o7n zUykoYjnOba8&;Z;kugop(g}mWIlJX}jIGG7zrqo65yk^Dg4sIn+@vWY&Czs?y2@!a0nA}MzCqYZfuwarOdYS8 z6wVb|wWOF#ox8#=>{vp5Vi?M7W77&Hi*1o)RR_$PPe_sGV3b&eN>qM?rLT*vDNG69 zianK>8I2J~s7Io~tLoyz4b{+d4h9}&i?FLezX7GnQlEg8 z!~e``lmUSKH-qj9IUP+@zsMTjol%P$0e$lC&%M|0T~2GV2AGcMTi8H@J-bOc+}H)a zuV$Vc1Sgs3w+qUQ<(BKYD@CC@75HfukA&>=OUEQ^0|UGmcq&{xYD|%U%A)@0qPwyA z?0lY($~%2-D_hZyNah7yRaqDwWc#8SMJ5*_JV-rpN_@vYeoV-QK_gmF&@=fxtWEf5 z8`^@TAqc+3+3!9MJlBWrhf*BWSLkuu?2%dAzh=l!EFlhSnd>5e-Oz#8y#{EzwQ)MV zixjxi3mc_qN#@4e{AD$AV0~k{CL$oKsDIqHuqa!yDP~r&t4`9he{QK&JV=u|;BSw* zf^J&egM_$8` zM8_Z>{`$nt0VAeXl4SQY+Y@q~LBtk$y}P%2nQn#vW3V*S((^g# zS$m@)=@6Tmrb5P@$OFa8HUpH7ZfNYl!KfgE($ko@4#Qfi6wn=*9uC)Y>4Q-E76t zp@kpC&}@4ur^rKB(j7em$i%GH!%~+u6>79*bNVb82fRt1S=!7WnHz3fwYW1z z2AUjtyiH(}$j@<^8)vsnBRIQsL6T}X+L*q^$P+iYK_I+$@J@>5{^s8jm5J!ME2spS zX1ichS|VB&f{mw2o^#{Dpgm+xlLn-qD_Ls|l=Qwn1eF%wyu}vvRa#yjbx-qMxNeA7 zh@(w>g#Ae%nY}4;>7qMmW3mHR<-V&|%Og+6Jz~6o{Y47CZ)g~2!Z8RfOLJhGcrz$N z-G}KT3|c4vvOX~u-koxZ2o>HoEkdpi_~7+|XN6oD37s}ZP9zE!sR&z;OIbFf3HP{&xCwV<5@Q&X@8nsm~22kE_OfNA`77(W&-;rqyAw11lBPcpuJH8@Zgb1iMOaZrkGX+L zb@0`f$~lzL=;!V{mPxX|nUDfS{0<&>5rK>V-NvvMCgsbp%Qu3wGA_@o>D3+KHCGUx z#2;j7_3MF&rUj=CeWtTm{j%g=GHsCKcA{0XT;VgNX@Le&^nAL$#olRLxr` zW4tLkwHf84tuDsw8kxMxfS{k_aa3U>`3>E;p$W9!&RMs6y}<> zPsQrVI;ym&r3QYN0j_cvXiI<5)UN6Umnc|icVWA4A!W=WCxY{P9J^$N#VFfUqql_P zHQ8(D7vDc97o0Otq9dQMR`5zkmf7i{BBdgP(aYwGc6E6^-;H{z%mTp{aSmZj=#*)U z=0i)BQyH|q^j*8?6kI4(D`&n1UerHF5qdox6jn96+0Ht4h(^w65 z%I&GuCS}AX@ih2&1U^J=IdpptbQNQVaR%c_gmFWz`l zHZ`_~CZPD)cgPL)J=JS_SoMLZ=*#bmjAc46pRTY5^zE^^-hL6Oqg;Varq~C{UO;;5 ztki+pM9Zo5Vx@1GtSdQ-Io>--^YFtU!sy7<4pc9_!2$JI8NBOb+`U8NYjE9BL*0)B zNbitKGWx^!1-J=QSPodZ-n}7)0hq&jiR1L-3hr?>ft}$cZ8DuOwG91QfahSvnI*!p7iX&xK*4PvSuophvr zRo83Q4hUx6;fzJJ-+OE{66fpJoargc=Tblk0Bao}$298sazxye zzC!;q8IYU%eMkh*BQo(K1$jXcF}{WH0)y!iyfVmBQYrSKAx0iCKRI zLu*X~9DKJ~>w;ozu9erBJo6zpm||fBH7X=(SX1jXfXS(a4|~c*9@)NqR`Ne$@uhl)VXgd0zaOy$vC`vC0*+e-Q)5kL*LKs!y}8yS-pIvp!>z6yPhDU0Inf|S=$H}+{FRW*q!U|rQS!w*MW_Ow2bJBBr}MPe=tMCUw| zIju#r8;~L8EosM4gs}{0tYzZxvxsS5>?(*II?ZApkT%68Ll!es3y963F|~2Qxrq-Z zPx%VTq#Ljp%H!o48+4i!NtZtf)vmBW@2=belB;h8s-OP#7d{Ec+yyava>8)Q3U|VL zFDrUW%F>t(FDBRA4zVs6O<6NBXC+d$mxuWpYK72+F<9=u!G%?&3l4sM>vYA&@*9^4 z^N+%D#;oHKD~%|ppsLZ-o-i&dFITP`fNB*cSx&wAY9NZf<2W2WDgoix zPHH2(f9ec6Y!hp>Yhs7$+wIxlMQbqt6^2*c%_cwcj zN%B;LGx3i}2HkhTLNhxv-~eQQ{_Jt=zB;eH1*}LP{-#e&y?yQBpD?)n8r;rzj9&|Y z_W9lR$Fs;SiT~^`kylY?%n?ym$KXAqh1T+C%ZLfgD?DplqUSc;NmUbn-k*)F6|sUx z{~NAUuq<3a>^p4Uj98zp%C>c8;TD-(%o0uKK0)Xbvckq$@W+9FYlIBpNmPMhK29C` zp8Lnh9384{N~^9)!2maKXDhFSjn$~S7@KJAD;1j-Wfq0;Wr0lb24NcH$#NT8OyczV zS)O5SN>Vt6CoElUB+1BTYBshBEmBmXLqKM#Gyaksd1*^^i5dg!L79lW4S#}pZ&yKC zx}LIA&7)0(Ds63?%YZeSBa`(Q#$@apI$1)zMS(m)ZXuOf(}s@VkE%6F9&J#`cd=xS znHW9Z-ZFF_tb5Kr3%#sDBCr7;1)hT#fD-+z5$lbG=v$VSveKmLfJ*W}3M8 zKKpyqyMTO|P>gcVfqPpKjgYO7M~ya%k|(jDRau6%j;Glwc@kz(@wy?GpkH;@ZmXS{ z{OfP1(=inuOnyyAF8hWhbsW2$AXd8bVGu)i5h5VjTr)b`7Z7$#YDcDCr_<=xc^=K9 zbCTvSUlPY*f*ljpPxD1v6rv5s_$IJ^&9 z-Yooux$83J1GN5~p*dMfVO!d+^iPiVaa4Gq*HN39dc^XcZzCQuja2F|Dnh1-I5BpL zkNagY&-w(qn=JeAoSh6AZL5Qd#R>J(Z8d%!v}n^cz+4gHCUu=Te(zdmu<=MrbcQX4V}wszT(^zs}cxFf87`9y3yfRR%7hyT|nw!b{<(M^$D#KNMN*eor+Rum zDQ3Zw5_#t!?BY$&V*W*LjYd%afLUIxFr+;LXhtHRKjqIQLHYd@d|+>wC_QC2Qmm1J*To{fZw!?6!a0MS2}ZrE7*6F-Cuf&31PpMB#)&SFZg2egbpTF#?; z5;neMuTNEUZPZmRw=T_a-;?%k3Y4sq~2cju0s0hNc$<+}jq zK6~R0&jP-bI009)FkXMmkB1szcD&*fVOicbcgqCH(K;+X zCp8}QVFE3x1?z19h$o)R=u=8&;Q72s9;t&&uq-btzc0ssU4m3-Xc)zFc>64H1wk5- zy~L?lc{25mHW+RbY|gu%L<)(0RG6&q@;%q2Po-wvcBudq%B8}Fu2IT^wmPNH zSzJMtp1Pe14R949~ovnXUgSQ$M40GKTnpnYSl9Gw|Y$ z&9^7=Wni)uBx+pi_VSH!Oq_0xQVV2=jqk6^r6rHfETyB*yOORjoM-2ep0OaNy4wqc zP(kUgT1F9`&FJFJCa@qkhVm3!m>}tk`3Pof0U~n=EV4uGG+&*pY0v)Tu3**7oyx9D(qe}Yh=UPNSDCO&>hNe2#cWVD1441N%Iw;6J4Ha>og^XY_>@=W%eJ=`c} zdphShh+az1-mV4Yr~%humXZf5zPAm8zcp0bdyM}}+t9g0iXjN|TwX60=ls_L9NF0h zi}|If;p~j0lUg%mABH#+v95p%#cigLz#@){uty3;-$m@DxYY5$tR%=jydO!=$us3u(-A9lV#~rJB2%>vabq{x(H=gB-)|0hhedJaYjnkS(IP3rnXG#y5T4IJWM52 z*BE~%2UXb-1?Wcw;~^ytchX|Ll|@oA-du}t#*ni0ewC*bj9KJf1xQOCc zGJ0-5S;*Sg%Z+6Itv6nSh!OZdqx8(;23b5G_-<2UX(JwKQA@e_>ZI9cSnQ}EBL;Xg zm?r)+;bq%M0o($f5tcDV^CLBWls_e>krdJ9LN<{UD-9}ytnOXZHW@S+#%}IFIZs$3 zhBdO}Pw~}Fs-Tr#%N=Vo+(NWjGcdS5!XFnG2v=D_Z>aWEjmM%fo+DcAI z)afo?7c3kz6~R@G-JYo_4=w368zNPI6s0n#r(Pc$HNn-Hp46%ZX2U+J>hQigr{|9N z|DjSCtTNvM8OPfRZv8W;J<9Rb13F<0Y4n4c$*0OAUUZ z@|0hL<7&4nd`)y>$p{u+X$Lvb6u9oVxO@P=(!Du zJf{>|xA05qf^5dn-F3PPd^|fH#6abAYx?|dIP2J6EHiR8rWWfq;xJkYYX3I2@y)y9 z-Z{LrLfZ2&WY1`*Tx0Qy*bZ4U;RELdZ4ETDo&+5~Px;B=Jew0s7KVJvzi7ltQ*|RU zA;Fc?d<(>4c%M6&z?EubF0|;8$+Zu6?IG<3Gn`GG%=Sgo_S_PpE6f$Yu7VaavIzYv zc+5ghg6>-|HP0LSr~c#Ck#|7IyFJY~F|LAbZ0%wMo*+f0i7F~soOM$XN6`}}+Wpq- z)Cg4+K`LjzO740gOvDqiY4BFQxHDjR z8L&_sqC5u}e0u96irabvq}CX7bpq-?{Q!H#-w#^8aDpv3Mp|c6y#1WwXhYMpK=9x} z%maK*&@g&-%t!5o+u?%@>j$s?T` z8d>j!5=?l*^H%<*L7eRw>FHOb*M`iz#Tap=Dem241}P*?!$rq-Qd>i70uPV&`C{6JK_Vw%3;BgQ*_jL#Hj7T0mDQr>~BEy@GrHLj9XFO)M`aW2TA^nBi zP=#obB&$LhWGT?!k!=_s1Uy(Dvb8__>K`O73_X~xjMq$u)PJRvC`hEGU07%naN*14 z>d1ZTVDd7$4;~E>B6>sVBQQpDV(VEd*_pQvV=f^`dP8&N0wTEeMPU66e?5^ zre%WbwZr|PZe1$K1S(XRlU{FaY)@}!)>*%q#s!DnBIIpYDCFCR5FY;vrrE>_-nN(~ zo<#HXT&CF~^Tf;hyzj89KYKNYZV`UXiwelp7W}h6#(df}ONZW5Gt;>OQu?-4qa&wO zP5Fub6TIZ}=z0-B5a8XWtGV~?7_E0$@0$%5=7j_F?xB_6<~!3a#<%$ifq8PmBiPXu zQy6&N{2y?%^?$*U@_ch(0%DA^*Z+W{uK$7~2^KV&kZLrMx0t1sWxUzGoo0$#F8si| zI0&Tqre3t$53r)Iq0%c|w0B-l{Y=O?4V<710oI zRi_FSSh=OWR~y=nVIdT>tp6aR`~O8o(*KK$O3(hdYGD-OHwy)o{|6au1pgmov|Nn; z|B8$%{=bn?Cl<*a9dUW(R<8|eEKcyk1`6c{5$5IEx!N8SRsjE8HL#yqp2Sp>{;ICF zlAFWb&cmj5BWk!;Rz`WJPe#vc4>lgT#95H1nr7tJLA|igtA^9726VBeIk7_~iSTxL z*4KZeGYr%qh`K&rP8TuNKZW8g6afR_DFLDl{eC5bH^I-Xn41?_Le6 zuM{+za5?%zTqHi;f&%_s#xV}y{{PiLb|ptvgzOmREsj@BJqlPn$C0;;E<^DDOun!$ zmquR;GUb4CGeC8Fibl_X@r zDaZG%nqzvv*hL*$zsv1tudT8bh#E%RP3;5ym{L%(r>vrmi|<0$(0x#P$9zDVyZsG4 z_z&>>=h^BdF$3g{Tw{@a2C37g)H@kR?_3@`x>@m;&p;Kf*_*>pft?xB&tILju)8|FC%YHd+_v?q>$GU9aq9Z7){ov4Z?@UK zRhBX`mu#?Oiy`9q{#-#Cutn@9!eVMxy@se4+LXk2Drv=2q(+O~K$Fdy6JeGh7tptR z+pi>KD{?8CER4SR%KvClhbG=7IBHld%ukVtH0L$%IWxUxORA6sN2h^a=^T-BQo($v zkzM?1)O#|T7qShkeg)4+>0}4pLxNTSt**QB^WYtWw#L(+oJ%)P^$A@YKHEINO zNCp!5{Z|&CB{!E|;u)>%@;@@@-^zbw5PQr{fwGRPSCu+;3lpl}9Kr6y29z6XS*=GE zc9W-p8tn8{$VI=*+JAgdag0uC+)b)}g##Srz8mT`Xhxv6l%*McL{DM7mYJ>Y7(`!v z%>mC|uH0Q$k5Qgc5`UFt2GZa#SR|@z;an$$HBA8?%JyHgX>*J!y2E1-F}o0-YCAz| z99l)4zQRsatF3~PXUjDf?_kyh$x zthC?$pw&&Y*7 zBVnpCZW1LCk-e@9aPs^4bhvc+X$G{eZ3~F!TBDh>Av^8A{dAug!~QwCGj#sfuRnkYwXv$mloicfX5~^FVuC>j8Rt=a8Z-18Qm+k2_?GDeoZtlf zxShQjlp0U{22{WM0RSf74?Eu+Q|!JXJC+P>_u0ngd|$+$;DN8<@yCqzKknDn(TGm& z52jua+c~lWmr|D8uKGiZ&c<`Mkq%%Z6h|Ds#^NBSj(cptcGb1=Pu z!_6K%?D&&|3%c>Cn77Ynn=zXH$t>i|1+iRy>b3}!CwWd@xgUVB(NW05CaT7n*1FmK zlzyYrCcpZjmn+3Q7W*!a@;BUyxd3*!zkluy0xsVS4#~^^bJ=(QGN{{c*H`*7&~EGt z0DMsf{HH{ws5<5J_6VGd?`EIB={VvSCJ`T9#~uf+*ijG^7h*>PE)k;#&L-l=be z<)0G2N_Q7)%L$7^8&>z3IF*5=7y6u}@AC`t9i7r;5yBBYwQZH1aV0W1ck`r#sS++q zGrOn4c&ev=xJ$#^e{sDEe(xPdofHETI%|ql540L9Jfs9GV;?Klw|H?4k3JzS#o<%o z*)YQ|{q2&F9E`{9_SY<33vQ+z_f_&`uWc}s790>{mPQlF{HGwzv6JXgRt1Jf`UZeY%=>av)po%H}*f90AD})qreY)b<4JZK>x{W*5>?;2R z$+cKSVG`(+Hc(M!RdbNa>NY{$HI++lIkVKZhQa8D(~4`?pvhF+V*6-E5v7OgA;eU~ zTtU;v{t&B>maQzS|6LCpm*K>6DqNTeP&lKoD75~oH}QYu(}9-#Mk$VHro~*!)GIOQ zTZLj~@L$tnap2>e^{$fW9`RgIFvp8dTQ`uosxk;cP)zpAv9T_9?=<&dwd2IZ8hiSk ziN!OE8Eq>rB9wXw*-KIK8j-pP-@NBdR<1z=RVFPaO8*a3s|&cj%)wQ{UD=*S7U((` z+|Bu>^78n8i7+$x&r=s{e72NMHt!z?M17Up0H5QB04Fyxvu}fs-ycBncWJ^2jv>#qSF`CR~QZOZiC*MFYZjz78JVXasxEtb#DA9dHA`nf^*=)fw(T;-|c76t2 zHsOSbbKKt$K@~7O%sL*F?b53~6Ty$UEfM)6es{&#(4IzxB;NXP$={b9bo>p^N1D7# zVBYqF(J$A~X`bk)r5=SD+up#5b-aeNj~s`;3Cl`{Bq9(-Aa*Wq9afH}zJ6}J3S4`v zqJEV{ebGg?RTY!X3S=KpFO(1F*2q%q#JZxH1H{I~cRpU}6((Bys;3NMpj?`Qc0v?K z@IXh5JzL-qd&aTW_n@qmxt0y^&$Gva<1!rU_Y?JxExtMPf%LyJJI+M7i;x=>*sd#|+Pw zU2}EMTnNSAVi$1E0T6ggHPIBjeiybq z8A{RTL0m^JM2meVx|m^S4Vq8)H}+2xEs&u6yTfUM#g*B5Wb;R3c}}gB>f~`CA}WI=-KImW$PFIu|$vN zJLrM8J3_@10f|UGUOdE%zCW=ympdjWtsfGFk;dpwEHA2v`Y5>m+feNCO-hr4W~}g3 zv-*PTF3HnxNH{HJHe3e%;?O6UdUwe;5J+ez+KpPhlbb8GMd&71GM8?jG9NVudG*9n zOOB&`5m~uISyy+li4_7v(alIyLzSp6?JCT|QD}EE|MCTQ>?o`v`y^(O`oW9Man-4+k&(mHYoqzT#}EAabN99P V)_)fOC=CE0s#Jy$0(}Dk{Xez25?BBL literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/ajv-formats/registry.json b/cli/tests/testdata/npm/registry/ajv-formats/registry.json new file mode 100644 index 0000000000..6e108bc21b --- /dev/null +++ b/cli/tests/testdata/npm/registry/ajv-formats/registry.json @@ -0,0 +1,2462 @@ +{ + "_id": "ajv-formats", + "_rev": "40-f50dbb45e2b30e675c25fdec9dfbe1fe", + "name": "ajv-formats", + "dist-tags": { "latest": "2.1.1", "beta": "3.0.0-rc.0" }, + "versions": { + "1.0.0": { + "name": "ajv-formats", + "version": "1.0.0", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { "start": "node index.js", "test": "mocha index.test.js" }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "schemes": "^1.1.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { "ajv": "^6.10.2", "mocha": "^7.0.0" }, + "gitHead": "c9cad122ba666eb3b7ce0d12cb0a568fbb54d0d8", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.0.0", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-aUO0+DSgPeeqaoJw7P6hFB4+53qAq8pz7re71CHlmyzS/HB3STNeCwPaQlzL5VslMuogSYRzGE0lxJleMFSPug==", + "shasum": "b2fd022d6ef248c0f5a7bc64ddcb03d06ee9fd66", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.0.0.tgz", + "fileCount": 9, + "unpackedSize": 7204, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHgEQCRA9TVsSAnZWagAAsrIP+wcZpMFXk3CyKAxp3Vaa\nbpVhNevU/+DbJfgnI8FH0F7ZFRHzyWv1GWnvSnno6vGBTyClxUAmFrXtJtZt\nkcl+Uhyp+E/O4J9lxXXM7HWIsoRUERYzOmln5dYF1YVFsFDxxDr5+mm0jYw2\nQZE+FbSBgxna86PBuqFb1CGuu1/IW7U3Z3E9EzBJIqPbamE4WeUxyYoadvL6\nhRGCu2nVXwN1Jo6LUhw/ZnWGEeXdPqFE/02YefnVpLkDKrU4vdL2OsZ7Kick\nwG7gqIq/iLjwosLE9kZtJh0NWsjQzbsXV149RreaR037V+VlJ2tZWjM3QykZ\n/ya0iM8O4I5ZqYzUwDPoMDaY2Slysts9mik8GOAicrrZw4JNSQ6+zfOFZ8sA\nCltagLe56sCJIS/RiU07yFEK4vOdk0TmiyrpA4oGaSSC3RjzdJ0VFqY6fp/L\n2av9pTras8RrIq+9WJkg/QryuORB7bR7kblUr9Y1lE1bbcnbmQrgqLbCRdkZ\n/BGr0RIR9G1bWtR9jlwUD4uRbGvDKP9m287LFsSIAxbG+FcvbRLC+1glQieV\nofGZYFn+KAonzHCyTsofnBvHBL+TkFgathbgaVyiHtEChN1Az4HwP9Xg45vR\nLdjuR8tULaeheAI7v3xLhZSfZUmTY//MMNB14NNhgtBK0wIlkbVmoUtRFXXD\nLn+P\r\n=TMdV\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBvAOMW63eAKHEz8EGL0XEXIYDyW024urLTUE9INWz/kAiEAkqnMlSo1fexNdtrg0KNLChQWhA5ZmAJkAsWJsIcUXCE=" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.0.0_1579024654978_0.46386153170909505" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.0.1": { + "name": "ajv-formats", + "version": "1.0.1", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { "start": "node index.js", "test": "mocha index.test.js" }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "schemes": "^1.1.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { "ajv": "^6.10.2", "mocha": "^7.0.0" }, + "gitHead": "5bbe92c66678368b04e9818d277b39a948fb2254", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.0.1", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-anO5SPnSWiOpbifd/92bY7wK27Oqq9bmtR+jon3kDA8HcR1YIhor3SYsT4Hnag39vYRPYUXApB4VHLVmBM2+Fg==", + "shasum": "467423ee815d78397c8868eb3c0341426f97f27c", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.0.1.tgz", + "fileCount": 9, + "unpackedSize": 7174, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHgRDCRA9TVsSAnZWagAAXrQQAJcuYlgtTfxB9y2mAgfk\nIT2Wrd2pdU0Df8Pm/R1GzIgtBLfbVNiJvrq417h+0RM2um5cFRXbjl6y8ef6\nq+y9o1vz0R0vGvFv2NcCPkyfBb9eAkh2VWcpVn/I9s5u8lYcxlXrKKNMzolN\n+cj8clewsr4FYX0Twpj8uDzABlGAjfc5UzYyI5DipF/l1BCqZV85yv17kTxp\nQeztw3EFiV1KjvEw0DKDEYLKTkyV2GdEJMgR7xRC/BxgWJuK37DjHVZB7y+a\nd4sYdpOr6c7yjj/K9yulNwb3eTO/mtF12ZEVv0wka4YkAWFmPUHoLcTwLSde\ne2zFRSaaBfeNp8gt0k2EUH7vN74Fhbq1Np+LnLvzZe9d3c9obx513gr4/5e4\nIIM1MajMyCl3ixz/8ceP2eg3fqcGnGXBVKkN3+rEKdpBxb7M2YabssGus0r9\nbMzuBfsKKGLzAHROKJNofiJrLYeqWzjJnxFWbqYf1edUnxLvhmDZQmouILwZ\neLkzGjgBQaUMUtThQsHP+/Y1vmL8rQaWhYdJWQQvb+vELzNRtS6OmFN+31gu\nvHAUwaxmWcDwemycPjnwVR2Wwo+yWDS96F7k1gQQIzlCwEQjxMsSxz2TFCJJ\nbSIUGe0Uq5RQdpglZCoznLzR8xTrLY5F2NXj5JEIhBEdj5xidz+aVAVNrRBN\nSvzY\r\n=xj9P\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCzDlMCyyQhyaKoHItCLeV2K1lWdc7fsjTwaf9hox4PdAIhANhUuAAolqSRtlAOVT8Lnq4iw5WV5pqfMqKLNHdvt7hs" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.0.1_1579025474886_0.6115918865924448" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.2.0": { + "name": "ajv-formats", + "version": "1.2.0", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { "start": "node index.js", "test": "mocha index.test.js" }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "tldjs": "^2.3.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { "ajv": "^6.10.2", "mocha": "^7.0.0" }, + "gitHead": "ca8c35b670e99919925bbe43a38d1294d5d1d496", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.2.0", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-LPGWNVSU9Kzgbeq6J9m9DuiACdq4Y5k3IRmNI17Dss2VO7YJwaWvL5aF9ibs6JV4phFV8hvREgQzsvLboNlnJA==", + "shasum": "a66f57e22d56348a54504d062f15db8ad8afaea9", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.2.0.tgz", + "fileCount": 12, + "unpackedSize": 14051, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKJuFCRA9TVsSAnZWagAAipgP/ifgBQ5K2DnubD5R+FEG\ntHPscNYQe5JNvBWstLago+yQztqMAkIh3kCvJZrXbto8hsLEZKXMN46GUQCC\nyW6yShUkgBRC7H1qSQjVHkoPi8D7P3uuDF7kyNkTx239qZJ5+3qaNPyc32CM\n7mMlsDi0IbPw8D2+w6vMSBx8bm45cTALQg/RsgI/Avng1hKyk2WZ7rOWob7O\nCD2CG3ue7dvBg0UiPzl8gDetFPBjOLqJ1zbWkNYUxL+WzmPcJIfRzA6J4g4W\n6J5YRXhU8ujfkhNWxzajxDNRuNU7+VDvXPAddWlrG2tkfFipuFl6NvrikjUr\nIauGDGOQTecSvyAp158MCcDtNcQ5FuOazdov8s1ioXE512I8AyzR46mNX3cT\n/NvG1npx09RnWp2GpV9/YTmRXE3PCwrD+PCd0MEDeZeTRcA4P99dVUPxJdyF\nUaHe3e1jncEm/IYMZux3e6XzoSzlVzX7YX1is8gas6gUACs0/dizPtrFCNkO\neoJdeBMbHV+7DKAbJID/J8vaSZzuTAeRYQYKkWnS+NBdJ4Mxw4iJEj/89SPT\ncmU7gxv9rCTKgPFpsuVTgV2WwQtYGY16FWUzbQOZhQgy9EjNop5N+VU4wW3m\nMjSYdZDmGln49PhOebaDJ2qO9BWis2XTs+B3UmO7Vex0l1ub/m3RCPSTxSUs\nZVkI\r\n=oOmA\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA7W4EeSrQspJQm7XW7K8SodGxv0sh7kO1c/3KV6wWMxAiAEd8+24lQ+dot+wB9lI0gJf20lKGUoF4kbY/KiJDj7XQ==" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.2.0_1579719556970_0.27937730549312656" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.3.0": { + "name": "ajv-formats", + "version": "1.3.0", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "mocha index.test.js", + "format": "prettier --write '**/*.js'" + }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "tldjs": "^2.3.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { + "ajv": "^6.10.2", + "mocha": "^7.0.0", + "prettier": "^1.19.1" + }, + "gitHead": "ccfd926ab37e42d906d08ecfdabcea07b2177fe5", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.3.0", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-1ODaj+8w1xy9fWKhUxj9vXbQmQ9vv3U0H9wJYVnCabiVDsoFTDBq3DRDWBMYXYj689B2UxUMetwKeKjS4mEaaw==", + "shasum": "43ff1587979ccd235a3f569bef6db2a1682281c2", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.3.0.tgz", + "fileCount": 13, + "unpackedSize": 13890, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKKLWCRA9TVsSAnZWagAAk7gQAIU+w8Nl5Sfyy7zUV+oI\nAlhdmsrFmwAnYBZ2snv0iLh+An6l9kp18kzAHShFRsZ9+lE0l9QxwnZXTjbD\nDHX1IrzcthkqPnamQNreOEX20q0haBHUcH+frBzMVFWXfBVn2bYpXVYsEH3v\ny0Ssbp7r8um4xmDwgT4JQrfpIrb3OS/uI16tDH5i8zZ8mmfrQ6xHkFeBFCWh\n7E83ZGa6mNocgKrJ9M/rQ7ZYu2NhPfe37AIXUhYBBVI7obDbp1N8DB5sjDDz\nrxbrk1K6mbJkZDvqIRYRB3z1WoIqq0tozIiVU+p4ZLP3JP6Rgzv5e8ast9vB\neAMcOqIPmR54J0Yfqw+qlv5wLY75pEl4r6A2DUxsMzOmIYT/e5XPu1G4H2UH\nwFA1fK0FW9FuTros0Qfh5gUgYaEti3ELnEN1ixJ0QMTgpj5fgjRQwHm/Jq11\nfMwgr17c5ZDRdcIojRoSvNXXm0Lqovy7zNg2xDc2To6Fl+3beX9mR/Mrx4se\nrmCVGwHG/vRfSCiMuG6WDf0PEjMeCpQpdfgPIyqV2h+ofBGhP8gRbIWVOz2b\nLuDyKUAjpHlhYo+9X3Rsmld5W+kP7hRYkSk5MrYy8CYlUcREQ6o0DCt2Esmt\npUOhTNncx4bDgIZbVWjfSGaG5BfLV9EtnVLsZyxcT7AF9DnFVKNmNzVODAn8\nSlbk\r\n=/ZS3\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBYWKMa8erycedJxrYgiE62scZchxiN8QL9geND2bQ+5AiAgBE8OinoFyMl8PYK/0g4/Bo/m3dZgLoK/mgzwWeV9KA==" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.3.0_1579721429543_0.08622816231138564" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.3.1": { + "name": "ajv-formats", + "version": "1.3.1", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "mocha index.test.js", + "format": "prettier --write '**/*.{js,md}'" + }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "tldjs": "^2.3.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { + "ajv": "^6.10.2", + "mocha": "^7.0.0", + "prettier": "^1.19.1" + }, + "gitHead": "30af657b4d832a411bf5644493c195cb3563863b", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.3.1", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-7YsjGQym+Z6fSxprhCjn4dL7ca8ZWAypAkxtLX3NzcE281xnOeN+HlGdoS8yn9iOIcG3D5SI31eKGX3HaB+UrQ==", + "shasum": "00c36a51ae6d0d81944e95216ac8d7ef700bb6e1", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.3.1.tgz", + "fileCount": 13, + "unpackedSize": 16040, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKKkxCRA9TVsSAnZWagAAI2MP/2ut6JaBXzkpcAiz7f21\nRoYkfQm6+tILqBFqKEgkE7p8PqWKHZpogzzfy4Ks3MFcsY84hmVOnv9DL86U\n+FnDe4HSVKRK0d6dGod7sJA2baebzlz7dEPPQh/Qi+IG3jOgCrGflZXZsQko\nPNMbk+2T7NmYh5drgynftPtNqRMaQA6WwjnEnfB4ywrQDvnSY7yBKR3XNO+q\nQ7AYCWAlBlRxRsYOw1ot2ugRscgibHgFd0t9HbVUU7tRSCCJC+9mA/DANnoc\n4b5+lS9nOIoNiUH+V/LmgGNHv2g7pKlWZQ3HDk0dAakF/U3CBvU6Zte6h8os\nnQp8YHE837tg67Q+1e1U6oRoZIp31phwSbTkeTgDRJeXlYAKDc3fUlJx9qG3\nzd8vpnAsMy05T8YxfLZ2ejNhC0COa7PV6RHNVScoANA/v7p5WyQyAZeACHzs\nSPPckye3WpWUVdiZHzMUQTwQGgDGq1pr05vVVMD9FVuy3zsuQx6TaDvq4YOV\n1Vt16HtAUb1EKGkKtq029bKHPNh7KYhycBBqGinVGhrBCHO2XR5e1GQG55sk\n99DBnJ44qatFIFKTrkvcByWaqrC9wIt1E+FolQWIQ6SLyQkH3y5ftbzlICYb\nt3Wd0yGrlswfrZjkeycolk13DkKLZ2iaPAvvjM57SZV2cJkDIxBr+6VzcGka\nFYxI\r\n=L0ET\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICcYftT89m68ge2KyqOM8V7yIY057szg1stFgXSiUHrXAiEA/u+SkOTgbWTT98W8HMIxyvc9e2lrlSDzC0CBW8mlVHE=" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.3.1_1579723057007_0.9954368599411538" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.3.2": { + "name": "ajv-formats", + "version": "1.3.2", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "mocha index.test.js", + "format": "prettier --write '**/*.{js,md}'" + }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "tldjs": "^2.3.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { + "ajv": "^6.10.2", + "mocha": "^7.0.0", + "prettier": "^1.19.1" + }, + "gitHead": "1eff141fa257866bdeb8eaa8d18fa409475c09b0", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.3.2", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-pO+/5q3GNaU1p64F11bK4tmb7Y3tsnCOWciZBxCaXafdute4qG941vd3fqpZrg2DoPDoB/j5sQSrsPVVZsKOIA==", + "shasum": "89c1fcad45a94a47e3a27eb2e4cbabffd8e03a07", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.3.2.tgz", + "fileCount": 13, + "unpackedSize": 15975, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKKohCRA9TVsSAnZWagAAikQP/0GtbgLCdGqSX7bQi6qA\n049pl7H1NYI5Omg4i5Q57e4510Rrd+3eFtg/RSHrluTW7tOk/yyVztpVjaG+\ntfGMC/J1quOc8g1OfcbluTOwciYJmqWRae53YsEGqQMo9kJqeEgbXEvCgxRI\nuRrJtI+XaA/AZ/0QWUl0Hq5eVwZwIl6d4Prp374u1D8RW0oMZ4aq3XgJ5SNx\neNUeQdZPgkRBtU60ib9qdFpSR0OLAJ3f5v/lkk42/7rU1P5tFXrvzFdlQxl8\nGmi3SaKLkbuEcNfVkxPcpDODserMthGSuiS+NhpndK3RDwH4SrtYgxOmLRo7\nluFWmakhjJ0Gai2lVpoMx1Z3Lk/QSTuhtcUK/ODDmcnnSTbCTuOXshS+JBVx\nWYLQ5T3F5Giwm3SJcEKWTqzNqKAVit2l1YB26rlVK0Db+D2UdWZy+OnDuZNH\n7G+fXxXNywsZOclMYmhoefIK8sKQ2oS/sIEOSXHz92uHQuh7pY6Xqqr+Datt\n5Pp3XSoPB303FbrN30GPlZWa1au8UjrCbpoRXIlsGluULvRApazoUiMLaQFJ\nTOkDe25/PkgJhInOt4ctUSekDA89WLTVNoSDk6pOGPCzl2kZvRkJVmxdo9Uy\nAuA7DsVoUiBSoDDvmn6EPjjNXU4+zQonCrBm1zUwmItVHXBK4JkqUQ+03Zpg\n+mBZ\r\n=Iu9t\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDjxa2pEenr/6DwO/enCT+icjoG2v9qiOMtaHAO/XfRRAiAD63XlzniHW9dv2Ctdc6tO0429ooTWPWhbl9vXuvwNvQ==" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.3.2_1579723297203_0.46060887865648326" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.4.0": { + "name": "ajv-formats", + "version": "1.4.0", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "mocha index.test.js", + "format": "prettier --write '**/*.{js,md}'" + }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "tldjs": "^2.3.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { + "ajv": "^6.10.2", + "mocha": "^7.0.0", + "prettier": "^1.19.1" + }, + "gitHead": "9708d5230489bc1453330afec89c0955624d6d4f", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.4.0", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-L7qeHMpU5X9INXrOdve9Y2+wpQb0SeEC5Uqn+oZcUd12dvwgnHmGLKnqYrLsI593hu+aBCkt6+iRXUcdE8OStA==", + "shasum": "52bbcbc196973c063fe8cc5a31f2bc5e21baed5e", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.4.0.tgz", + "fileCount": 13, + "unpackedSize": 17140, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKjbgCRA9TVsSAnZWagAA320P/jfGkRsVRl+S9Vq6Nu92\nyVea0mMwCIRWfyhWpjaOD9X5hpuEBRofxgTaf1SzEJgfpb2bt7zp208jt2w/\nZHgRlU/Tr8/pz6POdSFmEXTXnBG4t1vEBumhE/uw2M7Ok1h8cO5hFyETOME0\nA2V+jgSzMP002jtN6ES/TPuQRlwYh7/y1oTmbnWkOJlXEjL3y1jOZrz2R5MF\n6sU/h4QQLO/YGMZqprcoehh1Xd7ote31UjVXOJCMA7LOu/1MEovUEOhbdTZr\nLU7qrV22vcPy57XCEdpuxgZo+/2yRLEqi3vbksHpqU4g3b/UqYeuOPhqyAqP\notub85o1baEbmTRLObp1O3yfiSXVgN5374thLy+dwAxaAK5ckYFQx2pRelNf\n4PfaaoCCq/fiZ2KikcLmdTcLWV4bZ2xUEHUJ99Khd4YR4YfqAYHLGpj0kmqG\nBbY/olnkUyrHMqr3c0HMjMr07C+vku4SVA0k822o5snLcc1x5r8XbSc3REoU\nwfB5GxvmRBuYppJorQbswfXusr41PBo+2Rrw37vDIbrGtMOhk8U/21qIE+8r\n2M2nDlPP4u9NFUby9XsFzYDL95r56HkmTw3jEUq8eKybFNn0CbJZION/zWJp\nF7UJvkLRGxvg1sEGAlyTVBmSDQWueDp2RtvuDhZd2EIuKsPcr2dlObd74C2m\nKoHu\r\n=ApFa\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBzVM7XRmYcx3xu5c2kODb7V3YhkrGe1M1xMoBkHooWsAiEA2cWWPeSCoun+6hZ9fatSCfFrSDLpWjMehZHkMk0Xyjw=" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.4.0_1579824864367_0.26434504909589385" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "1.4.1": { + "name": "ajv-formats", + "version": "1.4.1", + "description": "Plugin for AJV that adds support for some of draft2019 formats.", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "mocha index.test.js", + "format": "prettier --write '**/*.{js,md}'" + }, + "author": { "name": "Carlo Quinonez", "email": "carlo@machina.bio" }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/luzlab/ajv-formats.git" + }, + "dependencies": { + "isemail": "^3.2.0", + "punycode": "^2.1.1", + "schemes": "^1.1.1", + "uri-js": "^4.2.2" + }, + "peerDependencies": { "ajv": "*" }, + "devDependencies": { + "ajv": "^6.10.2", + "mocha": "^7.0.0", + "prettier": "^1.19.1" + }, + "gitHead": "ba6ff7a558f68e60364d4fa36b4b31564c670c9f", + "bugs": { "url": "https://github.com/luzlab/ajv-formats/issues" }, + "homepage": "https://github.com/luzlab/ajv-formats#readme", + "_id": "ajv-formats@1.4.1", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "dist": { + "integrity": "sha512-Piccuow5A/MfAfyp1vxLxRNyQHpKtkpMYIO9UNgnhu2ZhxC21n1g56VDUwo6CVpQp66/1WNmKpSYwt1WOKsAng==", + "shasum": "b6ff5906903a98f6ecc3910e209904a4f9f4830f", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.4.1.tgz", + "fileCount": 13, + "unpackedSize": 18535, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKkxuCRA9TVsSAnZWagAAMRsP/AmJRKLeM5drf/Ty9pbX\n+RZkdGZmsSfKJH11iFheAJEoJAXbdaPFGp7lYLwfGOA4F7c93T3GUEg+kQnK\ngA8KjG6IrCWaPm6g8M64aDGw1NYfTh7v539tYxcwZRmWrX9NFbWpnR+MuJwA\nHXOeTqhCe51e4BerHcoyBEY5uHftBk25Enuu0Kga1MNnC1zmOoRk79goKXK+\ncZTEMCgEeECqn/aiwrvyXR+3WkE8mSbf+7q7cZOA88+lWeFRmcJhOzheHJgX\nSLWohZ8ceI53HjU1GNaDfHzI8xi+8JG3rCscWqyIYaNwWOnWVoY76fcr0Ei0\neDgavS3zcw59TolZ/PT6iiXA0CXHNyay75UdC4cwECK6aAmOnvKM8BFYxDfA\n6pBM7ql6nvCE0Ia0x/SgHhiXulP+ZbMwe2w6A79ChPddxGLqTOfdFGro34/3\nY7KwLnz0xbXf6N17OyozfXqxXjSB11IkK9nP3m+hoDeIkJ4DjszNv+ejikdk\ns0/655W3SZz9vY3wkeR6uoAPc3K1H2mkX7YSjyjDqRY5M0iR+dJBcVzXXe1n\nVVlYkeChSv8qMMkhCXE0MEASdBi0LPcpluaGAdY0qAzVQ188RpdrAUJwcL6F\nGCWZ+CgkAe7OG8b9UHt0iLic2I7ag/fsl2qMi5XuOvtRTmzdpoXT2syFfc0N\nduR+\r\n=VZR7\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBM5h6sJtWSUcz7ryPRPLE7VgvBtvoq4y7bIoMLikdHfAiEA9FuXNAt6n1fF9lpRhCxsQ762oXStPLBqbzRFrJgvKkE=" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "additiveamateur", "email": "carlo@machina.bio" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.4.1_1579830382150_0.26524476481957926" + }, + "_hasShrinkwrap": false, + "deprecated": "Package has been renamed 'ajv-formats-draft2019'. Please update your package.json accordingly." + }, + "0.0.1": { + "name": "ajv-formats", + "version": "0.0.1", + "description": "Format validation for Ajv v7 (WIP)", + "main": "index.js", + "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "gitHead": "4d07bd498612418605bef4a76c1c6a16293acfe2", + "_id": "ajv-formats@0.0.1", + "_nodeVersion": "14.4.0", + "_npmVersion": "6.14.5", + "dist": { + "integrity": "sha512-vy58F+e3wAZHrtb02+TWBokpc3jZeucn5xWxOGaD7FXbNktlT7Fk+L4Q7lHR312u/P0HWLRxO4ETVR0mn7AHuQ==", + "shasum": "2702584c8e84d9db6ea69ff669910e99088e87f0", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.0.1.tgz", + "fileCount": 3, + "unpackedSize": 1734, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFXCrCRA9TVsSAnZWagAALrEP/03L91y55GEI671BBqs8\nutpHGSIQrZWCdiLXu42/zVn4+avxBbnR61GXFLiv8Z3e7fM0ONvT4g3VEMVS\n7e7+LUMR+yX1rbbKE9OwzEo9UGzvIcO7ldMB4o84rODNfPGg902p52pXw9yx\n48dpnjTFCwAA5fSJuFphXv7efhzzEt6QRYfkIAoGrPk1ovVZw4AKZkeJJXv3\nOQ5D9R+S2/UzAQge4hqSbd52uWRD2hQWTXH/N7jIoQbmFAxfXJTD2EDcFRmu\nFiwHfFrQ48PxbEVbAFe+HqHlZVjwQEQdeqieBowOgvEJ8vY3tVHCREWSLciV\nfLls+6L5TGrgLW5REouP5/txvlDQ3GptHQwOm+/XvYPXDDOgvXq2f24SxxjO\ntFs2/mlfHLfkIm9CVHY5gfV2CRDZ/EuVu8Z1w0HhcHSO4kgh2U3KhSSFr1bb\nIdzV8Ed/67XaG6d27ChUBTDQV4DlbMpaKiPuUe3UEgpv3H6No5djyfn2l5TY\nQADJ6C1nCj7x9zH9maBIICAX386aYHuQu3e5KVaDYSToXNVYyls7bSR7UwR6\nhGNnqtNwFJ7NHLUQs79voQ6kFbXTOXBwC7G41FRDJ20PzSnTcuhvsUMptlik\nnh1ewNuO/yvfHkv+SHKUHReQbGnFsY6putVD1IGRIKppYWRRaUAHij8Q837K\nGnaO\r\n=jdQg\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHDGKBRs8Gc3LPhXXrEnbkTVd/4z7STYR+47Cq9aZoedAiAgcqnFXfmpyI//qcR6zr/NA71Xz3dwill03xRCqGzwdQ==" + } + ] + }, + "maintainers": [ + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.0.1_1595240619391_0.7229513019328335" + }, + "_hasShrinkwrap": false + }, + "0.1.0": { + "name": "ajv-formats", + "version": "0.1.0", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test": "npm run prettier:check && npm run eslint && npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "devDependencies": { + "@ajv-validator/config": "^0.1.0", + "@types/jest": "^26.0.5", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^6.12.3", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "d99e1d8a7e22852607e6fc03c9669ab0d33f0ccb", + "_id": "ajv-formats@0.1.0", + "_nodeVersion": "14.4.0", + "_npmVersion": "6.14.5", + "dist": { + "integrity": "sha512-v7soSyYgY3YJ6ddA06BSk6kMYFo34f52YikeFt0ErX+m2lwckVDpkq4i8OeZdmcduRKENaxAiACjwzH0VFM73w==", + "shasum": "7c58fca1e6ab8d3c5e070d49543ff5cd7f5eb790", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.1.0.tgz", + "fileCount": 289, + "unpackedSize": 1023857, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF06eCRA9TVsSAnZWagAAjpMP/RNtOLdgB07Nqr4gY0ei\nnJ9NjfiZjcwBoQE8L3xgvX91a3u1hoeU/55MeK6qYz8yyuxO83j6bFWPgZe7\niuAGaoz58ir5LyEuPnXgYEmFbB0xkddVW02ec6nWqRg+nV5odYTK2aruG7mm\nZbF0JR/cwAe7Y5EbA+1WWdgtPDO5NImYE/yvuzIRXCJWg57rZNb2Hawqg6kz\nngTtzPw4iTQkiiOXe41nFZ+tvCnSxPf0/Z0LtC7MGXTx3inQ9e3ZPj7lK4sn\n9aXO+4LQwirWnLHDL3TurwG+nbEhZvzSxaUD1X5s2Llcz0xzTlGb/yASjyH3\nuAKyIWIHQOo73d8d5onOZcbycknMrwhrPwQcc9dfYFbZtfbRFv24fFC28cta\nj8Mf8/Opcull2oYINPjwway0eE3YZHFzbDVcVf8jyI7hHfo8KlqUAYSWZf/h\nIwHw8ga8PDAm2LqkKte+yVGeDP5a/jhcMsj9sYp7qf5pnKGV7J5SbQo+dOQ0\nr6r1TdKOe5aZUSw9bE/CLwiTaAfbpRzX2w8CQGzb63++rqV9jEkHaiX36CBj\n6PiBLIg56s5ZdWaK4BQI0GKxgxdx1tCDYASe3FrliXkBv4lp2A1hpDtWZR7b\nfOk6yKtYkP8lNHljdGUfE5H8C/n7VEVMISSBUMVJZwnEsN2rKhVP9Zs1UEy7\n8Yb3\r\n=6Eb6\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBmGyK8Mqfz7nhN2nnt7e3n2MHff5LdptzVdq249zVMQAiA6F/kwZSs8K4RLsduP8zTq0UaDMHfXX/hiz69UjPpX2Q==" + } + ] + }, + "maintainers": [ + { "email": "carlo@machina.bio", "name": "additiveamateur" }, + { "email": "e.poberezkin@me.com", "name": "esp" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.1.0_1595362974292_0.32796569143122745" + }, + "_hasShrinkwrap": false + }, + "0.2.0": { + "name": "ajv-formats", + "version": "0.2.0", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test": "jest", + "ci-test": "npm run prettier:check && npm run eslint && npm run build && npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "devDependencies": { + "@ajv-validator/config": "^0.1.0", + "@types/jest": "^26.0.5", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^6.12.3", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "0e0fa67584a6b248fc51ffbb01ca008bb9255fc1", + "_id": "ajv-formats@0.2.0", + "_nodeVersion": "14.4.0", + "_npmVersion": "6.14.5", + "dist": { + "integrity": "sha512-B9tuHMvVNaVwZKOvg3Ww93GJs6aX79gVTpKMsWV7I9Xg7ZwjwC2ohZIhR02U4eGzKQYFRQQBUPHMLvpj6W5nzQ==", + "shasum": "fc559f9e50d4f837610bccd5dbb1f1e90c02ddb7", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.2.0.tgz", + "fileCount": 290, + "unpackedSize": 1024257, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGCFPCRA9TVsSAnZWagAA69kP/0gN/rjddSypMbcbi07F\njGcA2kimgbLxi/VGdc+5Sobaoo3xH9HCghpznMw5Iw4KwC8GfnE+T++UIe8d\nF58Lma12bHlrqyJ1ZRWCxK8uEaainIvyvlfVekItEZl3pR3wEyc5ejjhp8SO\nO9Oj3571X4PtUonbmM3MRSl23VjacrtQ5+B4daFnBZoU+J/j1R0A4Gbfs7Xr\n+JPFqqUrQuxhtmn1Bkw8UXf45I5cx8LSIBOFuM3kyl+j+QhvTyKW4QFWk9/B\naDowFeNiUO+tN6umZhvTSJWhZLbTfKexaRfDH1XKdPlmQw/GkdKdZ3W6+bHw\npfuxfQ6C8fGYMBiECM5ACnDnBd+U07sXdhJx+R8DjFdEs7/B+HXvhUyyQafQ\nXLo0iClPJbbGyloTM9LANt1aLznhEjmiKqO9zX1udQGv0cwFQT/qiiAwRypY\nuy2LGuZisShiOPXOYykwxNEQaFy3jik/JT8AkTawOrHRlHLtSCgIdvsQZrdg\noqq2KGYdlZeePTSlmqZE0YOLuWVshu9S8cN0X5KuS1o3O4e4oBOupVkmV4G6\nW1rDa803crbib47nL9aV3N3FED2LoKN5q5ZgYqFVIReNVUSpTson4T0ceA8u\no6T2J6LQ0yJZ+yX5N30FsbIiIDghqKCCIWXXC9eGj8ZOlLyu2eAHa1rbFR5y\na8ws\r\n=Zgqf\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIG6IFXoBRB44sBi55vmipVUp8jVPZC3A0KpbswwE3PZ9AiATq5JHKcZqh/dP8Pd5hXJpK6FLXjI+knu9VUOfx9X6rA==" + } + ] + }, + "maintainers": [ + { "email": "carlo@machina.bio", "name": "additiveamateur" }, + { "email": "e.poberezkin@me.com", "name": "esp" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.2.0_1595416911065_0.2892270167187325" + }, + "_hasShrinkwrap": false + }, + "0.3.0": { + "name": "ajv-formats", + "version": "0.3.0", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-spec", + "ci-test": "npm run prettier:check && npm run eslint && npm run build && npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "peerDependencies": { "ajv": "^7.0.0-alpha.1" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-alpha.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "900ff7eef524b1b85ed0d62fcb1c1ea08f8b8d92", + "_id": "ajv-formats@0.3.0", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-u1DU7FUC3QgtyEqmb5A3VHn0Zsif5NPFiQvMGa7XsaWVWYUYLs/IUwG+piTl5I0E8GWCi0Q4NjlF1E4bXVGjig==", + "shasum": "9b17966ed19c2f4bb16e16b570d93802f8c1ba38", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.3.0.tgz", + "fileCount": 292, + "unpackedSize": 1041366, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYgoaCRA9TVsSAnZWagAAcnUQAJVcjMdEvTRJBaIh18ud\nm0N806MYICuf2fcl3D8ASg946kXlgO666a3/KaqGqeOEYy+8NLYqNRBm1lGX\nnuDyoc0iKpEN+32obQACz3yltBYCQQiElHdfKBH3x71cUEoki+Ft2LM0Krh9\nDwHegs7Sfnt7jir7GBlNizb1u9Q5BHUSLn+loIpSiKQuAH+6BEbiVlgjqD6N\n0TnCnugIe/Jt8FtTWS7anRCy6Ac4WXJ84o4OFMHi2+BWujj3le3aA5VHwI96\nWg8W3Pj/Pl5VJmM9dNpOkjT8J6t4jLHLWg5aQ6SgNkEJXkkHRyInLBcyKoYN\n5k2cYhLc5iyoWKXeI5pl0bHPKY5CmkXfehBmrCJUJAxzFYgp+4O3nAvnQCz3\naTWd/qlm8ICMUWPcL4w3axtvGlackaNae2MSvbnEb6BizKE4B7dmvqbwpyUG\nnmWfmtOqLb3T2l9Q7fLiw6g4RAimcOQSJmiP9d8csARgeCV3dWxmde03U/dT\nfwDIp8rbkFs2fpXd250RIIHi+y0dJxUe/Kg5AhcECPiellXdT/78PBpaamef\notpneKrioBZpTA3VJu8V2m+jnsuZ/UXhwVYdpf8tKKBeDP33H8fXtxy6ojwT\nw4wxXKjLFqusK6rfGN5HqMgHoLLV9Lo0m3PBxERGjJ3H2Vv3uI1/YEPkhzeZ\nup3M\r\n=QDnp\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCID5icWG4oSSglW214g4ENsxdI1ke5NIDArnMt6iqFDRLAiAvxEHKtptlErFVjQUcx0E7c+NQDjQ/wxdC1BFDfIMh7A==" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.3.0_1600260633719_0.27965797630259015" + }, + "_hasShrinkwrap": false + }, + "0.3.1": { + "name": "ajv-formats", + "version": "0.3.1", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-spec", + "ci-test": "npm run prettier:check && npm run eslint && npm run build && npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "peerDependencies": { "ajv": "^7.0.0-alpha.1" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-alpha.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "4a335676421c7f940e67f22333220d357844cde1", + "_id": "ajv-formats@0.3.1", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-1QIkvjw+5kwuinsrlh0I3qKLkwNijaer5e/jytgj1CPzZdESUg6k0sTy8ccxDzroSfdTrW4FglhCttq8WLO+cg==", + "shasum": "3f640acf52aae675541a6b1f7d47a09346d18370", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.3.1.tgz", + "fileCount": 292, + "unpackedSize": 1041366, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYhmjCRA9TVsSAnZWagAAPUYP/10mk+/8fLU3DJFzVXrA\nj6F28SX03eKltuFoOdaEzpHZwU8Syn4NZyeTTslHmNtqMhxIb+9ZloQiFyxj\nKxh6CZq1KCYoooalFQXUT+ygxB8v4uDIbOeFrOLAShW6Qkm1HztBA+BFbQa6\nh1Y9ELRwBkfvlnRug+bPfkb0Mtvhwl+p9kJ6bTvx1s3nqBWX+qjhM7eqO8VQ\ncz9EMDg2D0myN2/rj9K7devX0u5+KKit4/IaLmZ3cXyapI8evCKaRELiZM6e\nQcRiiZwqazh4fyAGePcgGjvXc2+53YPE+eGV+f/PgfcnF8zbyOosM/vKQfF9\nbiJWbeWjlJYPzPsgkkfWs/b01w1QEiMBvuZJ0H+nwUEpeKaJVQ2d0QFcl8G9\nMfd2NcTTXN57Qzpmngzc02HpwsXhpK6khdLjnBLGqmLat46QMYgC4Fo17WbE\nLa98FEkbclQUh8+X1nJjaKoeutM1cH3gtv+W7gefevno1xyRMHN4gt1M6Bzr\n/IOOrydF2jdaBUQ1W59w4mfRz9j7VdTdg6iU+KnaJJa3fd7bxeBmbo8nRvo0\nkfww6IKGIw8HcLBKYWjCB9fjeUxZ5aH7X42qwq79Bve476IEnHqccLfo9CP9\nvjDF1oGwovf/isG0a2o8+rF9TFWIjQec5z7pymw+gh38tWJMIkhP+ehGU/++\ni/N0\r\n=BdU2\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDoqHFVYxhT1B8FWpg8AGf83qpeJcucIPIGNbdJEJ/GKQIgGPZJceMgv38UY5pi6F9vSJqWxUWp6CHG9FnHf2eWXuM=" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.3.1_1600264611347_0.377468510347164" + }, + "_hasShrinkwrap": false + }, + "0.3.2": { + "name": "ajv-formats", + "version": "0.3.2", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-spec", + "ci-test": "npm run prettier:check && npm run eslint && npm run build && npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-alpha.1" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-alpha.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "103e3bac841aeeaf2fc4e64de5296344a461deec", + "_id": "ajv-formats@0.3.2", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-k7ki1CboXZdaBLzoEunIcwjYt+IldJL/g3pt+8p/IcvhPiE5CFYVSle/ixyXWcFmhOQ4ItnmS7Im+4uDRqYcNQ==", + "shasum": "c581118f2ec8e5f943411e7b6234343cc64c81a7", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.3.2.tgz", + "fileCount": 292, + "unpackedSize": 1041362, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYh4pCRA9TVsSAnZWagAAMRoQAKHSHuNJ//DHH50xrWNr\nISMzXRIqEfHvMUayZ5uwiniGa8CEh030pfaGS2FtvcM3TwgnQcPDZZZDhpdz\nbSU2imudxcvBbqDGtSZdIKlF1LHq0Xjs+RxmzQu43z31FEq2Y0HKSQbXpDuA\nSshfgDm/lte5WbaaI0rekWlrWmUP7rCAsWjYsZALHnyxHlIqQ6YzZMylsqqG\nvCD1gd+1U2klZJaIoAm3hJfWuFtbGwLIWqQAIQLVRbz9HhMApJ4vZohB4w8W\nNoAViruWKpaK7Nbqt5Pn+nxC6vkFiTnoDbRy/J4vN3WnSCZR586uaJg9+h3u\n+Do8ZBnJrK6x+YhpMwqm/41SN/pvplO3Gumvgeoc8PhYCn6VW36/OYE7VGlW\neIe7QR2yKGM+9xDtpiYi1AY8yGdQzJdTifkxyEE2Ir0ebnU5ITMCiJpBPVHq\ntnTvJktmMSUNOYh8Q4lNw4RASh1X2tPSzGvZ5fR92BH9y0lQp3ZGG9qMWhbU\nG96p/SegW+SMRxSD9E35KlsICZj0bJLfr2fZ4kfS04hu2LHehjRgHm9B82z+\nN8NHh9X1ZhO0ce28cqO/Q60k8wJZqHfiGUG1ItEbMA0iQJbQ31O8wHnw3n/f\nUtRCvPCVapHUpy63yqVD3GXAfIVGHkqG2PDWHkokAl2C7yzkrPFUlIC4xUFi\nzzU3\r\n=/ZOI\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCtwvNCTTtQYwqudh0PRdbEwgDwZfIr0cUlo6BNGGGFdAIgDcbY8uUd/zpeu9DK2iE6gxsozXlafaofZoKbHVHmORo=" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.3.2_1600265769311_0.5616764485234946" + }, + "_hasShrinkwrap": false + }, + "0.3.3": { + "name": "ajv-formats", + "version": "0.3.3", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-spec", + "ci-test": "npm run prettier:check && npm run eslint && npm run build && npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-alpha.1" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-alpha.1", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "b47000db59c81ff77373d2bbf2abf704133a1d60", + "_id": "ajv-formats@0.3.3", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-w0Gj2Vie+NCy6ZNoIYMP++fwv3kZ19p2Q5bKStzfGM6wyrWXwoktETsvaWtyoz3sterpT8ys15+8WOJTfs+0+w==", + "shasum": "377b72a855fec512a9767422950b17d97bcd7d5a", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.3.3.tgz", + "fileCount": 14, + "unpackedSize": 36249, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYiWxCRA9TVsSAnZWagAA1yIP/0UQCq9oICQsp9ufF/Aw\n6e5S9/CPFUk6uRxd7du6JOD856WYIIVv574+vSYVx0jFKAAh93TsHMOVzFBw\nYFsIPFLqNlBA2tJHIe4LI8EY3zMtxYPOumwaQJaSgQYsoFx2rneNrFasKzeT\nyTPeci4BHGx5bIKYkpVgFKUkCBWXfUATpt3bFe2kPAbiPNQLcN8qQWTKi2Wi\nbJDBDPffcjh5JEe6nP8Qp8q1v/HTEPfNmmEgkOh5ND3wWy3bOu4jyXaLmeFU\nJe+RSSLejXTPA1T8AuRQTjfYe4YOVAtf0b8DPvlBHDPfnBxA3mU5N0dX91h9\nPCie/Ch7xNmcQ/fW5u3FxY+DpSjYG0VzXorINanENeh2id86JEcQpN+R7SfJ\nvbOgjH+zjknOaFx0r3GSSzNsf/a9tgE6nAU+/S31Cz6PEOlcQqMwaTL31Tin\nz8VrikH5X1J8CsWEOh+LbuaPlsd61y4+P8+VFWvJygSF3pKWl2il34v4iw0z\nb4gOlISyE+K1wuCuWbDFwqms7WdXtdCVfzbHaU+byQNgDc3fWs3ZfO1sTCSG\nKEn3XEIywMWsiOnZl8LgDICy8jZmWYvhiqGAjOpAOwnPPWeKiBPKghoFVIeN\ng5a74Fsp2fcjA1PcKq9f2idUGbDgIaZPXYRy3TZ7c+P+eHt1HzvL/1aEOPXk\nL9Wa\r\n=aUBw\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIB7gKYJYEq26dpJ1YPFGrR0HGM3dYTVX8zHyIeajXYq4AiEA3oL6vf03iJv/MQhRIjLAhQ9MXFSKCKpTiWXjrEoLsDE=" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.3.3_1600267697274_0.9104292159404046" + }, + "_hasShrinkwrap": false + }, + "0.3.4": { + "name": "ajv-formats", + "version": "0.3.4", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-beta.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "f9d172e8dc80f03c863a8ec1447ceea93db9a5ef", + "_id": "ajv-formats@0.3.4", + "_nodeVersion": "12.12.0", + "_npmVersion": "6.11.3", + "dist": { + "integrity": "sha512-iLcquk0mWlX4Xs4FeV8ipDx2jrk9YtuaAnl/bu7ZmKbv3K9uOFJ8LddhQSr+WMV35OdjOi6G/jVszNnb03089g==", + "shasum": "6ccb2c60f7da7cffaf73bb2d04f1a6c6e9d2b156", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.3.4.tgz", + "fileCount": 11, + "unpackedSize": 31317, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgefnCRA9TVsSAnZWagAAyP8P/i2ItlZ3pXhwxz+fUaen\nrNIamQ7XQCXCnHY3PGVmTspDa9lzNKsWIrAqpGt5TW9bsoQL6xUOu6LdzbRc\nxTGxDkpqNc1tY27HzPEIsEefoNSxpNcR6U5A01aIkCH2jmS0XqVdD3EsDb9l\nBstqznacv5KFnxxGrgRyRu50yHq9Cl/uLXC9DJpt9q7rdPJydQ4Q2bziBGlk\ne3rTUuY+nLy3BSNQPOZY3rN50gfDfoKQ3PsqqFHEQhRznuxr9Gt7BMDgQL5Q\nB2z54HLG8Wlk37wIDC9G397cIG7X5hI14NkQ5tar3LTsCiuf6/6B3HENiUmC\nZ1bB4+015CamuWYu+Ncb3BaRP/zxBlop3Sdd+in2XspGmPQcbi34qUVwqW8d\nTQO2LyMFB63281st8OhSCG+/CvoHNaEkZiiY4Gmx+8g8Q6x90OY2UfjnKfV+\nIsfkEL0M1CIYcHoEbe7gPM8o+a8zX2KeRuDqKROCIgIuTGThsfSPbwZr1pTf\n2fGG+1d7TdhJ6gg3oYkDF3+Aa9+iiyhkfjrGRRjj9yvrSTiMkCfYEJ+aMPJt\nw7kf+CejNQThnXJxhhBJjNiLeK3dOxLY4zgAcHGED/9UVIDzJvCvxl5Q39Lw\nka8ecC0N1mCTDfNJkdV0iRnmd9sNZsnhN/iGGeYfuAEJ0/VlrI2HjwFBl//e\nggzu\r\n=QOxK\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBiQOEjPoRrAoDzw1/2tXxwuWv1ubRUh2HNxD6tjoDQ/AiAUFq/KyBkWDGOBuGZifGBeaBqrVr9b82bY3RjS5I7HVQ==" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.3.4_1602349030837_0.5320652267524513" + }, + "_hasShrinkwrap": false + }, + "0.4.0": { + "name": "ajv-formats", + "version": "0.4.0", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.2" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-beta.2", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "5a15df12ee73344957fcd1a5e1f921dcdfebb005", + "_id": "ajv-formats@0.4.0", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-jpnvtETr71E0RhFHk0qQ9XzFShVYq3MH9/mOIUPFMluBSzQz6/dNN/3EnKQ1awzz2DAtoIMBD7tKMKGtUIx/UQ==", + "shasum": "f2e992b4b755117f33f2cdce2e67ce4549c93bca", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.4.0.tgz", + "fileCount": 15, + "unpackedSize": 47944, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflIJYCRA9TVsSAnZWagAAzwYP/0GAS5FBCHp3UrNY8ywp\nlMXJ6ixW3sBWgvgDv7FjlOgPDxGtRGQbxJmNJWuXVVye88EfRY0JYUZSnn3s\n+ZxSAahQptIMWExmLuHtfqQILo0/v3gdgcsz0WzGQFx3XSfNgH7Tc5RjaXrV\nmO0CmdM3sjxRFtx/FALg4CDwU8B57Lzz8fhfOj3YdFEEoKnjrRrXM5A62ziA\naFaXRLkBhIbCpblAAIcPB/H0GJuI55Hxl9nqMhryeq/PIbnXM9KjL+RJC/SW\n2RZs0SWOuyKrby7yrH9dG3TUQIU3FLaE3ip1zEoYdvlm0yD31LyV9V03CwML\nWEDOZun3TMKbY5XMiMKsz7BMUiuPdVBYt5ypgsmUV10SaHQKhiTOhOZkwkpn\nGlNqSPhN9OdL+F2IE1eC6h704LdOVHHZ/qAWZ8i+pCCReucguVthOUZdIGe7\nZb4d5QibhRFNWo2Mb4QTmpDvK233jh75U7L3C21mr5CujB2p198T02UuVirx\nw9Ly3qcTJA2Ex8FkDyphxb2LELJBvzFEJeJq0wdAloOz3mfVMeppmYnFPNZ3\nddDwoGHkhb/zg1SzRN48QBi+4Qnzy70cdqbFH+q2ET6SMTwfPk8W9EH4V1vW\nwwDWb5Se9vclFjKYu5kMe0EcVGAjCNpFhE7V+9fIjxNuLDOtdQnrIxiH4c5z\npd3G\r\n=h1AL\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGX4jItxkfvUyTK2ALkmLHoEHLU+dnYTmPKcGwjCTfKCAiA8efbShRlolCLNkKH7yiCkm0MDva13i79Ha5E+JcPBdg==" + } + ] + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.4.0_1603568215837_0.0038601424296551556" + }, + "_hasShrinkwrap": false + }, + "0.5.0": { + "name": "ajv-formats", + "version": "0.5.0", + "description": "Format validation for Ajv v7 (WIP)", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.2" }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0-beta.2", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "9ef6db217ce5aa5809ab4f376080a4866c95a553", + "_id": "ajv-formats@0.5.0", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-B2OYp14ov/K0NaTAp7NOp8KUeual57as7KBA4RNH620jIxr9KoQGljnFyVpzDGBqPC4nRw6A5NjQfmlmUHCh2Q==", + "shasum": "88b49ca65e5a1c675eaa13b557914902e725b23f", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.5.0.tgz", + "fileCount": 15, + "unpackedSize": 48394, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqE55CRA9TVsSAnZWagAA3R8P/38SgSyS/jn28ABepxUm\n6BCAFKo2rU0/GaJA8VqT1nbtywvnueSu7knbx5SxFrUTNTCYIM9D9k9F85b4\nBkw0TYFtPWxV2Kon5qEY7p0iRaC+Z6emrgML6VD/4AKXLbeqVADyEWGFSw8e\n4nx10tafkmKNd8eqr55OTobcsGL3zgOYdWTpwTXX3tn9Le6RtgNQ0d6y8zKx\nw9eFF3/EAqNe/7nJay8zIjfeUEExQttNbidHe3khP67QLXXjsa1W2IG4nUY5\nqqT/UazpCI8gxo5B7o/Wsfzh+8n3/t43kXJ2sQS8p6JoWrrNIg9vVemBZwZi\nogluwWInfkRIVJ3HW5GR4Z+VUT6Z5hqeFu9V+5AnTa7DaHNc77V3UGWsLm/y\n81JERA4EQCO2qo5iXWy6FiKAj22RQrtjtMyqHrxTUbkdHvPx3KOYwmLSvC5g\n5CZmypXcSXJLpAYPGizpjiGEeZkgg0QglneMPl0ZsqvMiEjo2nZrJdHZ9drf\nmwUklrR6P4hDhV3BEFBZK0J1K35Vy6OBJ0HrEJSb9ETzyEUgRtNkSwhEZjP0\n2/i+rJ9WAkAZy+yOfZrlI9Is6DfkUWJPrSz1k4HVHyrqZZzbt2O4Lt/xxx6U\nH0JBB9H2Ae13CzKn75+A/1gVX0HQrldwLR9yehEjAO/ziFiymSO9aInNifzU\nOMaU\r\n=pXWT\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCEKMRwqoZeYv2tvP0IFFiCRGAmQOZDl0new/h5AfXM6AIhAMIBEgT/FFnHsDnMncATRoZRKs1iz0l40qpSSpf4nXaR" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.5.0_1604865656925_0.2151233363070102" + }, + "_hasShrinkwrap": false + }, + "0.6.0": { + "name": "ajv-formats", + "version": "0.6.0", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.7" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^3.9.7" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "c7c2af9b56c9f8e3f9cd2bd5ab149c71e0613a32", + "_id": "ajv-formats@0.6.0", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.9", + "dist": { + "integrity": "sha512-3FcNuuk1oxauPG7tgYYEGbVwJdVx2xhAiM1TePDOmSDXC26cllIoklQE7cwvsSIfg4Y3C30DAyXVlGz9sUjl3Q==", + "shasum": "e9b3106bf85ad213efbc7194618c22f427eb700f", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.6.0.tgz", + "fileCount": 15, + "unpackedSize": 46280, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwh7fCRA9TVsSAnZWagAANggP/1A5Y8wI0/l/QvYZ4fed\nHMA5uA+x/GrTLph0+oSqKYgW8n6Bnl+JPNfqt3W7AlL0Tv3nO3tV3jWuWyFQ\n3T5Mrhx5rWnuRfQ9uwMeU4OWDElrJ9D1stldd1RyajBojLcmVYCVuSxtA/p/\ntE6p/p05BowNAmwRXUBreZMs7yhtQ8kLXK/wL40LIlL2qP5oegALTP8MU21I\nAoiQ8amfskrRPmvRxy2Bc2tSOdZNYdjEuWep21hp1v33wOwValv9qVVzDrZu\nZX6vZi4jclPTkRMCykxZvJ8VTf+8xIBj3tcIiOvY7FiyHeHt8foIlUkM57jZ\ne69we2PadgS49cP7j+BNcx3y3/K702Ld6d4q/Q+C0+87P1LVVaHmv8uBOGSJ\nWifXViMApGE2caISA9BIbj5q1NaNazIjkGudagddqVMONczCCzszl6OyKamK\nUmFT1iORQ5XpO9khcxvOWOfsqW3TnRWtHyd+swWF27HBCE4k8pk0U0Q+DpXB\nmnSowt3k/QMfVVW44Lc224advOP+Uds5PJrnc3mk5gX3ieTjZG3Fym+Rq9C9\nsTdz6/mnLE7pFgTmGtzhluIZ+gGyVNubOmNQL96fKKRzHMoYViCWs/9Cln1N\nbsIPpCi2faHjScozKDh05LvMVsWZjrsxx6+r9t7cxNtX2rLkxZtfCdSHL3L1\nvIPe\r\n=IahE\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDrtK3dDbnp6/iIV7Yfe2ceTI+3WXkVJto7tINNR6VilAiEAppd0lqxCB2iyNPMEA0pUE8jfUCrDmWYx5NDC7Vfok4Q=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.6.0_1606557407362_0.2438990969413386" + }, + "_hasShrinkwrap": false + }, + "0.6.1": { + "name": "ajv-formats", + "version": "0.6.1", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.7" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "2836b47438c2b0b7ec0b1b50562fbbb39a601ea9", + "_id": "ajv-formats@0.6.1", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.9", + "dist": { + "integrity": "sha512-Zze3O7jGabuY4ospj2s8Jvjf5aGNaiwrFRqEdWdHs9oJd6IFXuWuS3ZHbJjyJvkjlDGncGQEBYnPRY9DoyaXgA==", + "shasum": "a0bb4bdebb4a40c062b609bc34eff4e2fedbca9e", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-0.6.1.tgz", + "fileCount": 15, + "unpackedSize": 47285, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw5xjCRA9TVsSAnZWagAAncgP+wUgBtVnVPx4ktlw4AeZ\nowy4/B848FN8FuQpnA6REm02e6weoYIKweHG3S4ayKkn7qgS52reggal7Ug4\nkaWo4xvma4iChac81GFb0wpshyLOpO0s9BxFGFZoagoSXNwU17SYqh1PVGVJ\n8mqjdmC3QumV1BQ/9Q1L0+/rUiUL3d+UWhC/7Bd0xki2JITO9p/5RBORqQ6p\nSv9k38qB3Jl5SQGWS1ggxnjR3HZJf1++FL+QSx26morEV6bd16PXir6o9n3m\nS3FgaUSICovaef2+vJXtsr9SsT+mL76idYxTs9iZtKxZyO40R2Z7QIyrvKRI\na97L/UOBDhhI9EWt10yhAVzCTBCA+TcasHBIATkemVxvXaykv/0njoriym80\nbkGmIbPywvoNBqFQKqmLpqcVU8wK6GE9aqxYHHmcdmiRIXfbuczWopyE6p6s\n9NFq+kmLSewL4IFC5hkFrtNwrRwUOMvuCV4EopXM+g+hVhyity9s3DWdlEtj\nUtANPCS44fd42PdDhyJQsj8xh8eOM3o4uRr5/Kn4PSgFCiGaR83jewGWJLR0\nGIaw++KApqGSXQmJa6J1f6QIGoPGmjkyo/l1ZklYtuJwzQYBexDA0uig0l63\nKQFOET1pPiv0ih6ylBEV26g18mjPUrc8SLpQOIZQgtVfDsi9vHvEB/NU0rno\nxNqR\r\n=w3y3\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD+i2013DvNDgx9neu1e6cn4Q1KypfL+hQfHDvBPWOXzwIgQKOmgQCSXRDEhXLgazI3JlgQm7AoFS7Guc0ZNSOW83Y=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_0.6.1_1606655075501_0.7411113733788999" + }, + "_hasShrinkwrap": false + }, + "1.5.0": { + "name": "ajv-formats", + "version": "1.5.0", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0-beta.7" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "744f8e905e43e4048670afc2cb94c5b7c771c055", + "_id": "ajv-formats@1.5.0", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-qfWBJjdMIm+M6efUCXv2u8Jh1SRlSiPp7dUn+d4HCdoE8+6Cu3rUDEr6g5ZkGWwa5tvCmqicySQsx6Msvfl0lQ==", + "shasum": "e34d1f569d9da29b0511a02e1caad4f846eaa2bd", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.5.0.tgz", + "fileCount": 15, + "unpackedSize": 47770, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1gz3CRA9TVsSAnZWagAA2xYP/2JJHwsn5NMwaDTxv87f\nAVScUYv7YtwHjiJA844JjK/9BwQsWGhmpTJLtAQop1J55yackMiqggyADcUT\neN4UH9I5RHmtsNBx6E+zoypGcwPWhIM0wPz/W5dnMF2s3I9918ugnYmYgzD4\noTgoRHKD9rk7KyoyFQp8Gutwz5a9M394Aqx4Y9fj6CJL9WURB17s8u7THwjc\nB5RxDoSEVG9Lc+VwxTRc911j5Pqn/jiwr5YIG+20x6KUrbk7g0DNtiLFqH9S\nxv3DNwXXAfBPwrRZ0ZaRuf+XTFKVBo0N9qCTVFZXeyQc+DSA9rwMj/cNMCSK\nQH+MBHUcD8JMN3zmZNB+Icif0A0OTsPTCvqimVQsNZr9ewUCo5r3a/UczleB\nBr8W14QIXZsE3WSfCQLzVWe+csolXxXpx3KqYBXCSRjBbrVHtcpBY7GWPy7W\npcv64shQmpjlotgSfj3vKJrOGQ8S12CF7PzcljAC76xBKJ6LeJQocqwCttqQ\nzAKorwQQ9x/L6lXEa3MLFDfQ6G7tsnr2q8ENo+ztYEeufXf2mCS3Y2l97AKo\nw17o+WljqC10YRlfFrnHmxet2GX9hS5j/gYgk6Vu2YRcnVCKDU99iv54NLlW\nJOF3FAzmTBLR/N6VYsEaOH5VBuZh1roi4t8PV6A03l9hgwI4f1rgbtbPgEXu\ndtX+\r\n=n3Vx\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCBKWAAgD9w9pRgR32V2bj2Hkj/8f3r58UYJfRpM0wZfwIgdYrRL7WHPkKnqU8gyuTA8lP5hbtsasqOmAs6Wfb5utY=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.5.0_1607863543534_0.3077261283804933" + }, + "_hasShrinkwrap": false + }, + "1.5.1": { + "name": "ajv-formats", + "version": "1.5.1", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "ce49433448384b4c0b2407adafc345e43b85f8ea", + "_id": "ajv-formats@1.5.1", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-s1RBVF4HZd2UjGkb6t6uWoXjf6o7j7dXPQIL7vprcIT/67bTD6+5ocsU0UKShS2qWxueGDWuGfKHfOxHWrlTQg==", + "shasum": "0f301b1b3846182f224cc563fc0a032daafb7dab", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.5.1.tgz", + "fileCount": 15, + "unpackedSize": 47768, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2QxmCRA9TVsSAnZWagAA8yMP/3xE2X3esTUE45+OgXPi\nENT2BF9PaiU1/zzK3DW+woG4T6X7CopSGE9uXJQ+T+1HecssH2gKvMtf1oGb\n1mjeBVh+hTjce02MCXWRM64mUpdv9fviow2j2QTdsxgkAxhgj0nx869YRs3c\nwnPDZdEGt9iH14Sq4pafQZUQLtsPPC3n7Jky/QGhJazRUj8DAqfHaXtaTCw0\n2dcmpeDv4IBmwzmHs4aj4akiPR+Jlb90avTrFbG5HCGK8Yzkd3K+YeLPjHC2\nqBn/2LAK7tOGUkFbKU4kuIaMWByRbK6HTV98hpJ/h1IZAKfa3kdnklnZrkuX\nyi8c+q8Zvi2Frx/mUO3YriZRWjKFl5l//ERJMmYTa8et82z9VumqdOyMl84j\n79p7hELPUorL4JPh/WLFh/SXyGh1Do50g6I+NS8qEbdOhh3p3xb8piztrGzG\nCSAmuch6ANtUuGX82mpdT4Hb2yRDDxIt+HsyG71Pf2aKRQ5mKwP/SBwroKGh\n8v3p+iPxYutN09IWMsxmbg4OvEJQ+nQCmpCadqqmX0PYa2r0HH8iN6y222MM\nE9ZzPfvLTrqDsLGOT4k1k6c1Ycomg0FWAnhStuYUNSGgTEXY06ccyqQh/qXV\nVPRk+wSNqjzL+qoubqKIBtnbd8wIblfBoKeVBiKPUFaatHvN1vkkDVOrdyMM\nzNXJ\r\n=W7wq\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCagTco5JP+C5eagIYlv+rsxT4OQ8igzud63xTbUn2w0wIhAMhkiv9URMpjSkZBH16pAPqGhYGjyEvy7pz7bntjsbsU" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.5.1_1608060005886_0.20871185946134774" + }, + "_hasShrinkwrap": false + }, + "2.0.0-beta.0": { + "name": "ajv-formats", + "version": "2.0.0-beta.0", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0-beta.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "cfb438d66bbd7a2f97b231e4b5a1cd63b57dce1f", + "readme": "# ajv-formats\n\nJSON Schema formats for Ajv\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv-formats.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-formats)\n[![npm](https://img.shields.io/npm/v/ajv-formats.svg)](https://www.npmjs.com/package/ajv-formats)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Usage\n\n```javascript\nimport Ajv from \"ajv\"\nimport addFormats from \"ajv-formats\"\n\nconst ajv = new Ajv()\naddFormats(ajv)\n```\n\n## Formats\n\nThe package defines these formats:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time with optional time-zone.\n- _date-time_: date-time from the same source (time-zone is mandatory).\n- _duration_: duration from [RFC3339](https://tools.ietf.org/html/rfc3339#appendix-A)\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n\nSee regular expressions used for format validation and the sources that were used in [formats.ts](https://github.com/ajv-validator/ajv-formats/blob/master/src/formats.ts).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\n## Keywords to compare values: `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum`\n\nThese keywords allow to define minimum/maximum constraints when the format keyword defines ordering (`compare` function in format definition).\n\nRhese keywords are added to ajv instance when ajv-formats is used without options or with option `keywords: true`.\n\nThese keywords apply only to strings. If the data is not a string, the validation succeeds.\n\nThe value of keywords `formatMaximum`/`formatMinimum` and `formatExclusiveMaximum`/`formatExclusiveMinimum` should be a string or [\\$data reference](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/validation.md#data-reference). This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` keyword is not present schema compilation will throw exception.\n\nWhen these keyword are added, they also add comparison functions to formats `\"date\"`, `\"time\"` and `\"date-time\"`. User-defined formats also can have comparison functions. See [addFormat](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/api.md#api-addformat) method.\n\n```javascript\nrequire(\"ajv-formats\")(ajv)\n\nconst schema = {\n type: \"string\",\n format: \"date\",\n formatMinimum: \"2016-02-06\",\n formatExclusiveMaximum: \"2016-12-27\",\n}\n\nconst validDataList = [\"2016-02-06\", \"2016-12-26\"]\n\nconst invalidDataList = [\"2016-02-05\", \"2016-12-27\", \"abc\"]\n```\n\n## Options\n\nOptions can be passed via the second parameter. Options value can be\n\n1. The list of format names that will be added to ajv instance:\n\n```javascript\naddFormats(ajv, [\"date\", \"time\"])\n```\n\n**Please note**: when ajv encounters an undefined format it throws exception (unless ajv instance was configured with `strict: false` option). To allow specific undefined formats they have to be passed to ajv instance via `formats` option with `true` value:\n\n```javascript\nconst ajv = new Ajv((formats: {date: true, time: true})) // to ignore \"date\" and \"time\" formats in schemas.\n```\n\n2. Format validation mode (default is `\"full\"`) with optional list of format names and `keywords` option to add additional format comparison keywords:\n\n```javascript\naddFormats(ajv, {mode: \"fast\"})\n```\n\nor\n\n```javascript\naddFormats(ajv, {mode: \"fast\", formats: [\"date\", \"time\"], keywords: true})\n```\n\nIn `\"fast\"` mode the following formats are simplified: `\"date\"`, `\"time\"`, `\"date-time\"`, `\"uri\"`, `\"uri-reference\"`, `\"email\"`. For example `\"date\"`, `\"time\"` and `\"date-time\"` do not validate ranges in `\"fast\"` mode, only string structure, and other formats have simplified regular expressions.\n\n## Tests\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv-formats/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv-formats@2.0.0-beta.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-BOHT3TgTSC84Bk2sdUBuklmHLNTFXwpVjWgdO1W4aJPhIEMZyE36uP2oh/sQIbMDTEiZij9AVBCwU4vf75+gzA==", + "shasum": "53dea3d51f5f43dc6139c30bfd9f22d375fe3897", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.0-beta.0.tgz", + "fileCount": 15, + "unpackedSize": 47782, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTM8nCRA9TVsSAnZWagAAjgMQAJP6ibK/49Inlp3U6UXX\nyUqb9QvrRdrktybauUDJOvqODUBIXESSN06An0/eiuEZTGyiQTlZuxdGk0lf\nvbI587bEbKgwRrh3R5EFyMxZhWc8+mvdCyL64HxFNEzcjdqZ/428vY7CuSKN\nyuXFwQsNQ/s5FiJbQLzT+pyqV7bh+XtqWphLA0U3QIxqbxYbknxqpjOb+fh4\n8mMh6PmNE4aJX7pXtJ39C6XStaQrsTejvbg++IqOtPkDdQejQGakzlq1/u5Y\nWUWXt65sHUAHoM2EIGmMI494+38cwax50hi4NUqe8zwYnR/NeCF34LXHTa7q\nTNGwTyQLdv+/JaTVRbSYn6nCeeN0BqDWkI3rGM+yrIMm1eo2OOkWLXXh3Ne5\nqw+Cvl5XuCnIbC8sg4NefwfpFxBseGgFTFS1N2x4H+DDjQ3nmHWYNwGBB+ox\nFpnBdOJkaAWIf2II4q82jzDg+dC6pNP2xi8iGqD9Kcv5L2hdnrBrZJwwLfi+\n4pdc7ymxm/VEs7InbZwsFqaWT1ePcIrd4js0XWCiMUWIN1Vku6V95ZIlZlPU\nTvHFggksGW2VH0l/DKuriTbre1+EveDx4sy/jsIudyTu/IC7LOhJAX0gWVkv\nihTQMXJKwsJNAO1Sl+4Mtjp+0JZrj2busNNx4vxAsLn8ywKC08DrRY6f7kIi\nwrYr\r\n=6k5N\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFkjrukZSwHpfk/dTTAcbZblKhdURyVLk5mshUJVHJGQAiEA5qtmcHsluuY/L885tG4fteigpaG8tnyM0NW5pxa/WaI=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.0-beta.0_1615646503227_0.24915682959380092" + }, + "_hasShrinkwrap": false + }, + "2.0.0-beta.1": { + "name": "ajv-formats", + "version": "2.0.0-beta.1", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "8.0.0-beta.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "7633e74c196487f3c7c8d755e414e226f0753b45", + "readme": "# ajv-formats\n\nJSON Schema formats for Ajv\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv-formats.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-formats)\n[![npm](https://img.shields.io/npm/v/ajv-formats.svg)](https://www.npmjs.com/package/ajv-formats)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Usage\n\n```javascript\nimport Ajv from \"ajv\"\nimport addFormats from \"ajv-formats\"\n\nconst ajv = new Ajv()\naddFormats(ajv)\n```\n\n## Formats\n\nThe package defines these formats:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time with optional time-zone.\n- _date-time_: date-time from the same source (time-zone is mandatory).\n- _duration_: duration from [RFC3339](https://tools.ietf.org/html/rfc3339#appendix-A)\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n\nSee regular expressions used for format validation and the sources that were used in [formats.ts](https://github.com/ajv-validator/ajv-formats/blob/master/src/formats.ts).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\n## Keywords to compare values: `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum`\n\nThese keywords allow to define minimum/maximum constraints when the format keyword defines ordering (`compare` function in format definition).\n\nRhese keywords are added to ajv instance when ajv-formats is used without options or with option `keywords: true`.\n\nThese keywords apply only to strings. If the data is not a string, the validation succeeds.\n\nThe value of keywords `formatMaximum`/`formatMinimum` and `formatExclusiveMaximum`/`formatExclusiveMinimum` should be a string or [\\$data reference](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/validation.md#data-reference). This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` keyword is not present schema compilation will throw exception.\n\nWhen these keyword are added, they also add comparison functions to formats `\"date\"`, `\"time\"` and `\"date-time\"`. User-defined formats also can have comparison functions. See [addFormat](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/api.md#api-addformat) method.\n\n```javascript\nrequire(\"ajv-formats\")(ajv)\n\nconst schema = {\n type: \"string\",\n format: \"date\",\n formatMinimum: \"2016-02-06\",\n formatExclusiveMaximum: \"2016-12-27\",\n}\n\nconst validDataList = [\"2016-02-06\", \"2016-12-26\"]\n\nconst invalidDataList = [\"2016-02-05\", \"2016-12-27\", \"abc\"]\n```\n\n## Options\n\nOptions can be passed via the second parameter. Options value can be\n\n1. The list of format names that will be added to ajv instance:\n\n```javascript\naddFormats(ajv, [\"date\", \"time\"])\n```\n\n**Please note**: when ajv encounters an undefined format it throws exception (unless ajv instance was configured with `strict: false` option). To allow specific undefined formats they have to be passed to ajv instance via `formats` option with `true` value:\n\n```javascript\nconst ajv = new Ajv((formats: {date: true, time: true})) // to ignore \"date\" and \"time\" formats in schemas.\n```\n\n2. Format validation mode (default is `\"full\"`) with optional list of format names and `keywords` option to add additional format comparison keywords:\n\n```javascript\naddFormats(ajv, {mode: \"fast\"})\n```\n\nor\n\n```javascript\naddFormats(ajv, {mode: \"fast\", formats: [\"date\", \"time\"], keywords: true})\n```\n\nIn `\"fast\"` mode the following formats are simplified: `\"date\"`, `\"time\"`, `\"date-time\"`, `\"uri\"`, `\"uri-reference\"`, `\"email\"`. For example `\"date\"`, `\"time\"` and `\"date-time\"` do not validate ranges in `\"fast\"` mode, only string structure, and other formats have simplified regular expressions.\n\n## Tests\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv-formats/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv-formats@2.0.0-beta.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-AZSYK+N7B9ZPtuHjUodxyYJ/G5fYYWakZ+NIvHpUqFmkqNzA0OoJLMctK04Oy5ePCuJ+Zcosa7+f17PIESIKuw==", + "shasum": "830a1f2076573061e2ff5345acbbd4487da4fc75", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.0-beta.1.tgz", + "fileCount": 15, + "unpackedSize": 47736, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWQOGCRA9TVsSAnZWagAAX/cP/1XXZHgEEYnJJXzQ6Uo7\nTGVGOav8aKNOp8+fYJBORUNW2ACW/c7J7Cfgw/wwkIzyfNKGi+Xjc2iln12M\nOi+zgzRH0aFFeabadJ8yFmGIxYqYsvBtC1rZ/78BEt8S1hsBhMnPk3JX/trh\nVAR6YVhvr9UX9xX8aaWhILw0CtefngV/UXJVc97t/ZgaG0cuVNBlsY3H82gM\nKeZ8h1C5Bcz3NIHwzOrc0JC4ncuKwUaWCt8eaA357K2PbiJgb1IAbViNybXO\njFtPiGkFGKuytOF8EwkQfzr3qh/tiiUpyg8vFpve1yEDZWjJV34ntBySMXMD\na5k8ij0Sjya0rfnm8eXCbGp0pZnPzWYOwDZ2ntf0eq7Yrat7IrwuYksaGSmL\nHt7DDhbf4EdmmU3MKcSQ/DdaG6Yra5dl8gM/EAJqW5YvnNLTqCRcQfnP3Ua6\n1p3pxBj9UP6NcEAt9ujpflPD/Lmn/vE0H2HK00dAiCS04qebZFxeQqEG4QnF\npE+J15h13KfaSZtOtIXcABxBJFC93+FeqsPDGnWYI1KRJ2NvXhXr7BW1Pkgv\nYHLV0POHqOh3qCa/RbyyFKgzEFfd2BCseLF88/nKww1A3ollOoZXyYb+FBI1\n8aLrjO8ZkSQRAitYqnhgWcf5gvu2a84a6BOhkkURmYgVpyIreEmYO6EhIV9K\nPXoW\r\n=sik1\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDxBOgnWA1X7Ni9k5hVHMdfq7i06w3K882Px6u+tPbh/AiBN2MV6ycf1qduw4oaJ/yiOzVtwZPvN0CzLBMafXnfaiA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.0-beta.1_1616446341776_0.7468513140945074" + }, + "_hasShrinkwrap": false + }, + "2.0.0-beta.2": { + "name": "ajv-formats", + "version": "2.0.0-beta.2", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0-beta.4" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "83850750e32348308a858d723bf1913dd0c94ff0", + "_id": "ajv-formats@2.0.0-beta.2", + "_nodeVersion": "14.14.0", + "_npmVersion": "7.5.2", + "dist": { + "integrity": "sha512-TFxyA2PS5E3hK27ile/VBzkSnDfVhTDyROskxV1A6mGT/gUYf6gZ3RAlIRgaTc+dDiBiZOOIEemuj+7lpIjQCw==", + "shasum": "a5638a5577036d69006263a7294de1b273d7eadc", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.0-beta.2.tgz", + "fileCount": 15, + "unpackedSize": 47737, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWZSwCRA9TVsSAnZWagAAuPgP+QFh++yh6b8wLYpiswQU\nOXOL/SwexOLNR1WXA84Lh6WY3OA8K1cRpUg3ahxXO8A5kNzbySZIjwL5vWnP\nrGooVlYR3j5shjzQXc5+9qoecEDCuJnjuEqt6Zo32kDJMm1c08wbd5uCzng+\niJaxAr1h2fZU8DqbQVofzrdK3eyYQHH/SIgWCSvUgFDKbr1SdE4KOUncY78r\nS1VcuuL46n77sfzi1Gu//8niu8X0W14zfK4J9geiys+xGTiv5ZxqfbSIfrLD\nD9TVPrTn4dGrmjINGOfkIXe2gbqk4kG7n2GVYyF8Z7GlsL8bMeDsCyHccRDM\n2ltd4uFjPbBtFNJrIhuj69XOrwvBKcxn6BQgxXBFkYnEtdyTBJ3rxk878lGw\ng9aN0tSle9FgCCgUgczHFE5+OZWcMXNH9dtxl7OkjJTplplfiugdvuYl6emF\neFY91MlDz1aElBI9MQpM4EVV/vVlAH22oVoKOb134ONYk1mIF3MgaiCeaHz+\ncEAkuLPhkRUJEqnyaoABxuBIIHe7nWRtX2IRXsRtwYOPFFlAeLpPlrjmT0YI\n9OQ5fLn5lcGBNiMC8Y4AObRg49c8gj0ZAChyrtGcOBrrXjkGEirUqVPH48Za\nsD3DTM5n26B9gXSf7vcMofFY6EiTxIF7iP8bKSBGch65juOQLTFgYnt4ibgs\nVB/W\r\n=sCKn\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCr9S9Cae25Fi481owJ7v1y8CI6tMq0/Ck3CCRRAjvoWAIhAPnfx5SARPfo71pejWuMaQ0wmR+7Fpa9VJJTZyud0uZ6" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.0-beta.2_1616483503860_0.737400066845133" + }, + "_hasShrinkwrap": false, + "deprecated": "published beta to latest tag" + }, + "2.0.0-beta.3": { + "name": "ajv-formats", + "version": "2.0.0-beta.3", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0-beta.4" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "a4a79564b1093f9360cc4f972a8d7cb31eb896bf", + "readme": "# ajv-formats\n\nJSON Schema formats for Ajv\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv-formats.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-formats)\n[![npm](https://img.shields.io/npm/v/ajv-formats.svg)](https://www.npmjs.com/package/ajv-formats)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Usage\n\n```javascript\nimport Ajv from \"ajv\"\nimport addFormats from \"ajv-formats\"\n\nconst ajv = new Ajv()\naddFormats(ajv)\n```\n\n## Formats\n\nThe package defines these formats:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time with optional time-zone.\n- _date-time_: date-time from the same source (time-zone is mandatory).\n- _duration_: duration from [RFC3339](https://tools.ietf.org/html/rfc3339#appendix-A)\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n\nSee regular expressions used for format validation and the sources that were used in [formats.ts](https://github.com/ajv-validator/ajv-formats/blob/master/src/formats.ts).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\n## Keywords to compare values: `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum`\n\nThese keywords allow to define minimum/maximum constraints when the format keyword defines ordering (`compare` function in format definition).\n\nRhese keywords are added to ajv instance when ajv-formats is used without options or with option `keywords: true`.\n\nThese keywords apply only to strings. If the data is not a string, the validation succeeds.\n\nThe value of keywords `formatMaximum`/`formatMinimum` and `formatExclusiveMaximum`/`formatExclusiveMinimum` should be a string or [\\$data reference](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/validation.md#data-reference). This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` keyword is not present schema compilation will throw exception.\n\nWhen these keyword are added, they also add comparison functions to formats `\"date\"`, `\"time\"` and `\"date-time\"`. User-defined formats also can have comparison functions. See [addFormat](https://github.com/ajv-validator/ajv/blob/v7-beta/docs/api.md#api-addformat) method.\n\n```javascript\nrequire(\"ajv-formats\")(ajv)\n\nconst schema = {\n type: \"string\",\n format: \"date\",\n formatMinimum: \"2016-02-06\",\n formatExclusiveMaximum: \"2016-12-27\",\n}\n\nconst validDataList = [\"2016-02-06\", \"2016-12-26\"]\n\nconst invalidDataList = [\"2016-02-05\", \"2016-12-27\", \"abc\"]\n```\n\n## Options\n\nOptions can be passed via the second parameter. Options value can be\n\n1. The list of format names that will be added to ajv instance:\n\n```javascript\naddFormats(ajv, [\"date\", \"time\"])\n```\n\n**Please note**: when ajv encounters an undefined format it throws exception (unless ajv instance was configured with `strict: false` option). To allow specific undefined formats they have to be passed to ajv instance via `formats` option with `true` value:\n\n```javascript\nconst ajv = new Ajv((formats: {date: true, time: true})) // to ignore \"date\" and \"time\" formats in schemas.\n```\n\n2. Format validation mode (default is `\"full\"`) with optional list of format names and `keywords` option to add additional format comparison keywords:\n\n```javascript\naddFormats(ajv, {mode: \"fast\"})\n```\n\nor\n\n```javascript\naddFormats(ajv, {mode: \"fast\", formats: [\"date\", \"time\"], keywords: true})\n```\n\nIn `\"fast\"` mode the following formats are simplified: `\"date\"`, `\"time\"`, `\"date-time\"`, `\"uri\"`, `\"uri-reference\"`, `\"email\"`. For example `\"date\"`, `\"time\"` and `\"date-time\"` do not validate ranges in `\"fast\"` mode, only string structure, and other formats have simplified regular expressions.\n\n## Tests\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv-formats/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv-formats@2.0.0-beta.3", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-YsSpXoLpwFHsq8l+UImIgEh6vnjA3bb8MV2/l/tbrFdCN5fNSH2SA0i70bOsEBYB1heBmcK8/I1ueK4az8D4ow==", + "shasum": "abe42a10861a3635e7153c9d5088396645041541", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.0-beta.3.tgz", + "fileCount": 15, + "unpackedSize": 47737, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWilXCRA9TVsSAnZWagAAYAkQAJczqHcdl5omli1/0rzm\nl8asp2TvWrz56H4F4QJVb3rbOplN/GZpZ9zx0LHrjcnlD02V0jj1LS9p5Ldb\nOlicyqhASo9JUGgyoEframi4uCTS+jL0QcVOE3aJjn/iUchbD2OwcMc+ZCkd\nIPE2Osgk/weRnqwsMuWDnyWZ7KgvxmHFy4m9mZHIRArXiY/AFRY71Cpx0+/H\ndnyOAtGICalilWGlgkfhnXRyJyI/1yxMiR1w9p9kFJgl4U4cPJUcCyhU73c+\nEz7MYlanhQuMCSamoRa+foIWmdDpL7F2dSnM9IgC/QEjHjxBNm14Saps6yIU\nJ8cfIlqo29Jtk6a9ycAMF08IyyQ+o1M369xTX3OobWWg/Iv88vVQilY+5rs1\n3iQ2XzwQBRZdNiTUM8P0H97X+tRCrPd888KvUyZWiUKHJoc0xE3EEZXmpvfN\n1d2N0GWbJepGBOYEys1Jgtbmn/E8TC245VbM5xst9zC8EZlBa+HI0nymdfcS\nAyXHjAnXhpvyagrBJexBiagckglN6tLXib4//HFrGepaiBEl3ANZv4utceY8\ns/DIxpBxgi6xovKhv3+JSweI0k2O0DrF7+97jxtVFFaTuP5ICQ4bClASAuJG\n2+Ih7S//nBYfufMoGv72polvK+4NR1l+6O187xVWqQ0V6aHW+dCGK09PAXJj\n8SFA\r\n=Ulc+\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIE2Xkxi+apK/hQVPKyIpGg70Zp7KFQff1leqfTovlQO5AiEAv8VtCZc5Ibr+eiUtre0/rzXA+bQC6YhG+0d2RT3UoGw=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.0-beta.3_1616521559263_0.5887310808395405" + }, + "_hasShrinkwrap": false + }, + "1.6.0": { + "name": "ajv-formats", + "version": "1.6.0", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "peerDependencies": { "ajv": "^7.0.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "4a8a72436b37b9a0a79a719b379c6c7d3fe8d1bd", + "_id": "ajv-formats@1.6.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-iio2lsjYkuTq49avg+/coyM5D3qdjyW1dkiy+I79XG3DAQFAOcGltC6eXsw6dX10OtH2S9Kyez7OkFtY0bJBBA==", + "shasum": "605304a6b4c10613904b55ab2cda0669d233d127", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.6.0.tgz", + "fileCount": 15, + "unpackedSize": 47791, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXvdQCRA9TVsSAnZWagAAqVIQAKQLxVUO9FW3MtSuxPjz\nVDjXsimMoq3uowrvtBTm6Xss+TjsR86RqX0PqBBwZfz59U1jJigZ+S3+B8yi\nTwl1I208zNbFq+cW3Ce4M3To7+M1nkA0FFVU5urASxjfAcoWTs0q22IPd3g2\naw9WSEsTMX8nf8PgEbFFwsQFMkcDF/DYHyCyIfvxPx3gAqysvAwq9Sb+o3Vv\nOXfcgYQNuGTtCO1FjNTswFBLzwiEoq8FZ1gSfgJMEGfmKMJYHhz/wJ8zZZJL\nAOC4BODCVhuW4blUUc3I7oRyhKC+sIq0yUSjL8jtaoMm+QOW97Bo351DBUH1\nlCxDSzBOz7cdT8EpnqtpR0UDJP/2FGRFnT4Yz1ROtpj7krYjq7qxphZiyRhl\nlaZJ20DQOHPMTVh41liaAkt4YDRUq4YiSwHFtrMWbHFU+SXyNnv+1Uloiwqq\n5MzbzkY1XmswMqmuRrZHhc5Dx/X4/b5Fh+yICmCDBQWRnVSqDd+xrp1EFvJW\nfdp0eLq0DmCHQOUqGsRkThs9kMaK+kp5ZLl46i/BoHeoIaAH/qD8Pt3duv5h\nYBR/tY8btxkGhbgudavzP2gdzHKBtjHBw70fjknRimQrlaw96+xzwhnKUbTK\nE5WgEIXcTRNOIAOsmdAWjctt34bhSF+vaet1nMv4ji+/3G00WgwaVMx4YFWp\n10GO\r\n=+BfM\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDJAfn3sHQCMfP+z7te38yGyYrDtB2aP/zgJ3rKm6czjAIhAIppo20UIw7tOzEsLn4cxp8WBC4YTt/H3/NYfEk5dfUU" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.6.0_1616836432097_0.14378561980104188" + }, + "_hasShrinkwrap": false + }, + "2.0.0": { + "name": "ajv-formats", + "version": "2.0.0", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "peerDependencies": { "ajv": "^8.0.0-beta.4" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0-beta.4", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "8e527acd78f5f5329fd2932b75a2c24dce48ac48", + "_id": "ajv-formats@2.0.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-+Qmnz4K1Z7HajOd8hPX7w+9WlCRfW4rvcMr4XLW4CghOAlS3qWKX7pUCJHaj6HAWPGaWRy63evu0v8CxOClw9A==", + "shasum": "7505a091ee5c85757a4c1509b2ea7a81e72f39f2", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.0.tgz", + "fileCount": 15, + "unpackedSize": 47829, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXwCyCRA9TVsSAnZWagAA34EP/2ZjqPoqirJO5IAOds97\nh66jDRao5cBWvn5AOmUoGb7mfnjSYOPpeMp1yV7uFzeg50BX6XFfKNgKxaDQ\nfmYNEb9U+d0lBEhFgQyJ2+jVqJOAvNpRF4131REaq9Y0s7VHFDim5nWZ14PC\nxdrgtxfPwuV82YIHUzB3Hqu0FvWaZ+/53eBwkYEAad1qzQ8QB6bgb/I686dQ\ncOHuk+wfz2LGDVQF2zwpFokti6w+xMUj9mYOCRMtsgqoahHle56qQRVyDg3p\noWeWM7WJEuPqYHxtrTLd0YKKhT0gmtFLBRoi8EbOs7G3vNNEzRduXxMyeeFR\ndNa7+Cq3PzpGAO4hDR34rbQePQMlbgbQJM6lYw19FZLNuXx7wwZazravvNns\nO1Wbh/g3JBXx7xd6T0EvBUbXAFDo42KVtXwITwtirCpnvQyQmIU8dP01MS54\nIkPCnywTLtYCCsvRfKsrnh9oBwveWy443CeBQnCkXKgAxjsEv5pXmcP/UbP6\ndop5pHuQOX2JOOAGYwOvvJoYCR2/umFbh+LCD5ubWQl/zGuhHnu9tw+GrTYT\nD0ZlsYezcmk/iRX/Kxa0UB/jlDhL0/V8Qea9xXtxxqGtAk+qAhfRgfJY6HXN\nunwoCZQb7+1taMKhY0c3DOF0S3UrkWaCK9xmZraXv47Q1o6YFF47uMzRb2f2\nYsNc\r\n=mVoW\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCcHDmNGAne9WTAOOtEuQVjAR9oFZSeQ+Zxi1n4Nk5KCgIgFgKJkjb8ICIibonrGERP9VSr40ZnfLZg/g4NV23mqkE=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.0_1616838833514_0.7814748362779975" + }, + "_hasShrinkwrap": false + }, + "2.0.1": { + "name": "ajv-formats", + "version": "2.0.1", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "peerDependencies": { "ajv": "^8.0.0" }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "9d8a7af14f10d9c6aec23e66832910698f3c9b70", + "_id": "ajv-formats@2.0.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-WOCTxWY8Q+JLBJxJ8fjizSuk72qaAlL3v+XtJakEger28WcevS5tBEH2eND9e7U42thp2Uc/DNDYw9riD+kTAA==", + "shasum": "16ae6250c8c51bd53a4fa4885ff29ac9a63d04cb", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.1.tgz", + "fileCount": 15, + "unpackedSize": 47815, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYFrnCRA9TVsSAnZWagAA5/YP+wW2qY+m3vmzYqnLNiNc\niaabBWtV94kYtGHcGFqPDet35Ov4mWV4RsAHwLPQm2tiUN0d5Hrp6JgWWQjV\nwzwRPNxpZpI6hw8g2azCyt6Ew7eTvYO7imogeqAmrwaH51wi67dp+aKAQflM\ndY2JTYq+ssj3eDoXmcQ9m8o1eCjGLi3cPju0lgc9ODc30x+RtNBTQvFS98YX\nEQywFhLhNMOJtywjrBz0C4AJ4FoFq53J5KMbosETq56ncmE/dMAGtXZ9iVC+\nmDjwNC+UsEcgrtmMIwwH6Lz1d2CCbWr/3LVWGijvBuk82liRXIl0hG1O4Aom\nGm8mKcfe9tMZ+IlJPXnXTp0+0FhKpl/KX+I/sCxsRYTi93CXMKyVsow3oQ0d\ng1AYRAxIRoizrCS+1kmzI30hYryeIzrrEtc5+QALrC2HxyaQ+yi0QO/v5auG\nbvVSGSY/hj+X+znHfaf2Ei1bIGsg5tRO0gnzclagchBnjRIPD8Dv29/E4yvz\n1wC1aHZSDZfUducGt00/NixYzHFaDYEjG0Va6RBHHnlnOp5EZ1wnKa3VAnc4\nt6i7r+heEsqE8IS4fHFn/BIRmucTMCD90iBNr6UGFyR3f2NJ6u/MUqnJJ/vv\nSpNvVU0SkrPcWDFdBIGKWHmAbT77ksjM6VXLLf5crGVQgdJZJSTCIXb+EZry\nA3Ia\r\n=ihlX\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCVdd851rzXOQhRjIp7Y0bb/n7PnKeeaCsRp3PxtwHHmAIgG061y0xeRDs2xwbffcAIvYzxAZlffk448a1EiA3DLvI=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.1_1616927463151_0.6564838540663025" + }, + "_hasShrinkwrap": false + }, + "1.6.1": { + "name": "ajv-formats", + "version": "1.6.1", + "description": "Format validation for Ajv v7", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^7.0.0" }, + "peerDependencies": { "ajv": "^7.0.0" }, + "peerDependenciesMeta": { "ajv": { "optional": true } }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^7.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "91e5e421d18a5753ff672b1f22ecb256e510cfac", + "_id": "ajv-formats@1.6.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==", + "shasum": "35c7cdcd2a12d509171c37bac32f2e8eb010a536", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-1.6.1.tgz", + "fileCount": 15, + "unpackedSize": 47911, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZwOKCRA9TVsSAnZWagAAxJwQAKQBI17IgJSivnfbc8HX\nthsxjrV7c8SQObO6Fj1YFQUvQXljQkkfRk665jKSRZJj+ZPHC0oqDysLeNw6\n0aZNp575pO3vy1XuBFZ0qu87e7Jo4xLUXo83sEaAKrH07LYn2lkRu3koFSi9\npBryc2sNNAk32pL36Dt6P9XGsacfHg7T3Oc3HZw0rDjrYAN50MEkU3gCtQZa\n9w86lCK4UlvD6yhCljWgeCsxTdunewuhTUOBFv1xX+lzzpoGRfGvxVoSj46h\ng2K42agPmfa+3B5Ha2FzxKtH5DTNEWQSWWj34yG8MRjf2oX8K9r9cQbvTq5k\nEMmQYlU0xNvuafNd0CWHhqaKJbJPxm5v0Uh7L3/QxgOk2gv58b/cJlsoV39N\n5iEBJSq//4zMsWorOZgB1MMHKylgOoTRLX5qL+lBUyN1MCbtP7ikxXlBI0cJ\n+ZNBn/eBjuVtzN4ogoThtHL7T2/GrSlBEKaECreI4FMA//BF2gpz2dp6Ei9/\n9bH2THhLf8JIc0mSNyupIB96n4fivxzG75bh4cScec2gah+3y7I+Mz+08hfn\nmStNh9UlPXb9QO/0Tmkk1TduEOHZjKWF8adru63D3wf011dkzBoLl6edT2zx\nWsF/3MNS245pOLF8wvsa55jqxc3mW38wAVkK8DoSZ0Kmwvn/SU27ErHzF67z\nMr7y\r\n=pKr+\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBk9KXSYB4NZP1VF6r29RI0yx+mHWfugr8PzwK+mgIZSAiBtR/7oDLml3VOfLvjpmLj0jTrlhhi+xLJxmkL3s/zIgQ==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_1.6.1_1617363849841_0.4571235673777647" + }, + "_hasShrinkwrap": false + }, + "2.0.2": { + "name": "ajv-formats", + "version": "2.0.2", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0" }, + "peerDependencies": { "ajv": "^8.0.0" }, + "peerDependenciesMeta": { "ajv": { "optional": true } }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "0fd9f3fe1609ccf30abd9c4f15682ed2893fcb0a", + "_id": "ajv-formats@2.0.2", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-Brah4Uo5/U8v76c6euTwtjVFFaVishwnJrQBYpev1JRh4vjA1F4HY3UzQez41YUCszUCXKagG8v6eVRBHV1gkw==", + "shasum": "69875cb99d76c74be46e9c7a4444bc232354eba0", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.0.2.tgz", + "fileCount": 15, + "unpackedSize": 47935, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZwWKCRA9TVsSAnZWagAA92sP/3/x3g1L+CBlTQzlBCfI\nanl2r4RqnuPabLjE90f3HW/VgigvMqc5OTILbFEGnEcDE5KJVo4i26aJm0NZ\npDCRfddhR6jBiscVpS3Hy/G4kdjdWMlgas3Wjwe/2u5k7u7aQXJCa5rC1Gfa\n6uEM46p/xPF98E9CXQ4mPTiV3OhntjAK+qml0E+LO4W2Q9IBJMuCjWZgz8cm\nKqOz4/iCBpYBw4+K8mS5I7iE0uaCXHZ0OCvY/86Q2N80SgNqvnadG48sNry+\nqlfn6IgTLx5cgyNVRry0pgaJC342t3bj7wUBLAfWLOOSzyaR70ywyDcO0MEo\nn5FsCw4o8mu9bURvP58fDtMHEUM2nozt9VGE/NptG/84gBm38OkYgrErTCPc\nBiPtAv0ImU3dxjBIistQsGv9FsU0LeM3GyKfAJdpDNdfcjj0kHBBvRwq8fiq\nmLm3lD3oYs+Z0GdLm21DTWp8KL0bcjTaKSWo2nkNSIRyA/PhdeAw6FPUDHN0\nIoCFa0gjrfZvumx+1KXj0XTEhdeAH+oRQTXcL788TozOlHuTRFq4JUHkJYLp\n42CIIH/wIh0FZUue7kiiammz/tYHOhwnz3CUNfcMncRG5V12TIgeazlSD8R7\nRBc/Zs7+A3jfD6mG/4NJbHeCstiEW6nczOE1JLlY/1MOeJphOVmLazwKoxwU\nvDMQ\r\n=W5/G\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBL7z01TIdSrP6xqHxfqN4lCVi5FXq9cBrDZu0+9D25PAiBOXH8jQSPOK/BaMjPzD9nnR69BreMl2ao3tBwXCKGdrg==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.0.2_1617364362427_0.5726062548867314" + }, + "_hasShrinkwrap": false + }, + "2.1.0": { + "name": "ajv-formats", + "version": "2.1.0", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0" }, + "peerDependencies": { "ajv": "^8.0.0" }, + "peerDependenciesMeta": { "ajv": { "optional": true } }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.0.5", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "8827acb8d820c9e44417738a478989df5152a397", + "_id": "ajv-formats@2.1.0", + "_nodeVersion": "14.16.1", + "_npmVersion": "6.14.12", + "dist": { + "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", + "shasum": "96eaf83e38d32108b66d82a9cb0cfa24886cdfeb", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.1.0.tgz", + "fileCount": 15, + "unpackedSize": 51881, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkbZhCRA9TVsSAnZWagAAdNUP/jgjBXV0KOExgoN41IlQ\nvHUr4EF/TLVTtlI83H7K8OFJnR5Qnkh03eB2LduVcFmBGbIHjd8LTJVPsO/N\neIu/6DNB8LgTcQs0wtCBFAJ6+7WUsSMP8mHbjIaZOEj2fDHQE1Lf205OHrCI\nwOVE75CQvStmQOe0yi0++JK3/4TRKaemnHFx3zhs9PoyBF/4g0yCazRwGAUe\nXFp4iuneVo8NRmyu6VVFJLQGV4xgl3yj0HMRnQEt1SonnpBNomnfSF460RjH\njZ3XcIkAuwMQyEz4BxXIa1bb8j63wb7zEjyjAGTzas9emtjh7TQB0YgRPoCn\nkvxPelhzLBsUSL7z/HM8ywt8LouIXhqK1Njyj634z262eXeBymoq7RfChhkJ\nQuUorx22zQrkro1EtuLXaOANFxn7hvY180kZKnGGWsC/SH+cODn0cuVcdfs3\npXA9ub2soKI3HComiGYt9a5V6YgOwMzJz3QroT0jfFKDabh8aATU8FCrLwUb\nlKcoJFN9uOmSpBqfLwFwrM6aimQ81qmf+O7pDDBv+q/+ZWI1KH6aMXIqB4Cz\ncKtbW7Jqu6NCfzw7VThnVIljozEdciKDDO5Ws2clzfDomEkP0furKJF2NjqJ\njhhS37XLSlDd52AFVYVjB4xVjX/E+L85Z3tEaU9ZTPrLsaZGicg8vX8S0qx1\n/pa9\r\n=6tXZ\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGFmTXwDqMR1IhhZiePt5MKLf3Qb1CNmsP/L+DT5HS7pAiEAwNSKo+BYWnaTKye6D1thKmlC92de2mPlXSgoecMLTZA=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.1.0_1620162145274_0.1766468780269319" + }, + "_hasShrinkwrap": false + }, + "2.1.1": { + "name": "ajv-formats", + "version": "2.1.1", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0" }, + "peerDependencies": { "ajv": "^8.0.0" }, + "peerDependenciesMeta": { "ajv": { "optional": true } }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.3.2", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "c1cb46cad79f984020a9a0ef569e9c091ce24400", + "_id": "ajv-formats@2.1.1", + "_nodeVersion": "14.17.4", + "_npmVersion": "6.14.14", + "dist": { + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "shasum": "6e669400659eb74973bbf2e33327180a0996b520", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-2.1.1.tgz", + "fileCount": 15, + "unpackedSize": 52227, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2jKWCRA9TVsSAnZWagAAyu4P/AxuqlnEShCyP+ukQBKX\nL0cHq5/18T4izpHsZHE/vu2sf3JdeZzeFLfoL5JjZmlyumJsbXgwdepTH7HX\nNGHfRsUwHr+D48BiXd/Y6wZlC2kTpa/+UJfPZullkRVtGop/WlMkPc3dnRU3\novZ4qAz7w04mHdUSqkYwGT3ajLNHndUjivZ9ZAh8mCh+vjQFuA7zAvpFDz0K\nZLAKumx/nvf2SpoDNdofzjvL7pjdpaJC+yQDvggY/TII/XkrpDWNqfh6I8Xd\nx4v6ho/dnn4ihlI1SNRbT6dZMK3wgyrWbR19z+Qj2ruP3Vvck4usSdUgMIzb\nKPA6T61x9tgP5vxNfStRlUm24xjZhkfOpe/OaioN/XEnv1DpAyuU28gk2mPt\nHMD7T3p31JLTMZg1BN+TToau4vYsfjWW6UXk7IstQf5attcLp2VL6ZAUwYC7\nWSFWCpavok2mO3cOvkSyNJKGripNquL8N9W1BcQ/aXr3mK9OA0Vc8MrFtdbs\nq7tr7UCOZobDu8tt5KGBPVHiDdjpb/X6r7GTIirdaikktx5DW/dfMvzGqqVq\nZPm4Pe69QdsR7kq62/h1OnmKFqBC3AKXhix6QTCqbmv0iI42DE0BSsjqs6L9\nuTx3tNo4BrMsimcBekRx1Vm+0YP7Jx7RzHPK0JYBYuANdvwUOSzNOUFqKS2N\nNm8/\r\n=nmgl\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAiQ+wpxq7SGVGoZOo0Nq8utdTDArin0rYRIkc5QOzfGAiBwW/bjoF2mAg1rps4zt9jh3F66eaMSaMP62JTw0OOZqg==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_2.1.1_1628934517312_0.6212615722526302" + }, + "_hasShrinkwrap": false + }, + "3.0.0-rc.0": { + "name": "ajv-formats", + "version": "3.0.0-rc.0", + "description": "Format validation for Ajv v7+", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "build": "tsc", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "eslint": "eslint --ext .ts ./src/**/*", + "test-spec": "jest", + "test-cov": "jest --coverage", + "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", + "ci-test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "keywords": ["Ajv", "JSON-Schema", "format", "validation"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "dependencies": { "ajv": "^8.0.0" }, + "peerDependencies": { "ajv": "^8.0.0" }, + "peerDependenciesMeta": { "ajv": { "optional": true } }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/jest": "^26.0.5", + "@types/node": "^14.10.1", + "@typescript-eslint/eslint-plugin": "^3.7.0", + "@typescript-eslint/parser": "^3.7.0", + "ajv": "^8.0.0", + "eslint": "^7.5.0", + "eslint-config-prettier": "^6.11.0", + "husky": "^4.2.5", + "jest": "^26.1.0", + "json-schema-test": "^2.0.0", + "lint-staged": "^10.2.11", + "prettier": "^2.3.2", + "ts-jest": "^26.1.3", + "typescript": "^4.0.0" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "4dd65447575b35d0187c6b125383366969e6267e", + "readme": "# ajv-formats\n\nJSON Schema formats for Ajv\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv-formats.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-formats)\n[![npm](https://img.shields.io/npm/v/ajv-formats.svg)](https://www.npmjs.com/package/ajv-formats)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Usage\n\n```javascript\n// ESM/TypeScript import\nimport Ajv from \"ajv\"\nimport addFormats from \"ajv-formats\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\nconst addFormats = require(\"ajv-formats\")\n\nconst ajv = new Ajv()\naddFormats(ajv)\n```\n\n## Formats\n\nThe package defines these formats:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time (time-zone is mandatory).\n- _date-time_: date-time (time-zone is mandatory).\n- _iso-time_: time with optional time-zone.\n- _iso-date-time_: date-time with optional time-zone.\n- _duration_: duration from [RFC3339](https://tools.ietf.org/html/rfc3339#appendix-A)\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n- _byte_: base64 encoded data according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _int32_: signed 32 bits integer according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _int64_: signed 64 bits according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _float_: float according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _double_: double according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _password_: password string according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n- _binary_: binary string according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types)\n\nSee regular expressions used for format validation and the sources that were used in [formats.ts](https://github.com/ajv-validator/ajv-formats/blob/master/src/formats.ts).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\n## Keywords to compare values: `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum`\n\nThese keywords allow to define minimum/maximum constraints when the format keyword defines ordering (`compare` function in format definition).\n\nThese keywords are added to ajv instance when ajv-formats is used without options or with option `keywords: true`.\n\nThese keywords apply only to strings. If the data is not a string, the validation succeeds.\n\nThe value of keywords `formatMaximum`/`formatMinimum` and `formatExclusiveMaximum`/`formatExclusiveMinimum` should be a string or [\\$data reference](https://github.com/ajv-validator/ajv/blob/master/docs/validation.md#data-reference). This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` keyword is not present schema compilation will throw exception.\n\nWhen these keyword are added, they also add comparison functions to formats `\"date\"`, `\"time\"` and `\"date-time\"`. User-defined formats also can have comparison functions. See [addFormat](https://github.com/ajv-validator/ajv/blob/master/docs/api.md#api-addformat) method.\n\n```javascript\nrequire(\"ajv-formats\")(ajv)\n\nconst schema = {\n type: \"string\",\n format: \"date\",\n formatMinimum: \"2016-02-06\",\n formatExclusiveMaximum: \"2016-12-27\",\n}\n\nconst validDataList = [\"2016-02-06\", \"2016-12-26\"]\n\nconst invalidDataList = [\"2016-02-05\", \"2016-12-27\", \"abc\"]\n```\n\n## Options\n\nOptions can be passed via the second parameter. Options value can be\n\n1. The list of format names that will be added to ajv instance:\n\n```javascript\naddFormats(ajv, [\"date\", \"time\"])\n```\n\n**Please note**: when ajv encounters an undefined format it throws exception (unless ajv instance was configured with `strict: false` option). To allow specific undefined formats they have to be passed to ajv instance via `formats` option with `true` value:\n\n```javascript\nconst ajv = new Ajv((formats: {date: true, time: true})) // to ignore \"date\" and \"time\" formats in schemas.\n```\n\n2. Format validation mode (default is `\"full\"`) with optional list of format names and `keywords` option to add additional format comparison keywords:\n\n```javascript\naddFormats(ajv, {mode: \"fast\"})\n```\n\nor\n\n```javascript\naddFormats(ajv, {mode: \"fast\", formats: [\"date\", \"time\"], keywords: true})\n```\n\nIn `\"fast\"` mode the following formats are simplified: `\"date\"`, `\"time\"`, `\"date-time\"`, `\"iso-time\"`, `\"iso-date-time\"`, `\"uri\"`, `\"uri-reference\"`, `\"email\"`. For example, `\"date\"`, `\"time\"` and `\"date-time\"` do not validate ranges in `\"fast\"` mode, only string structure, and other formats have simplified regular expressions.\n\n## Tests\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv-formats/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv-formats@3.0.0-rc.0", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-eyqaGv4OE7RMgW2GNujqwJZWFjOT4z0tQZTVnYiWtSDh9TFwD8CIsJ6ta065IblpZXcV3wFuy8y2gKFb1d0uPw==", + "shasum": "d345d205242072ee8877e3a19f100f41a2106e5f", + "tarball": "http://localhost:4545/npm/registry/ajv-formats/ajv-formats-3.0.0-rc.0.tgz", + "fileCount": 15, + "unpackedSize": 56824, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCS2T8HRQsnMVTa/diYdWyEo213VFJDnutZ/szuQiqBxQIhAJ5Mk3nRHFlq9xB7dDXjG9WC1TATZGlOV562mGqbCI+v" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-formats_3.0.0-rc.0_1636312136447_0.9830895791928684" + }, + "_hasShrinkwrap": false + } + }, + "time": { + "created": "2020-01-14T17:57:34.978Z", + "1.0.0": "2020-01-14T17:57:35.114Z", + "modified": "2022-04-11T13:10:30.662Z", + "1.0.1": "2020-01-14T18:11:15.035Z", + "1.2.0": "2020-01-22T18:59:17.081Z", + "1.3.0": "2020-01-22T19:30:29.690Z", + "1.3.1": "2020-01-22T19:57:37.178Z", + "1.3.2": "2020-01-22T20:01:37.333Z", + "1.4.0": "2020-01-24T00:14:24.548Z", + "1.4.1": "2020-01-24T01:46:22.337Z", + "0.0.1": "2020-07-20T10:23:39.584Z", + "0.1.0": "2020-07-21T20:22:54.408Z", + "0.2.0": "2020-07-22T11:21:51.219Z", + "0.3.0": "2020-09-16T12:50:33.847Z", + "0.3.1": "2020-09-16T13:56:51.491Z", + "0.3.2": "2020-09-16T14:16:09.477Z", + "0.3.3": "2020-09-16T14:48:17.427Z", + "0.3.4": "2020-10-10T16:57:10.957Z", + "0.4.0": "2020-10-24T19:36:55.986Z", + "0.5.0": "2020-11-08T20:00:57.059Z", + "0.6.0": "2020-11-28T09:56:47.548Z", + "0.6.1": "2020-11-29T13:04:35.636Z", + "1.5.0": "2020-12-13T12:45:43.681Z", + "1.5.1": "2020-12-15T19:20:06.106Z", + "2.0.0-beta.0": "2021-03-13T14:41:43.383Z", + "2.0.0-beta.1": "2021-03-22T20:52:22.012Z", + "2.0.0-beta.2": "2021-03-23T07:11:44.021Z", + "2.0.0-beta.3": "2021-03-23T17:45:59.414Z", + "1.6.0": "2021-03-27T09:13:52.265Z", + "2.0.0": "2021-03-27T09:53:53.705Z", + "2.0.1": "2021-03-28T10:31:03.326Z", + "1.6.1": "2021-04-02T11:44:10.018Z", + "2.0.2": "2021-04-02T11:52:42.558Z", + "2.1.0": "2021-05-04T21:02:25.408Z", + "2.1.1": "2021-08-14T09:48:37.420Z", + "3.0.0-rc.0": "2021-11-07T19:08:56.622Z" + }, + "maintainers": [ + { "name": "esp", "email": "e.poberezkin@me.com" }, + { "name": "additiveamateur", "email": "carlo@machina.bio" } + ], + "description": "Format validation for Ajv v7+", + "homepage": "https://github.com/ajv-validator/ajv-formats#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv-formats.git" + }, + "author": { "name": "Evgeny Poberezkin" }, + "bugs": { "url": "https://github.com/ajv-validator/ajv-formats/issues" }, + "license": "MIT", + "readme": "", + "readmeFilename": "", + "keywords": ["Ajv", "JSON-Schema", "format", "validation"] +} diff --git a/cli/tests/testdata/npm/registry/ajv/ajv-8.11.0.tgz b/cli/tests/testdata/npm/registry/ajv/ajv-8.11.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..57f893c520b91dcc2b7279276da89150de5edba3 GIT binary patch literal 219252 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ȵl&r6D5{84FUmv?5j!4!Six>hfCxv*Jx)k37q*`OJzguCRWJTHzzSn^s*%M+XQ3 z(G%bSb=9gfV$kxGXIFP-13+od9Fiq>e+pscY0#B?6?8!k@=nRz2Qu1Je8bynsv=Tjtxwo@FP5#6KpufkC}kL+Mvz5^bZ&k4B;IcT6DS?+uB*AtWK_fs>sijR1-thV9FeCB5Up->vuqXjyHeb z1Qn$E`&KnE&;GqB9&T5If|fOH@TRfL+@}0Dd6~a&i88}Q&TR|Pt@9m%x;ENF`XAEj zE7fcvxx-BbyoxU4J6hkld&Emjq!#^!4J$I~oCcK&AyJGvjq9InRY5FgNxKR~^(`wE z%d}GArj_(VMgpUp-wm#Y`LYV|EJVe85YU=u3NmIO-D4`LFnr{sZ5AXXPZwCI71eDE zO4g(iIUILJIiM3g)!#>Gf6z-uUR0($ZVd98G%18ffU`&UKgTv$Aa|nk9@PjvhRz%H3@eLp3ybl^Gd<>V zFsG0OgV|wjBJFd{^1@yleh7)(qw$X@<(aXRoUlzoXskk9O07*sq$o8df70?ne^XhK zx1i0_MuDclFBwgM=N?Ur%E+yb-(KR2lS!MDM)!kZ?RkfWuz}%t#KpWcF z*boun50FIWWUtgAGdac+vE`ijV+O4?WSxe!$E&HcDB?h8d?=qZ)Dztik2$9DB+cm< zmCd|j&e#2~K_l3>P47(X-~bSHmUl7a6ee=kw!BCwUa2t=+D1P3q($#5`#w#s5r|gM zs+owAghf&ydC@c+UuJBLu_Q1FB^{HXSCNI&v!D(;&k<0Ne}?a=xg872N67X|*qq04 z-(6M>Czq}4^+C;(O_P|*Ov7%w-_J%Q!?7)cG;@+Y&{sxskDV->7VkdRTf=h@iUw<3 z#Vqx0+yUOLx~%b|D=FZ~C4C%DakY%ShtG)sjUs?j$R-jC^~@T+=SHNNE=6zQu#tglS8hMPHMz3C(}u>&t> zDA7!dZbiznew*IE&&Z~J)#<%YJ5uYHYP4-ZahpY4Qq%KD$&tVp^O!m<#$BfnGhhHw z(Q^&K%m_*!RBj1Ig@qkj;!m0t&Z(s^4|~?$imR2cVQOaCg}fnYOQexmuTS79^#G>0 zC1j;uab2=Oh)N5nG<$9Khy|E2|99&F{?dXFO!*+N4#~(>jJZfaV8`K z&~u57W)Q)9q(>)`nF4-YoGKa_yWda{QLqq49u8m%^T6i0P-FCU+E@JQ7zvM%UU4>d z!(PPsGbn2J0%DeDH=>fXHPhwzk@x6l(cTL}8SXkPNSqI4`7}}PfteCa9uRxyg(@dS z3gXiI>!Q@b7(1FlyZ>2$KPk6Nhv{B{s|1U_eCRc)%msSuXWL_Qya4zV02DA!)c^nh literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/ajv/registry.json b/cli/tests/testdata/npm/registry/ajv/registry.json new file mode 100644 index 0000000000..6feb4c1037 --- /dev/null +++ b/cli/tests/testdata/npm/registry/ajv/registry.json @@ -0,0 +1,31201 @@ +{ + "_id": "ajv", + "_rev": "476-bc3ad3e960115fb1533f44f4311df08a", + "name": "ajv", + "description": "Another JSON Schema Validator", + "dist-tags": { "latest": "8.11.0", "beta": "8.0.0-beta.4", "4.x": "4.11.8" }, + "versions": { + "0.0.4": { + "name": "ajv", + "version": "0.0.4", + "description": "Another JSON schema Validator", + "main": "lib/jv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/jv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/jv/issues" }, + "homepage": "https://github.com/epoberezkin/jv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "daf592adc4f3d51f92737d48b1653cdc145f5d26", + "_id": "ajv@0.0.4", + "_shasum": "c10b1df9b45809e005f01f6b11ec896482433578", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c10b1df9b45809e005f01f6b11ec896482433578", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.4.tgz", + "integrity": "sha512-LhWIj0z6EmAyUeDmvTlNVCM0uF+ZHdq2snlQb7awdqsLpMH9ENc3RN1UE4zIiER9nzT0oG3GUOHcMvMV9m0ytw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDomK4dWHZP50PDTYb7EkjhjNf+Oq2kLYEUMs8OkiI47wIgXoLLAuLAN877GsXpmLytFRl8/Gqdskt6ZO1BQSb/oew=" + } + ] + }, + "directories": {} + }, + "0.0.5": { + "name": "ajv", + "version": "0.0.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "c2f4d599d5756ba02bf7f7ddc9863c3f40c0baa1", + "_id": "ajv@0.0.5", + "_shasum": "ff59bfff3a593983b8bbf9526eba284e945198ca", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ff59bfff3a593983b8bbf9526eba284e945198ca", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.5.tgz", + "integrity": "sha512-kJEX3o+pQ6nSfr9ZOEvhDqVGqZO3dJbKCUXOpYqUWR+tSyHhuPjUKpQLMy1anUL1wJX+UqhEdiPQOcRv56aUxA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD8q1tYnFxUnYULyZU1GXpMGkAO6slciwd/h1Pqo28MmAIgUWLx/A9zD1LJAfa5iZ3bEoT9fdzm3fi5T552AVpeoMg=" + } + ] + }, + "directories": {} + }, + "0.0.6": { + "name": "ajv", + "version": "0.0.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "3b928b83a656afce3fe0f84aaa7b53710be20660", + "_id": "ajv@0.0.6", + "_shasum": "351cec5f18a1bcb8237f9739dc49111263cd8a43", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "351cec5f18a1bcb8237f9739dc49111263cd8a43", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.6.tgz", + "integrity": "sha512-RCsa9CkFZx9eHtUgTbgf8v4LUKVMdqTZ1pYbrBoKk/WdHUN15o8hwBOwZtjBrx9kp9u1HB9FoE831kAjxsINew==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD9abEH7qoEinZpvQw4/C0Bgwiaf1TmYsq2n0YkXa/tIAIgIDYtvXC5MRpdQOWQ4bDeMIwkoyu9sxE59vDBEVH5hU8=" + } + ] + }, + "directories": {} + }, + "0.0.7": { + "name": "ajv", + "version": "0.0.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "5de2ee75138afb33262adfd63ce56499e3486898", + "_id": "ajv@0.0.7", + "_shasum": "7ec1188a852d1e55a48063a75b40952178bb160e", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "7ec1188a852d1e55a48063a75b40952178bb160e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.7.tgz", + "integrity": "sha512-MjGaCP2kUNQCeYtvbFgm1s1f+doM285v4Lpbw0FA8jvLCyHG9ksoS6p9kFaBoSUygS0v1cyQtnrfcp3M33hOHQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCMwrAgyOSACrY2sM3fW+pmsOW510JvYQ15ydrLfgwuLQIgARV7OCKRL+Ale72RQ1q+Dk2xhwRM0XNMI0cZ0nnh2i4=" + } + ] + }, + "directories": {} + }, + "0.0.8": { + "name": "ajv", + "version": "0.0.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "884fcfb51145389692a2bb88d6f56d2b83c994f9", + "_id": "ajv@0.0.8", + "_shasum": "365c94f9f6ce0b2152d006a5c1dad2fa7929cc94", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "365c94f9f6ce0b2152d006a5c1dad2fa7929cc94", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.8.tgz", + "integrity": "sha512-OQddU+5hE6HUdgOevKl963n6iX6muzi9ogTTiqDezbXFZVZ2htq1HtDGQ6sdgfSRVnYug114DHni08ebPMGGFQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDuLnQMeRPQF9A1dL6yIRJ8fJhsomexysHMTGqui5C9zwIhAKQy5J8CmfkgYO5ssIWpQdM8Ah2MA8FTOR5qDi+nUq6d" + } + ] + }, + "directories": {} + }, + "0.0.9": { + "name": "ajv", + "version": "0.0.9", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "32e39f64a2b03990036b8918fbbdfa72966847c8", + "_id": "ajv@0.0.9", + "_shasum": "18776686ec87bf6888f81b8a720c1dfd92beef70", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "18776686ec87bf6888f81b8a720c1dfd92beef70", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.9.tgz", + "integrity": "sha512-ap45c+EUYy2o9nrDUBBNgeaNiq1KPaUxu6St8htEUFC7W/D/IjHrdO0bt3b0CA8kQWpNyqCGNij4adpMTW5N2Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCsFMhrmkeb/7VrWnckLNlz8jpSllfLtWUCygIFbQzSSgIhAPyShRHrBtqRrfdLK8mqhxgJ1tYusyua7A4LOrD9JibH" + } + ] + }, + "directories": {} + }, + "0.0.10": { + "name": "ajv", + "version": "0.0.10", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "1c2444f4d7e1764d2befefa42d3c0faa4ddcb6b6", + "_id": "ajv@0.0.10", + "_shasum": "9c6d4bcb58eab1d01cf3cc291343a4ab2f16c7e7", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "9c6d4bcb58eab1d01cf3cc291343a4ab2f16c7e7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.10.tgz", + "integrity": "sha512-U8Odxioe+41SCWO1YjJVHGRPXXqrQd3kTEHYiUIyABwWglHNHT9s/sK2EFcVGPNO1ZARYMfYQsGPTwRfrLN+hA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDQrnOGZRQ9SdvnRgQBVyTU6R9s0vWoYuSf+BYK629spgIhAOrk7ba+wfElJTMXhF7Kd05CBliyvOQCARQAxAr9Dg3k" + } + ] + }, + "directories": {} + }, + "0.0.11": { + "name": "ajv", + "version": "0.0.11", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "1a597d1e2d595c6ff70e7f2d5d6b87e9a551cacb", + "_id": "ajv@0.0.11", + "_shasum": "cf909bf5478ca1b4f42777cb4ac0577e2be5d17f", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "cf909bf5478ca1b4f42777cb4ac0577e2be5d17f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.11.tgz", + "integrity": "sha512-EL4ej5FQ8cM9aZLa5sbDK1RaxZuRoG0A6nv+P/+cyU3lrHUmUZEIwrwrGpHN3XX+cbqmZ1x8lPe5yj2cfDSzag==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIG5jBA4xcaBQWnbXQ6ROHsykHrh56Vx3JmlnJvES2UHyAiBIa++KboR/xNBRd8Okt0OjQXQWXQmcbtPJMkUe7llPEw==" + } + ] + }, + "directories": {} + }, + "0.0.12": { + "name": "ajv", + "version": "0.0.12", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "baa7ea128b09c8fbb59360b8b0dce4feb899ade4", + "_id": "ajv@0.0.12", + "_shasum": "04a9c98e3cfdeb73d77c3c5d79e41a9bcd6972f0", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "04a9c98e3cfdeb73d77c3c5d79e41a9bcd6972f0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.0.12.tgz", + "integrity": "sha512-IaKu5hqQIeZ4NM9ROD3DX9JCiNigeGqF3RPSrhaM1hROqIlQ433py4pg3S2pOuWGkFTFW4aJY1bIJSyebkm9eQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHEn/kaC6ytNst3lfx40DDK/vTnMHqdkpA1sPrhs51MTAiA+wGyrrGjx+IE3pnti0ZKdsqKUO5q+Rgvd3ZXXo/04ww==" + } + ] + }, + "directories": {} + }, + "0.1.0": { + "name": "ajv", + "version": "0.1.0", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "13eb132cb94454978d0e6bcafebc885994404f32", + "_id": "ajv@0.1.0", + "_shasum": "61c4827ad18049abbd6d29696c1b95b1ceae5641", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "61c4827ad18049abbd6d29696c1b95b1ceae5641", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.0.tgz", + "integrity": "sha512-1/qN1+zuK/SrDod00uoC6V8Y/cJZt5zyWyMzJpbtdV7o3Tw7o7h8tbMH2So9Mi0RoH6cro2RApc+uKyQdeUrpA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGLhWwCHla6ixW7yDnxjy7CivwYOb4g95DkLLEgp6VbqAiAfKLoVJ7VxFp0j3Zz08huYRmjRdHR4AHQ3iNG7JkJlug==" + } + ] + }, + "directories": {} + }, + "0.1.1": { + "name": "ajv", + "version": "0.1.1", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "5fdf8ff720fb285f19372dddaffaff1c14dbdd89", + "_id": "ajv@0.1.1", + "_shasum": "2c1c0c523b933b665e36661e5563a812817c89c2", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2c1c0c523b933b665e36661e5563a812817c89c2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.1.tgz", + "integrity": "sha512-/f9bk16ytLKFy320I39pqAnU9EYkqwYeiyejWEGshd+kydqWRvCs3/HJy2Vs/dlP1NJAWN6jrlB4hINbtxaKFg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICq6w40+PIL87lDppyzWWa/lrNeHIecMjX7MeEtEVHQXAiEAsB4+0VLfTDAjr7+lWb+MXW9MdtqA6/WHZLLvZggqC/M=" + } + ] + }, + "directories": {} + }, + "0.1.2": { + "name": "ajv", + "version": "0.1.2", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "089ac03b1b82fdc527a1c3d7ee878cfe3b832137", + "_id": "ajv@0.1.2", + "_shasum": "0b79bc422e9f566b86f38e5e872d386546896a85", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "0b79bc422e9f566b86f38e5e872d386546896a85", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.2.tgz", + "integrity": "sha512-pe24mYIqtpWJj/Ck6gS/xGX336JQbc4t++Fw+7huryrCu4OfUA2/LBY5HDMA4CA5AphHyrdYbxFSMRPkmIGDZw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDlnATmdRE9NDk0/2cZnfwU1MbrIB5kWeMbUvMA7NosBwIhAND72S7fEiWhjk+MDwgVBmWpZUCYDAVEaJVTiRTVUxqZ" + } + ] + }, + "directories": {} + }, + "0.1.3": { + "name": "ajv", + "version": "0.1.3", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "46cf5f9930fc131a226a4f6d843d3d3474615bc9", + "_id": "ajv@0.1.3", + "_shasum": "36764f041954a1984f16cc65f0ed323dff896b55", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "36764f041954a1984f16cc65f0ed323dff896b55", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.3.tgz", + "integrity": "sha512-wjPbGNQpC5+0eewNqBgwkRKdSoqaXVh4NktZ6hlDwnUCNfuOxZWo4wXcJuIbBuSDR2s+z7i1SZBkKFqLbXHU8g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCzF2TgqSyCv5wERtkvSy+Gb3O9cgHGDtf19MIZLibdDAIhAK+TOCAR9dc7DrzP0UzM4K4d1Obr8FDsDBV6152lWMOf" + } + ] + }, + "directories": {} + }, + "0.1.4": { + "name": "ajv", + "version": "0.1.4", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "0021032091a88e057f341431f27eb77d47700fcd", + "_id": "ajv@0.1.4", + "_shasum": "a1fbc17647dad24a78a48afc38fbf8424e93e789", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "a1fbc17647dad24a78a48afc38fbf8424e93e789", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.4.tgz", + "integrity": "sha512-8F93AzSCspXRbwZfhRr+pCF7UD/+N/tgCmoVfWGxfxxmKvxejypCHtxA3jF7zj493c7SVzq0+LP5qU6g6fpWdA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFt0CLoETJzThJ11fNurJgs0jkSs1AKrSWdFNfuSNeFaAiAC/517o/hZr2D9jHjUv1mLBY8QrSDOv1SQvp3Vmu52cQ==" + } + ] + }, + "directories": {} + }, + "0.1.5": { + "name": "ajv", + "version": "0.1.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "mocha": "^2.2.5" + }, + "gitHead": "d784d95959c64330a207851ed2f0a50766c7d7f6", + "_id": "ajv@0.1.5", + "_shasum": "41be6f7b79bc2e60bd23a93386c9fd96f312e332", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "41be6f7b79bc2e60bd23a93386c9fd96f312e332", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.5.tgz", + "integrity": "sha512-X3KHgjJN/dhWk+JBWP1NhTZrbewDISnPCcq9oQft0aE2mId8TkANTZSxPPBIt3Rv448/8e+UClp5niNSeGVvwA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIG2btMV5xJ5eL+2hHiAU/AGj1SBkyyYUaD910AnV+ffWAiBQe4MQTgQ1ES5v0lTuxD1xvpqswdklGMiBrIpjM8Xyog==" + } + ] + }, + "directories": {} + }, + "0.1.6": { + "name": "ajv", + "version": "0.1.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "99bec2b8c4502b2ad664b58ac38d54265d483b2b", + "_id": "ajv@0.1.6", + "_shasum": "a9f8e95b0a5f5cbc1a26c480303b663d80cb83f1", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "a9f8e95b0a5f5cbc1a26c480303b663d80cb83f1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.6.tgz", + "integrity": "sha512-VvYU2xGXhWYC8hdDqhio17thxkTpZXpAxrLhUxjTfqcJC/q+Y9gw0h9yCc23nu5P8AVOkQz3XZiMKrRmt4YRYA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDwQplHDiFJzRrkOYoeCncRKpr1KQlAg9xjOu8nVHN3yAiA1Z3NW+KCpQM21Vb6OgLpWUZjKhxBzZQDFOZaZ7yYAPw==" + } + ] + }, + "directories": {} + }, + "0.1.7": { + "name": "ajv", + "version": "0.1.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "ddf192e17259364fb972882166e1ebd7c7959761", + "_id": "ajv@0.1.7", + "_shasum": "7e6838d21cb1e3ac75f73df851e672f92992a420", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "7e6838d21cb1e3ac75f73df851e672f92992a420", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.7.tgz", + "integrity": "sha512-vxItE1ehGZkwisML6iVFZLLnoH0S5F0BCeEeGiNnWUJ4k55brpZPkSfCOvU+iPGDzYS6Ooko+I4kUCVtMNFnaQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC8ala6KYkRHQUkeTXT1RIAH/lOAMYvGK827yM+YQ5xVAIgJP/DFBFy05bKWXjBRgldRtLscJJSR2c5f3ETY75cC9U=" + } + ] + }, + "directories": {} + }, + "0.1.8": { + "name": "ajv", + "version": "0.1.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "8f48bb13923636d7c7d179e0a71e7ab16d97bc20", + "_id": "ajv@0.1.8", + "_shasum": "90ffe13c988cf463e4f882fdd0cd305c8092187d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "90ffe13c988cf463e4f882fdd0cd305c8092187d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.8.tgz", + "integrity": "sha512-j7c6F4jvTQyhn2dpVp4G3delswiITOQzzoqzgYc/b4BuzcMDwPoDhhn08VsImWgNUTGn0XNOZeDArLSRYmUmVA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDuHgm2yVCR2IW1oLOKPAXU0TIgSfbKmpsZGWX6ZfPehwIhAOdY+hYsYpAnUCqQ93BqXWXjOphX5xFPyo9+4J5GmIgN" + } + ] + }, + "directories": {} + }, + "0.1.9": { + "name": "ajv", + "version": "0.1.9", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "ed4130f0317a72bebfad56042e63892d61e91623", + "_id": "ajv@0.1.9", + "_shasum": "e2368e97d7e8cee5e18a2a8477b4225748bfb53f", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "e2368e97d7e8cee5e18a2a8477b4225748bfb53f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.9.tgz", + "integrity": "sha512-ZRFRU4/OzxieWLaUseLkY0kZBePYLbqtACQoOnLiIemU1gPZFW/5BtZ39i0fL+D2gqbdIeNyzlwO9A8dANmSZg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCt8NULaCm7cjLVMXujoX+f04cnMJMr+rYIrRKdGhR0+gIgcngFBBegEYoDxvMikZSxVlVjKUF9cP/hhay1h7vHrPE=" + } + ] + }, + "directories": {} + }, + "0.1.10": { + "name": "ajv", + "version": "0.1.10", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "e7c3cb39aa7bdc91e202bc3568de982e0db7de6a", + "_id": "ajv@0.1.10", + "_shasum": "594152455cde16629da52c0180ff03f2e945ef97", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "594152455cde16629da52c0180ff03f2e945ef97", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.10.tgz", + "integrity": "sha512-6oAefkLI/qyOipQR13sekjPgL0zawzmkgdgtowkQk+3YhJEt9JHd2+1ShbfK7BEFVRCl2sb6Uwmw2M2ejfbP8Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHG287oKS9EtctLfSXS9lcy7S5O0ZKHOJOOeE5trteJzAiEAmeYPxmTABvMzUOyzDp1OVg3zZhKwoUd3L5qcTEPnWA0=" + } + ] + }, + "directories": {} + }, + "0.1.11": { + "name": "ajv", + "version": "0.1.11", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "3d58b95f562e1e885ed93bfff346a0ff5e623679", + "_id": "ajv@0.1.11", + "_shasum": "f884ca43885c44adbd9562ef331f4fb00b098ad0", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f884ca43885c44adbd9562ef331f4fb00b098ad0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.11.tgz", + "integrity": "sha512-OnOu3GpTML4Ggx0btqjwYKqwtmdOGJI17obVSzrKokMprdm7RkK7IBSoZ36P9RP0KK3xULCNLtl+rG62pzGwMg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCZcbg0X3vu3Pyfe0L6/8ZokemQlsWD4gn+0waawf84uQIgbuakNAU3a32M3bP1/3YXT37EAvUVTKcCHlwxhrjzxuk=" + } + ] + }, + "directories": {} + }, + "0.1.12": { + "name": "ajv", + "version": "0.1.12", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "4a54f9bb7361c77004d1b0c22f23204e6e24b213", + "_id": "ajv@0.1.12", + "_shasum": "007c63e295f7f820d6affef57de2c512749e27b8", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "007c63e295f7f820d6affef57de2c512749e27b8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.12.tgz", + "integrity": "sha512-dnZ6pp1BDC/pI8tc09klIAlKnigX9uBWLe204/3fukyPnhowcPhB0+zMBvF9++xAeR8xahJ/W3lcbdisAqpP3A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDdCf/ErXd6R8ke/CtdX0S0Hq04yJL9L1m7mwcetIhbFwIgb5RGRHZLw08kbEocqPzy4wzgVa4WkCbl/VeTlewIEGo=" + } + ] + }, + "directories": {} + }, + "0.1.13": { + "name": "ajv", + "version": "0.1.13", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "34a98e273a573f1b5f0a5948fcaaa788a2d5a5c3", + "_id": "ajv@0.1.13", + "_shasum": "2726615d782c6ec08ac8a73d87946e6527230477", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2726615d782c6ec08ac8a73d87946e6527230477", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.13.tgz", + "integrity": "sha512-MajVC3luUMVSJRkMkQBjoa+PYoAYMTHUDsS3MqN1Sn4pbkEYdSrgWa7domh2VFyI8tyIRBxRl9eAOupWnqnTKA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCBYQd9BkiKKkF/9JLlKTtjktRLvi1nbPNoPD8fYs79CQIhAIlLu67CBjIJQfUF9jXfn1I6pmSf72NBDzeVhYf2vhfs" + } + ] + }, + "directories": {} + }, + "0.1.14": { + "name": "ajv", + "version": "0.1.14", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "7b790a4b0feb7d0c8052175fe182176bba8c5cfc", + "_id": "ajv@0.1.14", + "_shasum": "2305806949c845668cf9986bc0724eb5c9f8fb92", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2305806949c845668cf9986bc0724eb5c9f8fb92", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.14.tgz", + "integrity": "sha512-uwoDWNTi2zUaZnx6o9dnlpIV132Mi/dp06EvR7vc++/jypWwWhd0yIegDwD1PU8sH1Ye0kyhWp/vEDLiT4857w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDV7UW0EgQKcFHl7p1+paL6qNLbd3HDDGMN/H6Kk8lIjwIhAMF8pX/i5M2bOqAJnQRuOUcjHq4kID6YcHFCSqH8Cjlj" + } + ] + }, + "directories": {} + }, + "0.1.15": { + "name": "ajv", + "version": "0.1.15", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "0832e55c4c62e44a0e1ebc0715f048fc7ba31afa", + "_id": "ajv@0.1.15", + "_shasum": "77eec6af77d45b3a5da04743fb67d7e987336044", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "77eec6af77d45b3a5da04743fb67d7e987336044", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.15.tgz", + "integrity": "sha512-BTphpcy/RmMmUir5x5ov1StWTCf07t6vYSHJSXDOqNaqUHKHSn1Occ7oDG0sG/9HfQoOhjVmlC08X8dcud8GzQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCLl9J9yCbf/zGZJQUYT4KuGsdTUjwj9vJOJLX29H+TcgIgGSk4IYqCMkDZILjcJRpPyIfF7OpyWPAabo2s3rqwAsE=" + } + ] + }, + "directories": {} + }, + "0.1.16": { + "name": "ajv", + "version": "0.1.16", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "c441624009e921832684e690e0658456a51ed0b6", + "_id": "ajv@0.1.16", + "_shasum": "6c7f39b60622f735abbde084b3b4d57f1119a2a9", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "6c7f39b60622f735abbde084b3b4d57f1119a2a9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.1.16.tgz", + "integrity": "sha512-vqQXyZEDIwOt6NB+gODUozeEtk63MfrwizU38lQGQOacUrzbFCxMv3OfxGVWyxoLdlptWmNU+GJtEJme0rG5Ug==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDG8Cv0+nM4QaGcN0Udv+TK7a36f2xAzpc6uF9gfYWMlAiEAideq4URLQHuMbzOv+uRt35pfoftZFHbj/P1abgaBHEM=" + } + ] + }, + "directories": {} + }, + "0.2.0": { + "name": "ajv", + "version": "0.2.0", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "62e0d23a0077d160285ed3f942f6b97c09fc9eb2", + "_id": "ajv@0.2.0", + "_shasum": "b9955a9456b7fea300c0e4a5a2850ad2327d3973", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b9955a9456b7fea300c0e4a5a2850ad2327d3973", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.0.tgz", + "integrity": "sha512-f8n74mq7DfSlsyrUIMhE/iOCSLctUiwaU7mTtFmzbOUhdEjJ1fI/OHWofaRK9agXfx+J1D1YhzWAgGO2AQPUnw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDgpiN33izUReNVQxnFrISBdzPCUgRnBgkte0ae77XvuwIhAI7+7yJRtKVlxrLQ4PHQhHAtOR75lYcF3RuuJ0uIlEQ2" + } + ] + }, + "directories": {} + }, + "0.2.1": { + "name": "ajv", + "version": "0.2.1", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "b9b9affcf437399db6117978eacbece0eed967a5", + "_id": "ajv@0.2.1", + "_shasum": "96f10b8ed0e413f93d46b15d24eea80d995dae4b", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "96f10b8ed0e413f93d46b15d24eea80d995dae4b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.1.tgz", + "integrity": "sha512-ZsxbFwcCssFqFGoTwHpvZg8kt5juJiFPmC7LqcGtSsCHb72y4RYWHaxIbYyu7nRSQ8RmOkbzr/+TwcsPrpvUmg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDymZW5cj9ipH7jdQZ+p9CRRb42HAd5jKdWBBHS6SK8BAiEA73F3OAd2EYTDMJuO1SII0ajxtfTIWfq6QF8ARyNwfUI=" + } + ] + }, + "directories": {} + }, + "0.2.2": { + "name": "ajv", + "version": "0.2.2", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "f47d821418a8a6006105d2602a6fe7d37a23aaa2", + "_id": "ajv@0.2.2", + "_shasum": "8aa98412de47b01eb989fd5a5cfbeeb2874466d2", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8aa98412de47b01eb989fd5a5cfbeeb2874466d2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.2.tgz", + "integrity": "sha512-2pmq4YWqN5yEhSUC6whVM5dnCiVXgSEde3eXOPurMmNnO5hAiD4opl2p7zwHKEQgZvc19yBvK6DNkluFjh4kjw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIG1Q6oiZ28Ga1RmSHUnkQQWSISl3wLOgu9W6pLDyXMuyAiBkQV1Lf08FfkqNLL7AaTEcEnqK9/MoG+OceWn/ttxjVQ==" + } + ] + }, + "directories": {} + }, + "0.2.3": { + "name": "ajv", + "version": "0.2.3", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "JSON-Schema-Test-Suite": "git+ssh://git@github.com/json-schema/JSON-Schema-Test-Suite.git", + "glob": "^5.0.10", + "mocha": "^2.2.5" + }, + "gitHead": "1a6e9c8d63aa69c17c190bef59573d78dbab1cb4", + "_id": "ajv@0.2.3", + "_shasum": "4269ec8baa110fe9f5d45e6d9e15636d4c77a73e", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "4269ec8baa110fe9f5d45e6d9e15636d4c77a73e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.3.tgz", + "integrity": "sha512-hpoirsLIZ8kw3OIV/JSZMVaKea7VUsLDl6wmkxoYPMVbMp8RuioPrPbKc7bNSnmQGVKOizXxUXQG80uS1JNPKg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCtCdFMeMZ3kRvKDTDwk83o7ITCTH/ZfixvMnL+6g4NtgIgFzWiUxD+7tG+JgJyj5PMrziu1gxskOIKbrx972kto9k=" + } + ] + }, + "directories": {} + }, + "0.2.4": { + "name": "ajv", + "version": "0.2.4", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { "glob": "^5.0.10", "mocha": "^2.2.5" }, + "gitHead": "38ff8565c8088aa5eb8956bc92655866486fb310", + "_id": "ajv@0.2.4", + "_shasum": "ee0069828424dc3ffa08c57237e98f8d1dc6938e", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ee0069828424dc3ffa08c57237e98f8d1dc6938e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.4.tgz", + "integrity": "sha512-AcCUp1XFs0mJEtizQCZ2HPTH03UHZzqDWW4LNnnIKZkMbU6tgYb+iHs+p/k+SdvwO984x3qOI4H5XKnMNGZhnQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCoOdav5mm5JQK/c0FhR9NX+Fmp2JVdbWYq45AB7BRhVwIhALpalUgoGbJ846k+7gfq3/6oodRbWZrMIr/Ls7kWpMN1" + } + ] + }, + "directories": {} + }, + "0.2.5": { + "name": "ajv", + "version": "0.2.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { "glob": "^5.0.10", "mocha": "^2.2.5" }, + "gitHead": "d0089f82e567a54bf06b29a304852ed3c5dc99df", + "_id": "ajv@0.2.5", + "_shasum": "0651458348692265779f550b190f3a5e81b55510", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "0651458348692265779f550b190f3a5e81b55510", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.5.tgz", + "integrity": "sha512-myemGBdByT53KubmprDnLLHIBKYS42xP2BuNEREmmqYObd7mCbty7BXJb+fXhYPh8g4kdWB2+rDGQWZOCHpfQg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDlFGlZM1+nqKcuQoCNZiGK4OgDzDJYi4G6++H6+IpW6AiBZ+Eq6/IICbCEce0hIB5ouJAwhq7cBcrjS/hlEx6e2YA==" + } + ] + }, + "directories": {} + }, + "0.2.6": { + "name": "ajv", + "version": "0.2.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { "glob": "^5.0.10", "mocha": "^2.2.5" }, + "gitHead": "808e2270f8b486d16a7c6e4499d05cb760b4d953", + "_id": "ajv@0.2.6", + "_shasum": "1f123c36e496b342f02cb4ecd34a6e1b05b281ce", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "1f123c36e496b342f02cb4ecd34a6e1b05b281ce", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.6.tgz", + "integrity": "sha512-mZS+eBUUaY9e9GSx7oFMCYbqpmlCEGoFuO/+WIoN6Jm2S8QfDoa//AqZzg8ykDarE/Q1USy2WzWDPIhaIGnqfg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHTTw1p+jJ/fBVigXsOkWn2Fl4J85uflCFh6prjjYlH2AiBv344psQbvwAIqQjuO3R0iUA9AcGT4gdRpAOFyxjdf9A==" + } + ] + }, + "directories": {} + }, + "0.2.7": { + "name": "ajv", + "version": "0.2.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "4db4008e2c13781ce74691b99a8035a3bb298732", + "_id": "ajv@0.2.7", + "_shasum": "611a22a669cb46d0acb12c03752650d65d895515", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "611a22a669cb46d0acb12c03752650d65d895515", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.7.tgz", + "integrity": "sha512-Mi8VL801CXxbIunAQHtbRJr3/bUc6+MCB5YW/YyXExYTT7YnQyY0dWAMC1G2/3pUkGdhbih1S5mSO5j+Djd+xg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCvVqkkCiMAtKT8ZbXy53BEzWz6ft+y+V9U0vRjVdwZuQIgMdehVR5IgvHTnepW1+oHTI7nSOFieDv/swqOINnotio=" + } + ] + }, + "directories": {} + }, + "0.2.8": { + "name": "ajv", + "version": "0.2.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "64b80cbfff4da5f062a75c8a58d0630541a8b20d", + "_id": "ajv@0.2.8", + "_shasum": "18a2ea749ef3341102e966f3767e93c98ea85f70", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "18a2ea749ef3341102e966f3767e93c98ea85f70", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.8.tgz", + "integrity": "sha512-nIlDMsFE8nUCUmPKZHbFWFtFqqV3Rsbjf4Sgqong4x1jqVXxbbcqQ7j7LbQQ7Wze+NcUSXzoxitQG3ECaPKUog==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDlEL72Nv0wxhONOH0jISpriX+utrsp+E/22G3j580HAAIhANltyssAi0QNCECRggWgu5Z+cQbfgFwPvzW7nLo1q5Bl" + } + ] + }, + "directories": {} + }, + "0.2.9": { + "name": "ajv", + "version": "0.2.9", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "fca4c778206c3be91143723443c86e042db0ce07", + "_id": "ajv@0.2.9", + "_shasum": "b1a5c39c1d509e976107b0bf137b83b3a6ca21af", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b1a5c39c1d509e976107b0bf137b83b3a6ca21af", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.2.9.tgz", + "integrity": "sha512-dgmu5kNr4NfZGMdeLsS7RSPxyChpgu5GhB4hOpUFwphEHC56hm/PJUXUx5lEODBF7xg4UaR5OUbvI4VDmlDL1A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDAhXBK1CJIve18Mi5UMBUnV+2N4FVqSYhJI+sRan5nvgIgaOMJ1Xw1wHh0gsOfybXzaO4POIYJPxUBh9M0zqh+k0E=" + } + ] + }, + "directories": {} + }, + "0.3.0": { + "name": "ajv", + "version": "0.3.0", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "606e81ad4bf918f68b97c15de240005f3230c466", + "_id": "ajv@0.3.0", + "_shasum": "f291a7bede43fe032cf3511b170be0e77025ce63", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f291a7bede43fe032cf3511b170be0e77025ce63", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.0.tgz", + "integrity": "sha512-EGIWoBdZcGYcq4cuaf0zp4TWE/YO8oifeRHTc3aAnFshT9NfZR41RfE1ZA0Zos1AF/CuPK1lrVnbPWMvZen2XA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIC0V73lR2us7vbpfgJpnK50EiejwDVxlNMsnXkKijULqAiEAnOTnQqbIZEUIN9B8+d8HocjperT+RpyBiXUFySgdUo0=" + } + ] + }, + "directories": {} + }, + "0.3.1": { + "name": "ajv", + "version": "0.3.1", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "d9cf3dad95709daaf33372163b3fd9913cc99649", + "_id": "ajv@0.3.1", + "_shasum": "d6b5e36f15b836bb80f0d3136ff29ea7ae40db4d", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d6b5e36f15b836bb80f0d3136ff29ea7ae40db4d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.1.tgz", + "integrity": "sha512-weYJPVg7rs7jP5vOJwqMoRI/rALWldCXBxcAK/S5ItRrcxBN4TRPKNFV02j2WCw09CSzOdEZzCQcbgZ6wPjnVQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICqqb9W8WK3XGolRWuCdfuGnvnhfDihasIYKQ/lQukcyAiBYuFJvXwxCY41KHVmrohqwM34BntG2q8EdaVag8hgV0Q==" + } + ] + }, + "directories": {} + }, + "0.3.2": { + "name": "ajv", + "version": "0.3.2", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "1d7c5549fe30088b21ba260dd58cd0a54b0e541e", + "_id": "ajv@0.3.2", + "_shasum": "c8cc0f1b26b5e804f4fc087332d2c17a76166b03", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c8cc0f1b26b5e804f4fc087332d2c17a76166b03", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.2.tgz", + "integrity": "sha512-qVdP8z08gH9PaSRKTNBHp6DejclcIyfsVIhK/cKDtBYpzf8NK0iCEx2+sJRt/KU3Coa6nz8lmFZQVLx2Ek8dyA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGAl3JRvkn1/qI1Y6DEzOeDzw45q6Wyr6wy/kMze95NqAiEAtM1dc7gamko5PsbFnFALTCzLbWDDoZVEl5ahOAsMK+M=" + } + ] + }, + "directories": {} + }, + "0.3.3": { + "name": "ajv", + "version": "0.3.3", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "b8f9cffda6d5ac28f59112edea737c5783310d27", + "_id": "ajv@0.3.3", + "_shasum": "830e64b8e2d1ca43a5962fb8c7df39ea880f0e5b", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "830e64b8e2d1ca43a5962fb8c7df39ea880f0e5b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.3.tgz", + "integrity": "sha512-4fg9hHRDY++Wg4Mkz2DDUAjoQ8C/DFyLuTj++nQcmtoCX+RW/n7Mn28IpGiwaT7VwqGtgk/h7I2NZTPTj/QhTg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFgW9F8DIMixDsAnVKUREm9wnOIw/kfpSb+a3KLPg8IyAiBuYnbHYgF7w3Fku8vcS1A5/5RGKKbAAu98haQNwCV5TQ==" + } + ] + }, + "directories": {} + }, + "0.3.4": { + "name": "ajv", + "version": "0.3.4", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "88e65a18003d135443795fca62bf445463b556f3", + "_id": "ajv@0.3.4", + "_shasum": "175ff5d8623aa70a6e6552b916f2dd3e51fd9a85", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "175ff5d8623aa70a6e6552b916f2dd3e51fd9a85", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.4.tgz", + "integrity": "sha512-CETpTXa+ID2lZ7YWv44lR1qsyRKeidbEYxwGag9DHoS+QZKdFBbe1pldywIBpMeFlXjwKqWO2x0X/Q5h3OrlpQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDVHXUosNdZiSPFaHn804I6GXmDxzroDqRo4SXM0VxdIgIgZQdWV8z0mmlhrx+GFjPcPMbY2cClGZ5hIgvE55zViF8=" + } + ] + }, + "directories": {} + }, + "0.3.5": { + "name": "ajv", + "version": "0.3.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "525a14a5903ab2a7d835980bef11d2db524f9297", + "_id": "ajv@0.3.5", + "_shasum": "b9a49b5b6accff4db66178e4b99d50b14f749ce3", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b9a49b5b6accff4db66178e4b99d50b14f749ce3", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.5.tgz", + "integrity": "sha512-kO0SsR1JRKQCMbe2oCJg737bes1+KdbWpuUV/B2+qNU5x7CL3cQWiUOh70Thznc/htmyzkSCR0j+D2RBxNMLBg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCF4+ZQqJtKYWLqEwUl/EGVdx8kcpI7E9fYbcDnp6VvNAIgZMCfKsAz38k3+AtUbcGfwDiUFxUd80d3eVceg5kJhSg=" + } + ] + }, + "directories": {} + }, + "0.3.6": { + "name": "ajv", + "version": "0.3.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "ea974ab48df95e88c9ff583e5d88bd7d0744d723", + "_id": "ajv@0.3.6", + "_shasum": "f47f03b82ab4e00a6893f515ef880beca3709aad", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f47f03b82ab4e00a6893f515ef880beca3709aad", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.6.tgz", + "integrity": "sha512-/3TlGY7tKFy6DnL+I2Sckig7fk8j9WbS3dE0BtZZmiPHZRpsGqyHtuBN+PTwJ4PoNtJcl0fWYJJ+WyUftQwXJw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCE9F6IpD7HPp9q3V+iaj6WTUPSbuJ2Jix1GLbxgAfWGgIhAJGi/H/ZSXlAPjLpME6OV6Ds2AdjYt7pT3Y7x7Q2UJzD" + } + ] + }, + "directories": {} + }, + "0.3.7": { + "name": "ajv", + "version": "0.3.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "0dfa95c01197da1d6f6d8a593f4a97784fa51183", + "_id": "ajv@0.3.7", + "_shasum": "64020b71c9ed1689eeeec1084c92a99970c6c7f4", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "64020b71c9ed1689eeeec1084c92a99970c6c7f4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.7.tgz", + "integrity": "sha512-QAvaSWYr3p8FOjxPDQkWe9BDmHXlM4LXvY9w+TZYyGytMz9RSp4w5SCwOT5IfcNSmhRmD09+ed24CTxso7UYnA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBLaXY3wW7UR4e/Bb+ZlafPVj9KOSOdHvajsAOaGkAKPAiB81oyxFRIqZqV6PZcOnGh82uzU6Yv++SKI6gAWy5vTqA==" + } + ] + }, + "directories": {} + }, + "0.3.8": { + "name": "ajv", + "version": "0.3.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "80b04dfc4ca9d4ed867008ed6d3549e0c711c642", + "_id": "ajv@0.3.8", + "_shasum": "02cec1102bf176e25843562a10fa3c9680a05f20", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "02cec1102bf176e25843562a10fa3c9680a05f20", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.8.tgz", + "integrity": "sha512-RtOC63HQ+1As5dGLgYxNrkKkyrpf7G7rKTl54dvfrfXq4gbVWCU1CJmbr/Do7/AtHN04VTcm2m6Yei4GcyDDyA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBWG/lUJCNR9PXo+OKXFUN30qLRPLk/QlQFPciH9oJtLAiAUIKFR3Alqm4JHh+ay7BPGHsoggI0LkPWEzwBX+C3s3Q==" + } + ] + }, + "directories": {} + }, + "0.3.11": { + "name": "ajv", + "version": "0.3.11", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "4bc538933d219e00722dc7f175383a1a80204393", + "_id": "ajv@0.3.11", + "_shasum": "d3c7fd53721ea7bf557ceefede56888ba976d60b", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d3c7fd53721ea7bf557ceefede56888ba976d60b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.11.tgz", + "integrity": "sha512-ppndMbDZ5qBZv6AmHAPD42v8X0YZc1j+/mULouCUA07jBhZANRkahStnxfnDGxC5sO0lHIjOuhkrpFZalguf4Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCmAxrVsZdAG+zs7lqu7hpOe+IC7wcKxB7YHUTqMzvwxQIgX54gLk8FJqP/NfV49BiCTp/CIJAC9Ob5n9KMjP2yjUQ=" + } + ] + }, + "directories": {} + }, + "0.3.12": { + "name": "ajv", + "version": "0.3.12", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "db3ec5d51ef7190947cc6248a23f44229d100dc1", + "_id": "ajv@0.3.12", + "_shasum": "8c2717c93f6cf044ee7bcfd53ba4c212916b1610", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8c2717c93f6cf044ee7bcfd53ba4c212916b1610", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.3.12.tgz", + "integrity": "sha512-lJIIK+9xkFjhVpb2xmHhtdbI8ONmhM34cM21xFxTHVO6YhSVIQFBgTIZNxxnB++kwzL85uOqXMFzLzlXj/i7Lw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICceK8KT7Njkg4HEDBi8M+SDYxFE7bcx9ANZBKSM3QuRAiAAoD407sNGPSEM1zVlMx6XhhAAv3o7B1NLR6o3DnNRFA==" + } + ] + }, + "directories": {} + }, + "0.4.0": { + "name": "ajv", + "version": "0.4.0", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "0b3806fd18bd1bc30725865502224382264b4702", + "_id": "ajv@0.4.0", + "_shasum": "0065f6b0d7c569fb48e00394e3a6ae11b9044b2a", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "0065f6b0d7c569fb48e00394e3a6ae11b9044b2a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.0.tgz", + "integrity": "sha512-gjET86IB2HqTZKSTb+LWqzRbtvm7ndZxjayTimYQFIzOkD9Lq14mjgzRKQEoVCqbd3B3rZFVKUhDbp6v+4gf7g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDqZfoOjA8jV+G28j+US8HxPApLzudTkoEv7IJux1zNiQIhALPsKP+WMe7qGGpJ9ULekCU3ptAAIXYwAihEsBO3fdl9" + } + ] + }, + "directories": {} + }, + "0.4.1": { + "name": "ajv", + "version": "0.4.1", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "60b186402f0a4c33bc4fc4684c05892d54334e43", + "_id": "ajv@0.4.1", + "_shasum": "04d5be7d0d87523fc5c14431e6c95561b9798e0c", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "04d5be7d0d87523fc5c14431e6c95561b9798e0c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.1.tgz", + "integrity": "sha512-9W9+xRL42fLB2wHr8VF15Brm9Y1/pcxX+GWRuLHclaRGWtH8BRcCu28+ihyLr2f4X+ZyN0H34krtDcQnUPL25g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICq3Too4xxdXxljFmuWpfZIL93ZePiL9KL0OQ2MmDtesAiA7/KCbrCZLG4P2QrpxaptMf9ofECV0qKKI2vjCPTyChQ==" + } + ] + }, + "directories": {} + }, + "0.4.2": { + "name": "ajv", + "version": "0.4.2", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "e3a692f602d474d3ef8e22b8607306c9556fce13", + "_id": "ajv@0.4.2", + "_shasum": "8a6ff37adcf656095096c2f5485ee90a76dbf346", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8a6ff37adcf656095096c2f5485ee90a76dbf346", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.2.tgz", + "integrity": "sha512-GplUED64pnv/xOUzGTAy0anxnMFnqdKkvQF2xaq29eYfUFAK6QR8OKGOac1tKIAiIMnLN5pdMjXesj93fnjQ+A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIC7K3f3lpeJ3l6obsMBgF/+0hO+WnLUS1Y2yPgSRS97rAiEAv6Sh+oNnP31NKfbKWelrmP1yC3dfgMrboYjwjJhYYsY=" + } + ] + }, + "directories": {} + }, + "0.4.3": { + "name": "ajv", + "version": "0.4.3", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "31c7d22c8b0611857302118999bf316db034dd39", + "_id": "ajv@0.4.3", + "_shasum": "e9d2b45a67458a7acfec0932fd1c9119d8ddfb38", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "e9d2b45a67458a7acfec0932fd1c9119d8ddfb38", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.3.tgz", + "integrity": "sha512-I51rn7P4VuQdcCHiFeL8fi4n4PKGPZDdyFs6iOor3vhwssGjPByVTznlKo7cWipn7s7jG3vLeWqt2zPE5effcQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDYY1xQugrAubajO18X0FKf1CYik4ydRP0/h3rMcgx4eQIgLlcT0Bl+r2TErs8Rr1MJ4tiZdjT+kpREyuwnA4Q0Z5Q=" + } + ] + }, + "directories": {} + }, + "0.4.4": { + "name": "ajv", + "version": "0.4.4", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "9dfa073e2822e65193a3bbcc78e69bb13385a43e", + "_id": "ajv@0.4.4", + "_shasum": "ffcc8fe0756a2b5ce679d8fbf2776015bbe1a460", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ffcc8fe0756a2b5ce679d8fbf2776015bbe1a460", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.4.tgz", + "integrity": "sha512-1iGjl/uTGz1HrjNQ3t6m2sX7BfY14NO0iGE0U52uXSdVqs4SLxZGDm8JgklQGiT4wukyW9djOjBkjfBXRuKbpQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDHIMkbMO/rdVxOMwZ89ihi6r33Hr3spOmexCmwvD61jQIgIHR0cxIvQzTdO2bbQ2gmWe76RyAu3Vas+SVPG3AAPNw=" + } + ] + }, + "directories": {} + }, + "0.4.5": { + "name": "ajv", + "version": "0.4.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "13e4f251cc3d3e4909910fbd59600922e38a80d0", + "_id": "ajv@0.4.5", + "_shasum": "9f67c9c1249d072af62199911c419b2f1cca823f", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "9f67c9c1249d072af62199911c419b2f1cca823f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.5.tgz", + "integrity": "sha512-jWGn1NGGcmX7v8E3hizL1Gu1+NOP+0at7L3eIPWZKGx0mPHcj4dKaWE1QnbyDpSAoA4xZB3abT2HmqeZHo3Htw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIE/fZilGROWr7S3GOczH3cuwjdRMayEDh9XDfBKp95TAAiANb8Fgb1I1DqHE12snT0F3NN093xB00Z+J/IrYO3XseA==" + } + ] + }, + "directories": {} + }, + "0.4.6": { + "name": "ajv", + "version": "0.4.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "106826146ef351befb48e8709ba4a951dba53ba5", + "_id": "ajv@0.4.6", + "_shasum": "88151e677cbd8ce4700a8a64f1ba34589536e023", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "88151e677cbd8ce4700a8a64f1ba34589536e023", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.6.tgz", + "integrity": "sha512-DY9YG25bIU91MOkxO3cpMyJx9rWjohOQm+O3LsWar1odZYWzmpl267iCW/4ozYQ+5wFy25YdlU5WsX6qQ9CNcQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCMjCqgkLhAOoWVMIDfK63l64jjeIIJBt023fQOZiKYgAIgR7fZdb2WAwGBi2QaoIQurqnw33zc+CPl3lLKqFecfLI=" + } + ] + }, + "directories": {} + }, + "0.4.7": { + "name": "ajv", + "version": "0.4.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "5582e13c1d704a42d55d4cc2434d79e615d119b1", + "_id": "ajv@0.4.7", + "_shasum": "668cc5563cbac6a687f58b2efd35f96f4d72bc41", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "668cc5563cbac6a687f58b2efd35f96f4d72bc41", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.7.tgz", + "integrity": "sha512-KbWyTM+goBV4rVuPck100SNVvDx2JJ7XRAbzw1zK+WHcVDaGD9X0mEstWIFuk5oUvrk3g92bQribbyF8eJLUvA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFg5LcUsLqqENxs+OangQCmiSZSFHl/FGl8hJza+nMPcAiAwS8hVvynbczqK8WTFFCLiLNM+SdamkBQulZrXYZoxdg==" + } + ] + }, + "directories": {} + }, + "0.4.8": { + "name": "ajv", + "version": "0.4.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "993e2a73d7d360b538ac20c7770fa445ebcc328d", + "_id": "ajv@0.4.8", + "_shasum": "f8b9a1892c75e4c89c7e167eb3376141f212ec0d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f8b9a1892c75e4c89c7e167eb3376141f212ec0d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.8.tgz", + "integrity": "sha512-QJF7/9iSECD0z+HyeV7BWfLUtvStEU8OKSqZH8YLSrI2+VWmJnNOJjMPNNLYwF05EHUtkLX5AIOgCzCwHBM8jA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDtfB2nP+N2k5EKc0IKHy4E1tHZ8IPM6SFWo9+RA2nhaAiBOlQozznms1cCVL6p4Gn9uxpS7NN2A5b6XCu1eAIb7vA==" + } + ] + }, + "directories": {} + }, + "0.4.9": { + "name": "ajv", + "version": "0.4.9", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "536d958cf18f4b5c33ed5a12ea66626e6b058ec2", + "_id": "ajv@0.4.9", + "_shasum": "fdeb463d3b11948f096a261ba746fec9b812c4f1", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "fdeb463d3b11948f096a261ba746fec9b812c4f1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.9.tgz", + "integrity": "sha512-nyihgsypVykDnxctgM8cag3IEsdD8zA+PpRkQL+AY9RhlogqOgEYrENxzUd2LZO5qjXof8wdQnm9GIKl92hVMA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHGYUZGXzn4zc3rnD2jy8cCiYWs6ZVIB+2GQ2z4klQ1BAiEA/HI7s99Din2gYEXryUhWP0dUmPsYsIxXWcMC9OKTjg4=" + } + ] + }, + "directories": {} + }, + "0.4.10": { + "name": "ajv", + "version": "0.4.10", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "1f682b5971a369a1be4b1adfa47e1de9f1c50de9", + "_id": "ajv@0.4.10", + "_shasum": "b1734c9ef70e39c618f69520294dea19e690dc18", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b1734c9ef70e39c618f69520294dea19e690dc18", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.10.tgz", + "integrity": "sha512-cpGCkedEIWi0MFl+MHRqsscCoggHlWso8URiPUluwoKCi8NNIdmtc1ZxtgWqnUXDY/wH+13VkXYEC9gNYBCk6g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGFoWsIDaYzbxIt2E3cMiNrZNz9QXXLPIOER6pYDPxmBAiEAx0ZIlMPqX1eV8rs73gkmC0EgVSkQYdilUawuT/mgfAQ=" + } + ] + }, + "directories": {} + }, + "0.4.12": { + "name": "ajv", + "version": "0.4.12", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "058fcfb5cb0ea951d0bed8aa015bee32f6d0b0df", + "_id": "ajv@0.4.12", + "_shasum": "4e5d10eec6d2beeec87f81976bd80f6765437fd2", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "4e5d10eec6d2beeec87f81976bd80f6765437fd2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.12.tgz", + "integrity": "sha512-f0H7PAES7pXS3WwpD+oLkDzrs1yNRcOUQB919ifzFylo9puKUMZc9zpfrk8eMZUerDe2HAgPDcwFbVVStsilpw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDDOCK3ivwVgOLFB+/Zk3Aj66qoPdAd7SSKteEc/+LtUAiEAglsEupPINj94mgszOGfpoeA00Vikj2JBGg99VobJqFg=" + } + ] + }, + "directories": {} + }, + "0.4.14": { + "name": "ajv", + "version": "0.4.14", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "0576ea986e1213bf025f646b6a7bfd3232b4f47a", + "_id": "ajv@0.4.14", + "_shasum": "add519fe135be3fe34677292938573c1b4270344", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "add519fe135be3fe34677292938573c1b4270344", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.14.tgz", + "integrity": "sha512-Kg4PdZky4tIeeVMbhBC+6tRBRV/mOWAKtNy9xPZSH6TXPccMnzF3tOTPWgO3Vs6iuuKQoRn+sYEcp8MzH8Dckw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIH9BttISHzcT+NUr93JST2yO7Y3Y8J60i1MmQMRwDt1mAiEAwvJ3UI5pmauthiDjhg5v3+7u2BGadf3KSfR1wlgUQ6Y=" + } + ] + }, + "directories": {} + }, + "0.4.15": { + "name": "ajv", + "version": "0.4.15", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "08c8032fe1f7069642f6603fd376e6c8aae98f66", + "_id": "ajv@0.4.15", + "_shasum": "bb3e61a8dedf1d07c93b5ffe031c81e95fa48569", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "bb3e61a8dedf1d07c93b5ffe031c81e95fa48569", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.4.15.tgz", + "integrity": "sha512-9Ikbhk/hbThKYtkZwnUrgc0Rf1mni94JrJG9Fzbt0aOpuAleYPvEIemYy4mdGvJRj7v8ir0E9rcG3s45ooEkmQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICpk8h2wUPAJ6ORYQ0SXDdJqTz7xIH5FyZajx281Nx1tAiBdcjFvNR9v5ywPcrMxvibJyS3dU73UIVrYKdYn099m7A==" + } + ] + }, + "directories": {} + }, + "0.5.0": { + "name": "ajv", + "version": "0.5.0", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "dot": "^1.0.3", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5" + }, + "gitHead": "5b434b426e27953bb82819c3a0037c41e5532fea", + "_id": "ajv@0.5.0", + "_shasum": "3b8ca1bbc48841d375317c05bebd1f7c332dcc2d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "3b8ca1bbc48841d375317c05bebd1f7c332dcc2d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.0.tgz", + "integrity": "sha512-LjDSJuRkLe6e6nazOqOb6+FQJqs11tXO8YbyQcI8s8JTPovt19OnJrPLLcGjHbQkUs0RNH/LWh/iGsv3Q4L+LA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIE/YS8sXPX1RgwiRpBSEsZ9FiTXxiFsof9I41UgtOV/YAiBP4novfQPHZO1mtWzubGxaV/HcOwfRhV2crkmFspCnlw==" + } + ] + }, + "directories": {} + }, + "0.5.2": { + "name": "ajv", + "version": "0.5.2", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "9931223dd9434f4dd75b73bd990d7104bcc78cdd", + "_id": "ajv@0.5.2", + "_shasum": "adb697af8aded8912dd619900d8291135cb111b4", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "adb697af8aded8912dd619900d8291135cb111b4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.2.tgz", + "integrity": "sha512-d4tiy7mbLphnjjLnLMyZLrE029HtMF0NXPBjpCNQEL3Z5EwLFQ90dXE/vw27AwyDp/vgN7JsP1gGWMVNfTRgdQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDWX2XME5NmvLHmgdmrOFyIgV5qlHBFVo1aUfcfz8X9XAIgXTM6JMd7fKskH7fIHqb36iPI/HLVI/xBh43b+lNUD1w=" + } + ] + }, + "directories": {} + }, + "0.5.3": { + "name": "ajv", + "version": "0.5.3", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "2ae8c89708e877c86ff32c1291278f217552a594", + "_id": "ajv@0.5.3", + "_shasum": "8f1cbcac7e0d17b6c422a5f33cff10b4df671e8b", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8f1cbcac7e0d17b6c422a5f33cff10b4df671e8b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.3.tgz", + "integrity": "sha512-jFpt95OdWgrZ9GHlS+ZWpgwZ4u4n4dKSTVYAwSTNb1uJMvCXrR/XKac2LPKzE2FbQHQJrTe9PlLoaN2FglFQUg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFU+gfKIxiOcymesrtzCIMsIYaSASdwc7fUYp57ADbT8AiAA1o3z50NNTo+2iArOR2KIgQ+563pQhCauOivAzTDrXw==" + } + ] + }, + "directories": {} + }, + "0.5.4": { + "name": "ajv", + "version": "0.5.4", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "5b2ba08813c2d67cc8b8abe18b4d6cc1f9b5e862", + "_id": "ajv@0.5.4", + "_shasum": "ebb3ef86ee158cf518e3d8b2a198a7c890ce3b7d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ebb3ef86ee158cf518e3d8b2a198a7c890ce3b7d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.4.tgz", + "integrity": "sha512-jUfmoNbX7ifYA4IVyoGoDjw8zmkn7TamCg3uXysgqIkvxcouEZtXJzscjlr57q43eAWwns6URrz4iAiup27ApA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBYupmOUv66foJrUrPkgWPntt/c04dE6AwiSHYp6IxAoAiBqRo3szBsIjPlQ91ojouyn/6C2DpxQLFq2/sTNdY94gQ==" + } + ] + }, + "directories": {} + }, + "0.5.5": { + "name": "ajv", + "version": "0.5.5", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "46812e0ac6b58168ad8bf029e556fd767e1ddf34", + "_id": "ajv@0.5.5", + "_shasum": "cf0bebd534567976e43f3f003abfa171965afd21", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "cf0bebd534567976e43f3f003abfa171965afd21", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.5.tgz", + "integrity": "sha512-QERWrNy5TFi24XroeB2Vp/cFREu5FEp6oNClCSNBbaf4GhhEF7zczQDQ+zZLHjw4K7i5Ovt4srwUcUhYjuwu1Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHSfB/uISDuJYROm+NPEQScdNX5/TkdBa/P1CcvthdeTAiBp0DjjpYEuN7QYtD2vRsPxQCDbx6nV9WegLQvrMwuUgA==" + } + ] + }, + "directories": {} + }, + "0.5.6": { + "name": "ajv", + "version": "0.5.6", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "4e1f0e54c44f2fe5d3adf1111f3a5c169556e70d", + "_id": "ajv@0.5.6", + "_shasum": "18af2e496e41929f8e82d542904666573879025c", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "18af2e496e41929f8e82d542904666573879025c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.6.tgz", + "integrity": "sha512-6N/Nthl8Dzb+OwNHpJf42Ir8c9wnYuVOnGWAG/nEf7jnX6iMb16LfaVVmW9OMrRrlnR0mJ01wCZwatwZA2b1eQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICmc6V6muhgdnnxBxUEuFJvLSZxqmuaaWEucsKd9Wa2yAiEAvlNJXZt+BUqL03ZpJTL1cOKaphKMnOj2biZi5aZkKxg=" + } + ] + }, + "directories": {} + }, + "0.5.7": { + "name": "ajv", + "version": "0.5.7", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "2368b95d5678d1d17db9a4a4818dae1de32284c3", + "_id": "ajv@0.5.7", + "_shasum": "ed4b476e58114cc42e24d3c2521832b5de35447d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ed4b476e58114cc42e24d3c2521832b5de35447d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.7.tgz", + "integrity": "sha512-dpvV14vskjsxMVr4LWCZi81XS5QUk+elCJ0gYqGPhmio4bxeUtsCj6D4WOyFPw9LMILGLi6mK7t/vd3xUqY6sA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCwU0jo89YKVkprdOyc/uKuKXsU8MpLKFdy5+10sIRR7wIhAKPfKj6H216eTmaQ9P1oc1E4cRM5tZnRfYFixkqbcY7t" + } + ] + }, + "directories": {} + }, + "0.5.8": { + "name": "ajv", + "version": "0.5.8", + "description": "Another JSON schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "b16989f779e3dc318d2c44611e168e44a0dc900c", + "_id": "ajv@0.5.8", + "_shasum": "0b3f93b6fd9eab90543ba9fdd5ebdfb505cfbb22", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "0b3f93b6fd9eab90543ba9fdd5ebdfb505cfbb22", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.8.tgz", + "integrity": "sha512-pPdpPTDmdDUsLGjSGhJ9217LaV1u36bCKIUT6zXSDTUbj+KcMCV8sNCZhtRww2bT449mRIEZB/xEgmU4y9mhNQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGOqVY+b7tsWJKNFnczlTH5ZSqzWM82C4Lvb8Dd6Nny4AiBNsaZ0UabbrgH6/HJ2anyAI+KgjqSERhsBzBVG0jbbbA==" + } + ] + }, + "directories": {} + }, + "0.5.9": { + "name": "ajv", + "version": "0.5.9", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "a97e6740e7b34acf59a5e0650fc4ffc8f697ced5", + "_id": "ajv@0.5.9", + "_shasum": "cf1ab553ee6b0909cd1bef6ec04da9c407e96f10", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "cf1ab553ee6b0909cd1bef6ec04da9c407e96f10", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.9.tgz", + "integrity": "sha512-NgcMIVmrgcQ18uoc5kdEuLNEOtd9gnI0156bn/9QEUoZWZb4UGhBQ3Kzg3VKlM73WeRPceyzw0YcyzvjTVz+BQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCdmmlpQZvApZtEd6rTQCIlW41nO6uSbpzX+oHPLDtrdwIhAJg5ikqLKQv7h13UVPXEPExoez5mMy4bnqZjO/LYlbzg" + } + ] + }, + "directories": {} + }, + "0.5.10": { + "name": "ajv", + "version": "0.5.10", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "853ed64bf95157711c1592dbb275da4d4995c695", + "_id": "ajv@0.5.10", + "_shasum": "1654f77126ea70611f2795dbda0a2cd70fd80676", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "1654f77126ea70611f2795dbda0a2cd70fd80676", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.10.tgz", + "integrity": "sha512-I73ztnAN/7bD0WovCrhMxv3Jypu/epIEjj2tglivJjxoj6R/mDrDqcTULRvvVnnu5rVmCJk249n8cUuQs+FLEA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCDvQw2Cjb08/qBedWX2plLGsqGWHWhZok5EIFbYT9HwQIgAyVu+tp9XjFZoMMN4VRGyVsb9LPBHUZNSg+nz/eqh5Y=" + } + ] + }, + "directories": {} + }, + "0.5.11": { + "name": "ajv", + "version": "0.5.11", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "391d60482c09193fe78060c67b24409038b78fcb", + "_id": "ajv@0.5.11", + "_shasum": "7e960255239d153731b71e28704a0c8041ec2f3f", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "7e960255239d153731b71e28704a0c8041ec2f3f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.11.tgz", + "integrity": "sha512-pw1kpvEdjAUw4XxEm5AvtI/rtWVPcEo+Lt/Y83trh3kZfym7NjNQCypCW3jHs4wUAxdZjsVq3vrG4Nmk4izv4g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCM1EA69/6xcja739jUAZqdru15CQ1733RCxrVG1UMsJAIhAJmDOk0lygLJE7u3Rn/ODgxlyfrYxpm+pghdu8bTi/QJ" + } + ] + }, + "directories": {} + }, + "0.5.12": { + "name": "ajv", + "version": "0.5.12", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "0ccf7e73f1f8ff8154f4c9e625761e27faca80c1", + "_id": "ajv@0.5.12", + "_shasum": "97fb8276bd7922d75a435574cca1639487796358", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "97fb8276bd7922d75a435574cca1639487796358", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.5.12.tgz", + "integrity": "sha512-/LrdmFm2uz2PQQxlKzcWG/yashHLRxx8LEeYrMbVZIHIY5NFkKG4whEiikfW60549Hs8n9lvpw8S2u1YGCBPjg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHTsDmshdm4FO7rkranTsFoayyRovYziy1r/s9aagVWGAiAMASlF80q7G5YNDyRlQcqMaQlCxmBv9CdZNq7sy3HqdQ==" + } + ] + }, + "directories": {} + }, + "0.6.0": { + "name": "ajv", + "version": "0.6.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "1cbcade81f4ad8a532367e105a48899911eec15f", + "_id": "ajv@0.6.0", + "_shasum": "ec55c262ad9b00c2f3767f7e5d1a6f4240b37b4d", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ec55c262ad9b00c2f3767f7e5d1a6f4240b37b4d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.0.tgz", + "integrity": "sha512-zF1k3GIy6UgcFJvIMl62aPbM6VtM/KiGhUJWPF1DdTbmvflJ+EVVh4/g625wX7dY7lmUZNaIqbUvr9JXSjulnw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCGCfCE2Xfl8nhNDt6UOPJ853khntJXouh/G05SJvsqGgIhAO5uSFY3iezMlTlSaxxA/a57QjhHCWMEQikSrN0pLW5m" + } + ] + }, + "directories": {} + }, + "0.6.1": { + "name": "ajv", + "version": "0.6.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "5416eaf86de51bd0991a88dd67a22ae78e9fde9e", + "_id": "ajv@0.6.1", + "_shasum": "a8f0928c36da5f851a0f483b62e486d4c055c3d3", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "a8f0928c36da5f851a0f483b62e486d4c055c3d3", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.1.tgz", + "integrity": "sha512-JyTHAbf98kgAt1QaP8A4exiuYbzhWt8CMSGwdpuGQXqPzKMCy6uG5o9+GLEgXEjbcfaW0ykN/QrS812zn0Q7nw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC3Y8J03ZKZ0VIMPqCjvHAAxiuMmK5iknaCQxklHHUmiAIgYkZPTnpNzHYNbZXYhHAi2QQ+6EqfrRDLcxUNlfWyqqM=" + } + ] + }, + "directories": {} + }, + "0.6.2": { + "name": "ajv", + "version": "0.6.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "af46a384289d419d76828506cc6b0344a718961d", + "_id": "ajv@0.6.2", + "_shasum": "1e480465a26f894b1c6ffe40e54f9233d8e6c022", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "1e480465a26f894b1c6ffe40e54f9233d8e6c022", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.2.tgz", + "integrity": "sha512-OxnpwHkCawb4N4z/pk1E6bsgiRyWoF/8ulZf20ruYIN+v4piuulyd/4b0I8zJ4Eh4ScxmKt/l2G9djiv77eFSg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCTIPmahZNs9J9nxX6YTWREKOO/OGV5cWGT/q0pLJDcrwIhAPDmwSNLtq/sAQrMmfvnRtuMTDTfcpBgw/wDJpKfqfJE" + } + ] + }, + "directories": {} + }, + "0.6.3": { + "name": "ajv", + "version": "0.6.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "8db1dd6dff1cef86c7e648354e70c3579632d6a1", + "_id": "ajv@0.6.3", + "_shasum": "054def33682288282e3ad718ad39b5df1992c75c", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "054def33682288282e3ad718ad39b5df1992c75c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.3.tgz", + "integrity": "sha512-FvChaOtQx4xm3d0wR3ehmwoPcS2EQdktxh2NDRs+87vK9YELwEHrZr4AUeXLL7KqQ+4OUSmFn89Cxu4OmYb7NQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDTbJhY5INUoIbn7wBc2S99lyMCWV9NQW1iPpdQPMc88gIgJMsuUzU1WB+BOVV3sUHCI3O2fNTQFioSTzce1v/nxSc=" + } + ] + }, + "directories": {} + }, + "0.6.4": { + "name": "ajv", + "version": "0.6.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "32ee26ec94231484e6995dacc5000c766f6bac7c", + "_id": "ajv@0.6.4", + "_shasum": "f6e85ba26c1a1166bb6519ccd7b0b26a1d879169", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f6e85ba26c1a1166bb6519ccd7b0b26a1d879169", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.4.tgz", + "integrity": "sha512-h+6Idtop5yHd3nZ3h3tIcQrb4EYZvWQX59ESGF7eGZG5yDApRopoYkvIyLCTw/GU8s+oavuoG4Ny3zkBb4SlYg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDZ7WMu0A8q+bkbwL/mg7BrX5tQrrNS0adu8fKxEHgEtQIhAMIWXgRibmKVromCGZPRLaKRHHGW8oj8cT5KL3ewHGlg" + } + ] + }, + "directories": {} + }, + "0.6.5": { + "name": "ajv", + "version": "0.6.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "a2d2705ec94f1b372514474a3cde398f2d3f57b1", + "_id": "ajv@0.6.5", + "_shasum": "5e6ddd5df6c8c680889dbba70b8b9bebe5e90c79", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "5e6ddd5df6c8c680889dbba70b8b9bebe5e90c79", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.5.tgz", + "integrity": "sha512-BF3Qt77HivXqZkpu+73/nDhZN1jVVd2y8zDgtFpLhRYi/e5mV4Hm4wbHa43L6lz38MJD6FJQu+vOxtxq1gsMLA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIB+OqmzEgwngoPgLJldhRBsx+XlWNAhtLtLjrSCv4rFrAiEA4v2lqWyyeX1FiG3a6+ilGL9daKVUnK8YMPTQU+jd43w=" + } + ] + }, + "directories": {} + }, + "0.6.6": { + "name": "ajv", + "version": "0.6.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "a394d88ce3fe0f89c711bfce61424f1430d36d5f", + "_id": "ajv@0.6.6", + "_shasum": "1f3483f9e33be6ad28a6e493865bbe8e3e5c643b", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "1f3483f9e33be6ad28a6e493865bbe8e3e5c643b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.6.tgz", + "integrity": "sha512-lvPhMKJbt+B6IkgJyO5+Qvq03korlgV+8pu84e3d9cC6rxBBPjaZmWCIfBu86PMelauO6XCCDlfCJJ4xBK2Zpw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFPAQabMcszYgLM9bxpJCxhTMi6jXuSDmtggkdZ3FcblAiBRjqq/RqA+ffUWLoJxVy0lXsUV67Bze4cn2zoAxhu2nw==" + } + ] + }, + "directories": {} + }, + "0.6.7": { + "name": "ajv", + "version": "0.6.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.0.3", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "6c93d0346dcc1d5b1334f23be9440ad72062f8bc", + "_id": "ajv@0.6.7", + "_shasum": "651d5bd79b8362b6777fefcb8c9991e609cee390", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "651d5bd79b8362b6777fefcb8c9991e609cee390", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.7.tgz", + "integrity": "sha512-CTf/wgQGAK8p4fYHqVbBC/aQ8NXDYm3nLCFgnASqoAzPjlue6tsYYPZLXh4Hmtz6HNAz7fxionDy8Lt+HYo7Pw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGBcKeCESRACPHuBxmitBeetlWNp9i9q6eAebiwWruXSAiEAuFe1av/Vs41H4IrZ0c1tCjiTYz+ixb1GLXEBgrsgVeU=" + } + ] + }, + "directories": {} + }, + "0.6.8": { + "name": "ajv", + "version": "0.6.8", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "watch": "^0.16.0" + }, + "gitHead": "6b9bc9e464f75cbf6541893df95d05c3d7fe251e", + "_id": "ajv@0.6.8", + "_shasum": "0bd5fa2537d99920aed01ae60e001242a7932683", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "0bd5fa2537d99920aed01ae60e001242a7932683", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.8.tgz", + "integrity": "sha512-hQswXpYTksKEp4d+oxwdLtu7hOv7TP/5aJyE26ZpkGMk8vZVuRvWLsPE3LDiwC/IluZHAGNSuF3IEyluLhSWJQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC6ZS3tXu9Av9FttAUoOGy5OmDdHNcfJJtxhsB6S4ppVgIhAIJyJC0rr7jZ5dKmHDoATRVf/qukIXOphjCremthCbME" + } + ] + }, + "directories": {} + }, + "0.6.9": { + "name": "ajv", + "version": "0.6.9", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "a7886e31e2b0420c88098ed966500e15f82b7bb9", + "_id": "ajv@0.6.9", + "_shasum": "b7b97126701713983c30cf9828626b760df5cd3b", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b7b97126701713983c30cf9828626b760df5cd3b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.9.tgz", + "integrity": "sha512-qIN4CMHoZKpkgl3uTnt6UxIlf7CNq1EIG2Eh/aDE+4Y2fLT6AZOd1xQrgbEmKNtNjt0ffZMYAkXlcVYBv4WiwA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD8+NkUnj51e3i0UCt1zIJ0yEJ9vKnV9qobpwNT99frVgIhAP4mJpLCtJnyBC1O+mAsBlzJ3rB4BCGPPuZLDRnXdGqL" + } + ] + }, + "directories": {} + }, + "0.6.10": { + "name": "ajv", + "version": "0.6.10", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "23bf0ac5fb5ea38a71ac0e06dbfa63777d74e757", + "_id": "ajv@0.6.10", + "_shasum": "b4a414d3225840e8e0773df29869fae2768b7599", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b4a414d3225840e8e0773df29869fae2768b7599", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.10.tgz", + "integrity": "sha512-YD2zg5zhz9aqKFwp/syg5R6TSIniExU5GnIuBTfCBt0MX/tOXlCs5dt12GktWPg9QVa/A/+9F+w2AKENGa210g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDIW0GQ9xa4Ijul8rGhaLpmIrKK/dPcUnOPo5suxZUTlAIhAOMWdN6IxA4rVpC/KW63wuUY1fypCjkg6etWH4AUxSwa" + } + ] + }, + "directories": {} + }, + "0.6.11": { + "name": "ajv", + "version": "0.6.11", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "62adbbe1ed96899e8f54ac5f3d315dc0370d6c8d", + "_id": "ajv@0.6.11", + "_shasum": "75b0901f8f1b4a94be2b875410dd9f3155fead22", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "75b0901f8f1b4a94be2b875410dd9f3155fead22", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.11.tgz", + "integrity": "sha512-kfwFKMM9X1MIX3NVl+tQmGfMevmOkCQkCfxNLTQbTDqAOgZeTp3FLNf0mZMbwqUumZoueBUWkupDrnoChskbYA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCoCRXjtmkaEP0R2GNd4u5cev+sz7Xe19ICnGmsRkQDygIgNOeUHzB/0cjUbgIXPx+lQjyZam8/+AJfk6csMr726Ks=" + } + ] + }, + "directories": {} + }, + "0.6.12": { + "name": "ajv", + "version": "0.6.12", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "bde23cbe9e78904bfe43b3706e0209711a79bdab", + "_id": "ajv@0.6.12", + "_shasum": "3f2a9bd7fc906bc97a78f8b4142273808df183f9", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "3f2a9bd7fc906bc97a78f8b4142273808df183f9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.12.tgz", + "integrity": "sha512-MrlSVeONhmWcRnjaXScyh2r8iczamq9gYGN5qtb01L2CPs5dlNDhFUaR1njL/V0i8OC+AYt31sWOxamTLgviMw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHJIN9Iwro++v5XuHaLsrvxp/ZJfFN/PZ7LeyxS7zBUaAiEAzvD7J6qsVwGyu+dhU9cN3E7cLl62QNAnWLPJjNM5DyA=" + } + ] + }, + "directories": {} + }, + "0.6.13": { + "name": "ajv", + "version": "0.6.13", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "a0c342c58f7a15ba1b9723d58c00145235b45bcf", + "_id": "ajv@0.6.13", + "_shasum": "07d5ec983882eadfa89e54bdef70005f0b6e95a2", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "07d5ec983882eadfa89e54bdef70005f0b6e95a2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.13.tgz", + "integrity": "sha512-puMBaBa0FB4tXfwcNFBnbTsqQxikQlcehto0yPMn0xHhwDUq+c/cp0kaZSnP5NLl8/lSKK6wW0BDu3kPD+er7A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCdAe5iwYHMQepZ3zH0rJw2QJeeo1KvpZ5d/E23ixu9FwIhAKFX0w34g4ckEIlgJzN4FYoL8pnMKGU0SVxjCt/TPKXJ" + } + ] + }, + "directories": {} + }, + "0.6.14": { + "name": "ajv", + "version": "0.6.14", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "9466859f92539a33754d54aeeb7badf95c9fec0c", + "_id": "ajv@0.6.14", + "_shasum": "d58af179883e22dabe46947479f3b15682a685ef", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d58af179883e22dabe46947479f3b15682a685ef", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.14.tgz", + "integrity": "sha512-XUmZkF23329xfeaN3lN/w1CKjgxDgWY0Bw4RDkoforyQmezEjqcHGK6tH08CiXXDz2n3cVLBap9zzoMGHZOTwA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDmO6rGtW+00r4igYau2prd3xcdVD5pFkuIoC/zyuOY4QIhAL+JgvJ/35fnICX5h3+rmgAQVccy6htYIgkcF4imtUQ1" + } + ] + }, + "directories": {} + }, + "0.6.15": { + "name": "ajv", + "version": "0.6.15", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "1b8c922ebcc967cfeb063009c6ecaefff417146e", + "_id": "ajv@0.6.15", + "_shasum": "f40acedda3f0c2efba3a6beca0df63bdcb4edc2b", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f40acedda3f0c2efba3a6beca0df63bdcb4edc2b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.6.15.tgz", + "integrity": "sha512-9yDMzBrYzgdRQgB/VYzfRl6q8NdQqHIJmtbQZXZBm7YcIB+Y6TrCODnmJyw61KKC2IRdScvf/U2a4b+8o4Wjhw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDoWSbnpLlFKBW/b/MYjnrColdsfDIp79tMNlERdw8ShAiBaRZArvoGk70aDgHQqP4vUt0/ix4X71toxCKFDUfLb1Q==" + } + ] + }, + "directories": {} + }, + "0.7.0": { + "name": "ajv", + "version": "0.7.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { "test": "mocha --reporter=spec spec/*.spec.js" }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "dfa640a1b2737d711d75dd82dee60b0a3ac0be9f", + "_id": "ajv@0.7.0", + "_shasum": "a3ce4683ae7223a3f60a2dc0bd61f11ede17cab1", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "a3ce4683ae7223a3f60a2dc0bd61f11ede17cab1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.7.0.tgz", + "integrity": "sha512-3dEaoaQBOh/USVZt7vnUaKBByvC1QxOkppkEZ+/hREc1fC49izsUiKaTzxqRwSzaz7U68T0gkhN7f/nShPV82Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFoTolDLxxEGR1dWGgfkYWs2TFccBjjr2Oy7A1Kcg3b3AiEAqbwHSy0LyCg1KcGkCC1urFcMGkvKISU7M8FViCBoFAY=" + } + ] + }, + "directories": {} + }, + "0.7.1": { + "name": "ajv", + "version": "0.7.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec --bail", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec --bail", + "test": "npm run test-cov" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "73fcc2cf118a5dd63054817b0b692976fbd24c37", + "_id": "ajv@0.7.1", + "_shasum": "5d57aa3b039aafa4c6045b0b48ec2885d884971e", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "5d57aa3b039aafa4c6045b0b48ec2885d884971e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.7.1.tgz", + "integrity": "sha512-Cyow0bicJqAKPtU8vAeTmefRDxHHCY3tp49qJVJvSo/O+sstUuJCabdO/Gs3bbQUY4wTGkkWRf0vPjZjDFmdkg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHIGdRtHvKsqXN1nuzQ5ZCQiercbLUnJa7cYKpPo+NXUAiB2gaVw4w7lB43dp0W57JLb7/tsHKMb1veKQdlbAYDTcA==" + } + ] + }, + "directories": {} + }, + "0.7.2": { + "name": "ajv", + "version": "0.7.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test": "npm run test-cov" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "982cfab8098eebc1ac2376610bde9bd6888add2f", + "_id": "ajv@0.7.2", + "_shasum": "2b21b19135696f5c6fca37ed78fbf4c9ee139ad0", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2b21b19135696f5c6fca37ed78fbf4c9ee139ad0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-0.7.2.tgz", + "integrity": "sha512-r2JiZ0zJsac0h6++PLR/O7ZYQVEDaq2qUG4DZ+T1zporzC8HcZ6rvs9bLURRdTwQ/vXh+2RRct9OBr0clF42hQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDRwHqD4S8zDiuL38rnaM7WN4qWPmbKHqbGJV8484hkUwIhANCExT4ZTGnTETNdWEdjBIg5pSp3Jlh7a6hWBXb2VB3d" + } + ] + }, + "directories": {} + }, + "1.0.0": { + "name": "ajv", + "version": "1.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test": "npm run test-cov" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "2598a4da84db87337ba5f57538f97cded575c7ef", + "_id": "ajv@1.0.0", + "_shasum": "59281fec5b63be50e3a8f3937e03ee478c6b0d83", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "59281fec5b63be50e3a8f3937e03ee478c6b0d83", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.0.0.tgz", + "integrity": "sha512-dihLPTwA46ycbv5wbz3ICpI4c//zxuOHTibOSrHlo2/VaV6qwe1tMVyAozI44P5Xtg31b2jZYYC597BCwSrKxg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFV4lV58XdmII+OmZ7sRWHTXiv/EXAyEvL9r530iCGLgAiASlsShpvlY8ltPIDgFOZG+yLIZ4+QZudsivxVdnvV0sg==" + } + ] + }, + "directories": {} + }, + "1.0.1": { + "name": "ajv", + "version": "1.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "5c15acc41998f86cc7f1ba5f066055448ee9d89d", + "_id": "ajv@1.0.1", + "_shasum": "d4d9714fed9a6ec2080b15babae569d590c93b53", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d4d9714fed9a6ec2080b15babae569d590c93b53", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.0.1.tgz", + "integrity": "sha512-BLeMHPSYnrkmcS4RwoLKYbHfOr4Q5gcYnHXCfKDlU1/e1n340w+m/Rt+qn13D0AJf5mgKkbMyc7mpDASYu77zQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDz5x8DEtJINFGKbR9AV3nvci2h+UkuJnaF3AtfxilNyAiAaudBi5/6wsE0HdM0R7tqu/wZBgk9naAcQ96hRYo/J+g==" + } + ] + }, + "directories": {} + }, + "1.1.1": { + "name": "ajv", + "version": "1.1.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "6d37952a8ab59f4b088b5eb8143b9b8c7b581be6", + "_id": "ajv@1.1.1", + "_shasum": "264e4f1e68115be218f4df532f2f1ed259c2ad78", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "264e4f1e68115be218f4df532f2f1ed259c2ad78", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.1.1.tgz", + "integrity": "sha512-QnVWCLl+VPBbvvwZuVP1EKNnvg36fM+J1HrGoE7XxevQObiotAm2LrYzpF/pnADh5siOAjRjqKq2zVM5Tj7Dhg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICqdxs62dQF8MuFosziIFHAazwxdaVNXdWDQUUrRXW2lAiAblkiaIAHegZvZLT7CGqbTNvuiAhQ+xC10mgkj79mw2A==" + } + ] + }, + "directories": {} + }, + "1.2.0": { + "name": "ajv", + "version": "1.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "0.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "44e1af15f10491528c048397f9bc70fc90bda569", + "_id": "ajv@1.2.0", + "_shasum": "11e1e2263464f4f129a1d8deb84671bdcfc3e601", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "11e1e2263464f4f129a1d8deb84671bdcfc3e601", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.2.0.tgz", + "integrity": "sha512-yHRG5VmcIibcisVGJs1ZsAH7IhyitKZimt0h5fOzSbadtc0jTibkyF9JOAu4E/ZHQRPW0gY62A7x7HKYeH4g0w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCjVaAzOGiWiPPl2u3dRxOJCJsCNSyAj9IsMB7lblxNoAIhAMrl7XRGKHqvr/r2onk/+1vE8Jq7naQA3vIwXdS8Q5JG" + } + ] + }, + "directories": {} + }, + "1.2.1": { + "name": "ajv", + "version": "1.2.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.2.1", + "watch": "^0.16.0" + }, + "gitHead": "d99e707a69543a72abe0ed71505edff4bcbc6db8", + "_id": "ajv@1.2.1", + "_shasum": "c9e11406966922c0aa540eea52a30e3ac81ae534", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c9e11406966922c0aa540eea52a30e3ac81ae534", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.2.1.tgz", + "integrity": "sha512-ODCbIj6s+GvFJWTidBFZDkwlAIf8VxUtl+fjp3QhchISurWU7T/OykxTQW3Fd8u0hOJ1veZsEbqS4PUTny21Ow==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDI/Z4TbVwIRJVeUYLJVURprNngUd6830Ph+fXi7KGckAiABSN2psQpKqxOwUJL/c5GekZqbDkpBwnXlmLpv6QHeBQ==" + } + ] + }, + "directories": {} + }, + "1.3.0": { + "name": "ajv", + "version": "1.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "4dc6cbecb9efb2cef8bf5d60916b82cf4cf35837", + "_id": "ajv@1.3.0", + "_shasum": "c54c1faade886a300186ec9df19c279d7a752248", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c54c1faade886a300186ec9df19c279d7a752248", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.3.0.tgz", + "integrity": "sha512-4iwVhXLjMx+coXLUHdVZmxtOfAHg5UpZ2F7K4TKFtSfip4FpFNRQDEcHLK/AVneMTWvF+J9Uv1T0XP/FrogmHA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFK1r/sRG/POTQFWAj6kiPe0Bp+nrOhnKGOhRJ/Pw17bAiEA6GDoKIi+zXeUd2l3ViSSLUotdGfcD3hXJDp5p7gqdOQ=" + } + ] + }, + "directories": {} + }, + "1.3.1": { + "name": "ajv", + "version": "1.3.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "fe097794a989358b030702c154b8937e9d555d7b", + "_id": "ajv@1.3.1", + "_shasum": "477358f31fd76398c8d33daab2e27f222183f39f", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "477358f31fd76398c8d33daab2e27f222183f39f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.3.1.tgz", + "integrity": "sha512-HFruxK8uKquiCYAbamPGQFZqpPuFqzSYWrxA5eWKZK8dyniBmaDIboFm9UeEqMgw3lNH1NhVKZFA3twgbG3/eA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIF80wb3iKsbUyCwL5TPgdthUdIHEaz0yu49+M3B3vZl4AiAieG/m31ff//d2hGZFbJUwGBpiIvuKmsI68PD8oMyvQA==" + } + ] + }, + "directories": {} + }, + "1.3.2": { + "name": "ajv", + "version": "1.3.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "6723287c3e8b4464f5ca65ad68fbb7d604c7012a", + "_id": "ajv@1.3.2", + "_shasum": "72d472a3b803300c5ca72d0170a4482963669fa1", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "72d472a3b803300c5ca72d0170a4482963669fa1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.3.2.tgz", + "integrity": "sha512-zfIngJRdo4FanO2DGL2mUyG5eeQwKzxPXGOPMmK9z6VHcq2/KmSoNfW5zc/7O44eVQFW+WpyQLEV7A7GdieG1g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDLEhung/YlbCD2fIJ6pAWr0/AmDoqoJ/hhXewwdBwOIAiEAh2vNMM4whCaGNzF2Pfl/Rkmxn+VS6LidOHy5R8/bZLw=" + } + ] + }, + "directories": {} + }, + "1.4.0": { + "name": "ajv", + "version": "1.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "34993de951c7b00b05f1a27a6e37e1ccd9a46ef9", + "_id": "ajv@1.4.0", + "_shasum": "38b7dca92b00bf465dbc24683c5da8e3e19e5945", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "38b7dca92b00bf465dbc24683c5da8e3e19e5945", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.0.tgz", + "integrity": "sha512-bcr3Gpl+PMFi49NODPMBOMUy+IqILVj4V4na+3T5uBnFqVXb/dlxWNh2XxL26fVyxWkNUb4obMCRLgmUYpkhGA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICYuKBLNzdHZdvxC/saKc+MTZGCIC9MGE8/78ph7NTtgAiA5VsLIB76kJP+8B1Dios3mrthznOcQVTBsU0mbJjuLcQ==" + } + ] + }, + "directories": {} + }, + "1.4.1": { + "name": "ajv", + "version": "1.4.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "9903881a8f496c06ea10f93ed59c603448063a8b", + "_id": "ajv@1.4.1", + "_shasum": "e4569a89ed220fc718ee156181312023f6b51a44", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "e4569a89ed220fc718ee156181312023f6b51a44", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.1.tgz", + "integrity": "sha512-5uczglNk/kAJHJp2O4f6XqaOdrpTaJus8QjLcPfWqxa7Ak6hrvF+S9oRi/WnnOEAkpKSzHv16enjOkmAb1fAxw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCf5TxSc/2PliY4gBeur39njaplTW/QXgAqt7bU2fxTCAIhANDKAU+tcfHIaiRgrePb0GPxb3aLioGPLRsFxKmB2kLG" + } + ] + }, + "directories": {} + }, + "1.4.2": { + "name": "ajv", + "version": "1.4.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "a67b661e10e6881ee1196273ade4727ab5446a6e", + "_id": "ajv@1.4.2", + "_shasum": "42d4f25a39387685f2b2fc73aa76aabd60e0d0e3", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "42d4f25a39387685f2b2fc73aa76aabd60e0d0e3", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.2.tgz", + "integrity": "sha512-sAXN9xH4RstkmBp3dWg7JX1FIWrV1MxU56MMG5LNFjarEe+qicwiQmp74z/J2wKS7s7q4uYg1QrW+UIXWcmZXw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHyKzOk6xdfbwrW4Q56x/CXoH22wDkoKeG7LNO+wHlJjAiEAoeqz7jFDK1LFI0SYKhOVV7YXED7nl3E1UJHmz0CaQxk=" + } + ] + }, + "directories": {} + }, + "1.4.3": { + "name": "ajv", + "version": "1.4.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "aedc47cbbfb5ffa3bb60d7742e14051ff15d7e6a", + "_id": "ajv@1.4.3", + "_shasum": "f73af9741a9a504cb3e0b01e0cc7012d79d48358", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f73af9741a9a504cb3e0b01e0cc7012d79d48358", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.3.tgz", + "integrity": "sha512-tVqUdjAC3+KxgZS0F5PeqIjyWmvlKC04hQOz52q0PQwA2naC65BJcmk477w6131smFXxXTYkBYPsF90WU+w3/Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHJHhqE2DbU7YQUC6qhpCT8aAZfKEiy52oKCCusWhyonAiAI8GRA9EwEKqQ7093BdtVFRpvUmlmqk9pTpkCjGNj+Aw==" + } + ] + }, + "directories": {} + }, + "1.4.4": { + "name": "ajv", + "version": "1.4.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "e02972207c828958f9190c42a924ee387554a172", + "_id": "ajv@1.4.4", + "_shasum": "26020524ec250be2feaa94c7a549e7ed3b1fd3d2", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "26020524ec250be2feaa94c7a549e7ed3b1fd3d2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.4.tgz", + "integrity": "sha512-ol0Lzm2CyFyC1Fjz792LEC75D2mfl22ptrIKV6IBoZe4Gh6erQcX7XnMiR1Ily558Bc9QaEl7kGALa6+HJuUYw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC7uJzlWNI4/HXDHKuDal+zf5btiNK4M8ttvUFE4znUpwIhAKDHkZVBCtPYijdFa4vakIdPbgglyKPjtvtDXXvTxExK" + } + ] + }, + "directories": {} + }, + "1.4.5": { + "name": "ajv", + "version": "1.4.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "50d30a262af7b3ecdd2de1bdc6a85f55e08630e2", + "_id": "ajv@1.4.5", + "_shasum": "eee657045a1cbaa3a17445455e5fe4c0d6787442", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "eee657045a1cbaa3a17445455e5fe4c0d6787442", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.5.tgz", + "integrity": "sha512-cAtsxrZoQ2lzO2INa/cC0aMrhw9e4P+vgTfuS4FN6Kl7s3uwqlEfbLwFDwh28NxAN7+Ubrq6SBrejf0tJfFgkg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDalqS/8nFr+BFuykGIds2OY0paOerdzcKYh5MndKl0OAIgU/Yafx1M+5aAKah4+jUlyip5TyJkfIdaDq+cvzv20+8=" + } + ] + }, + "directories": {} + }, + "1.4.6": { + "name": "ajv", + "version": "1.4.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.3", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "70844207cf920953908547b650c47ea52426ce22", + "_id": "ajv@1.4.6", + "_shasum": "51a204bc1be7ed630259c9aedbc488536eed76f2", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "51a204bc1be7ed630259c9aedbc488536eed76f2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.6.tgz", + "integrity": "sha512-dtAtYlf+H7vHlff2OWvzFvEk4xX5R66tEH/FhBcz89uOfYLLdAzxmS67Gi/yRwTC8rLnTFIZKhd9aEzkqc5SOg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDAPvI4tvLCtYJVGZsiYSaYxu2JaHizRfDOknOGKrn4/AiEAupDmnhiGy4QpekWocfzC7TJJj0aWxw+3OTNLvzJuCHw=" + } + ] + }, + "directories": {} + }, + "1.4.7": { + "name": "ajv", + "version": "1.4.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "c4bf67cab06dbf306e9b2ff9737f6d9d19f937a9", + "_id": "ajv@1.4.7", + "_shasum": "43e23670b11fe171311874bc152d3704554e4882", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "43e23670b11fe171311874bc152d3704554e4882", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.7.tgz", + "integrity": "sha512-br5iUGviL/BpMWIG+s0yOPSM3JnBI8K0TpXnpqFJuKp8zRbxdetnp1lxy5y9lPdtgBwImMbOyT6PAyhXb2Smyw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICZc5Szrrff2zikSIdPzoaQ2rGjX0hGwcUNZEmTFYsuPAiB5664FdhIZoGtFmzsYIbpQkfIuV8d/tMLeMw3d0328IQ==" + } + ] + }, + "directories": {} + }, + "1.4.8": { + "name": "ajv", + "version": "1.4.8", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "7b142c56bd94ab79d2e1320e6a99703b2dce384a", + "_id": "ajv@1.4.8", + "_shasum": "19cfe885c41f1af0d74207ac8f75362f114bf0b7", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "19cfe885c41f1af0d74207ac8f75362f114bf0b7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.8.tgz", + "integrity": "sha512-3TSykIA7otGlHCQU+U9Sg48JPMz8V5jDKPRMeRWEAk5IywJJai3oeRaTIlskdMG21G0KKyYZEqQSEhKVRhW3HQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHpPAKlmcak6E6Tnl9H+K+gVBqqu0uyyduN3XAAACmgvAiBhpSl0I2yxd9CmAVhOAr+Dlt8wNF1G2nI1aJ1MUanzRw==" + } + ] + }, + "directories": {} + }, + "1.4.9": { + "name": "ajv", + "version": "1.4.9", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "368332ab42d7b1cdc708d69ed314490cecc17a74", + "_id": "ajv@1.4.9", + "_shasum": "6a832425277d1a7b4f739099b757324838fc6870", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "6a832425277d1a7b4f739099b757324838fc6870", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.9.tgz", + "integrity": "sha512-47hnl5qUM1cmcD//Zzds6+BNLxC3ydoo3rtyQmriKMoLHfN94KYMZjn+H6jB1sdiL8PRzbd+Lpefp5jBICsosg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBx+LBVd3N5GG27FbtUHXu07/0aIYjiQmPepHbuWQBnAAiEA3cio1/JjPmrOb6+9uCmc6yqWlZAUnfvh9DtHfhHfvjI=" + } + ] + }, + "directories": {} + }, + "2.0.0-beta.0": { + "name": "ajv", + "version": "2.0.0-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "417533cb4af4685dc7579df6e5e395f54c02ae91", + "_id": "ajv@2.0.0-beta.0", + "_shasum": "76d787e5e59c56d4ce24ae1df0d3bb750094d257", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "76d787e5e59c56d4ce24ae1df0d3bb750094d257", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.0-beta.0.tgz", + "integrity": "sha512-7sCiu4pwV7I0i0b42ClEjWR+VbV6Ry1EtMYDfOxh4Jp9YlpW+z3p0vSjuyPw3MLHckdBEycF5tnDcvTkYPoMHA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDkwidgXaTg6kAHquaD2nFPcRvjzcxZ1FIyU4AqlwplBQIhALpDuQbTtHw1FF20WUpILYELJtwkYT9TZxRFekkUbIzd" + } + ] + }, + "directories": {} + }, + "2.0.0-beta.1": { + "name": "ajv", + "version": "2.0.0-beta.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "00a626b017529c445a1a65684ec719953306e710", + "_id": "ajv@2.0.0-beta.1", + "_shasum": "17ee6d4b90b6e234885313e3b9d249f328ab27e6", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "17ee6d4b90b6e234885313e3b9d249f328ab27e6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.0-beta.1.tgz", + "integrity": "sha512-E2x0EVJHcO1galySx3yZKM2XRgPfX2BJmVIYJzvQMZV9Vq32lEvx3U5AVuDV5YN41BZ45jmDkmBKe8OwXOoCLw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDulRZEnS9AjgxO334b/yfWDbn5O7M4ZMedt26XncHk5QIgXipHemwqMA5+gct4Df+ilUO1SKqz8+xE2IymWJdaI6g=" + } + ] + }, + "directories": {} + }, + "1.4.10": { + "name": "ajv", + "version": "1.4.10", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "peerDependencies": { "ajv-i18n": "0.1.x" }, + "gitHead": "9e32fd55eee1612e547a73c3cca95bcd0664eb2e", + "_id": "ajv@1.4.10", + "_shasum": "20183830abe29a646851612603a7cdada611bccf", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "20183830abe29a646851612603a7cdada611bccf", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-1.4.10.tgz", + "integrity": "sha512-meogfF2UopCRVJe5b5EcmCI6B3GW7L+i783AhVKJANnOpMnW3ULPwGz2ipF4VrdGnApcMh12ePpoFzUzjCmg8A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDg7StNpvk8y11vjxinFuDNuOFLTzRFquJ5OvuVTExN4gIgWXeL8aDy2DTwMMITS1sJ78r81P1riG7kAxmth5ULF6I=" + } + ] + }, + "directories": {} + }, + "2.0.0-beta.2": { + "name": "ajv", + "version": "2.0.0-beta.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "650505a6e1f16cb5947e8018f688619469e32e30", + "_id": "ajv@2.0.0-beta.2", + "_shasum": "5f9f88d190fca94b7db83d6096b7f4216611a9a5", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "5f9f88d190fca94b7db83d6096b7f4216611a9a5", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.0-beta.2.tgz", + "integrity": "sha512-Py5niSVdPY9H8ryv38tNSpzmUWcdFrfdaLbNmjSpr+AovWnhpKlU0eet9ILA7nXMoIiideKI+7YkdE86WrLdtw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD5QrDDKCHXo6e/BOGc0UIZqMju2aMkZWRRvPliGsSsBgIhAMq3XT8PJO4+PvD8dLpgEB4eHHf0TjiLBbwhvbMzn+Ru" + } + ] + }, + "directories": {} + }, + "2.0.0-beta.3": { + "name": "ajv", + "version": "2.0.0-beta.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "peerDependencies": { "ajv-i18n": "^1.0.0-beta.0" }, + "gitHead": "a3688f73c1f0cc5d1f1e0fd32b1d0c3cc447286a", + "_id": "ajv@2.0.0-beta.3", + "_shasum": "b94e323c63d5458114b79d68943787e459afe562", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b94e323c63d5458114b79d68943787e459afe562", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.0-beta.3.tgz", + "integrity": "sha512-myxkEAx5KtCnCYNnGg1espGCaYwJhKIG/XZ4WRWxlULmHAV37taf8mFVvCdmVsttrTU6V9o2Iq6K85WFo8j07Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDnIj4ToLmlaPZjIaX3aPRrJ/YXxWMPOtq3k6RxGNLmVQIgKGuSJZpeTgsALJAH8yn9XmbCwmbFEciGDXWSLJwcDmo=" + } + ] + }, + "directories": {} + }, + "2.0.0": { + "name": "ajv", + "version": "2.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "peerDependencies": { "ajv-i18n": "^1.0.0" }, + "gitHead": "68088e8ee06281d68d95a1d5befae47a136bc179", + "_id": "ajv@2.0.0", + "_shasum": "a1608acb68c16b9a1776fb7e042a2ae5ebaf6d7e", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "a1608acb68c16b9a1776fb7e042a2ae5ebaf6d7e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.0.tgz", + "integrity": "sha512-kznnbXWmVhFNFtMjScdzEtnZ0xmaTZqUqDL+3Slv5xFCp5edlkOTxS2kwkSesY0lPKoX8ytnCprYTbqnnqpKBA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEQHlGVeUFN1d7actksYBUYfPcsvQSaRPn/EW/TsmDrQAiA9T3LwODCtinE6e8G/x/xO2BEBsx4ue2Z3+JJEGbPLJg==" + } + ] + }, + "directories": {} + }, + "2.0.1": { + "name": "ajv", + "version": "2.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "peerDependencies": { "ajv-i18n": "^1.0.0" }, + "gitHead": "cffb7c7f729ea3e4ce3b11346993f89f9e02bf93", + "_id": "ajv@2.0.1", + "_shasum": "70c1faed67768ac068e855bf53f67db011b4f14c", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "70c1faed67768ac068e855bf53f67db011b4f14c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.1.tgz", + "integrity": "sha512-om3UpfZnuMcgQIaFvxDC3G8/T2BEue9A2VeNmdSGIZ6l7z9WClXGYCQYpAP2bOqPQN0BhPL7/kbca+B2sSJ2Jg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD3K2DhfAfVVuIQZi39/XfB4P4QvX/ozRXXl+X/n9SiiQIgQkOWsjl97uYI8uQ9Q0BmI9dcf9MrtfOjIMQc57yR7Mk=" + } + ] + }, + "directories": {} + }, + "2.0.2": { + "name": "ajv", + "version": "2.0.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "06fd23217acdfaa6721dcea2a8da007154ee66f2", + "_id": "ajv@2.0.2", + "_shasum": "774fe1dc6547a8281d7ce403237369f1d713be67", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "774fe1dc6547a8281d7ce403237369f1d713be67", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.2.tgz", + "integrity": "sha512-v5kxaUz1sdVldbV5pmbJeQQcT+kF7bWyA7zZO6r7pTCBUdktILA5wqVe8JnKe9dN5jFc0D46xvdiDXY/LbMqxg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC6rtDkX8xo9yFwNppZu/6V6pHDzq/LVrv/iCerDHyzmgIhANGqPuUJgLHWCc928rxQfeyvTfFld1fF6VUYfmGjMfbf" + } + ] + }, + "directories": {} + }, + "2.0.3": { + "name": "ajv", + "version": "2.0.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "2ddf957554d326b6c0e5838500564e81b495b656", + "_id": "ajv@2.0.3", + "_shasum": "3ccbbe11a6d276866207935d05c1f5f614d2823b", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "3ccbbe11a6d276866207935d05c1f5f614d2823b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.3.tgz", + "integrity": "sha512-k6tRNMxIe3R0jusg0JJSxEnrFIR6lm4I7r/KVBava6cxqQ1ZIVH/psD9NHvbToPJDMtuMfJEHihGSCi/liKOVA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBAfJIOpUBv6Qt/FqjHjwsiQ7ytfSS4HFHsuDWd0FdE5AiAIbQfgBqUiXD2UEydQXSJzeM+kq51sFbpFMX9aiGTEYw==" + } + ] + }, + "directories": {} + }, + "2.0.4": { + "name": "ajv", + "version": "2.0.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "cf35958df495b9631dcae237b1c35c9fadc94327", + "_id": "ajv@2.0.4", + "_shasum": "40a059356838878f1edba84f70ffc10450a0c0bb", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "40a059356838878f1edba84f70ffc10450a0c0bb", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.0.4.tgz", + "integrity": "sha512-MDGUYlfvhxXi1aXZdZ25+Ua5avTiu76UwQikQfQQ1A4XorUiy0g1iv0DJd0SCqYkl+PkoyM0pjOGlGZsdUl22g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCID6P6Xi3Soza6wy2MH6hEOqaWju48D9pA9g5iPg0s30yAiA+BOAvblvFPT88X/Npioo/GGbpKE08xBUfLcNsapAN4A==" + } + ] + }, + "directories": {} + }, + "2.1.0": { + "name": "ajv", + "version": "2.1.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "7d96e1b642406506e780794a7935fe59de852dbb", + "_id": "ajv@2.1.0", + "_shasum": "f0bdfb90fcf511e7ceaa6586d0e8714a96863358", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f0bdfb90fcf511e7ceaa6586d0e8714a96863358", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.1.0.tgz", + "integrity": "sha512-h7pc7VIAqhw7w5SQBwzVu0wP0Zx7PSop6SKFq2xk1j8u6LXD1WNi+0LWnI8fT4wZCTCY8GJz2WRomrHWSYFjSA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHXWdWLW13x2cILL8RoggbrZ0ZjG9ocsEYQOn80+d8+iAiAnqh1Tkqy908D2KzrnZ6CBNe0ZZYg+8TA/rQLpZmM+4A==" + } + ] + }, + "directories": {} + }, + "2.1.2": { + "name": "ajv", + "version": "2.1.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "833a234e4f9e7108320099e0d6bdf8985ba6b78a", + "_id": "ajv@2.1.2", + "_shasum": "de9a213c4a45808a948926dec2bc965ee2452e96", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "de9a213c4a45808a948926dec2bc965ee2452e96", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.1.2.tgz", + "integrity": "sha512-2MEB4FvTVo03bDvHP3QTxjhp5/x8HOI1JB+cWweekjcxN2dzPKa/ANlrZXIDtopG+B6/BydQCf0/8XJyIIXEqA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDdQBm9+eWZekCUoZQWwGMvA6F1IEeFox2D0YsM29FdlQIgMrdz1pHoCLOWWJMxSeJJ0tUktyo4aMF0+RnDm5lcx0I=" + } + ] + }, + "directories": {} + }, + "2.1.3": { + "name": "ajv", + "version": "2.1.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "5ebfb41903e3c69ba8c5073db898940719337755", + "_id": "ajv@2.1.3", + "_shasum": "fc6c2345346d6f9b44500bdac6659e3744e7bf3a", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "fc6c2345346d6f9b44500bdac6659e3744e7bf3a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.1.3.tgz", + "integrity": "sha512-grbQ5OD0sV2vlBSNUiSmT5EzLb3Zg0fK9BG6TbL3ePJLvo6OlFyVGtSb98GxeUlX3F4cOEd1j3/haqOQzPQYfA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEgDWwgVRzEZhbJG5TBQle6aSNHqqiGB0FlF130yu+PJAiEA1aZc2amnQdBa6E1kdZ6z/OfZuFSx6NQqhb4++CPbbPg=" + } + ] + }, + "directories": {} + }, + "2.1.4": { + "name": "ajv", + "version": "2.1.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "6afdb6793fd32ae18285e543d02c5442fdc3e410", + "_id": "ajv@2.1.4", + "_shasum": "80a2e4eb798e951694577c65f96be9cb0b3a566c", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "80a2e4eb798e951694577c65f96be9cb0b3a566c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.1.4.tgz", + "integrity": "sha512-SDxgRFgJoDneBIefO3CQQXr/+IOf5Sv+jJ04ReIit/WGwC7j11Yf8ReWv5AP66pmcq45zwhcBqK4N13RT3H8+g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEgdVH87TE1bAwGVEQie7HlLr8NuRbqb0rvZwEjKKr5PAiEAnkt1ie6Hz1rekIaprNpBefjOKbnJxVjvgC/MhAISH/U=" + } + ] + }, + "directories": {} + }, + "2.2.0": { + "name": "ajv", + "version": "2.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "d7fd8229a96e8562561246e44bf1bd142dc038e9", + "_id": "ajv@2.2.0", + "_shasum": "49bce9e8b21553130bd0d16a4a1bc054f1b48976", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "49bce9e8b21553130bd0d16a4a1bc054f1b48976", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.2.0.tgz", + "integrity": "sha512-vAgMkF819DENP3s7WUwJCzd1b+cXyVJ93/wHOdEX4639hUnwgVFztBF83Ia9cNNDq7Vk2crYkjf0sQJAluOj6g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDt7M11YSS8MDJRf67DH1tBg4fTdIEk79JCqlUMpW8ZfgIhAIAeLwum+Jy0+YDwmyW6epgMTySK95leMMdiRKQWknmj" + } + ] + }, + "directories": {} + }, + "2.2.1": { + "name": "ajv", + "version": "2.2.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "5dac3dd4b38a32839b9a07d8bb822a2c703574a8", + "_id": "ajv@2.2.1", + "_shasum": "dc15b5a385ea9127acc81ef8d9523e3e034c9ab6", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "dc15b5a385ea9127acc81ef8d9523e3e034c9ab6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.2.1.tgz", + "integrity": "sha512-l1cBD6I+JFZaDThfTyXomFM3ITmFfatc2isQfYwp3NsGcTxPrBTl2wzmDwr1XQsRa7KAs6ntRmZ46ucGKvcmUQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCb4gSo7vzgZEscQUW0K9TOBFbE0qIBKePHQzIzadi1MQIgCDjU7EU37gU9jF+Jxon5+KaV2CJMU6T9PvloP/VzTK4=" + } + ] + }, + "directories": {} + }, + "2.2.2": { + "name": "ajv", + "version": "2.2.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "610dcd17eb19e013352467c82f33fd6f6c85d0ac", + "_id": "ajv@2.2.2", + "_shasum": "3cef9f5ccb50a32fd9bdeb5eb16dae3dd8299724", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "3cef9f5ccb50a32fd9bdeb5eb16dae3dd8299724", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.2.2.tgz", + "integrity": "sha512-OOfaAf05yL1YUoI9+b+pFoL8cxlLceXRUBPUEhQIIt33AXDRTPz6WvaURKvPM/rYGBTnCjNehahv4XX2BR81QA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGoKDt62yBOQkPrUu4umpB0qKhcU86TNjrsSmvMVqMuMAiEAv0vW/q7qTZ7iXXq6zexOzk3jhHm3MPxeUS1Uuv3TfOk=" + } + ] + }, + "directories": {} + }, + "2.3.0": { + "name": "ajv", + "version": "2.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.5", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "7c7abbbc747adac02cbbb92cf37c96472a936b5b", + "_id": "ajv@2.3.0", + "_shasum": "8ee6da40996dadf7df39669f0548f3c4f45d03fd", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8ee6da40996dadf7df39669f0548f3c4f45d03fd", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.3.0.tgz", + "integrity": "sha512-jSSuYY2NnIB2ZxlC7w9lvzYTp+AcnseYJr6SaTlkwCz7tA47AOGRwTGnpap5egibw/Nn1q2rVZcjJIntGe4rNQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDXtGfhoOFCDjxjhQXNM0ey1Hejb6j+wvmWzMbVbsNiEgIgVV0TXjdsQfiZTMWeEfBcA4g8+GQ1VahUZORwz3PYccU=" + } + ] + }, + "directories": {} + }, + "2.4.0": { + "name": "ajv", + "version": "2.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.6", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "16b6ee5f95bd7298e234846e4f2b3d301a9bf5da", + "_id": "ajv@2.4.0", + "_shasum": "932826bc9a04483594bd266d5278c06731cd096b", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "932826bc9a04483594bd266d5278c06731cd096b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.4.0.tgz", + "integrity": "sha512-YaSoGFgwF9LxxLNiqwmNUc/JxOOSzUdmiZBf4uFlQOpX50Fei3Qb5fC15Cg+aHO/F9hMnaM4ZBKmMeWmYRCbLQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCNcNk6G/qi1lbEj/Gl3xh+Xq2+pdRVSLCESyVJ182tjwIgECuexuFwxo5JaGev4V07m4dmdzy0ZlurI4dCcya22Yc=" + } + ] + }, + "directories": {} + }, + "2.5.0": { + "name": "ajv", + "version": "2.5.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js", + "build": "node scripts/compile-dots.js", + "test-browser": "scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^0.1.6", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "watch": "^0.16.0" + }, + "gitHead": "4ff5662f78b163707050d05e66a47089f321ce8d", + "_id": "ajv@2.5.0", + "_shasum": "8d5b5686df236cf1474a7525581fd11c02e957bf", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8d5b5686df236cf1474a7525581fd11c02e957bf", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-2.5.0.tgz", + "integrity": "sha512-c+NuTak9dF7Bq4CU/HbK6OVooRZuQEUUTeZ/vC1DG8fOAHxIxVRpLXaHN1c+oLXx2NGEMdn58Ju40iodweHvhQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHdUpaK1Qn073J/kx7W/jN+uGvGgg6GzM7TArIdME3ejAiEAoHSDXQo9+O3jwKcAgO7FOhwPajon2jXRYk1hQV7N3VM=" + } + ] + }, + "directories": {} + }, + "3.0.0": { + "name": "ajv", + "version": "3.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "bb2e1d93c221d4b0037685f7375f5f0f16dee4f3", + "_id": "ajv@3.0.0", + "_shasum": "2b76518cf0a239ac4bce6c0ed043ff3ce545a083", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2b76518cf0a239ac4bce6c0ed043ff3ce545a083", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.0.0.tgz", + "integrity": "sha512-8jBWMJVV0Vvm3iKU3P01YOiLmxZ6a79vuZtlL/+e99Hi/43Vbt/KAduc2g9MLBk4PrEfWgf+E3tYt1UXkawE9Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDZWuTP6nvyFsvMsk4lJft2c4Yi0tsEEBpMxX0oTASntAIhAL9/pHhSWMmOJYF5uImzt78PT9BCZM/+y6PKOYEY+7iM" + } + ] + }, + "directories": {} + }, + "3.0.1": { + "name": "ajv", + "version": "3.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "d18989179914961d44d1d2f9603738ed85bda51e", + "_id": "ajv@3.0.1", + "_shasum": "13d385d6bca1ec19896ddd7a5ae7af56ae947e0b", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "13d385d6bca1ec19896ddd7a5ae7af56ae947e0b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.0.1.tgz", + "integrity": "sha512-ykcFyegRsbmjib3jZ0Y1LQ0rENudr66AlbsWFCSm1oYtRb4Ltt6DDioEKq2W8PdfVTx1lNwB+/2A8Q9aqXf0Fg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDbsyx54cr6DWoXlAnDtzjj++tnIslPUy6RwYJ4xiUDTgIgH/SkS6zV6pOC2Mm3FqHP6hriPHLqXrX0/Cc4DIVhoKk=" + } + ] + }, + "directories": {} + }, + "3.0.2": { + "name": "ajv", + "version": "3.0.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "b2b856c3d714b0cd47dae2286e14b65795d23fa1", + "_id": "ajv@3.0.2", + "_shasum": "d226fc24224b6c20dd75391b764bc902a9a99cb0", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d226fc24224b6c20dd75391b764bc902a9a99cb0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.0.2.tgz", + "integrity": "sha512-1l6vI7OZVwaja6tqcyR7CKHaz5ThocawPqGEm2F5KBbQ6OTBRj9a6J8LBLcLhCvOM8/gqBimU104BNJTstd3WQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBDzEuRRPaqO5VAxXr88d41ntPHO9BZvpkF8VK6clU2VAiEAz9otuLniJT7IeRlOZcJQjovJgr3lxz07/nPbn4bDYrI=" + } + ] + }, + "directories": {} + }, + "3.0.3": { + "name": "ajv", + "version": "3.0.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "a43a2d9a76466e573c8118280e95dc8507d6744e", + "_id": "ajv@3.0.3", + "_shasum": "b9f38fc3e1894ca231c99028ebe428188a35a316", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b9f38fc3e1894ca231c99028ebe428188a35a316", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.0.3.tgz", + "integrity": "sha512-+IWu4it6GPY1UhuuHDcrXPWe7aoHUTrnd3qaMsS6ahb35gacomjO7if0ACUULmK8lS8E+T1+BPmEYzd/8EPVaA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBiqYkZQIz8e2oriAJ3QTTlKsa5O6ZPI5nk+tPGBsoOhAiBZDBzc1/YuWe6oBWaOvxwU0kVHIwNhqQ+TX6KDl4K7aw==" + } + ] + }, + "directories": {} + }, + "3.0.4": { + "name": "ajv", + "version": "3.0.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "c3d09d7699fa4149285ef7635e7165b32cbe9b23", + "_id": "ajv@3.0.4", + "_shasum": "dff63fad8f12e3c52f3ddd1210810e80866a0cf4", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "dff63fad8f12e3c52f3ddd1210810e80866a0cf4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.0.4.tgz", + "integrity": "sha512-p11T0vc/Qmd81ujWkUAh3UoVVyJ9SmiwFvmxD5pj5wPIHjyioFQnEwCg965Zua2vlABYVHswFlzldqKwMEkwCw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCS6nqvmQ8ph0exUl0u2j1l2gyV97KIelUr1SjzeBmQBwIgEU3DLByhkreIJGiDqjA5Wcd9TxNi0Uaynpbz9NdfmDU=" + } + ] + }, + "directories": {} + }, + "3.1.0": { + "name": "ajv", + "version": "3.1.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "5f2cc30449d81a7d10148567f3f1ed038b00718e", + "_id": "ajv@3.1.0", + "_shasum": "b236b6b5727e533e947a7189562c8c96276f1179", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b236b6b5727e533e947a7189562c8c96276f1179", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.1.0.tgz", + "integrity": "sha512-ikcvfPbpaLP30YPQhJH88I1lcro+7lcXOKMNjEIhKy52jnaHyCqhnuNKknOzt5NGAppMBSxMJ2iWjgeDD3IJyw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFkfXu6IN8PPVdM4do+E3zayvgiSfAx0m3mxOfg6/adWAiBlkHlKscOxovotVC499CFRiezHLpLnbrt5F7+to1srhA==" + } + ] + }, + "directories": {} + }, + "3.1.1": { + "name": "ajv", + "version": "3.1.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "a1afce910c1420291756e9c0a89ecb66a74be837", + "_id": "ajv@3.1.1", + "_shasum": "15de82f0bbec488f65770e0a76df718d4c0a786f", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "15de82f0bbec488f65770e0a76df718d4c0a786f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.1.1.tgz", + "integrity": "sha512-qRvxfKJMlwlJRMgqnsfZgE8NgDLVaUpRhEyUjcGHX2AiN9qogDs2cN59auAsWA88mh/jzk91ym5h0RdNNm/dEA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFLp6WpwQYbXSq5zHulmS+YpZaozh1RTKaQQnjE6oGuoAiBCdt8ujoFcL/Ql7fjuog+TPSxt0Tst5/dX8Q9kVskutg==" + } + ] + }, + "directories": {} + }, + "3.2.0": { + "name": "ajv", + "version": "3.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "6da67585011992c00e0919a74a7f67bb4b81bc54", + "_id": "ajv@3.2.0", + "_shasum": "017102288e62231385dcfa5b85319a7e6b2827e4", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "017102288e62231385dcfa5b85319a7e6b2827e4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.2.0.tgz", + "integrity": "sha512-OONOaO3P2ub4AfHiWEYAASH6qPqH4kppjqUAqpkzlCdtYqetI55ba/RPjpNbRft6yzDXzy+tQylyG5Cj9qMYjw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBxybn/2rG9kFoOKYPpS/LBSPLWt+6vw/WbyXQDAkHe7AiAplxdo+iwQ32PFcKCARqLvSfZxWN87iqWmXiCE6I/Ojw==" + } + ] + }, + "directories": {} + }, + "3.2.1": { + "name": "ajv", + "version": "3.2.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "aad43df008360fc970a9f749c8bae3a6c41718cc", + "_id": "ajv@3.2.1", + "_shasum": "574b7154b76af20ede2a44815633322a49e8de6f", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "574b7154b76af20ede2a44815633322a49e8de6f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.2.1.tgz", + "integrity": "sha512-fXtGdqYfKXqsnZi/LACeqdiE0PyBlf5E+P5WGv7R66OI/BY4aJzeyHp+PYmyvDOz1vcoIA52kmxtF9b4Q9Y7Xw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBke0vggdUgrtWo7ZLsWXvGj2ocTQmLtxXWeg7xUxFbfAiBRyn0WxA3evi/fCbv0QxsceWhoOVQFnYZ/KySceCBpTw==" + } + ] + }, + "directories": {} + }, + "3.2.2": { + "name": "ajv", + "version": "3.2.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "37dd0415da585432f2afaa3d24d74c1b20cd548b", + "_id": "ajv@3.2.2", + "_shasum": "dc968e3b455d446069b4d17ca5f6272efb839593", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "dc968e3b455d446069b4d17ca5f6272efb839593", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.2.2.tgz", + "integrity": "sha512-lcwBckqGNjaQNjIa2oFdYgwlpY5mFGcpXSWP0pyc0os8/qzPyuDoaPGs2jEoFpmBGkvbRS+ay7t1uFlxQNmWoQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIG+fWmAZW6Wm1Ykx65wdi+ctqwsXye35eR2QyY9Vj3O8AiBP27FTyPeniOwFeSLyrhLhZet2P3aAL4z+5Uu4DPJk/g==" + } + ] + }, + "directories": {} + }, + "3.2.3": { + "name": "ajv", + "version": "3.2.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "8c4557f1ac9c8196f507c350ede247c32ecac93a", + "_id": "ajv@3.2.3", + "_shasum": "9438afbed7a65e4edf3b8bdcd819fb52533b6495", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "9438afbed7a65e4edf3b8bdcd819fb52533b6495", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.2.3.tgz", + "integrity": "sha512-Qdti8kRlgZuit9ncpDwnnWSf2JdzEkE+RsSzmovobrjagTMWxh0auLE1kACl67y5V/6k3H6ljbCRTObiaCWRRQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICnz8JRaTWu57HOHY7lGfx0G++kNj3OHGNujbLnXfi/tAiB7sTm+D5LxeV9mCxRIzunZEQP0JSEUg/A2m99wE4Q/SQ==" + } + ] + }, + "directories": {} + }, + "3.3.0": { + "name": "ajv", + "version": "3.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "c99d6751adca80869ae92567685e21e80cd4ea6e", + "_id": "ajv@3.3.0", + "_shasum": "8caee66a6f823d72551810b1a1e430e78bf486bf", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "8caee66a6f823d72551810b1a1e430e78bf486bf", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.3.0.tgz", + "integrity": "sha512-Z0xeNrv7k6aNCSGAyKGUh1LAa/FCDxOejmIithWxAXB0o8Kb8BuqJB0UHb2h2nDKgM4XFuCdUuTiV8Ggf0l7cw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGWebGYCij6nDLPTi9mWY6xJBgElRztcW/PplXsx/77jAiEA5ptdlFtUfLDQVvIq1JreGSoyt7I0JcucKcyyChKc5L8=" + } + ] + }, + "directories": {} + }, + "3.3.1": { + "name": "ajv", + "version": "3.3.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "5b7d9f9ff793db143d44c0e5fa495c6d5da1a4aa", + "_id": "ajv@3.3.1", + "_shasum": "e99a399a36086b1e84f20c2219f3ab0107676d15", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "e99a399a36086b1e84f20c2219f3ab0107676d15", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.3.1.tgz", + "integrity": "sha512-LlazGqnkFZ8eiG/dAbYa/2fYugQEakfGMlERBNsHd2p4eQpjjrcz413e7ZWUvXa0w/amC3c43FS0ckJfHH+dTQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHSBpPa04yCHsF4hcvJmiwT4p2GbzcWEiAIaNAx0khk9AiAEaiOnG9ilExbHBmRx2mJQ0V3ZWtp16WNr3hEBFgcrxQ==" + } + ] + }, + "directories": {} + }, + "3.4.0": { + "name": "ajv", + "version": "3.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "browserify -r ./lib/ajv.js:ajv -o ajv.bundle.js -s Ajv && uglifyjs ajv.bundle.js -o ajv.min.js -c pure_getters -m --source-map ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle && mkdir -p dist && mv ajv.* dist", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "brfs": "^0.0.8", + "browserify": "^11.0.1", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^5.0.10", + "istanbul": "^0.3.17", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.2.14", + "mocha": "^2.2.5", + "phantomjs": "^1.9.18", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.16.0" + }, + "gitHead": "d1ca4874c099f9f40956010e7652897d145d2cb8", + "_id": "ajv@3.4.0", + "_shasum": "172c70640b750239f9fffff46c3485577fd30690", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "172c70640b750239f9fffff46c3485577fd30690", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.4.0.tgz", + "integrity": "sha512-wwBU7SddLaAWn8E8N9uIFurt6aYGJhiIsCfD9A+JZQs4tEehM3DHLaaN/VwHLw6VCKr+b0mXC9kvchllKhJ+5A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCMMBdPPQ5F+jeXaOrgYzTqzpWoTS6ZiaVR6Pwpax34hgIgKAsspkoiBxUjE0VjUnjprfBO68wUFh/tOBmV566AVVk=" + } + ] + }, + "directories": {} + }, + "3.5.0": { + "name": "ajv", + "version": "3.5.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "mkdir -p dist && browserify -r ./lib/ajv.js:ajv -o dist/ajv.bundle.js -s Ajv && uglifyjs dist/ajv.bundle.js -o dist/ajv.min.js -c pure_getters -m --source-map dist/ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "bundle-regenerator": "mkdir -p dist && browserify -r ./node_modules/regenerator/main.js:regenerator -o dist/regenerator.bundle.js && uglifyjs dist/regenerator.bundle.js -o dist/regenerator.min.js -c -m --source-map dist/regenerator.min.js.map", + "bundle-nodent": "mkdir -p dist && browserify -r ./node_modules/nodent/nodent.js:nodent -t brfs -o dist/nodent.bundle.js && uglifyjs dist/nodent.bundle.js -o dist/nodent.min.js -c -m --source-map dist/nodent.min.js.map", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^6.0.4", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.11", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "9c40ac0388f16064399575587c5be69eb9f628df", + "_id": "ajv@3.5.0", + "_shasum": "63b9be83bb7bfe04e41afd79b58338f144e05672", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "63b9be83bb7bfe04e41afd79b58338f144e05672", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.5.0.tgz", + "integrity": "sha512-r+EPLCvjvuA38ozI42rj2GWJeoOLRg+2mJ9H0RRNXwV/FBe0aUqEuext1Fg+L0M2ltJy5p0zIsKhN0TQSDdF6g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBbTcwX0mh/D4DragW7MSHY2yBCQVmpsdEd/KWR8klztAiABfWy+PhTiNOjVWf6SIHP1wbWZ4sSb894YJKDPFAoKww==" + } + ] + }, + "directories": {} + }, + "3.5.1": { + "name": "ajv", + "version": "3.5.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "mkdir -p dist && browserify -r ./lib/ajv.js:ajv -o dist/ajv.bundle.js -s Ajv && uglifyjs dist/ajv.bundle.js -o dist/ajv.min.js -c pure_getters -m --source-map dist/ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "bundle-regenerator": "mkdir -p dist && browserify -r ./node_modules/regenerator/main.js:regenerator -o dist/regenerator.bundle.js && uglifyjs dist/regenerator.bundle.js -o dist/regenerator.min.js -c -m --source-map dist/regenerator.min.js.map", + "bundle-nodent": "mkdir -p dist && browserify -r ./node_modules/nodent/nodent.js:nodent -t brfs -o dist/nodent.bundle.js && uglifyjs dist/nodent.bundle.js -o dist/nodent.min.js -c -m --source-map dist/nodent.min.js.map", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.0" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "glob": "^6.0.4", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.0.0", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.11", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "7a391fde73725b8cc9c65ecde7a5db942fc503ac", + "_id": "ajv@3.5.1", + "_shasum": "f3ed6f6bd410768fe872ef130077ef1dd6123309", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f3ed6f6bd410768fe872ef130077ef1dd6123309", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.5.1.tgz", + "integrity": "sha512-iNJ8CclgxvPpVtxypsHN9+yTdI3x5w5dJEO+fZz8zEjxXaK0Tn28DapjmvDaVyRm4zI0HSUDmYrVgJLNuavpIg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDtQBKjvfca/O9JiEEUC9c6HqOiCMhKZM/SB7qlQ3yhswIgF+vOC1ICfNkVqxt0DNFQo/WzWgBHZ2AwMxuECfIAzsM=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-6-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.5.1.tgz_1454369980612_0.13818685337901115" + }, + "directories": {} + }, + "3.5.2": { + "name": "ajv", + "version": "3.5.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "mkdir -p dist && browserify -r ./lib/ajv.js:ajv -o dist/ajv.bundle.js -s Ajv && uglifyjs dist/ajv.bundle.js -o dist/ajv.min.js -c pure_getters -m --source-map dist/ajv.min.js.map -r Ajv --preamble '/* Ajv JSON-schema validator */'", + "bundle-regenerator": "mkdir -p dist && browserify -r ./node_modules/regenerator/main.js:regenerator -o dist/regenerator.bundle.js && uglifyjs dist/regenerator.bundle.js -o dist/regenerator.min.js -c -m --source-map dist/regenerator.min.js.map", + "bundle-nodent": "mkdir -p dist && browserify -r ./node_modules/nodent/nodent.js:nodent -t brfs -o dist/nodent.bundle.js && uglifyjs dist/nodent.bundle.js -o dist/nodent.min.js -c -m --source-map dist/nodent.min.js.map", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^1.10.3", + "glob": "^6.0.4", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "5db986276c3095820b8f8d349eceb3cb117a921c", + "_id": "ajv@3.5.2", + "_shasum": "4f4c0ac48035c41a213e74e0afca1ba5e1f7e4ad", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "4f4c0ac48035c41a213e74e0afca1ba5e1f7e4ad", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.5.2.tgz", + "integrity": "sha512-LgYe5Z36wFd9Jcj/ooaaBI7Oj+VJxMAXnPegm2UG2R1AdMgxs+8p+vb5Wd73uf1Py/pHfy+Z2ZCdluHZ/7Dbjw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHy7p1MsZ1KISL7Wooe0jmKjnbmn4ch7CrDVTUrOTNhnAiA5Y7dyrgJ/rioScFz5GH2RoFr3zrqr4rNjRse2fcoIJg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.5.2.tgz_1454616182086_0.48765006312169135" + }, + "directories": {} + }, + "3.5.3": { + "name": "ajv", + "version": "3.5.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "mkdir -p dist && browserify -r ./lib/ajv.js:ajv -o dist/ajv.bundle.js -s Ajv && uglifyjs dist/ajv.bundle.js -o dist/ajv.min.js -c pure_getters -m --source-map dist/ajv.min.js.map -r Ajv --preamble \"/* Ajv JSON-schema validator $(./scripts/version) */\"", + "bundle-regenerator": "mkdir -p dist && browserify -r ./node_modules/regenerator/main.js:regenerator -o dist/regenerator.bundle.js && uglifyjs dist/regenerator.bundle.js -o dist/regenerator.min.js -c -m --source-map dist/regenerator.min.js.map --preamble \"/* regenerator $(./scripts/version regenerator) */\"", + "bundle-nodent": "mkdir -p dist && browserify -r ./node_modules/nodent/nodent.js:nodent -t brfs -o dist/nodent.bundle.js && uglifyjs dist/nodent.bundle.js -o dist/nodent.min.js -c -m --source-map dist/nodent.min.js.map --preamble \"/* nodent $(./scripts/version nodent) */\"", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^6.0.4", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "c62c6452aa80880cb0259a8c508032ea0164c429", + "_id": "ajv@3.5.3", + "_shasum": "037dab3bdc80736fa929a7cd78c4aca6a9d3119f", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "037dab3bdc80736fa929a7cd78c4aca6a9d3119f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.5.3.tgz", + "integrity": "sha512-UHzyDYZUvFlJZdmAonKw2NJhgOAQoAJFu1F92EtjAwGMFyBZts5Is2A8oc2yA2XYgOzc5gB2o3vaq4+IOcyz2g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAsKZOc8jMDiT3st/OobMyNx4PCeWJdw80C8T4kB/fOhAiEA4I8hzH8eVYGgZgc8Xfdcwg9UuYmKYwJtg/8bDStMUAQ=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-9-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.5.3.tgz_1454664099248_0.01245300262235105" + }, + "directories": {} + }, + "3.6.0": { + "name": "ajv", + "version": "3.6.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "a0a172c90a72f13e0bb891ae9903fbd7996899c9", + "_id": "ajv@3.6.0", + "_shasum": "ce935e2a2c484a76d8f58a3a69c7a1898ca439d3", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "ce935e2a2c484a76d8f58a3a69c7a1898ca439d3", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.6.0.tgz", + "integrity": "sha512-qYb91EKEIZEL1B2lX2h4q9qJy/CMvjEZQDDRe9gpr5HosCcg5D7nThB6Xm6+KgDE4Tw48gfSvgTLh9D38Uawtg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFMnovhTT1avdg13HhtnPuwCB7S9ARpNzUOVVRJntf0WAiBfWZQOjxxsSNLItZ58+w5ysN7JYI8C4u5supJqyAEnbw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-6-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.6.0.tgz_1455398234164_0.4942824237514287" + }, + "directories": {} + }, + "3.6.1": { + "name": "ajv", + "version": "3.6.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "0a15393601076baac66bd661d7e2078dd122a0c4", + "_id": "ajv@3.6.1", + "_shasum": "3dbb99d1043db40db471146e82c05983bab49aea", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "3dbb99d1043db40db471146e82c05983bab49aea", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.6.1.tgz", + "integrity": "sha512-gMWJ+za6DP9ImF3FI2lETnnHiG6o6aNz8nQ8vWApmVh/4fPgotBC68t4lc0hWZd6UazLOEL49zr9XEfOSFrnGg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDzXHCuMu0c4unpLuEs7Ggz0Mt4q4WwVhjxePuzSg827AiEA5rgfEkmc7opDqV8gXfhY2DprFKYUKSix9McUUGQaLKg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-6-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.6.1.tgz_1455401633343_0.38853860669769347" + }, + "directories": {} + }, + "3.6.2": { + "name": "ajv", + "version": "3.6.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "b2a67e7a65ddfb08879cc99ffb79d052bef4e09b", + "_id": "ajv@3.6.2", + "_shasum": "f8dc6edeaf18a4ee54d8040469f253221e847aa4", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "f8dc6edeaf18a4ee54d8040469f253221e847aa4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.6.2.tgz", + "integrity": "sha512-2fygp94ra68u0RN56FjowiICJ4y4igUnNtbd3SPAgXLRaPDVjogLtWMUL4NhPfnQYgWjtpBU0LpIlaW9vQQ/cQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEO5La8Hrhj4d3mqXQ4winvZX6Y7iHQ/gUL0T6OD0avxAiB+Egzyebd6nuQQcbSylWwZb+mzx6hboYKpNuAEeWg28Q==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.6.2.tgz_1455482599614_0.4574954891577363" + }, + "directories": {} + }, + "3.7.0": { + "name": "ajv", + "version": "3.7.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "8fa4d0f05f86be95c99f637a23f88e2e768282c2", + "_id": "ajv@3.7.0", + "_shasum": "77fc88ec89697be252341fd631b3485776b50812", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "77fc88ec89697be252341fd631b3485776b50812", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.7.0.tgz", + "integrity": "sha512-n4P8+lZyRUS5wdVHa3cO7qOF3rRb9iDGwmaXp0O2eXvM6FWFsLk2q8oA2oHCESqeUVUmNTjOc1iD1WKDTKT5fQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCR3xj1JAz1jWZbo0HU4JGvKVnscm3QwEAxdiB3WlbSAAIge4W4Pg2YLPEkNqeNHGYXz6M4bDCURf1zKgYevs39rww=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.7.0.tgz_1455750290511_0.15002082381397486" + }, + "directories": {} + }, + "3.7.1": { + "name": "ajv", + "version": "3.7.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "bdd1748dec193d756f0877c83dae236985669eab", + "_id": "ajv@3.7.1", + "_shasum": "d85ecc3ac88778972fd74368817505f5c28e6a5a", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "d85ecc3ac88778972fd74368817505f5c28e6a5a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.7.1.tgz", + "integrity": "sha512-yvDhVbClDvLaNMShDuuLSS+hoGllPqTA6JnGVxiU9NyFxSOCwSvA41J4HBI9kkAWf9g+SlBW7lummLB7xRWnug==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCKtInxFfNIXv//+9EK9kRb0b3n95ZB/InBTNLfeXaJewIgF7ApKILKwEpMn8Zy8OwTyMC8ddt8AcA7m1jes/0UwdY=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-9-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.7.1.tgz_1456061385597_0.7754228336270899" + }, + "directories": {} + }, + "3.7.2": { + "name": "ajv", + "version": "3.7.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^0.2.1", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs": "^2.1.2", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "545cfcb187dd2b10b0f4b96d3f56ded4a990b625", + "_id": "ajv@3.7.2", + "_shasum": "6d1ff4234752a4e91957cd1facef6182316d1b02", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "6d1ff4234752a4e91957cd1facef6182316d1b02", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.7.2.tgz", + "integrity": "sha512-svrV858thFUmPgkIGBEUvg004WhKJPzQyOsD43VWMZbMYPl0SXw7gKZopW01PgUImmlQucgrfL9jhTn3JTMOwA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDY/WLnIoIap/tQL4Xttsev2ZCGJ2yA3rILqvA41kN2vAiEAwV8s2a45SeyWUUfe249FFpw851J7xNt5+PeT3uKAmIo=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.7.2.tgz_1456306029514_0.6127863856963813" + }, + "directories": {} + }, + "3.8.0": { + "name": "ajv", + "version": "3.8.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "7399e441d0bea7e8345596f71e7d7750f9dc62e6", + "_id": "ajv@3.8.0", + "_shasum": "b8e5b2daf798b60d61c6a583a9396ec6203458a6", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "b8e5b2daf798b60d61c6a583a9396ec6203458a6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.0.tgz", + "integrity": "sha512-dpL9KOfsV8ikPlcLdbwDYzS+QzVgS/uOL1IkReja4D6es+1Qd/nvuPgqLngGmjap26MpN1kMO+PyUv7GAdHxOA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAeXfQESVYHrHmWcubia38Q/sX613RJTWn4q/6T4BegGAiEAsVR63eTwn9oWKlYXZXc+1Kq6r32juoGbab2VZZGUY9o=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.0.tgz_1456700912069_0.11556106619536877" + }, + "directories": {} + }, + "3.8.1": { + "name": "ajv", + "version": "3.8.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "6eeadb6a064e5f9885531960b06ece8938bbb331", + "_id": "ajv@3.8.1", + "_shasum": "52acd02d37f2e733bd8befaff6bbf8df3cf92e9f", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "52acd02d37f2e733bd8befaff6bbf8df3cf92e9f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.1.tgz", + "integrity": "sha512-137SxhUHKBEhvCicINjBoI6Qyy1R5bxTYpkoA81IIl5L2JidM7xr3FQeVHOo8rkormisXYcpyCYuC1Qj5y/iLA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBEYeCzrvQhbtsWWHRzW3FC5QnZOPYtqiEEQ3I9BRQXPAiEAxKdIFVUSlSA7Gh9LeS0VPWgRYLakQdNNcr4P4Tv9zEM=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-5-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.1.tgz_1456792068848_0.48854704992845654" + }, + "directories": {} + }, + "3.8.2": { + "name": "ajv", + "version": "3.8.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "71fafc27a4a87225b631c79c5a59c236f0144e77", + "_id": "ajv@3.8.2", + "_shasum": "4460402b40bf9f763ddbfb1d374c878ebe9869d9", + "_from": ".", + "_npmVersion": "2.14.7", + "_nodeVersion": "4.2.2", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "4460402b40bf9f763ddbfb1d374c878ebe9869d9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.2.tgz", + "integrity": "sha512-w2VQ33uJFjaL3+jUNrsG60kNWSf/kNvwIsixgK1pFy7Naf2G2QwBB06w7hi+sMfNqYeu7KASnO0+mZMDUfKBOw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDwKjndxGpuZHnuk9g7k3bGB3fcb1FsQiycHgmr0Oq6EAiBY3sMiU7dfK8gvrB6MJhRP8aIdLc03l3n0qmbiu+5HRA==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-13-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.2.tgz_1456930879616_0.06114017474465072" + }, + "directories": {} + }, + "3.8.3": { + "name": "ajv", + "version": "3.8.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "d7bbf3347807c3127c96c09fc347a9aa3d1d741b", + "_id": "ajv@3.8.3", + "_shasum": "2f6e9d03e4b9f75ac1e4a391ac6e75d335b4cd49", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "2f6e9d03e4b9f75ac1e4a391ac6e75d335b4cd49", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.3.tgz", + "integrity": "sha512-5UBRBNh/Dk88WF6flSfrcVWE5n/VmcnojvAV8TJDN/EqFpwXxiCL9hT3+tJVHgwbdqfeqDKeLAaxzetvefA+3g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBwms1onm6x82eRPWjw2u4zcg4SgqBJ6YSn4JceC7ZlZAiBuYWglSwLont6EPi8oSUaLPKmYS8Kai0TNYqtu8deQow==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-13-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.3.tgz_1457333844479_0.7003515993710607" + }, + "directories": {} + }, + "3.8.4": { + "name": "ajv", + "version": "3.8.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "e1a38d2d90114cf3b6537200e394f428b8911271", + "_id": "ajv@3.8.4", + "_shasum": "73b49e161e850870dbb8a752900b74a7dee33fb0", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "73b49e161e850870dbb8a752900b74a7dee33fb0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.4.tgz", + "integrity": "sha512-A62+7/1gK+3BL+56GcDds6pq3bzItF3Kh4AQ0gh/EsC72a6ydxJhOVt3no2CmoihPKCpAbi4+nBTp+Mi6sj0dg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFS+8/Iu1zKhkZZ9exEhqMtg388c5Kb+sgsAAV+47aZYAiEA+rNZlqvbhHhTpYainHk9h0cJ5LlTB+e5HFVH4ojTWbQ=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.4.tgz_1457565805037_0.45022220397368073" + }, + "directories": {} + }, + "3.8.5": { + "name": "ajv", + "version": "3.8.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "ce866416578ff6fb1bdb1e01697d85939cb9081f", + "_id": "ajv@3.8.5", + "_shasum": "c8ded3806a97a6bc56fba27cb9e044283f3f7db3", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c8ded3806a97a6bc56fba27cb9e044283f3f7db3", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.5.tgz", + "integrity": "sha512-GjnCyfOLGcwXLGfiDeQ3632S74NVkiXawakZSr+qQkJFW5KnzS8+6mXSem/ls2nSqm2gWDVqYl90Ev7QsmdjZw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFwzCzsDtc5VTwqm7vq/xbbZJ6+0TU6bGzOAKLHG3tPQAiBOjNr2ElngAZE1zW+YIsSxGbjRsnY6CCQEpsnFUtNjNw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-13-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.5.tgz_1457990388490_0.29618673981167376" + }, + "directories": {} + }, + "3.8.6": { + "name": "ajv", + "version": "3.8.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.0.0-rc.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "7d7505b4428cd31eed074bf596f23713ad5a65b1", + "_id": "ajv@3.8.6", + "_shasum": "bf4c5526b62ea2c57b08d443c78370a7c65d5f87", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "bf4c5526b62ea2c57b08d443c78370a7c65d5f87", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.6.tgz", + "integrity": "sha512-+5n9qUfVdYPki2frhHunoMK7gfkuJ009LkaAoRxYP/gWJ9RFesae8P8uAouvZj2rMr2eVcTsQhERqnllmi+tyw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFMesUwW9C9yd88c/fHPCxCYTQd0cyLiPr9Tos69k0TiAiEAnhl6Uml6ewX/NHxMXoT0rZP61QZhQXhYeusnUyrEjM4=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.6.tgz_1458502407083_0.2587131392210722" + }, + "directories": {} + }, + "3.8.7": { + "name": "ajv", + "version": "3.8.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": ["JSON", "schema", "validator"], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "2.4.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "4e579d7236c39fa5b2766200d92afbf4c3e5b8cc", + "_id": "ajv@3.8.7", + "_shasum": "5f2a4b6026176f6da9ef991f9f46ab768497e6b5", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "5f2a4b6026176f6da9ef991f9f46ab768497e6b5", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.7.tgz", + "integrity": "sha512-APrcwae/nSw50c1bV32H87HSFLXsaj2nfnUb3PoJ23Aty4k8p1i1ayJN4QA8+dn5Ft4DyxSHR5lSY7PdK34JLg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDBk+G3q8aqgA5BBDdIysK0jlm17bXdgzVE5zEiDmAzEwIhAL54/veOhHxPFV3BtJlzL5+L/W/jHiFkM8VETPPizvx3" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.7.tgz_1458938097622_0.007656031288206577" + }, + "directories": {} + }, + "3.8.8": { + "name": "ajv", + "version": "3.8.8", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "4e780204ac0bcd1a18bc36b52fa65927d24a499e", + "_id": "ajv@3.8.8", + "_shasum": "c4e70ec0c590442625291b51af7fc6a46df852a8", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "c4e70ec0c590442625291b51af7fc6a46df852a8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.8.tgz", + "integrity": "sha512-ZoVNz+kmsCfHXpvlrRFC3p3RAsG1W1o1ARu1corrh2e/wYfyb6fLuPqbbjEWfbK/nUNo2OAT2UrRFjzQpPmGvg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA59WFMp1CdKgDdcYRio7QR2LSjdFJbe5uZoU/TxCyjAAiAzv+9lOt7cExPpGsWbsABDBcQv0r2DgiqbFz2ZtSDshQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.8.tgz_1459445766665_0.22832818888127804" + }, + "directories": {} + }, + "3.8.9": { + "name": "ajv", + "version": "3.8.9", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "8676a3f62eb6e834dc2d5cee5aa52a42bfd46615", + "_id": "ajv@3.8.9", + "_shasum": "cd5a9a9fe55f0a1baead78240aee8a8c64e65b4b", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "cd5a9a9fe55f0a1baead78240aee8a8c64e65b4b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.9.tgz", + "integrity": "sha512-l65dRIU5vTAf5m2Zc+1/3iYuHvp7Z5+Eoq3ckSbA8UrwZqHam28JQUCrrO+6gqvqQm9T1aK+yZcfrXrwKO2lLQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA3/2fXm1aFERUgWceiGNHL6vJE6GTacS7cBooVxyvAVAiAQDOpwnlyG3cFe6m9B00Gbv2g17OeWDInTV1ieIddtKw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.9.tgz_1460285668693_0.9868647728580981" + }, + "directories": {} + }, + "3.8.10": { + "name": "ajv", + "version": "3.8.10", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "d7300491843356a864949f958a41e74a2b513217", + "_id": "ajv@3.8.10", + "_shasum": "78dfd5615e2cf4c0f8cb7f3284e0257dbbe867c9", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "78dfd5615e2cf4c0f8cb7f3284e0257dbbe867c9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-3.8.10.tgz", + "integrity": "sha512-h74deHfbgeB8TuWq6UQxP4fwsCbo9T+pvWofl4pEdZzI6lMSSFAWZr3PsNXHjSFABCj49j6fgbzUTHWIrMdHMw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGrvcFbTbgUPmyFd3MGEGGGBkh9/Qg/157Zu82wOaALaAiBBW5C5KCRG4ORxNVpchwagx/p5X+oS8oZ+QL3Mx8gzKQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-3.8.10.tgz_1460404154777_0.33052720804698765" + }, + "directories": {} + }, + "4.0.0": { + "name": "ajv", + "version": "4.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "bc8d9a9d3f40819bd72bd5aa6d9b4011590915b8", + "_id": "ajv@4.0.0", + "_shasum": "52c64e4ea85dd6506f5b8944172848d61a94ebff", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "52c64e4ea85dd6506f5b8944172848d61a94ebff", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.0.tgz", + "integrity": "sha512-q24/F9KCSZUuYkGYo3M0kAOLRdi7RrKUj4Pgt6JBQETgsQJC2YBo1xVpLE7qJVfn/bjXkXMEu056bhb6WPpqMw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFJU2kpI2WCCaZ9BR2qLnMosb+MPj3z01XlV06jAsK63AiEAhpc3tp8pikwMuLPDSPWT4jryxa8R8z//3FSbPwR3uFk=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.0.tgz_1460761263684_0.46288194321095943" + }, + "directories": {} + }, + "4.0.1": { + "name": "ajv", + "version": "4.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "44dd6b78b9babe721aedfe516e3e2ca450df8168", + "_id": "ajv@4.0.1", + "_shasum": "55ec59f2c512afbb2c807f1411da1fcddbedcab6", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "55ec59f2c512afbb2c807f1411da1fcddbedcab6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.1.tgz", + "integrity": "sha512-CGFOYyHH3uwZi5N/zvyqi7AAtAsuQpArroq7qZSrBNFXVbHBlEbYgcuKD9cXRGw4kTM3j/1MLguXbYnbe5VGhA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIE0ezdOVxTJtjZ53fMGAkKArAvYoop7OvK2sCiNYrcR5AiEA/VyqYNbDcbxP3/TfBEGMO3FPYxR+rkEeZpkHg48fC1g=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.1.tgz_1461010882502_0.09432906680740416" + }, + "directories": {} + }, + "4.0.2": { + "name": "ajv", + "version": "4.0.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES2015 lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "d8e607b9f1b58a03ec00e60299c747ae8621932f", + "_id": "ajv@4.0.2", + "_shasum": "626c92324c6906956e057574565d3bea8cf17e53", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [{ "name": "esp", "email": "e.poberezkin@me.com" }], + "dist": { + "shasum": "626c92324c6906956e057574565d3bea8cf17e53", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.2.tgz", + "integrity": "sha512-km8HHifTW41Jv8S9LZG7MWZyQ0r40aqoVn6pTO6xwZ+0B/VdnQzczkBq1w2/YPWkk38r806Ng4jzNlaWaZlFAA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICyFksmwadu6XHHtFTom7ae8U1Yfib9LiAOOXcE8Te0sAiEA1HQl6Ltca1rTj6ZZFgyoVdR9FhKrCvgRyurueE3NV2Y=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.2.tgz_1461183749746_0.22634403896518052" + }, + "directories": {} + }, + "4.0.3": { + "name": "ajv", + "version": "4.0.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "29a88b6f4a5b71ef9a903be5f04dac919b2af934", + "_id": "ajv@4.0.3", + "_shasum": "c242f3e5db15011b766792e4bbfdc5e60cb6a6aa", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c242f3e5db15011b766792e4bbfdc5e60cb6a6aa", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.3.tgz", + "integrity": "sha512-5LKjUPgpiIQqNfEc40T6XDSYF/frcujJaThEP9k/ql1SLoSfvx8mAsKr2UPdZjlu9s21vGAjw5YciDDlWWc4jA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCP6xh0X+KLGPH3fATbrZdEWn5W09DF5KYpzQEu0gQ2EgIhAOcXkPyfkhMHj1JrlwdCjF8b1B3CV0JJhSfFWleWvO4t" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.3.tgz_1461316982701_0.6980252945795655" + }, + "directories": {} + }, + "4.0.4": { + "name": "ajv", + "version": "4.0.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.17.1" + }, + "gitHead": "a8af73f45f573612df4e898cb5201784756e19cd", + "_id": "ajv@4.0.4", + "_shasum": "8bfc3e1bcb2fca11e345e5cfc37568f647d3514f", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "8bfc3e1bcb2fca11e345e5cfc37568f647d3514f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.4.tgz", + "integrity": "sha512-Ka9gxjNvN1LxTMGwkOcYXIUHCkDOlmEbL01ddpV95EpQFIr9x+VUa+P1rEs41tfnCjR3PDbZf4VrQZJEf8rsUQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFryM5sztSJynU0JOTP3rQlOYX1mAoeEXHzYkdlOKyZ6AiBamSdJwlDVOIucn7urQXr8q3g8O8S89j5i2DWgf8iZxw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.4.tgz_1461437807237_0.14932034444063902" + }, + "directories": {} + }, + "4.0.5": { + "name": "ajv", + "version": "4.0.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.0.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.5.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.3.13", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "edb5cf635f689653d73563d8216ca532aa844c50", + "_id": "ajv@4.0.5", + "_shasum": "c5fd98dd79a48054c943301a4a3f273b662d72ed", + "_from": ".", + "_npmVersion": "2.14.12", + "_nodeVersion": "4.3.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c5fd98dd79a48054c943301a4a3f273b662d72ed", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.5.tgz", + "integrity": "sha512-WMLiYNRoJYtH3yWfFJZnywU9fBCYDAM0FipYGKNdJCONQMxI9fRtvnHW8aSRNqldWljb/nvaqGWmfX+QSUDTUA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCNmA265h1wBP0Vrg05NnBG03K8Qwqbvz12mwqGtuc9PAIgTC/hHaf7o+aEXVuMQ24uqqE9/Hg9RtvIDg4zjMAqiW0=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.5.tgz_1462266044180_0.2766478341072798" + }, + "directories": {} + }, + "4.0.6": { + "name": "ajv", + "version": "4.0.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "b48b3598f1bb58157b0349e2806e0ef8f5f41e63", + "_id": "ajv@4.0.6", + "_shasum": "995c08692871bba6c6fa75b894fb2676bc9a842d", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "995c08692871bba6c6fa75b894fb2676bc9a842d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.0.6.tgz", + "integrity": "sha512-ODpQVPnQjvh4RqZj6KjLCokf7YWwIZRVliQvFjbit4djdisMplK7MVOzhqiUqMUHK+b+sx4ZqwhWXAlevw9v4A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCpWv68iNIPQZGYxx0A55jSuvioamB+/sRkRckUGwjcZgIhANGoMLfy+X9Rm28BSQUSanwVeIhxG1ZK7Qr7JddjTOVv" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.0.6.tgz_1463879517583_0.19395698606967926" + }, + "directories": {} + }, + "4.1.0": { + "name": "ajv", + "version": "4.1.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "9a9ba827297fa216f31d483ec75d3036d34d7ad2", + "_id": "ajv@4.1.0", + "_shasum": "947fefd215466af4ca79b24edc39db7aa139f59f", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "947fefd215466af4ca79b24edc39db7aa139f59f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.0.tgz", + "integrity": "sha512-UEtc7qVWi9wg8LsxQI8iG3uJjGN1bMBenACS1LTzDqdlscuXdpq260ctrVKIOPnVAm3ezI2nZW/Tz8PxPwAvYw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDmQi+Fz0/DKhNOj5pCsNxj8sIIRquX9rMd/zTQIDhzSAIhANfLOA+xIvbgKCwgNVY45v9CzGnsgL4FJFlJK2qxFW7J" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.0.tgz_1464381094937_0.6787656210362911" + }, + "directories": {} + }, + "4.1.1": { + "name": "ajv", + "version": "4.1.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "dbf1b06c66e9949d1767b876e2e3d5867de4c7f0", + "_id": "ajv@4.1.1", + "_shasum": "ce826fb62cf9fd10c85c4e04e6da354c49091964", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ce826fb62cf9fd10c85c4e04e6da354c49091964", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.1.tgz", + "integrity": "sha512-oxe1tx4CqgcYoP3IbyHu/EPmqc1Atn7lpnCgsedFca+iaLaDH+tIDnMsU6meKnduV8wJwLIsAvEJsU39HbziIg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFoO6n7qup7R0BgFalT0OxRBOxgoVJMTl5yceEDDD6zgAiEApbAQiZMiGFdQpCseVNIRBotzvbBKUu37zd2QdsjJ45o=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.1.tgz_1464761935875_0.10485800309106708" + }, + "directories": {} + }, + "4.1.2": { + "name": "ajv", + "version": "4.1.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "b91449a44552fc6437060294a7b0423a775c21c6", + "_id": "ajv@4.1.2", + "_shasum": "12fc187d65fad2b848331533fca11c749d3c2128", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "12fc187d65fad2b848331533fca11c749d3c2128", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.2.tgz", + "integrity": "sha512-RFUXdCdB0IR0OPW9bUvcBwdbAk93VZmGFDRixlLIh/JbqhqTHoiVbvYFuB97eIH4GhhqikOoBQbhJo4K5n86/Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDQ9uIhfX+Rct1FZ50ecD3aTThmMBozbQCRAuF2E8igBwIgQ/mwPA4CrgtUF5RBbDvq/6f/DhpUI8tVayCj07kKmRY=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.2.tgz_1465072986291_0.2666939068585634" + }, + "directories": {} + }, + "4.1.3": { + "name": "ajv", + "version": "4.1.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^0.13.3", + "karma-chrome-launcher": "^0.2.0", + "karma-mocha": "^0.2.0", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.2.5", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.18.0" + }, + "gitHead": "8c0b3d83210cc6a44c9f95b81ece41fec1aaa211", + "_id": "ajv@4.1.3", + "_shasum": "53c369f3a4bb467669b1c6c6d85e6c579e3d7973", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "53c369f3a4bb467669b1c6c6d85e6c579e3d7973", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.3.tgz", + "integrity": "sha512-yZWza5fsKRxv4pSd/+8bvI6iMhWv+9jxxkrO8stV1f7DbGbFauK+lhjGUtHwtd8oPhKOlk7EEG92hhRQyIAYEA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBJTTsXuF9mqF+IHBlX0pApo8mOSm9qJbTT/M0y2hxttAiBbcIkYP4MexpW8QzDwQ1wnNpMx2VoAP71U3hIzIO0kJQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.3.tgz_1465643336677_0.9728311828803271" + }, + "directories": {} + }, + "4.1.4": { + "name": "ajv", + "version": "4.1.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "6a508280b2789f90865670b8ced11e5b399f63f5", + "_id": "ajv@4.1.4", + "_shasum": "ba0a9230a9281cd5cc40f3b8e0fa3466ac085489", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ba0a9230a9281cd5cc40f3b8e0fa3466ac085489", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.4.tgz", + "integrity": "sha512-7R+NUMRXcOjYkq3VZqT/SQG/dtEhD5R/xFllwufh56nYWYldWejEUnneO0Q0ze7P6WPf20Y4C+g9K1Ekwa2KeA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC1TR4YgkVyjA9mUZ6a4toIZAgBm4i6+9hX3BLbjDXJ3AIhAL55D6TvLe10My2ZdAHu7e2ajxnojXGQOcO6UKiPEjUE" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.4.tgz_1466973226193_0.9905721331015229" + }, + "directories": {} + }, + "4.1.5": { + "name": "ajv", + "version": "4.1.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "3f960627453d7fccdf6e757fdf235aaf402d626a", + "_id": "ajv@4.1.5", + "_shasum": "ea283a594f579b06467ce05daa5422d73b116b99", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ea283a594f579b06467ce05daa5422d73b116b99", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.5.tgz", + "integrity": "sha512-Y1fUvBQqZ56vZe1nK8fZCHEaBpBEH1IRZp/hnq32383UZXHr2HELnzFPfrmYEVJ/mojaCnC8Xi/MxcuHqxCKuQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDhSVo7K5FtlpfBWz0wWEQYW5kbvWb37+/llXnaIeY5xAiBn9A0Jx1uKU36saTYEVnT3K7z/H7nkRtD0o2NJh8ct+Q==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.5.tgz_1467146828371_0.7193366650026292" + }, + "directories": {} + }, + "4.1.6": { + "name": "ajv", + "version": "4.1.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "57e09aab22cae93edf440976849887f91fa8fd1c", + "_id": "ajv@4.1.6", + "_shasum": "b0319c5bd8da7ffb3e85c696a1663aaceaa431ab", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "b0319c5bd8da7ffb3e85c696a1663aaceaa431ab", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.6.tgz", + "integrity": "sha512-GqzEJEi4P4sz+AbwoT0mIhqtjeaZA5MKh8JtOvykkKpKyZ667FYbpBF7Uxh+8ZdlEeZdOrO41AzvW2k0dCTYaQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCKWxC1FhcmmmUAK7GbP3djCl4DLKI5UlBml2U7tw6enwIhAPiyPz6Esj7C6fDTTjwXhVbCSV1ccMAo5FeiN54vxGst" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.6.tgz_1468107571125_0.7893906715326011" + }, + "directories": {} + }, + "4.1.7": { + "name": "ajv", + "version": "4.1.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "2bcb74fc8ccf5179e26b2a89c14dca978be929b0", + "_id": "ajv@4.1.7", + "_shasum": "1b1e58cf7356ce813516c239ec92894924513a99", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "1b1e58cf7356ce813516c239ec92894924513a99", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.7.tgz", + "integrity": "sha512-Hwzb700P98NpTTljTIN3R9vkJMs61zblzMZe7esC78bSEXifltJ6LtXEK+5kp/elG3RFz9xgwk7gVajeI8e3nA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCEAkOay5w1vqsrwI3UyX3LQbFgw8IuhUzOFdUGFKvjwwIgbTxEfYKZ929wjTIFAsdHa5/p7iJX2ysEMePcRlGXmi8=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.7.tgz_1468173148769_0.9352951750624925" + }, + "directories": {} + }, + "4.1.8": { + "name": "ajv", + "version": "4.1.8", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^2.10.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "f06008a84fcb9691e0652a9fc35bab3cd22e2033", + "_id": "ajv@4.1.8", + "_shasum": "e9e2ff896794a3d5941545e4e325ce94876defbc", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "e9e2ff896794a3d5941545e4e325ce94876defbc", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.1.8.tgz", + "integrity": "sha512-S0H0WhY7fbsWSFiKTUAa0bZ547v5WT+rP3/nD2P6OrgNDlp9zSzRVYFakAT32LDG5VCj8zGHuj4mL42gV7Qt4Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCm+r3xVvnWeA/C/qokK+eLoRcKse0vcG8iBG57hcX6ngIhAKgYsJfApzU+6Ajeblxvwkbi1X7pue+d/7ysXxwM8pyr" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.1.8.tgz_1469144941472_0.3356471143197268" + }, + "directories": {} + }, + "4.2.0": { + "name": "ajv", + "version": "4.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.1.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "b7535d4a6965097d4f2d2cda466e882dc7ea668b", + "_id": "ajv@4.2.0", + "_shasum": "5605296096b376f7f8f64e25234d163dbd634d17", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "5605296096b376f7f8f64e25234d163dbd634d17", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.2.0.tgz", + "integrity": "sha512-hgQFLNEq4aUb9dK/AJlSXxkgzm16eTf5LIURqf18xI773U9MXnT6ChcURO+uxZBApHPyiQYkFhxePQduu9G4Og==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA55o7PrS2R/EfskkWjEOI7cnb9VVYRfi9kPOi3WhjOBAiBV2LdAyEFJ2l10FEP5WM50APUPl+xhvEIwuwpILFFQiw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.2.0.tgz_1469199118517_0.7737722482997924" + }, + "directories": {} + }, + "4.3.0": { + "name": "ajv", + "version": "4.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.1.1", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^2.5.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "a382ec8edffe3ac1c5edfc96ee527d91853ae681", + "_id": "ajv@4.3.0", + "_shasum": "bbd712c17c5a513af297457c58db8108e54ba10e", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "bbd712c17c5a513af297457c58db8108e54ba10e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.3.0.tgz", + "integrity": "sha512-OGb4fBuIshUwrT1O9mIWH771QmN+1SK0jcHoDAZfTwr7wtjAJjNEuBQgOiVWDKmzzsnmrKP+Nbx4ojWEvcYI7A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAHIj0yQUVi7zixwMM72TZ7Blj4zIAtotlHTDdpisCFLAiBj0g6MEBsSTIou3IaH7+FJGKp7Dx80+4lkVsbXqXK44w==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.3.0.tgz_1469746108910_0.9213330710772425" + }, + "directories": {} + }, + "4.3.1": { + "name": "ajv", + "version": "4.3.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "321a6d1a835f0c697cfc1a1216a0f39760124c44", + "_id": "ajv@4.3.1", + "_shasum": "027652caa6c99391adc511fc5872625024d9a43a", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "027652caa6c99391adc511fc5872625024d9a43a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.3.1.tgz", + "integrity": "sha512-QaI135j81KQt3T4Jn9IqhU+D6i6LvqEXf5hI72/f8Cr7Tx4GP1upGiR/I4iRhJ+7pdKFAgHIxisQ08TpL2xMfQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHXqtzcwSUddbcUtBGDIHc+L+GD8W26LPm8j1GH9LH5KAiAT3eQ3EbPum0y1O671XtuyE4oWIISf/MqXtZ+Ag4a/wg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.3.1.tgz_1470425640375_0.16462868987582624" + }, + "directories": {} + }, + "4.4.0": { + "name": "ajv", + "version": "4.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "87c6cc7b713587ded331e28aa23bc9ca9dadac94", + "_id": "ajv@4.4.0", + "_shasum": "2cfc3f095210946b90cc2625173d11a7efe4ab8b", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "2cfc3f095210946b90cc2625173d11a7efe4ab8b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.4.0.tgz", + "integrity": "sha512-Tsc6wsVlzKfDTwi/JhbbHuVZSlpEPVum4AuIoQFEw5jQkL0p7PJ9lLX7tmU2j1sgpay8z512+5lSmUk2fZsiJg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICw+HBCYOdBwmKlq/SrEgUDcAfO920iNkqNsGkfZXVfdAiEAowBS9z5MyW3eZGoU7Lh3ner75GkKWq0a7cfZ+LOQyJ4=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.4.0.tgz_1470571863721_0.4387993919663131" + }, + "directories": {} + }, + "4.4.1": { + "name": "ajv", + "version": "4.4.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "adcf8be48f7f1284f6e12446faf41691b9ecd8c1", + "_id": "ajv@4.4.1", + "_shasum": "92d0d9e291d6e453ef5e9055a4371c736e8109e2", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "92d0d9e291d6e453ef5e9055a4371c736e8109e2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.4.1.tgz", + "integrity": "sha512-i73wxn7XvYdrZrcs0tV3DYUclWrthm/ySUXgGEgVakvf0KEY4b5C3ODCQ0EtvByrSBdLG/g0MEsJjDAKBJC8gQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD42dVvomrC7NLkWgF3nDDLA2PppZRT1HquNXVEvR5E3AIgam6oXCJU5TimM7+VcTH4MDadfncEkeWe/nsbw6Amfi4=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.4.1.tgz_1471217724890_0.9489514119923115" + }, + "directories": {} + }, + "4.5.0": { + "name": "ajv", + "version": "4.5.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^1.0.1", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "7e7219212d0999f84dc7531d8b5c0388f5cf6dec", + "_id": "ajv@4.5.0", + "_shasum": "536cc01d1e7e0f0fe3278b405b35ac3a2417ecef", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "536cc01d1e7e0f0fe3278b405b35ac3a2417ecef", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.5.0.tgz", + "integrity": "sha512-W42zj4Y2sRzoeItJv3iPM9EOfnMz3hBRDb+Okt98gISjhyF2TxgWo+dspQiq9r5AUICtcYP7S7gCN6NHBRcXLQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEZ7c+7OJFQi3nDXfiHEQVCqwX1UG/FQHLUVaFPoViOxAiBpiQBn3QGxl0TQaBFlFHg59UrVoEbDS+c5kj+Oa4YhGQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.5.0.tgz_1471296060122_0.15329376445151865" + }, + "directories": {} + }, + "4.6.0": { + "name": "ajv", + "version": "4.6.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "76ce06c6f33a0331b8c299836c483533c7fcdc8a", + "_id": "ajv@4.6.0", + "_shasum": "71a150742689ab6dcfb9c78cb92b35d0d098d7a8", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "71a150742689ab6dcfb9c78cb92b35d0d098d7a8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.6.0.tgz", + "integrity": "sha512-lVnUuMafXVIFojUH/eiaZjeEvS6mLmdDFnZeHzaMeuEmbX5f/ri/TFLgNyphf/K36OvZtFRYBgUCC+wa6a4C/g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCAmc6dWirTbeRLuA2IlmYgqITEj4RwmZY70LxEZ20CrwIhAPz3Z0HszFGud4u2gJTTSXtwvZOdMMHVCIStaVGx9pHX" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.6.0.tgz_1472509861460_0.20285973185673356" + }, + "directories": {} + }, + "4.6.1": { + "name": "ajv", + "version": "4.6.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "0f4b70f51fe0212f3cf597c354268ea0f5b1fabb", + "_id": "ajv@4.6.1", + "_shasum": "4af22bd954e88f483bf5c491ba47215584436699", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4af22bd954e88f483bf5c491ba47215584436699", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.6.1.tgz", + "integrity": "sha512-AFd7jZEqVlPq3vxOjGmkCzjE8/egrpuKwoTZxzO3c3BpOHIKmrHHzL0mfdUlFqsh4gjZIliS5dL5NogUhe01Uw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHqr5I4p2IvEPMCMH/60L6AhBeo4uI+GRaCa/1ugG1iFAiEAyOItvGEEtHF+MhtTUfHUXbyI51vu6esNKuaTHNtIeuY=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.6.1.tgz_1472587226408_0.05558462697081268" + }, + "directories": {} + }, + "4.7.0": { + "name": "ajv", + "version": "4.7.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "1129dfad0f95619788ce2fd8494d6bbe658e41a9", + "_id": "ajv@4.7.0", + "_shasum": "f7e9e19740549c0f9762a56c3bc887e7cd3b735a", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "f7e9e19740549c0f9762a56c3bc887e7cd3b735a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.0.tgz", + "integrity": "sha512-QdE6KRcbF73vKByPs1ODSyWgkfjkTZTIxYKo54pB6Od+RsuhBFpcWB46/P4QHciTpTDyn1K/S7ZHIc/w4XGx2Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHu+LZYiG/o1KTkFDiKpLy/mue4RNxT7rfUrk+I8Hk47AiEA7kUhqFj8nD6laAulTtyxUL9esOjbD8W4Dt8Wlm8dIas=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.0.tgz_1473198938105_0.7088789043482393" + }, + "directories": {} + }, + "4.7.1": { + "name": "ajv", + "version": "4.7.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "c9e53aa4e11432c6ca986c64f97cd5d0a2224394", + "_id": "ajv@4.7.1", + "_shasum": "7bea0df4b98c6cce5f12b65496f33fa4489b7513", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "7bea0df4b98c6cce5f12b65496f33fa4489b7513", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.1.tgz", + "integrity": "sha512-06dPKupP657eSxfcuUI3RZTh/DT/QttqEWUpzfZekUlo8cat/O1v16VknwDqyepnz1heaedgfUxsfQp5X0o4xA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDzA9N6NLS7uYuizg2IJ9G/9R/xTjKu5MO7lvFqw/DPsAiB8t9akYaczAa1RH3/cHqXJ2b6K4cbnBxO7UKP5rOvUEg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.1.tgz_1474302691274_0.7229765267111361" + }, + "directories": {} + }, + "4.7.2": { + "name": "ajv", + "version": "4.7.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^1.8.10", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "acfd035720193bcff8b365c204dad1a7ae3d6194", + "_id": "ajv@4.7.2", + "_shasum": "ad1a8a461ac96df1b1dee030a18ebd72225b1b22", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ad1a8a461ac96df1b1dee030a18ebd72225b1b22", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.2.tgz", + "integrity": "sha512-7Aax/5M8ZkW/85YK3Js2afILq5D58iHBCnocsOEbmAzmfUfPGrqh576QVb0o8Q5UAi1XuCUoqK0zhsa8EdIfRg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCmKvnPBcG07Rpqnd40BJfbaIrTRV0tWbiE2Rx/hOYr8gIgWVmfekPLFSaYupsH+9CwlS/dLETBvXQsmbhfYMzxuNc=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.2.tgz_1474313699696_0.9613443077541888" + }, + "directories": {} + }, + "4.7.3": { + "name": "ajv", + "version": "4.7.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "33527596ecad427936b9035f882d155200ab2b4c", + "_id": "ajv@4.7.3", + "_shasum": "cc16021677f17d6f222b94b29899d99b270f82c5", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "cc16021677f17d6f222b94b29899d99b270f82c5", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.3.tgz", + "integrity": "sha512-wAq612d45b48PJlq6D8MR4yBGeWe6tciF7B+SvCq+2/uKUatKi0c5E6QbsUzuVfvtXWqlLwif2kAD2X8MmDVKw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBLSrQvy5FUhtfzK63DCDbZfgEzEQUixz94+UeZk7DspAiEA6frQjBKyvr24/EGPsRGKDipSmttHqHhFGwlbU3HFgxg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.3.tgz_1474563538588_0.760961681837216" + }, + "directories": {} + }, + "4.7.4": { + "name": "ajv", + "version": "4.7.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-pack": "AJV_PACK=true npm run test-spec", + "test-pack-fast": " AJV_PACK=true AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-pack": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "812940d5285c0025aa016a01985699c512e18b48", + "_id": "ajv@4.7.4", + "_shasum": "a1cbebe691f5b2abe3338ca2c4db7beec5cfb5e1", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "a1cbebe691f5b2abe3338ca2c4db7beec5cfb5e1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.4.tgz", + "integrity": "sha512-yETkyr3dpsCxbTdQsGf43qrouiMfM+l+Qb7FxdleGz+7p9B8N506Zo3q0TVmAWt3egBk9lAavYT3c27rvf7BTQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBmly5xm/D6UWDaBBhMp8RNZWk99i+cT+ZwcVBJUJcWqAiBQ5rlIO/WyOv4nIOUZw7TukyOoYIa2zr8dWUZWJvbpuA==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.4.tgz_1474740023404_0.8328279026318341" + }, + "directories": {} + }, + "4.7.5": { + "name": "ajv", + "version": "4.7.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "7c95ec9fa83f707090d3103b8db97b1061130e6d", + "_id": "ajv@4.7.5", + "_shasum": "f44172aec18514e6ba6350cc5fae0ee9b142e68c", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "f44172aec18514e6ba6350cc5fae0ee9b142e68c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.5.tgz", + "integrity": "sha512-WEjAzXZbjfWkhpuWE78pEwaDOML+JQvzxalzewzEkf8A4Sw6KjPUrAotKyC8ck0+gDEWzxyr55ZNvew55oSFCg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDGpvqFSErf4/nBWLiF4nQ6ub11ZTdpxoupNNtY9cvYhAIhALsXBrtLuC574LMgdcIyJNZwovJl7RE9vrJbmaUHuiaw" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.5.tgz_1475072482304_0.13598004751838744" + }, + "directories": {} + }, + "4.7.6": { + "name": "ajv", + "version": "4.7.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "istanbul": "^0.4.2", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "72a3bd0c2a4e780d110584e21c71ef5df97f06e0", + "_id": "ajv@4.7.6", + "_shasum": "a5c1da3f901ab7943e874a6c7820510f375aa996", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "a5c1da3f901ab7943e874a6c7820510f375aa996", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.6.tgz", + "integrity": "sha512-YtDrTy5roHsF8iFzQsY9383p9rAwBz5r4SRRDnhNqwlej69DcWlev3bTQiLaeo3ICD3p271W2o2Ufm54IQN5mw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDXcnNJN3eP43Dabcu7l+tWl/R9DSJz3YX/OhqIBL81jAiBymzVnaj7Mu+hRpDNqBrX+qpJ0akLJnh2BgroVwJBccg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.6.tgz_1475429760477_0.8782952819019556" + }, + "directories": {} + }, + "4.7.7": { + "name": "ajv", + "version": "4.7.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^2.5.3", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^0.19.1" + }, + "gitHead": "40319b9e228a20b7d9a9577ce76affe5ca6fc7d8", + "_id": "ajv@4.7.7", + "_shasum": "4980d5f65ce90a2579532eec66429f320dea0321", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4980d5f65ce90a2579532eec66429f320dea0321", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.7.7.tgz", + "integrity": "sha512-MHYBmwmlJ4Yi8+KEvRrvdVz7pKlFfPccs/kFTkygD9KOjqXQtKah0S2ZCJo3OF3YrVNrFLgqQ4MBQ7OmEFo1og==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHs7F68uB+OEM8m7iDXZdUw3wfRUGkcNVQ7K1350DsChAiASWaJlmGf+g6ecF/NnmYWgLHAiTJjuGbM4PuFUwIjKhQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.7.7.tgz_1475693184318_0.560827705077827" + }, + "directories": {} + }, + "4.8.0": { + "name": "ajv", + "version": "4.8.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "14857ac0253743f455beb7da1585e34ef5ad52ba", + "_id": "ajv@4.8.0", + "_shasum": "011df5c4a08edb29574a477269afb15a6f97abe5", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.8.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "011df5c4a08edb29574a477269afb15a6f97abe5", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.8.0.tgz", + "integrity": "sha512-+XK3Lh2Lt0MOSOnHoEffC4GLg8mDX/VdwxA31uPrOWRgg1ad2aHNRA56GBRk0F2hEMmhkbpfSi3IPTQSd8Kq2Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDbt+CA0fwrSCplQJs0yWoOrQI/gH5c3tcGpMMAD3QkrwIgRxe2ZJMa8TbA30lXXGghk/zKIhr9YlkYAnViVZ29I6A=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.8.0.tgz_1476636136109_0.1863896562717855" + }, + "directories": {} + }, + "4.8.1": { + "name": "ajv", + "version": "4.8.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "aeac51b78931bdb4e6bddcfaae84d4feeb68a2f9", + "_id": "ajv@4.8.1", + "_shasum": "708213577289a84a8148e66daa980c32da6a562e", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "708213577289a84a8148e66daa980c32da6a562e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.8.1.tgz", + "integrity": "sha512-Do74Mch6PoBCYtjM7WIia7C3PD7ts/akFSRYHplaTalgfWKTNUK1Q6Z1q2XP2l3dTv9GjXMsRDeyDhF7QxQnmQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDQMeDWHShdx8sv3F94+ZCg94a2/rpUI5nSmrH1iCtTcAiEA6TYCUpERcy2gVFjDElixv8I83lOP7vbzBek/rLl/73k=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.8.1.tgz_1476866385557_0.2896175996866077" + }, + "directories": {} + }, + "4.8.2": { + "name": "ajv", + "version": "4.8.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "81c2069354a65a25d87d8980cc6aa321f30f15c7", + "_id": "ajv@4.8.2", + "_shasum": "65486936ca36fea39a1504332a78bebd5d447bdc", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "4.4.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "65486936ca36fea39a1504332a78bebd5d447bdc", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.8.2.tgz", + "integrity": "sha512-wyMuXI8/9giNjPjht43OJFI39DVJzP4qwCPTgmQxqHZB2VLXF7Fc8btRweX+3+kU3mYmRQNghTr42Nf86sRSQQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFQI3tn7wtKDJDObGyUtLSvBu7st/6TabEVgHYdYJ8jDAiALcxyqLn08dzSCpLGPn9qxxDaWSxDAqAaOuLyUk4W6OQ==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.8.2.tgz_1476920545856_0.023521051509305835" + }, + "directories": {} + }, + "5.0.0-beta.0": { + "name": "ajv", + "version": "5.0.0-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "d0c5a3904d4e6248bc4f8ea1a4bf417ce228c3e2", + "_id": "ajv@5.0.0-beta.0", + "_shasum": "22563d59b329eda26fe668cdbd7ba858e3e40016", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "7.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "22563d59b329eda26fe668cdbd7ba858e3e40016", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.0-beta.0.tgz", + "integrity": "sha512-igWqAb+ByBG+9uiN0Zp2m37gH4OC4p6BiM5HT6YR2vWIA3qO7+5IzE3XyZKBszE2MawYngQSXvwB51FRw6uArg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICK7AFEhdoVajrdOu4zfh9pNh/g1t5b7wKt/q5YHRMy7AiAhJ/Mt3RkUiCqyl30aUmqKmTOLT79eGmzeAxE2Us/uEw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.0-beta.0.tgz_1478633337730_0.06507876794785261" + }, + "directories": {} + }, + "4.9.0": { + "name": "ajv", + "version": "4.9.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "c6127ee8354acd991148a629db23f1ae2d68aca7", + "_id": "ajv@4.9.0", + "_shasum": "5a358085747b134eb567d6d15e015f1d7802f45c", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "5a358085747b134eb567d6d15e015f1d7802f45c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.9.0.tgz", + "integrity": "sha512-O0z4y7Q2TThSwNZMegvZwgnDa9SYhWUbuQy6ryLhoISaeAqISvD20xoAjzZPgMMRe3LglAqnkTtzJEZQ+akzFw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCID0925T2PCIFPV3tqhNYhjZnbZZi/0B6ih3+GMSksKgJAiEA9HGmdyWHGht5UgCP4sKD/BbMIqQTqgjzTDw43pwcMMo=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.9.0.tgz_1479157270762_0.6616885648109019" + }, + "directories": {} + }, + "5.0.0-beta.1": { + "name": "ajv", + "version": "5.0.0-beta.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^0.3.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^8.3.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.8.42", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "2a2f8d0e9cfa14144dbb732258efe6b327723cf2", + "_id": "ajv@5.0.0-beta.1", + "_shasum": "ca45fe972aa0b86ffb5af555961594e0d4ae05e8", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ca45fe972aa0b86ffb5af555961594e0d4ae05e8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.0-beta.1.tgz", + "integrity": "sha512-ZNVkmibEngHJblBeQ1srNB34TTRzA0D/BpIdUjN4EhFyq2GKTWlgUpkVw3w1+D0L0e0ZGfvbl995EpTLEIFeqA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDXdKcyL3kMT3b8VW8hqfudd6v2WxYmBVskY/whAPbySAIhAM4eK/2EHTVpHmizF58gqj8J9zsWtrZp3Y5wXa56gJyA" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.0-beta.1.tgz_1480540895918_0.3803114793263376" + }, + "directories": {} + }, + "4.9.1": { + "name": "ajv", + "version": "4.9.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "653a4e06e64f7912c538d2b79c1198afc85eb302", + "_id": "ajv@4.9.1", + "_shasum": "08e1b0a5fddc8b844d28ca7b03510e78812ee3a0", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "08e1b0a5fddc8b844d28ca7b03510e78812ee3a0", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.9.1.tgz", + "integrity": "sha512-TrRbj4hdDrFJzBaYFhZ0gjRdPfTwcSttCjsYSaKuknWT04nJp99Y+PcKpX4dL8m8LuC1BEUtDz2r4nVjVFCctw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCjDAM726Yo4qNN1GhuXh9XO3VOcq1K8Ld/7KGBywAEigIhAJUwsWpesKH8hicpAIZaI4wh3VkeY0QQk1o+dgbkk+Em" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.9.1.tgz_1480801905322_0.9445961771998554" + }, + "directories": {} + }, + "4.9.2": { + "name": "ajv", + "version": "4.9.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "8d72433ff3409e8440e7fee4d39e364df14c32e3", + "_id": "ajv@4.9.2", + "_shasum": "3f7dcda95b0c34bceb2d69945117d146219f1a2c", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "3f7dcda95b0c34bceb2d69945117d146219f1a2c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.9.2.tgz", + "integrity": "sha512-gXtK+jN8qN2Z4fKFyIFPQPn495RI/PxLWI4OcN6cc5W5NEOkMaRlYKyMn+frErxNf11jrL7u//2sLYJ8aqwVWw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDYKf2vCL3J9rOflB6Xr5aiqcNTt2MW/RkmJvFFgGe8wQIgdBv7J1YHzGfVw3BX8dt+9DuufdHcqOu2pOD6jYsb0iQ=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.9.2.tgz_1481060837565_0.13760231574997306" + }, + "directories": {} + }, + "4.9.3": { + "name": "ajv", + "version": "4.9.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "fe18ed52f89bc690838940228f2185bae9646df5", + "_id": "ajv@4.9.3", + "_shasum": "ed9953a96d5584ce180f25757cd23504daff59ca", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ed9953a96d5584ce180f25757cd23504daff59ca", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.9.3.tgz", + "integrity": "sha512-t7ewGUZ8+w9g6d9ZleeUW80+gihcMrM4Ym8KFZ9sUdLsUJvFB3e+cduFhCuCTur/Y4xpi8U5KSQ1zy5fqi4cBw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEiOLXGAuR8jIBlOTtpx2zQguzOCP7QIBXJlaXeTYEmZAiEA2fLkLPRG27yFZmxGPxnpdYTFPKHN3nZ/iuYresp2ZS8=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.9.3.tgz_1481409214650_0.4167718554381281" + }, + "directories": {} + }, + "4.10.0": { + "name": "ajv", + "version": "4.10.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "8a470f32df444e662e84d772424e3fd87c747d04", + "_id": "ajv@4.10.0", + "_shasum": "7ae6169180eb199192a8b9a19fd0f47fc9ac8764", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "7ae6169180eb199192a8b9a19fd0f47fc9ac8764", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.10.0.tgz", + "integrity": "sha512-MyMSPSi5pQZZjTKLSJMs2Ww7HnQ6usesH8x2Z9KtQ+2dw0f5tnTdtfAmiAP+BxPfer8R3H1m91+51sIB9j7dtQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCHYcLvVfbYo1TH294rC2/NCRwEIj4oaGhWN5LZB2d+QgIgLZoYoQREQ4rXWcgVUBiima3NQ4E0ZtmPbwLYryseZlA=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.10.0.tgz_1481460769740_0.7814244159962982" + }, + "directories": {} + }, + "4.10.1": { + "name": "ajv", + "version": "4.10.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "node scripts/compile-dots.js", + "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "23f2572d1c659c4c0d369c1836c068d9f426e713", + "_id": "ajv@4.10.1", + "_shasum": "6e1669b62d752424a73da9175901d0327adfc2a5", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "6e1669b62d752424a73da9175901d0327adfc2a5", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.10.1.tgz", + "integrity": "sha512-LCrPD5PSMdb5QJeSmP4tVXel5oEYfxfzfgVXLQCOjF//SS3g7PNROXhC4KOz3JrXvGd+8u+k90jGRluiQ4a2Mw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCfY41cgp8mhe7ijKHm0kg6gsxC9e4MqxRMcQmWm//qhAIhANX246TJXkXr0VYst7HfGvP7rapRqrUmiYTn/8hK2IIi" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.10.1.tgz_1482515150598_0.2774805261287838" + }, + "directories": {} + }, + "4.10.2": { + "name": "ajv", + "version": "4.10.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "17de8aba47feae32dfefc318f03a82809fde4b36", + "_id": "ajv@4.10.2", + "_shasum": "27a61437962cb6daf8023ca9ad2a30337d918dda", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "27a61437962cb6daf8023ca9ad2a30337d918dda", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.10.2.tgz", + "integrity": "sha512-rSvNEnWpgw7ArP2FdV4kbSK7t6vckFdaIVtOrKF7SshiIBjDJ+bxkKF6V6LIwcvxWti5P0yMTGzt3WkCPMCwwA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIA7zbm/5ILRQ2exl41OHzZWZjORsGaoOqR7apLfPI2tSAiEA6+BXpX46xpksKDSj2Iydl1gVDjyhJR1LM2UCM51WopY=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.10.2.tgz_1482546808840_0.22200659289956093" + }, + "directories": {} + }, + "4.10.3": { + "name": "ajv", + "version": "4.10.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "c4335abf536d6b09533d39a617a4e8e1744fd58e", + "_id": "ajv@4.10.3", + "_shasum": "3e4fea9675b157de7888b80dd0ed735b83f28e11", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "3e4fea9675b157de7888b80dd0ed735b83f28e11", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.10.3.tgz", + "integrity": "sha512-ASRaFnLojvzA75SFS9Alex/S/V2gX+1xvmE5ZyUwaS6CQtd6nx6xdEAbvhRsCRxeGE4L5z1und47fov3iIZAIQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDND1l69H+PlhmE142UdeXlJxieyzLcb1Rbwkt8RNei+QIhALISqjRQzhGucKNGMTPgYGSoOOGG77tFnFkaZpYgsAKl" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.10.3.tgz_1482625045284_0.6883765840902925" + }, + "directories": {} + }, + "5.0.1-beta.0": { + "name": "ajv", + "version": "5.0.1-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "187ba176f36ab277cd3bcc670279dc54f67431df", + "_id": "ajv@5.0.1-beta.0", + "_shasum": "93dda18a3ed7fa3d29c8ca27e4398484e0929f19", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "93dda18a3ed7fa3d29c8ca27e4398484e0929f19", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.1-beta.0.tgz", + "integrity": "sha512-pyxQIPQB8ZLAvQkY7OzLW/0/q4X57T5SNF7XJyjY+vwUagoahx2rmDJB3YdUyNkmUVwxp0QU2vK84K5qvAPJGQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICO1xBiSqmho6E1uiV4q4g1UzTjXPOUQ1YlKyAGJQGBbAiEAvaSIarr3i706azDgYb2HvoxNSH+esp4e1F8B68wrl5U=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.1-beta.0.tgz_1483144787818_0.3265638491138816" + }, + "directories": {} + }, + "4.10.4": { + "name": "ajv", + "version": "4.10.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "b4ecf27fb2f19516034a6ddf9c1cc7f766b0d014", + "_id": "ajv@4.10.4", + "_shasum": "c0974dd00b3464984892d6010aa9c2c945933254", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c0974dd00b3464984892d6010aa9c2c945933254", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.10.4.tgz", + "integrity": "sha512-cxctC1bFbzySg37ywWib1huYFFe341i36SRp16FimGzkblS4mjkO4hK+cbOFRglBNaFYiiEzPxjfOIxxa6yrbw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCID73jN6hFxWxJvoJ2mUbkBks7CV+5+nT8ZgF6h4zuFe3AiEAySJKLwecS6s+frJFJnuHE3a2a101Ykn5S7GSXMx/hsA=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.10.4.tgz_1483646632206_0.8484643213450909" + }, + "directories": {} + }, + "5.0.1-beta.1": { + "name": "ajv", + "version": "5.0.1-beta.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "2cc48296f5122da642d248a5a0763f85443bd324", + "_id": "ajv@5.0.1-beta.1", + "_shasum": "1833fdf34b88642c737ab3ce2d75367897afbbde", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "1833fdf34b88642c737ab3ce2d75367897afbbde", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.1-beta.1.tgz", + "integrity": "sha512-LzFyxO5wmNIh4fZDtPGm+HKlU8+QF+vNiyZ67kuKYvPcUUJtfMYtSVD6zn4KF4EDOpT0GV+cvkur1ZxYFXRUQQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBsPwUHlf44+K7csGCjjePYGPGkTrBcLrXdo9v5du91TAiEAnhqdkuxSf84rVVBfHMqebau8QcZrDcfkrdnWCWnRh3M=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.1-beta.1.tgz_1484956247087_0.20638733566738665" + }, + "directories": {} + }, + "4.11.0": { + "name": "ajv", + "version": "4.11.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "9e1c8d7576cdaf9c7ed669cfa6cca25c663b5463", + "_id": "ajv@4.11.0", + "_shasum": "bcea8caf88a79be08a7fa1061f8c57a3db393fb7", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "bcea8caf88a79be08a7fa1061f8c57a3db393fb7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.0.tgz", + "integrity": "sha512-dmrCiOfQgmR2+nf1cGZeZXMNkUjnBv9k+rD0Xi+TVaM2wA9WP8/xBJ6v5DKciwHK+hbA0uATqHxnXNIxTBxxDw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCID3AZkcKJOiAg6Qm6/6t0g1ZCEZuoRGw+v3+wI+0L0ZDAiAAjgP1jD/f0ugbdV+QRtTkt5ttHCHjwhIdkot8MGFr7g==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.0.tgz_1484957822562_0.16284760809503496" + }, + "directories": {} + }, + "4.11.1": { + "name": "ajv", + "version": "4.11.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "cf39a53404263985bb466d845620b5cc2b31914e", + "_id": "ajv@4.11.1", + "_shasum": "a903487faabf8608aa22871032ca447440afe494", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "a903487faabf8608aa22871032ca447440afe494", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.1.tgz", + "integrity": "sha512-vsCfUD9l+io7TLrCbhOWxpccQqfP1Hw2xVkOJ0ztBhd6JYD/Pn4sC06gFraFI7RK9vsuBfPLiFJWqeX08BS/cQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIES2/fE6D0ZA3fTbuc3reSQkBZbccT/kdi3674JlXPKCAiEAq2oyddObJuLoJCmPEauFd6A3XXY4A2toNP+jO6XiOuk=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.1.tgz_1484958768673_0.12028013984672725" + }, + "directories": {} + }, + "4.11.2": { + "name": "ajv", + "version": "4.11.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "ccc9907d2611ae4bf2a46bdee14a087c62224734", + "_id": "ajv@4.11.2", + "_shasum": "f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.2.tgz", + "integrity": "sha512-KpqvHT4/zBEVy1YzyYEI++gQ9LxKtaI6FTspIwEgP8Ht+80wwhiFpM5TB4wv1CEpY4Ab+AijaFebzZ9bE8tTYA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDohnBYnlOQAqQulhxe+odXaDIyE9LQxhvjy92tYAisewIhANdDJD0QYaOOpQ+Ltv8Scm9f4c1MonKNIm42eXsJmg1Y" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.2.tgz_1485035129365_0.33673211419954896" + }, + "directories": {} + }, + "5.0.1-beta.2": { + "name": "ajv", + "version": "5.0.1-beta.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "e949b8462ce3298a92acbb8a532f6ff07d4a47ab", + "_id": "ajv@5.0.1-beta.2", + "_shasum": "7fca7683b67a159e4583b54ea8392060f10105de", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "7fca7683b67a159e4583b54ea8392060f10105de", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.1-beta.2.tgz", + "integrity": "sha512-07SOKRKh8QD4kwAZ+0a0eER7kscg/8tR0+OBgoiDRjOv5gYuERFNVgRwTjXr3ilcJHim1datua7vR2bLfQ/7hw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDvFGSPYIqYW08B1BRBrsotkVGsszB3XcRlagq0VRQKdAIhAP6vM9hZFlW3InL9kdV/GuH9Qi6KISKCM5aYinZqMbUG" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.1-beta.2.tgz_1485205495038_0.5823445334099233" + }, + "directories": {} + }, + "5.0.1-beta.3": { + "name": "ajv", + "version": "5.0.1-beta.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "3bd2587b043e5e194b7ee23da4c95fdfa5c1f450", + "_id": "ajv@5.0.1-beta.3", + "_shasum": "4eac3b28af93f001c9f3ea944df2386f12fa1fef", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4eac3b28af93f001c9f3ea944df2386f12fa1fef", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.1-beta.3.tgz", + "integrity": "sha512-eLTnM80kF6ehYWI/fiXE7wxjirZqyJ9avRRKkYcZTvuwj7/EU+1SXlfwPICtVU+nb5nhu0yyzLh/e0qJclrFmw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAflmo9xXhAO3Cpl14gTCZ8xjVVmbBvIjuj+UrT6SJ4+AiEA2HXuKBgLfvpPvjPNVn+nu+TIHfGmTuScjacY5ptGpLU=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.1-beta.3.tgz_1486249381647_0.33425425086170435" + }, + "directories": {} + }, + "4.11.3": { + "name": "ajv", + "version": "4.11.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "9287ca5789b9fbe7877868f78a24c024f1b71d62", + "_id": "ajv@4.11.3", + "_shasum": "ce30bdb90d1254f762c75af915fb3a63e7183d22", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ce30bdb90d1254f762c75af915fb3a63e7183d22", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.3.tgz", + "integrity": "sha512-6HPnEv7e2ruV3hugsg10xFwVWY4ojMZqfy+ZaOvVXNzWQJSdtZGmBDypY4Ky5RE1Rz48l/Hgpy7nXCNC1Sr18A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDoloZJ2Mnr+sI0jNElSFgqmliUYOrLfWCltVzCDoG7xAIgTqVTfJkYUcCrlqfXTyaoRn4X4m8wl6ub6Brm4Z8/xAs=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.3.tgz_1486927110638_0.45750075043179095" + }, + "directories": {} + }, + "5.0.2-beta.0": { + "name": "ajv", + "version": "5.0.2-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^13.0.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "1a949eeea3862e8d8898b527baaa594f0f34a654", + "_id": "ajv@5.0.2-beta.0", + "_shasum": "0d760d028bb655b2680486bc9f4c53b584fcee97", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "0d760d028bb655b2680486bc9f4c53b584fcee97", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.2-beta.0.tgz", + "integrity": "sha512-RzsN8s1U5ypkhsFt2nGVGcXsdGuGc8eGd+SARNFpSDGGgvy1FNUQMvokAz3TLSeHwNAfGa7b82vRgIdqlBNVPw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGQS681W5KC8cT/uLvbdD71Soa8esS+okCDFzcK7q8O/AiEAq3cszJT7QV4vPAwOe05NJ/LVSomPL9fAPTCcn4AWlPI=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.2-beta.0.tgz_1486928397535_0.6621712015476078" + }, + "directories": {} + }, + "5.0.3-beta.0": { + "name": "ajv", + "version": "5.0.3-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "bca33bf3fedd31218f031143333ca299ffad146b", + "_id": "ajv@5.0.3-beta.0", + "_shasum": "4ee44b57ab3bb43bc00fe727af9b350c9d9712fa", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4ee44b57ab3bb43bc00fe727af9b350c9d9712fa", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.3-beta.0.tgz", + "integrity": "sha512-r4+l7XT+miKZ2kVJEaFMmO7Ni6SOjW8Q4bbUdwL/CKL2d8itIH939WGtmaZS0gZl8HLIWnwJRc6/44RaSczo/g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC/Y0PdyV9QZKziIpl6wCypFHEqOk8DRE/cXvbw0pN0bAIhANr4Acwjx3L9+O5RRtCEDorY5FhFyPn9+O4FpUwgGfa+" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.3-beta.0.tgz_1488356171342_0.8635971134062856" + }, + "directories": {} + }, + "4.11.4": { + "name": "ajv", + "version": "4.11.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version '>=4' eslint lib/*.js lib/compile/*.js spec", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", + "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", + "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "3760c359455ba33b66b4427d17cb655d039bc550", + "_id": "ajv@4.11.4", + "_shasum": "ebf3a55d4b132ea60ff5847ae85d2ef069960b45", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "ebf3a55d4b132ea60ff5847ae85d2ef069960b45", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.4.tgz", + "integrity": "sha512-PTzt28drB6Hep1bItI0nLHzPHMbqvfICC0meANNMX+0I3i5s6zDGZu9cyUIA2CoQd3jLAtPhDZD6ezLDhSUbOg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD4spS2T4VAJscuVW4/GjaOy71ftyyY8CbrsHeCSA/Z0QIgJG8OEU6UVxNUKa/tTUNMp1NnZzYqZcis5XUbgLBjnYs=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.4.tgz_1488652451968_0.44489557039923966" + }, + "directories": {} + }, + "4.11.5": { + "name": "ajv", + "version": "4.11.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.5", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "c0a625b1a911ef1de6a67ed8f7819cba12161ff8", + "_id": "ajv@4.11.5", + "_shasum": "b6ee74657b993a01dce44b7944d56f485828d5bd", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "b6ee74657b993a01dce44b7944d56f485828d5bd", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.5.tgz", + "integrity": "sha512-3fmOjaKrxgFuUjMyDV0GUcIm/8VovYtOWcUGF27HRcMr3Nz9koujegRDXf67/DniuzliiwZUEqe5WIbvW27Qiw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFZz+qGjrcofMUe0s4vWD5lkiZ+0mH/7jUNyt/lGQFYYAiBFj5OtwgBkJ3waW30iCdr22tEZPMStAdVIM2Us7l0Oxg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.5.tgz_1489268678176_0.7930811231490225" + }, + "directories": {} + }, + "5.0.4-beta.0": { + "name": "ajv", + "version": "5.0.4-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "2daf58713f8393a42cafb2b08e6e6de2de424dc5", + "_id": "ajv@5.0.4-beta.0", + "_shasum": "7d929baca196a46f81a8802ac21271fd0d1b6186", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "7d929baca196a46f81a8802ac21271fd0d1b6186", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.4-beta.0.tgz", + "integrity": "sha512-grNVWmOiiTbtvne+FT4MkRcoO3Cfz+vdcP1+A+Rtf/sCtR4wOQG65OnzB/bFbbXOsmji+s1bO/i32enuJ81IzA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD9R4/g9MvU1+gPPd0SGxi8DIK30+cUn4+WMDWEfzM2AQIgUYZRpz1raOEQeH4so3jMic3nJUm5sNHHp3763vmaY6w=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.4-beta.0.tgz_1489344366598_0.3220103206112981" + }, + "directories": {} + }, + "5.0.4-beta.1": { + "name": "ajv", + "version": "5.0.4-beta.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "3f9ab644908f7d09567c71436db95a4703ff1b21", + "_id": "ajv@5.0.4-beta.1", + "_shasum": "a4bcf1c8654005fa97ec18bf794784224ca4c72a", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "a4bcf1c8654005fa97ec18bf794784224ca4c72a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.4-beta.1.tgz", + "integrity": "sha512-FmFOb45Z8jAnCRSUo6cvB6h9GjiuuYp5O1V5wRZwGVozdlHcOUiezqgT5H/811icSgyAYd1GxSzs3ARs69LY6g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD6r9ZNyHDqeDYSkhlWxbnrOxKodxo12rmV8Wv5d2nqrwIgQ/1YDHdsY6JqqNGgTpuA2IzAqispU7ELo9LSLz86DEs=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.4-beta.1.tgz_1489953446434_0.22630870528519154" + }, + "directories": {} + }, + "5.0.4-beta.2": { + "name": "ajv", + "version": "5.0.4-beta.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.2", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "d9ee51168194cd654e0c190ee45ff985c1ea8542", + "_id": "ajv@5.0.4-beta.2", + "_shasum": "2b1dbc09cbd69ee0797489894ab38d12c914e121", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "2b1dbc09cbd69ee0797489894ab38d12c914e121", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.4-beta.2.tgz", + "integrity": "sha512-YPvEAwavNXLPeLQ6uSL+QUDH0HGLtZiZf40mrjw1r2XdSmgoZqIjLjbvXJiy/qLBoAGngGdXcShbTzbFf6IkNg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCmzUobSqtvWDvweGGPsk0tC1dB+j1Z2WScg4xgfNCHLgIhALlOS+rOoO6sIrrzpvaHf0+Hv5Wc80Q6/UZvtIZsEtTG" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.4-beta.2.tgz_1490459630256_0.9486916423775256" + }, + "directories": {} + }, + "4.11.6": { + "name": "ajv", + "version": "4.11.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "75653f78b2a7ef338f8a17a51f0c5cdb79e6e5a3", + "_id": "ajv@4.11.6", + "_shasum": "947e93049790942b2a2d60a8289b28924d39f987", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "947e93049790942b2a2d60a8289b28924d39f987", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.6.tgz", + "integrity": "sha512-xrmZAObHtKwKabRD3emjratF1xto1iofa4qjXaII4BGY6I2C2BQysedk28bG92KK7UrzNWBJ2KWfS7YOlmEYeA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEtCWZ4c2v1ux8VW9FdeXs/xWrID/fuXhmz1k7NYuwXfAiAB5pT5sGwqsorr9H7WeqeSk42xhx1eiESJDy3F63ucMg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.6.tgz_1491605796482_0.05123087880201638" + }, + "directories": {} + }, + "5.0.4-beta.3": { + "name": "ajv", + "version": "5.0.4-beta.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "67dd36a76851dbc0c459e0cfdd9149359b9987d9", + "_id": "ajv@5.0.4-beta.3", + "_shasum": "bb87e35a8f04787a3b7e9b7b2756a6acb6ac926c", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "bb87e35a8f04787a3b7e9b7b2756a6acb6ac926c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.4-beta.3.tgz", + "integrity": "sha512-NMgpGC7c77x6se7iQa+i8i9lelFr+o5LwuDq9W04cX59CyzYVOxdofaKmpHTjZmKKZk67GQXjVKu/IYnYeMljg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEiooAUV/4pa3/9pDSy7306rTDh49uazo8GKJDV8UCcMAiB8qp5KBJ1+AfQ/z6WGe467eexaAbhSZ3ZdH+2aubXsrg==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.4-beta.3.tgz_1491682308306_0.5798187954351306" + }, + "directories": {} + }, + "4.11.7": { + "name": "ajv", + "version": "4.11.7", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "3dd4ff2fee153878881698cf7df3336232a2b5f2", + "_id": "ajv@4.11.7", + "_shasum": "8655a5d86d0824985cc471a1d913fb6729a0ec48", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "8655a5d86d0824985cc471a1d913fb6729a0ec48", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.7.tgz", + "integrity": "sha512-2MVO0/CRfG5g+iNr8pwb3S6RrlCjfu8/A0eIZbrL+VU/GDocPj3Yxuu/mhpXCPOLheSju2Lv+UvhNvbew56Q7Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDyWgT8TIMe+M8bjG70xGekxN6f6yFFmgOodDdtzQ0BiAIhAPXF8kikoo4n6ewsso+vVv0IS94KfPpmsLGLNflMbIVU" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.7.tgz_1492435819176_0.6034151720814407" + }, + "directories": {} + }, + "5.0.0": { + "name": "ajv", + "version": "5.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "8641c6b23a04aae7f73ddece698fa598266dc5ae", + "_id": "ajv@5.0.0", + "_shasum": "a2c717764e8036d15fd227b070ddaf7867ab413a", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "a2c717764e8036d15fd227b070ddaf7867ab413a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.0.tgz", + "integrity": "sha512-Ox7i7Qi/ypfWtCqYDWr40p2W1NKCFpDHy8C6SkEDY+h+t1nYjbtnbx7iw0iVuVtaHwpK7ephvWIRi1iMZvP8xQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD+sHUb6jmX0ZmsBypfTuLUVEsmKbcqJgnqeRzKefE5TQIgaMfXe7iB4KAfDxXTjyOVX5aA+GsLRE4FD4Z6AjDTEZk=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.0.tgz_1492440121889_0.7642066087573767" + }, + "directories": {} + }, + "4.11.8": { + "name": "ajv", + "version": "4.11.8", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "webpack": "dist/ajv.bundle.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "publishConfig": { "tag": "4.x" }, + "scripts": { + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.8.0", + "json-schema-test": "^1.1.1", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "de9fad502273ade9bdcf976e418bdd5b61b14a07", + "_id": "ajv@4.11.8", + "_shasum": "82ffb02b29e662ae53bdc20af15947706739c536", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "82ffb02b29e662ae53bdc20af15947706739c536", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-4.11.8.tgz", + "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCqnfANQ4jUkQIkIdCfYwgweMN0DgfPxkM4MeXewWZBGgIgVKc/jySK2jEe0o2ZTc5lPPspzsRqorwrJ2hlQizBzsA=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-4.11.8.tgz_1493407396661_0.6132844805251807" + }, + "directories": {} + }, + "5.0.1": { + "name": "ajv", + "version": "5.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "4504e97b0b94bf61a86a1d1b8ebd2021d7dfb86e", + "_id": "ajv@5.0.1", + "_shasum": "5fd1a8f5cc92b371aa86445b1152fd4dec844ac9", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "5fd1a8f5cc92b371aa86445b1152fd4dec844ac9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.0.1.tgz", + "integrity": "sha512-35Wt++979JAxASxi4YQrDek+5Lq6TbXje+FK8sKtToUAAFOARGCkHprVIsFwQftMkLbdzN1L/rs2VmVadpOd3Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICfXtPr6C2EpQ8yjMmEFnjCIgezffA1ss+ebtEZMeQvtAiEAtG7EWu/MxE8a3T83lJpMbHTf4HdufyXkxghHv2Dyzgg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.0.1.tgz_1493410975993_0.6836456719320267" + }, + "directories": {} + }, + "5.1.0": { + "name": "ajv", + "version": "5.1.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "d2cb328924ccaaf29091e6939ba7fa818efc9731", + "_id": "ajv@5.1.0", + "_shasum": "6e3bee45129b124bcd7a172859aeda6adbadef7a", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "6e3bee45129b124bcd7a172859aeda6adbadef7a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.0.tgz", + "integrity": "sha512-gBkjlrJx1TCztp+VNqMue/yOQD/lN/C5PMKlY39HW5oBJXQ6eSiT3XrVOVYQzE70WNtAHWQTRTLaWB4e+Wmtyw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD0TneE812E2AqHixSTBFudiSR+bDt4L1G4iR/rE4XT1wIhAJIJzoI5D/kqVBkT+X+C2hqdEc37pj6oJ7WBO41trdfS" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ajv-5.1.0.tgz_1494760660966_0.14537341543473303" + }, + "directories": {} + }, + "5.1.1": { + "name": "ajv", + "version": "5.1.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "2.6.1", + "watch": "^1.0.0" + }, + "gitHead": "a454569236c49758840a3a97173263d2c9c5bcf1", + "_id": "ajv@5.1.1", + "_shasum": "6d9495b78eec4f2930536b2778ea40aa8645647a", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "6d9495b78eec4f2930536b2778ea40aa8645647a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.1.tgz", + "integrity": "sha512-2J9wdjhBHOhJ1iTwIR/fWy9g2fY49V0c9cvZuwZT023Hf1TxWBc+mkhGa8O2EWPuvWXhHeRfq4Cr2kfVGN+l9w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIB2TpGLCrGqp3fWLg5L9aOLys7cvPQQVwUhE/ZP/NvdGAiEAj72s0LxR2OaSDTaU1Vfi7sn+vlsJr4EiD/aCujWR5bA=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ajv-5.1.1.tgz_1494802204875_0.30738528561778367" + }, + "directories": {} + }, + "5.1.2": { + "name": "ajv", + "version": "5.1.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "29e62388476aae813379ad09485dadf5e08e6f10", + "_id": "ajv@5.1.2", + "_shasum": "c2be11aff5de51613592913bc820224906da84a1", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c2be11aff5de51613592913bc820224906da84a1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.2.tgz", + "integrity": "sha512-ynPERnbOZ7w9SUYedDzTsfF3XS6GBRyHWwkXLjq1nKuSYcKYKwd3v4zh5IfMjDgFbkGLW95lKxFPkRaTQsQ8Ew==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIB4Ig/xlD6XsGhxhr4Z+vJibzHyvGBh1VIlaceSx5prqAiBSCe7MCd3e2iIEHEeC81gBscR/KnsHb0KkQVa3NhjU+A==" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.1.2.tgz_1495223631919_0.35187943978235126" + }, + "directories": {} + }, + "5.1.3": { + "name": "ajv", + "version": "5.1.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "788bb7be57dbed2ada9e17c4a1956d6e817d0750", + "_id": "ajv@5.1.3", + "_shasum": "423d1c302c61e617081b30ca05f595ec51408e33", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "423d1c302c61e617081b30ca05f595ec51408e33", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.3.tgz", + "integrity": "sha512-WoGet1wdEj0RysG8R2sQR2gsRwf16p9YHk7ZpJsjNSZS5hgMCTyr0EKN0Qv8WsW1S3c+OBShgZqyvgoYCyCnIA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDIGsCFZE5OcDctDRnRK8ZMP1xK2vycG/7dwvhm6gminwIgEph48+Gyj6EjH3pZrUudA9CxuSJtoTs9wOzcW8ynieg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.1.3.tgz_1495316112628_0.7628658472094685" + }, + "directories": {} + }, + "5.1.4": { + "name": "ajv", + "version": "5.1.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "5f1a8fd520e79b4bb2bffd9a3aa7cf353e5e5c01", + "_id": "ajv@5.1.4", + "_shasum": "56f4ab21d42c2ae59e07de655dca6f8f3549809b", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "56f4ab21d42c2ae59e07de655dca6f8f3549809b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.4.tgz", + "integrity": "sha512-jBdYHIkAxi/H9xPvzGZ8k7RxO9Wnd/0WsoD12tpc3BjK8OH71OsS+nU6i8dvhw36Yhm+CP3cADpcM5qYysv+hA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIA1o1o6GAuUcvWgajE4JCIPIiYBVEHcMI7roFzgJN5aFAiEAyxv/Vq3sfCAscEpyxaTGpFcxW+bSC1f4fuREvag4C7A=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.1.4.tgz_1495747071449_0.44582181866280735" + }, + "directories": {} + }, + "5.1.5": { + "name": "ajv", + "version": "5.1.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { "co": "^4.6.0", "json-stable-stringify": "^1.0.1" }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^3.5.0", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^10.0.0", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "526baa57ad0eed295f9571cf0ee84da5847095d3", + "_id": "ajv@5.1.5", + "_shasum": "8734931b601f00d4feef7c65738d77d1b65d1f68", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "8734931b601f00d4feef7c65738d77d1b65d1f68", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.5.tgz", + "integrity": "sha512-Joc9LAW0F5NQLn1NWQb4gtD89rA7ag0Y9p5jIA9M/lEAhipaoPTd7VDWe/k2nirYFU2yb6mgJOA6S8sPmHS19w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCaK8FN+ObEyGl7/RwfSLHElbXxtGUlLM1hKWf7EVdXnQIhAIdSSf1mbX+v4ff3Ti765ohfesBeI1Av3R4cJZFby3Q9" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.1.5.tgz_1496001543146_0.25475748791359365" + }, + "directories": {} + }, + "5.1.6": { + "name": "ajv", + "version": "5.1.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "ff9f93a71282a7e8a6a71409dd325660730ec765", + "_id": "ajv@5.1.6", + "_shasum": "4b2f1a19dece93d57ac216037e3e9791c7dd1564", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4b2f1a19dece93d57ac216037e3e9791c7dd1564", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.1.6.tgz", + "integrity": "sha512-K/r7dMp3q7rKzhx6v6deMuxVuQCw0w/789F75BooHOOVBEXzejwUq3LwO4x41C/xzXNKSNzqoAAS48Sx2a2Qxg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDr40Pfqk9jVpEzrK2U24DWOKt/69vys7FEJm73FAUpXwIgaxBhHU8gkIEZOxKyKkvfWPpA9QbmeHzW0Dc1FoPWGDo=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.1.6.tgz_1497566221452_0.06951676262542605" + }, + "directories": {} + }, + "5.2.0": { + "name": "ajv", + "version": "5.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^0.1.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^2.11.4", + "del-cli": "^0.2.1", + "dot": "^1.0.3", + "eslint": "^3.2.2", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "23434252296538b7474892a5df883a9a0cead533", + "_id": "ajv@5.2.0", + "_shasum": "c1735024c5da2ef75cc190713073d44f098bf486", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c1735024c5da2ef75cc190713073d44f098bf486", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.0.tgz", + "integrity": "sha512-aoGhU3DP+5oyyMkVP8yOEmnh169eJgPAL2ioe3ioii/qMpbAGHazYD1OgpQYF1BqZ36BEW1QUlt2BkIbsEmNfQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDTGHMUCkpzASbgnu03hPXvp7SfM51wRF1zRfNngp7wRgIhAPD7HzRODi2FWrIOPbm5njdl8LO+0+R0zOljgz0MnAin" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.0.tgz_1497654791092_0.8292309488169849" + }, + "directories": {} + }, + "5.2.1": { + "name": "ajv", + "version": "5.2.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^2.11.4", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "8c4d3294226dcfc2ced9b5cbdcb3befca2f97782", + "_id": "ajv@5.2.1", + "_shasum": "dcd03045175883ba1b636e5ae9ec3df9ab85323a", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "dcd03045175883ba1b636e5ae9ec3df9ab85323a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.1.tgz", + "integrity": "sha512-vTN6ZRxAzj6in04mSZ7Lr/+vYsdAlSlQuat/wR2o+LxTbMupfYY01D+gyfj/H1myiMLkBwgPoPPI/ndpy4Ijug==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDX0mN6qjVF4EuF+98Od/TyIdCjSy54acMhoYlTspsoiAIhALq5t5RoWKvU71wIvFuGrUFJgUX572qD1AXe0vEg02j3" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.1.tgz_1499383745339_0.523261253722012" + }, + "directories": {} + }, + "5.2.2": { + "name": "ajv", + "version": "5.2.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^2.11.4", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.5.6", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "97a3185828bdb4c6649b9786c29949849ce4f73c", + "_id": "ajv@5.2.2", + "_shasum": "47c68d69e86f5d953103b0074a9430dc63da5e39", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "47c68d69e86f5d953103b0074a9430dc63da5e39", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.2.tgz", + "integrity": "sha512-wrg7+QzNeuvzrL3ymA2RenaOhh+1AOli5DEWw534oJrso+HZBau4qO1WMX/X48+V9+AvfP+dJB8ScVVMdHBuDg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEb65WY+AKf+12QF/icNKjMDTmge8VXlw4J555O9wKujAiEA8npjPa/TuUuvG7ppi4BG/rVtCH/cYEOB2H/KK9qiWRk=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.2.tgz_1499725182137_0.19738126848824322" + }, + "directories": {} + }, + "5.2.3": { + "name": "ajv", + "version": "5.2.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^2.11.4", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^3.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.9.7", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.0.8", + "watch": "^1.0.0" + }, + "gitHead": "e98d031fbdafc8c8f7f7974c26cf3e5d11a083ed", + "_id": "ajv@5.2.3", + "_shasum": "c06f598778c44c6b161abafe3466b81ad1814ed2", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "c06f598778c44c6b161abafe3466b81ad1814ed2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.3.tgz", + "integrity": "sha512-UqTPrCL3Ij19z2oc3PsVZf/DRYkeIbUPqt9kkEyazgGtyImF+23YLtJs5cKgCW5/sDfaCdXEO4cPAyadvVAqlw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDS4/V6tlP3gEzwbCWE+yrRex1AzjEFnydTqREF87vaSQIgSbwPooqqXzlYfGMz6iKqNtC8EVA5D6rawHTBlsxRkAg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.3.tgz_1506373026786_0.8118550158105791" + }, + "directories": {} + }, + "5.2.4": { + "name": "ajv", + "version": "5.2.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.10.0", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "80470c3fae210697a9630a3af0e181cabea5ebf2", + "_id": "ajv@5.2.4", + "_shasum": "3daf9a8b67221299fdae8d82d117ed8e6c80244b", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "3daf9a8b67221299fdae8d82d117ed8e6c80244b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.4.tgz", + "integrity": "sha512-TTF/6qHL2clhjDWHMpJuLBIQeHQ/kNMQ9fImkwwn3q8sVheLguRDfWlyqK/gAC6ccYTge7nBeqTIL6u0wUpidg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDVBQVFwQ8Pb4sFy3Q38rqpsZyQCMwjdOFrfFvzxNLAbAIgT0zpw2LYZm756Y/0iDwJCgCj2QyZw0swoylIXFbgVH0=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.4.tgz_1508685379384_0.2610211370047182" + }, + "directories": {} + }, + "5.2.5": { + "name": "ajv", + "version": "5.2.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "json-schema-traverse": "^0.3.0", + "json-stable-stringify": "^1.0.1" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.10.0", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "991b4bec00480d8abcf6bd7ab6eeab5e4926c3c2", + "_id": "ajv@5.2.5", + "_shasum": "b637234d3e2675eb5f79fc652242a853a48cb49f", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "b637234d3e2675eb5f79fc652242a853a48cb49f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.2.5.tgz", + "integrity": "sha512-lhBCO8ZRekUVifgHf+8V/VO2h8/TJWQtxeXdTOWv14sVWmJjcxvjH5J38MBLipxVpXmyX1a/lyBom8y8MLkvZw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICAdtC7aIop7cf1zDyYCYgj86HUqmI5bfMCBgdjZfYZEAiEA6w4El020AIfvW8/9aq1eItoslM080DBfg20xbMQf/OI=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.2.5.tgz_1508841129348_0.9284368788357824" + }, + "directories": {} + }, + "5.3.0": { + "name": "ajv", + "version": "5.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.10.0", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "256100c76a99249ebdf36a1aa7d296348f0af47d", + "_id": "ajv@5.3.0", + "_shasum": "4414ff74a50879c208ee5fdc826e32c303549eda", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "4414ff74a50879c208ee5fdc826e32c303549eda", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.3.0.tgz", + "integrity": "sha512-8nU5XnCRAmlQcv7xo7YxcmVqwDdU2k7UzCzViWlU4ueURyKIF1xrgCtTSUo/F2B/IgWLEhPO4VJJI9Vp0ITyfQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCyxJdsdd7fzmBx8vYMCpxfbJIPscfb8IvL4AzUBuyr7wIgECeQeIFkz1w8e4x+csqX67UdMOrWp6i6pmErFgWygiQ=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.3.0.tgz_1508871622369_0.23681649682112038" + }, + "directories": {} + }, + "6.0.0-beta.0": { + "name": "ajv", + "version": "6.0.0-beta.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0-beta.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "1e6b1a829c179de569db8c1c1752c73486434a84", + "_id": "ajv@6.0.0-beta.0", + "_shasum": "6948adce420ded6b1ebdf961a4fc87b7cc007f3a", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "6948adce420ded6b1ebdf961a4fc87b7cc007f3a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0-beta.0.tgz", + "integrity": "sha512-0D+JqLRnEDTFQVz3JUa9DdbGKdGeZsDfZUkTUzM4mN7UqfjRwNxZ1qD6tlaykCWrTUJQyVwnMgCiAqzLBiyScw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCvWaAEFsLNI3o0TtJvhzuqCpQiq0qrgdDSjXTVZVUxSwIhAP4OOdmuUaQ93mrQjvkrR5SmJTXuOCw70fVxq+dBU4eJ" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0-beta.0.tgz_1509954180099_0.6966385550331324" + }, + "directories": {} + }, + "6.0.0-beta.1": { + "name": "ajv", + "version": "6.0.0-beta.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0-beta.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.1.3", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "a90e574fb6b4bf473151784951ff350bf2f5471e", + "_id": "ajv@6.0.0-beta.1", + "_shasum": "9cb8aa4e8f81120c1e9ff8bddd2e1f72450ed499", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "9cb8aa4e8f81120c1e9ff8bddd2e1f72450ed499", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0-beta.1.tgz", + "integrity": "sha512-N4glv82lEo+MbhqHKi+00NFg5EsJQ0jrry9TEuzVer4M5fGbZjlRUICG1R8chStgH2BGvMiQsSgaKp6tDoiPwQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDkRaghdiP8ObMqi5b9U/Eh7ZaebmXY+2kb58hvbFkfeAiBbeECWTgo0W8oREhPhoL8I8wyZ2UeeRJcpp2MJ5LNV3Q==" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0-beta.1.tgz_1509963496972_0.19493048824369907" + }, + "directories": {} + }, + "6.0.0-beta.2": { + "name": "ajv", + "version": "6.0.0-beta.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0-beta.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "9a0bf759cfdebd3f0d06533fa35d70b51b5a666a", + "_id": "ajv@6.0.0-beta.2", + "_shasum": "3b27bc918fe934e8aaaaf636430732ec5622a0c4", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "3b27bc918fe934e8aaaaf636430732ec5622a0c4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0-beta.2.tgz", + "integrity": "sha512-Zi5zxbE0smPoPGTWkb+/oXChHeVkEVqtmjWP4VryeZ+Tf5krKLqdKMBg7vxeaFDcKgl0N1FF/AUaKoYLtgs0ig==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCdJTUXeKv1dq+6VgV46IT/wFiamzuXeiKb3GMBz5BXrAIhAIeLZNXVF+4WlvXgeycGDPRm0+PY+KYFT6V4IqQ63449" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0-beta.2.tgz_1510481609120_0.8881924704182893" + }, + "directories": {} + }, + "5.4.0": { + "name": "ajv", + "version": "5.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.10.0", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "f336cdaaaea089e03d3901f95181707125a15edd", + "_id": "ajv@5.4.0", + "_shasum": "32d1cf08dbc80c432f426f12e10b2511f6b46474", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "32d1cf08dbc80c432f426f12e10b2511f6b46474", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.4.0.tgz", + "integrity": "sha512-XbC09YLKiH9lr2Km/bYxJ/J7i/WU/9yozocw6rQd49nuW+Nw4xZ29FQvSKCDsqZisGc1/EhCfC5rOOAcEDN+5g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDO756tSj1HyC1PsxD7awHtee1I1Ap6YuyRO7Ogq8DQWwIgb2niIoiOcn3LjFaGNluqii7XC5l51GfEnKYVryJZAY8=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.4.0.tgz_1511213003668_0.4255359785165638" + }, + "directories": {} + }, + "5.5.0": { + "name": "ajv", + "version": "5.5.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.11.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "a53d4e05034bca465640bc235fd97a125e81e1dd", + "_id": "ajv@5.5.0", + "_shasum": "eb2840746e9dc48bd5e063a36e3fd400c5eab5a9", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "eb2840746e9dc48bd5e063a36e3fd400c5eab5a9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.5.0.tgz", + "integrity": "sha512-B+mXip5xc2RtctLFXcjEd6rPtkYWNYOaue1UrRQMkw+Ypx2Fv2Y5xal3pO4V+R54bCW/z5AunNrQkP0BH2M4Pg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCmzy5kTo/E+JAimR2YLPLlKu9sof8QkSrIr0Dqt7QGPgIgWvq4qhJAsOvcQF6nh0AkH9SnAeD6AHwOax8E93CCGKg=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.5.0.tgz_1511556345926_0.4403124637901783" + }, + "directories": {} + }, + "6.0.0-rc.0": { + "name": "ajv", + "version": "6.0.0-rc.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0-beta.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "c71fcbf68b7365a16827734b0a01d750d620718b", + "_id": "ajv@6.0.0-rc.0", + "_shasum": "fd9262d6d14e16f5685f952341c613bc00a2bf8f", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "fd9262d6d14e16f5685f952341c613bc00a2bf8f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0-rc.0.tgz", + "integrity": "sha512-kMFvER3YXweJskR+0OyVNgO1BQfzk0kf2rA4YNZ+fmdVp7Jm0ZWGD4eXSE6dGQHflhCuGQ0JRm8UIf8NEK+5aA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGIIlahc84rOQ0SM7Iau22rZJisdPhFRJ3XbeCDeAkerAiEAv7SSK7qYbWZlgcmltBYxCAejXG4jyuBzwaVSwWd/BUE=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0-rc.0.tgz_1511693343677_0.7709826957434416" + }, + "directories": {} + }, + "5.5.1": { + "name": "ajv", + "version": "5.5.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^1.3.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "0.11.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "8aadb5d0f264543d9eaa64b8fb145c899356a287", + "_id": "ajv@5.5.1", + "_shasum": "b38bb8876d9e86bee994956a04e721e88b248eb2", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "b38bb8876d9e86bee994956a04e721e88b248eb2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.5.1.tgz", + "integrity": "sha512-64SZdr7DVN8QFT68w4MuCqwrSV38VHVfmr2JExL9Pgg5YYYDbJLHplr2GJ5FAJMWKStVEgF4vYLoXNn/ctojHw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIA9eOiptBVbpPd1pzVrS/GoIgggH3DYKq6Hc3/oIQwjaAiEA8RlPd3GWjP/bS8qUnlYg3mVr4ECPawlOKJcLu+nFxYE=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.5.1.tgz_1512218892411_0.160700726788491" + }, + "directories": {} + }, + "6.0.0-rc.1": { + "name": "ajv", + "version": "6.0.0-rc.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0-beta.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.0.3", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "0cecf17b774e6129b8fe6145e21e21c488e46a2f", + "_id": "ajv@6.0.0-rc.1", + "_shasum": "1fe616f4282e171deeb57f9bfad610d6c16d7b69", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "1fe616f4282e171deeb57f9bfad610d6c16d7b69", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0-rc.1.tgz", + "integrity": "sha512-f9x3pWBLqMqB6j7PYftin1diazhS9FL8VhJKHV+XiRLE++6kBLjmKLaHqijuXVDKDh0C2j22S9mqwnE5ogi9dw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDNYil/T4DEvRE7hssGBqueV6vhGMlnaYzqiIrps8Ya7gIgOy1kLn1ozbBgdaiFcLVTe3cJpXaFuv5h+h43I6Tz9i4=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0-rc.1.tgz_1512323944762_0.22495365282520652" + }, + "directories": {} + }, + "5.5.2": { + "name": "ajv", + "version": "5.5.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "node ./scripts/bundle.js . Ajv pure_getters", + "bundle-regenerator": "node ./scripts/bundle.js regenerator", + "bundle-nodent": "node ./scripts/bundle.js nodent", + "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle-all", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^0.1.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^14.1.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.1.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^1.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nodent": "^3.0.17", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "regenerator": "^0.12.2", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.1.5", + "watch": "^1.0.0" + }, + "gitHead": "cecd4ecca66abee0441a8277c647856b09454f82", + "_id": "ajv@5.5.2", + "_shasum": "73b5eeca3fab653e3d3f9422b341ad42205dc965", + "_from": ".", + "_npmVersion": "3.10.8", + "_nodeVersion": "6.9.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "73b5eeca3fab653e3d3f9422b341ad42205dc965", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-5.5.2.tgz", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCKSHHq1t+D8Fk5UMI0JbyBG8am+YkNjR+R5F3a0pS2qAIgANgicms3HsBcMp8MGK7uN6QKXEKGqX0zjEpf1MQhpQo=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-5.5.2.tgz_1513456518424_0.9640620034188032" + }, + "directories": {} + }, + "6.0.0": { + "name": "ajv", + "version": "6.0.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^15.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "797dfc8c2b0f51aaa405342916cccb5962dd5f21", + "_id": "ajv@6.0.0", + "_shasum": "093bec4d9bac8e4505e541ae10eb6150268684c2", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "093bec4d9bac8e4505e541ae10eb6150268684c2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.0.tgz", + "integrity": "sha512-rVv6EKcNMG7GmCUf8ZF04xJioIs5EGX7pfzFt896WwY2g3Zfjyc8ToTgdvN0PJYBV+bFPitwLokTE3zaFG0u8Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGisgmMYh8Ph4F4LPx4FsAu7UKHb7+wh6M6XaXPJ9+qeAiB9rqDLOsC+zWEmD7Mpr2VRydEndtzJU9RBsJWPYt5NdA==" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.0.tgz_1515339133430_0.707225089892745" + }, + "directories": {} + }, + "6.0.1": { + "name": "ajv", + "version": "6.0.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^15.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^4.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "cea2e39b8e27bdc4bdad631b7be666c2baeba934", + "_id": "ajv@6.0.1", + "_shasum": "2898580a9f3def5f9c85dfead7a2223ef13cf3da", + "_from": ".", + "_npmVersion": "2.15.9", + "_nodeVersion": "4.6.1", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "2898580a9f3def5f9c85dfead7a2223ef13cf3da", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.0.1.tgz", + "integrity": "sha512-aZbM5MqJ/qr9ISiQGR7rZ58O2KsMRhzr39GnTRHZd4+A+00qp4nb8gNUXInKL+b6jh9nWMXNxgjJ8pMfzWs0bA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDi6PHD74t2Kn8BdvASAamJUmUnEEo9K/DQuCtrC59ekAiEAkMv4ZS4wNAqOsKwsTjN1qhOR/60iPNnTRfwfAgKYv70=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.0.1.tgz_1515708258305_0.7688879305496812" + }, + "directories": {} + }, + "6.1.0": { + "name": "ajv", + "version": "6.1.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^15.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "5a1c6802e67fabca610f8d0bd805b4791c1c7475", + "_id": "ajv@6.1.0", + "_shasum": "adc4b3dd64b2d8740d13c5b38e4596115970e59d", + "_from": ".", + "_npmVersion": "3.10.10", + "_nodeVersion": "6.12.3", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "adc4b3dd64b2d8740d13c5b38e4596115970e59d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.1.0.tgz", + "integrity": "sha512-yz7cw89Dv2R3QPw+5YA6hv7lFRHyrTJvbmXRa5jsQ5Mdsrgel7rqjsr3ltbptXUgjduImxNZsdWe5bwnU8+c7A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEr0ARRQ9AgDzvjEV1hruIHZ+e2T+m6ZkJ69PewE7+r9AiAPNr+jr6piF4aFzj3+ke1XQ38qaZ9lcRxpbq5Noudszw==" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.1.0.tgz_1516993696012_0.3358031229581684" + }, + "directories": {} + }, + "6.1.1": { + "name": "ajv", + "version": "6.1.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^15.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "4ec60cf49113e8e00774a1fc6d52c8269231a7bc", + "_id": "ajv@6.1.1", + "_shasum": "978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e", + "_from": ".", + "_npmVersion": "3.10.10", + "_nodeVersion": "6.12.3", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "dist": { + "shasum": "978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.1.1.tgz", + "integrity": "sha512-twePFPI+vu/jS+TdZXNtc+SHalI8VUXtzcMIFqIiOWlRoHuJF4jGMY/PXiM4hMAaHflK5nR3/OWBW2DitYu+Ug==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDlwoGnMsraadulus6NPd/elDU9avMQkUPZeEkwwrsoEAIgag/o18Ipl75SttXQlggRhRrfxGDxXxUXkrnuhgnDT+s=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv-6.1.1.tgz_1517341419761_0.5332512147724628" + }, + "directories": {} + }, + "6.2.0": { + "name": "ajv", + "version": "6.2.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^16.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "2abd9919fa69112d76e91942753f6288121437ba", + "_id": "ajv@6.2.0", + "_shasum": "afac295bbaa0152449e522742e4547c1ae9328d2", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.7", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "shasum": "afac295bbaa0152449e522742e4547c1ae9328d2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.2.0.tgz", + "fileCount": 90, + "unpackedSize": 863237, + "integrity": "sha512-WVQXRJVS1kkVkJ47ovVauCOyUXIolm13NR1YiJ1LtkeaNW824SYEr8XcqFpY8e9F9UYNodmGVOSXZN0GWE/IdQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCMcgSV40CLc29vo0AfeThDJhvA7CDGleWt2SHclpyorQIhAPvBaBTu5iW9Mix2SUWrSxLMPzojEwB0HSMMDv8YLfFV" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.2.0_1519633437926_0.8819027253059459" + }, + "_hasShrinkwrap": false + }, + "6.2.1": { + "name": "ajv", + "version": "6.2.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^16.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "f0836de250bcd57dc0a5730be7ecd3693ecee1eb", + "_id": "ajv@6.2.1", + "_shasum": "28a6abc493a2abe0fb4c8507acaedb43fa550671", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.7", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "shasum": "28a6abc493a2abe0fb4c8507acaedb43fa550671", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.2.1.tgz", + "fileCount": 90, + "unpackedSize": 865547, + "integrity": "sha512-voYPSH/zkuz4stgIR6ykq1ymkaqlYFODpc9stdkYqmuSHy9qvUpFrQSFYcl9AyB+9sl9n28m5xQtpqDaRvfjyA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDYp7SEHuE17xtfrb7qVZYGCrKn9EB0cPTvd4XUq0M60QIgbv/Vyes/7i/mbN1n4kce314mCncpD+1aQ8KN4uYrIw0=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.2.1_1520112134402_0.2989270891301603" + }, + "_hasShrinkwrap": false + }, + "6.3.0": { + "name": "ajv", + "version": "6.3.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^16.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "5c063d8cf6dba00ce43d1054e1d394de7330f576", + "_id": "ajv@6.3.0", + "_shasum": "1650a41114ef00574cac10b8032d8f4c14812da7", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.7", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "shasum": "1650a41114ef00574cac10b8032d8f4c14812da7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.3.0.tgz", + "fileCount": 90, + "unpackedSize": 865500, + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC4p0zw7eN4XPqDah81i1Fxm5OkktLU8n6zQw4SWRKCzwIhAKq5+AD2vbKzrGieZOmg86TZ/oBoqOOhcvswbqKK8Cjl" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.3.0_1521316385394_0.2101663092422612" + }, + "_hasShrinkwrap": false + }, + "6.4.0": { + "name": "ajv", + "version": "6.4.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^3.0.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.4.3", + "browserify": "^16.0.0", + "chai": "^4.0.1", + "coveralls": "^3.0.0", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.0", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.0.0", + "nyc": "^11.0.2", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.6.2", + "uglify-js": "^3.3.1", + "watch": "^1.0.0" + }, + "gitHead": "2a6367426e7dfd5501290891b22ddad8dc628186", + "_id": "ajv@6.4.0", + "_shasum": "d3aff78e9277549771daf0164cff48482b754fc6", + "_from": ".", + "_npmVersion": "3.10.10", + "_nodeVersion": "6.13.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "shasum": "d3aff78e9277549771daf0164cff48482b754fc6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.4.0.tgz", + "fileCount": 90, + "unpackedSize": 879725, + "integrity": "sha512-uWK8ISUH3jdo9gTIgylnj4QQDKFL6SbQcx9LtwXJ+2biBCSNIhc41aYJO0W1/w+6tEMPsopQ0cOCnWX39u5o0w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDwr0s08qnYWS8oHwcIl2ak8DuQeYMLOGG6TogItBh2ewIhAOUYKA+KXbDA2XVNJZAAAR/P7YAGF7IEFaGMqCHE+iIh" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.4.0_1521974239743_0.4028331437561372" + }, + "_hasShrinkwrap": false + }, + "6.5.0": { + "name": "ajv", + "version": "6.5.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^4.2.1" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.6.1", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.2", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^11.7.1", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "b41f940f557aac0c68bdbc0c34209d5fd81bf2a9", + "_id": "ajv@6.5.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", + "shasum": "4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.0.tgz", + "fileCount": 90, + "unpackedSize": 891744, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8g1cCRA9TVsSAnZWagAAmbgP/0rJ8DQWkzmVwsSe8hGC\nPiHzsSEYwno+vPnVOtGKJoRrz+lFpOfAHGNvjCkv8GHJeL7AljwtnYTZK2Kx\nSRERVeQPBr3Y56rXcuMJ+nU2aPKF8FcstaRzRAZtKCeQrl5YOzZXGNmJXgra\ntpEqEZ8hsF7aNLlIqqCHDyW88pwDzu2GZ5WcAbnY0seKjv0HHxGQIgWXTgWk\nzp/eqH1JUACwYEe0mDsIA4ANXXsROJa21bRg/IRQVYahd10u5M4agE5k7kxB\nkFP50ZB8dL91FTSoWPnSETZXCxA0fDd1Qne4dsnIq0iV4RwOd8GG/k6OJOXu\n8/ceftM1Gzcz408tW6HibmQoN3tkuEeMcXsnXQPpbeVXrmroUF8SiKte4pds\nyBD7Js/KG8T9XDeBA3C+hO5hEIq11cgckCSohd/CTZAr4tr/4N2lzFWGXxvJ\nzUp6tgn9PQKDmZvjpigYRkkpaapevAdFxOK7O6O3fAK+eK6xICl61ied+AOx\nAL0RIbLrqXYlsqI/4kkNphyMZcIvKQj3wzeL8s9u91Se+/402AQN2ilFjjTQ\nR85x8M7XnozSsGx+FgOkSudEkf+ztEEF6BhQ1B/i2C0F28AqNAJ1BGRQk6cw\naTB7zmauezrqfgdOnqh1TNAJKYhRlzidGfM//bDvGqXhTitRipLUdn/ez27K\nwUs6\r\n=+V84\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICL/mwPKsL9eH5Hmzh782nAwKUQwc8OpkX8ddiKeKH5ZAiEA9SguGB/nLj7uRoO5uADyr35Vvw/7lwRcPwZ4yDWJDHk=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.0_1525812569842_0.4051698289352177" + }, + "_hasShrinkwrap": false + }, + "6.5.1": { + "name": "ajv", + "version": "6.5.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^1.6.1", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^4.14.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.2", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "0020556493f3d443002596697768f3f047782198", + "_id": "ajv@6.5.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "shasum": "88ebc1263c7133937d108b80c5572e64e1d9322d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.1.tgz", + "fileCount": 90, + "unpackedSize": 891938, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHRSiCRA9TVsSAnZWagAAVH8P/R7Lhx6SisFM8zk3WXF+\nn0jcTZ5womW1HvZ1z0bjFMFop58KIj/J8bgFVcyZNaX9w24XNu1Z2XU++Ule\ndo5wMgcgIVQyfiDS/HYmLkD7ZNrNKqZ7dGWI6NR+NTFNNTKlvOkyr9tYHrZj\nM6HAT3UL/N18kYVSx0TpDZ+9z2WLQGmut0rFJsEvfSZ3YBfaq3ilgPfw/amv\nGs77T3DMm0LtVIeKGrJYC+Ja6ykcigLX2GAZOn3Hk6bYxZl9YFHNZcvpXeF8\nw4QGF5RCd9XpwbtjuSCsBx+5fiy0rL59ixSmczmylj2G/Hf+QxI3ugoGakTI\nEaFj3/6JKED8F3gNFrNrLqwJIGFNSw8qS44uIYIyAry3NeBGgaM9LvtsYB0m\nGzLIvLx5Pv3tOXJgTpyd3nBroFjWED1AYwuiHKarv6THSLRtjAInaTb3fxzM\nDPmckb5NVKJNCNjwYblwct/g5sHgQMrcOXiuTb5R6LeE1wAnl4gjeOBEWuyH\nN++zkzvd92pluSCIMWLGW3tHUdbts1J7qpZeUr0ZvIdqu+tDaeqY1X54hdty\nHz7pmICTKNsvd+Jlrz8L9XVEuLAnMJSWOlGH2cezLZXMHpsXRBYbhHQGcutC\nrIqlWIqudgYbr9qqwMKxnU+7YhOB7wb8p+/xC23lBUeyUoCU66mC4u1cpedT\nfbvN\r\n=UyAw\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHLctCllYEsay7DxDfFsL2wS7V1IyD3/aVKSZmSBUOHSAiEA0LBmh1ZRzcxXlCxfWSIpIt1yKD+fnyH3ZhFFNo5xM5g=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.1_1528632479190_0.12564065625955512" + }, + "_hasShrinkwrap": false + }, + "6.5.2": { + "name": "ajv", + "version": "6.5.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^2.0.2", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "88d57fafa25543fd26b11ccf5687c3bd3544f3e8", + "_id": "ajv@6.5.2", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "shasum": "678495f9b82f7cca6be248dd92f59bff5e1f4360", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.2.tgz", + "fileCount": 90, + "unpackedSize": 892093, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbN9KrCRA9TVsSAnZWagAAONgP/jH6Q565uMn41cuy5l4F\ngHMXQfpGmMcjwGR2Vbv8amT9jTz/WbjEQrw/llC4i0Qxc0YGgPS7yjLvG2Iw\n2YqW7NHXzaNkxgQOKNmSZ6SkZjDwwZTgf6HJbgp4S7CgOms6+ZdjxmXskge5\nfycRDicFJNK3L1cXhZd0OT3HxVm8lKPQBl4ks0WDNEhPAORa27vYXeh+F1jV\niyZ2ym1xvUbVsAqT4m00UWVD5DG9RVvj3cgslXMOMbdL+gvAQ271W00Bvs5u\nlaeP23cw6urcVE5yR7lcWvi1F+R0cuWdNCMibFXiGa8/BMugc7ebz8zc/6uB\nTGaBHHjpV9HKkXRS7LKCzxJ+jcxBLoCuuqUhzGxmqhSTC3hLgD9cijGo5ks9\nsQLbKQL55SpsDBW3+z8lWmfqfMV+d/nGMY3WngH7dwlp5HM0nqxtU3dJR2BA\n+GMmxX8Uxh7w3pLdp4s/lBYJ+DEwXWNuh5Liw59uzUX1eZ85Mr2Scz+nIM78\nb/ChJE7KchZJfwaJPauQX923z4Yk3gmVI9Zy2AmB5NO0TXhnfVZuai6wnbgH\nxf4m8riaRuD6VrAJVBq5Ue+QlFA7+f8wZ6gL2xT4yX/1ZYM3ch7vmNEmBbt7\n3h6JtDC7YvlRczuKXrMp5B9X56JSZVN3Bv9W28YvIv99O5UKKK/WRqycZ8mj\nRSRQ\r\n=RKky\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC9Hmyr3qKJUe/TzOsKYDLlgA0Hc39GvlFexa9h0UwJXgIhAIlHe8mgFnGg+sEPeYKLi5HKZUbhtCwybFJsZYN+77vf" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.2_1530385066874_0.26868742275552826" + }, + "_hasShrinkwrap": false + }, + "6.5.3": { + "name": "ajv", + "version": "6.5.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "files": ["lib/", "dist/", "scripts/", "LICENSE", ".tonic_example.js"], + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.1.5", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "8e7f47a9f29fc4ba487720c301142d8706a38a8a", + "_id": "ajv@6.5.3", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "shasum": "71a569d189ecf4f4f321224fecb166f071dd90f9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.3.tgz", + "fileCount": 90, + "unpackedSize": 892205, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdvfFCRA9TVsSAnZWagAAqQ4P/Ap2itS5hVYsGrfjOG6A\n6ZzrufcY+1FltJgYi6jFMyViB0UJMUtFNQjoGzUHzEFrUXODGfa+i/qjn9iq\nSk7RRyMKlLWAQU9QulDsWGfXfMLlJbHCKunHjptcPqE6m9/t9sgHZaks/Qxw\ngtCOrq/LhEJf20uYTXIjAfSRiVsJHUCM82BYelgbQkclY+Oxl09zVqU9V8uz\ne1ec55Mz2RAz47Ht0ch18W7OIsIKkNVAf9fSyVl+l7JR5sN6IEm8Vs7Bk6rh\n5pah5yQyqpf97gmO+LSQYrsSX3gCRuRf3wsfzrtJJ3Kec0SKRBqlyt3UoiJ6\neo78n0VfW+4ZTu7JzgRLfbmGx8IVdXW3eZLDL/4TivzCO8tzmCthrSkxu1Ns\nb+egkQO8TyKCvY4k4tVaPTLzTqbKxkkEqbW194QHTNzv38WgFiSdUVyCgD2K\nWag7zHjdUjV9djt7idvpA9w8tSMWr2Mv06g254JH90QtYj1425enUwjgvEvp\nrXlyEPejNuPvhSvgI5k3Y1X+hkNredOdocOFOxVxZ1OGLty00OjEPuQkzn5v\nh1z5cRvGo5JqeftoTzNqqSmcQpI/gZ/Nz+6AzA5scRXElQ7L6jnh7hS6V7Vv\nUWKTyD08XxndISZrdrzQ4Sh+qep6KOiKPEd8MZYH2Lafg7yI1RszgRnB8yaW\nb9Fz\r\n=/zCV\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDmV8x5Qu+C+vjcyibhdXfCpHIi5L15ho+gq8ZB4K2pNgIgYccco/VdmHeH05AWq5JujmmRvboI4tkXNvzLIbQ1lJw=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.3_1534523332877_0.6025323408151368" + }, + "_hasShrinkwrap": false + }, + "6.5.4": { + "name": "ajv", + "version": "6.5.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start --single-run --browsers PhantomJS", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "3.5.1", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.0.0", + "karma-mocha": "^1.1.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "phantomjs-prebuilt": "^2.1.4", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "8578816435590a9b9f0fc167e677e2ac82b142c0", + "_id": "ajv@6.5.4", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", + "shasum": "247d5274110db653706b550fcc2b797ca28cfc59", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.4.tgz", + "fileCount": 90, + "unpackedSize": 892200, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbp3MpCRA9TVsSAnZWagAAVOQQAJaOUGtdxORh29IhM4o4\ndB8XjyC+wwWqCBZmcbCHCYvSvVU3W3lnttY2d+3/c6P3KJ01iP2CPWg8rptB\nYe39jV10BUoHew9v0PfUWON5M+8cxM/FE5IXuriTkEYSbMCwdz2TUgD+wziJ\n+7UjEza+1Z2MVZ0ukPk1H34HIiwAAHJy9uK7Mf0bZBrl3d+p/NzZZt7HdH3O\nFp0zXMV4anL13SR2ILS5F7Jvt1RXCdKZXj85JKYX8SvRt7Z+CPSkKgW+DknU\n7TQ/NLbOx3yX6JSHl1FeF1vo3cnpg1W8C3D+oK1k5x0axAEp3OH4H+/GrQcc\nMKDOnE8V11AVrWgxi3fuiU6wdzMS8xo5N+yL3BYTu9Q1aUTaJm4dbM6pQUHX\nRw+ApVrHUx8PNW208hBoipxFY0eBLHFAbpnq3nrRpclN4vhFPtRvn/s2mfj6\njZSqymub9RIt5Nm8kXOZtpjKJignFCqYCJJFgW5zEvhMK0BDeaLb7XKMIJ16\nOCbefUu3ItKX4jsKI3/VE7laarteIuBnyvA1VB8jgb+QIlXdSbumMVINLzzz\nZV0wvcosY+1dtqauaIHbjceGtukM3UllEROYEgDKWej/NxxWvKBytZR+QybN\ngpJ/fOpeATZScKDXmSEXtoBscoUsE15esG9di215RgOCuCBldjEYEV2v7mWK\nXPZr\r\n=AxBO\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIELMeNQWg98qB6r6CGrkvCpy30Ns71z6d+fEik2Z4Jw8AiEAkN0ROEXhdaM8xWN8WzvwMK6uSsQR+uIJCYumNBXmYXg=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.4_1537700648608_0.05981064735606578" + }, + "_hasShrinkwrap": false + }, + "6.5.5": { + "name": "ajv", + "version": "6.5.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "3.5.1", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "494026e44c3a2f68ae0dae8615549f567b42ba95", + "_id": "ajv@6.5.5", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", + "shasum": "cf97cdade71c6399a92c6d6c4177381291b781a1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.5.5.tgz", + "fileCount": 90, + "unpackedSize": 892244, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb32jmCRA9TVsSAnZWagAAupcP/1lj6/uhQQ5h45uEYppt\nIbOXNGoToU4FpcCfBgA6HFcaJCYKi3WecJvatWj4wAyK8XlV+QtdXB717pLa\nZWvYPvy7TVzkDHcFMIJnThejYnNdekLK/ao3Uj//YXDBlO7ddGVZjS5c9b+p\n+nbvt1HIpLovnnd4deRKA/fzaj4TeEMSQEnUzho31ve7hxg0oZ9zYrLfRkMc\n1M1k7zyqQPj71mi2mziR5YozQR0uTloimG8/0pnxjZgVYUdDzb1ymJbTzG92\nig6r7yd28fCBDEGKiaPOcsWlE4ktaVOn3uPRO0Z3FmKN32QWCXdiLvK+V/0J\nVo0TrjG5XE5JM3JXo6aaBIHlpwLwCsCa1183IgDA9Ncu0RwHYqQCrRPKFLCv\nWusRLDB1NXjESHJNOKHYcGWrFisrAz0PMWULw5lC+i+1ECIqlmGtE/YkBnn7\nsCfjnDoaMXmMZ5ResgFPp9sT4/KBm9JId+sf+AFyHyHL5c/M48+Kn3TipEIp\nB8+T4i9feTOcZvCBWwy9oBW5OG5nAYkVh/YKtrgnjIgl5Rr/fzsEN1giRDVT\ncrMli3XOtFOElEp5FG0ECInwqZI7/45VgITaL5HnFAdQjvcd5oAtnpxkc49a\nN32Sx3udrhMoh+b8LLcvsBVlJUyCy8+/VmPOSB6rrkvOVEWw0MZ2ao68AZmF\nt9WH\r\n=UNv/\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD/WlfpxYJLwdFZPaedm4yfmMeSsUpTs6V+R+WvGE0l+gIgI/VzmvBsVVMqfAuwxD+802FHhkGeKmoff3CeLSl9ii0=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.5.5_1541368036969_0.17878318295886242" + }, + "_hasShrinkwrap": false + }, + "6.6.0": { + "name": "ajv", + "version": "6.6.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "d665aab9c9ca9f7ac2eee9c90d268aaa15292038", + "_id": "ajv@6.6.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-ZCIMdm75ps9usdeb0GQL9rKOUlTtS0p0vU2nQVXgRIu6Yb00G9GY7AvbVLwTQ5Po4JDKIwJlT5nwggoRDrDVAw==", + "shasum": "762e4a2f97cf423c9a2472b819f227c3a081a895", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.6.0.tgz", + "fileCount": 90, + "unpackedSize": 900678, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/5PICRA9TVsSAnZWagAAxnIP/RkTBGrEiiW4dtyjniKN\n4qMWoDJ0yYKqQTZJgf9RigMmeFonohNEJdjsIheoz2aRPWHxFINRdpPO5/fL\n+/oCx9a6Y34heGS86MR0E2PtAVb0mBcke3J/sDDXdUEp6yAh6eMt11c7qVso\nuJQYkpVvrAWi1Q55lGiUj3/VDYd58QF3DYEwwLGVrMhJyV4+7ZTjgcLSkWZ2\n+n8um1/RjelH/6KDSX+KnLcpnHEaBL/lU87S2mF8aPe/sbNc6GW7SMcyx8Tr\nKI4+eRtvP3qQRxRTr2JX1xunNDm908kAQljMWzmeoe66DB2CZJPjDDlTuQvl\nbYoPzoFeucTVn0hL+00whRYFAlcvXmZbaYl2VTABWf2mMTydFRKGSeKXEudN\nnSOGUMuk/GYCL4JRq1SbxRjSS0mb9z8+9I0BmsZu6dCaLzq/ShUf9qPxSTIU\nXnzwY3bLs5HN5OO8P4xZGuNhNLHZeM4bEnOeltIYYaLukTbezjv/sfMzBeHN\n/7BIveLRDeKUhcf6xN5YO3ZUMPAbZx+Jdl2lqc2dJ8qRVwFcihB93iaTqNpI\nqhU6ZWl5moYjTulUYzkja3TvaCQHgN+jNf/RiVUGtIpy9ZLSLq6+31/0bjKf\nBMEtuiH0wYlh9S/T7kjOMW7Ujfz+UwqAhBjFzYHp5g0VzN4ppF48Gqz8o1aa\nbAaQ\r\n=udiE\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBC9yd6JB/rnGd+2/McNn5RdpSUX9pArIrmhFfaU1PabAiAez8MOkJRxdsDKEj/cOcez/Yeigov9xJ76mDC9YS3UeQ==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.6.0_1543476167569_0.5080534084792636" + }, + "_hasShrinkwrap": false + }, + "6.6.1": { + "name": "ajv", + "version": "6.6.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^1.1.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "1de2a5f5f2f9d412b123a18a0020fb19606456c1", + "_id": "ajv@6.6.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", + "shasum": "6360f5ed0d80f232cc2b294c362d5dc2e538dd61", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.6.1.tgz", + "fileCount": 91, + "unpackedSize": 900738, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/8aoCRA9TVsSAnZWagAAUKsP/1WCWmYE3pPpeJJyFDTh\nw3Ei/qFEsA/ueg3K843jSEz6Q/DAAxuPc3l/hZqn4+K1WuoNiJS0URK1uz8L\nVv53WtWUtCS9hs4VZpNukGxZF12WGWwIV6Zsvb5GLJh8K7a5vDHc0N9MIbzn\nS60XmW1vrtMQj3lQMzTtG4/FfHyZK8yAv7b13YKmZtRdu6NvZqqOykDcJ+Pk\n8/U7kQ7LmwjA01Auqwob2tC0qjWBDd2K2PIc4UeRfbmMGgVIBRbuOLUI/H7D\nsqxtZtrkgcLKD1mMLQJ5s18W6/tsBmV6gr7mspCKTwVZkI3cCzf/MJ40bAwj\nO6eMe5RPL3sREwUls9jFAYi3ZSSa0Wz3vzZO/C7EC8rAUa7/oIvCdz038Do7\ndme47dTpf1mSRB6c//ZEmrS4K4ClF6kMzEmmnN+PEDN/d8ZheI9uhc56rDrJ\n91GGYwckc9vn+aOZskvFG0qUN2Wp/6rYd8uXLdiZRoxIz6lebO4ssc3PW4IY\nJu3h8G67FjcLtlCkA+vCdHPihymFjnGfP1BNFl1Gs1YVsHATZDQscFCSO2g8\nbgkCLiW8B8gjsAzkVd2BkEVBNM0HffcajSzPtY33pefxPp6ddhKcksjUA18U\nNIJbYYJTmCabNqUSpj3BFHGvHNF5zVAWcauTRvwQfJOCgjuhBIRU/74c2fXs\noP/4\r\n=pikB\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFU1+e8kb6jeYuLf2L6I+77Orq0J8k02bPz+x2A6AKodAiA2j3wg9XHfVUl1YLtqd20bCUAbzbsZavupVSz/CegU6Q==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.6.1_1543489191879_0.1678027889741769" + }, + "_hasShrinkwrap": false + }, + "6.6.2": { + "name": "ajv", + "version": "6.6.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "78b77b67290f6cafb2066e2a0e8681d81ca74b0c", + "_id": "ajv@6.6.2", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "shasum": "caceccf474bf3fc3ce3b147443711a24063cc30d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.6.2.tgz", + "fileCount": 91, + "unpackedSize": 899259, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFr9kCRA9TVsSAnZWagAArncP/04gwvhF96AqLh9qIapm\n3DARhIvWkdJmWNKvLNLGcP8MUp82B/7kNgyMNeXbku3oLDUmuvQNWg9jFWny\nwrODNnnE7vUGkFnyLqmnkt2g+wZVW32yAa1AVpDl+xjE8F8Zv9jR6habQJ25\nJGHm9JJ91eMeQ71425HsnMDIUcszHPD2Z8XZwPuY/iY7gRNbIX5YuKQfydYd\nPkjHISnuOZFhFG/rxK9O8KNczsBxZ4V8f0UoTqLjliFXA4u0u6mc7g4iUyCN\n0Yj3qiV1sy1Yn/ZegIETdXkWyh1u0x5qUTHYC908UEGRjs2D8ym7XbTGQFzG\n7lEJN9hy3jxllV8IE2/H6LmMrYpFLaIflWeEhTQz+5oSPHBycTE++VhZf4+L\npcVFPHZk+DeD0mkNzVrAGDFhIqxs+ezkWn5z3p2RDh1zgSezOHM+xymX3fuR\npCWAUFynbtTZ7n9X4MiUk7h8Wmc096mFDDxpJ0HeAQsknsxCPpW6PAQEpcB3\nUOyctDQwFfIfM0thYPTSStkqin+zY/4AavmrnMdC2/I3W82ziBKGWtnO+Wy+\nPMpLGTtpkIZudfpT+A4KCnU++Ypk09i1ArG0X94kcAQ0Ur7XyZ3WjUfWsqBE\nCl+GwrfInoFNJ6Q3pdxmcudNALYdbAHMjwyNOnTQtOwb04sa+kIeSm6AX49D\n6grN\r\n=YOEY\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICimcddjeA0fFSNpWvqgECq0Agvw24nPtLAp/omjfm3CAiEAneYVhvdunD0u11FTaIoBnTvRRvFLGE218vrghpClC5c=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.6.2_1544994659626_0.5995013935243565" + }, + "_hasShrinkwrap": false + }, + "6.7.0": { + "name": "ajv", + "version": "6.7.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "38a9ad4cf9498532190f49fac7245930e649fe58", + "_id": "ajv@6.7.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "shasum": "e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.7.0.tgz", + "fileCount": 91, + "unpackedSize": 899255, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcO3yMCRA9TVsSAnZWagAAFRIP/RH6OW13kfVTZiorupft\n9JtEIUwjnpbpJkUF5Zu/+SDcMQ11M5hMlO4vnRKQID4N1K3WwNLwGzM7DW1e\n6N8GayDsBWh/sC+iCkCqTXLsLg4zG9uqIJjKxPaOXX0rZ28JsYQJbDo4Zf4W\n2Iw/9xc0X+I2CaGEONxVUHyCPyC32lOqLjQ/M86TqGK0BAyibYKvMAOz3glJ\nlm6ESu01hzjv/JLSR6iLLyjdj670DwdsmH8BYmMPnVImuyGCitktymseyXmc\nL7TdV1CbiSDr+lLXoahpY5qyCTZC24tQcccd1HIQk1/ZueD1+jUjjRRUjddm\numw+F4SJ6dp9oQzpYVUiG1bsqcj5aYSLSOe2HSvm4pw2CIgSOlJEhtHXELye\nmoYY49jPfvz6OTYDGgWpEB2zY+hpcSsS+A2iIK+anOOA/Gl0OdDPehfF4VeO\nI4o8e30SdFLb4y4iy45yTOy+pEtVBKcqyVs/QTfiUzWn++sxNCBFn8oIz22d\nB6cHWJTsc8aplW9HSbMQ4vJVA7BvwnT3Eq/ZVU0wyyNfyYMVwXoVj0kvwSLO\nOk5fc98gPP+mvMKTShIJBTFbQQfi3K5Flxgg0deKBjS1cOYFRCWRWWz7M9UN\nsdZsUs8ixKEz3bGgQ8lta5wKxjH9OXaoRoHqOcSfYVxyBVo6BgU6eBlSSUG7\nVKsf\r\n=ByaT\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFW83s60m+jy6+yXQIaeJ+1eBjzQ20PrrR+xzHVmAAFBAiBeoA0KHwfe1QAvu44S96c9IB4g1cSQ8YdnU6Zw2125Lw==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.7.0_1547402379384_0.8726304247342604" + }, + "_hasShrinkwrap": false + }, + "6.8.0": { + "name": "ajv", + "version": "6.8.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "b9f85073382e03fc4d0d6444c42e1673e26d492d", + "_id": "ajv@6.8.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-S0MzH/VXaOsLwL7WrqH2xXDN9DNJdUhWoGNVHx4FGcGHcnqyiArq6DPimEmFCEVs59MAxBApkkAO7XCCa1fhug==", + "shasum": "2beb1d7e08e172a6d69f906d4ea673090c8a8ce7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.8.0.tgz", + "fileCount": 92, + "unpackedSize": 904894, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVfe4CRA9TVsSAnZWagAAUKYP/3ltofFqfkp9zQLfGUE8\n9R+Dar9+QTxGtTNteb9KEZWsKTrq+cKOvvvNnvQu/yuhTGS/MxbGKkqRSPJc\nA9AQDneQU6Jao3LBfhgfkcNDf789VOCZmZVxurVBVJkeQfSCc37Nn08q5ZTI\nemMBu6BfMxXGi/CTELYd4jc95UZj/Ae+cq5bQfm7Oue2h9+ENb45fY+9gl1w\nNTX/8lBK0qQDdSbeKSJ/HfLXglYrJC+0Vi35f0/HVCrh+g1yhXsTXXNerHhw\n7BxV4DQ7kOt9l6eoZSWo4yz5jmnLHvspqg8GtRL7MjLfSKRvrfRWERKn6rtO\no5tJtFkhLAKrXeRWkb4LxDJv1wv6iFOBxAJ0tCpqazFppB/RTE+USJm7pQZ4\nFnIB5v1Xuw+WztUk/7VfsW38b1Eog6LnFFgdcTRSXxic3feyhzO05q6SM7ex\n3lt7Ux/k1BDFHU5mmoHC4rwJh9hgezG8yhgUqAtoMt2mz/TKouH7a1GZXgtu\naWo0YWwxUUU4Ar0okNYM4SZiBNhMu4P/tmR+VVSQa/IqWAnHHLgQfO/euQlV\nwDWxkXqYbUiNh2IedNI1L7zPACASTga8fuec7+tkyM6hN47LfhZ3DakvgYg1\n66I8qqtHlVCiHHLKj9zfwgGpxOYbE5krLIHcwjUNt2GF2gm8J3j4Yj2J5hUU\nr/vq\r\n=fbsf\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDwTeOPfaKb2GlGbjbtNqeeRR2/GnOer2fHksITch97jwIgSvZQG8SblduT2fmk9Vi2tgsQQ6XIsRVFb5bZMOdEpnI=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.8.0_1549137847184_0.23647950127142492" + }, + "_hasShrinkwrap": false + }, + "6.8.1": { + "name": "ajv", + "version": "6.8.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.9.4", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "6d4b31e16923ce5b11b56625b79d5bf6f798574a", + "_id": "ajv@6.8.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", + "shasum": "0890b93742985ebf8973cd365c5b23920ce3cb20", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.8.1.tgz", + "fileCount": 92, + "unpackedSize": 904894, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVfhtCRA9TVsSAnZWagAAz7MP/3VWO/Q4xt3SUyZAMcdz\na/2ToeegY82l0VO02DazCASQyC4ftRByuzzZIogFYo9ZrtBfwQ6hDVAyvik3\nQxJhllV+hPLeLuSsAhaa9uPzSKe7Izu7rq74e0oLYtOk601AFoQnIj0MweP0\n4T+LgPv1qJQgpFW58ESt3O/NghtjjgUx29lifi0IA8uyDpILwbujh9wIXgiH\n2ZyS/47Ry1qD+7GUcPTqDrZ32Aj1mx6osurFW3A504k+JRVs1nKr6RFhvdpL\nv/lokRuuh0lTO7dZDzV/4pcFNALjvkAQ+hOoDxmDyH4lFmTfbH11x2+dU75B\nk4NBYy6bgDf8x3JpaVXAxg080j2ASE1B92vxtVAn2ZdPDbb/7Fm7YSFagnJS\nTEpZSlot6MeK1PkLFZHybXuZxdtbMhW9gzvyigICQViiLyKhDZqD5ulQIh/B\nEBjzVV3LzbGopw7pqQygcBTbdVLtDSTJxYGPLZ2w+Q5sLEy5wuty3xRFJIhh\nYYjr/McTqcMNIVpuhRNNRZe/pouNuqPuLr+ucdYaNIIEQDFzAPu+xv8juzdz\n0PMzxPqmijNBLifo7LzMnUd737kS9wSis6VxCZuHNMfbNaW49SbUiUumsOzM\nNskMOVmUlxoYvMsuFgqukIR69rROAcWe8JaVJkpV1fitv4pprUCH/Ok2qN0J\nLuAG\r\n=XsVJ\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHJUnYW5kxi7IUJ20OFxYVgyR35SZCtowwYElS/OqzVnAiEAlRu6YI/yrV7+uWDkO7sBLvhCKfKZPAIY5tT4WaYXzJc=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.8.1_1549138028921_0.12435779377467981" + }, + "_hasShrinkwrap": false + }, + "6.9.0": { + "name": "ajv", + "version": "6.9.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "2.9.7", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "cd404c4c777670b3195a03b9ff6946e35de382db", + "_id": "ajv@6.9.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-VsK2jpqRno3Hn+at4NGtBRpR5q3OW7n5INrTKqENDNQJB99DXATQEVHlnoD1BA7Uo/qGO+ijGA/vgSAlxP9E4A==", + "shasum": "06458dbfb789366d703e308f180e0db195b7f2fa", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.9.0.tgz", + "fileCount": 92, + "unpackedSize": 907978, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcX1KfCRA9TVsSAnZWagAA/KkP/RioZyKqGxOOQciyIz9L\nNwcfs6bLLEUHihIXXooCVai1Id4YYJApvHjYI4GOoPul630b6QpRt+DVd3aT\nRVwN2wSCXNGAlz2/vHMnAAvcn0Mk5NcMf7HW69wgsr25iR2cuoNNC1Zn+Hm9\neLS8iRTGla6nkESPVvaNiYZfN46GNM4gPO7l1JBWQoY/BCDtOtGeDODbdsk+\nSA56T/th+X4PZFxILQcbQFshyjGm/WyYACDEbn/ocIYsyEZxa0ztjYZZ46xZ\nxFfujwC7zciXrI3BruoL8OW+RPegSnfRdI2mQeghUL3ZV82tdMZ2GdfxTFph\n74f1sYk4tOqSwNhY8jnZjP9UZ2eeog83ehkSvYGTY6/apVosQ9GYU5EVmG9X\nvLkM512bqFUE3x8sE0ni54cyZzynnFOJrysllfNNOLgjXc3LEKcGHx4kjM9u\n0LJzjvJAujVcyG7eH+RQB7/VRwiC2QW8HAnYZRWQPno/2Is9DFPrnqFJOQ6o\n71qIIZwnks/3npM+zVnCpEq1oxuVUIwht/bE4nyxlcTRSe89k4Vc1NofgiHY\nYsvPiSsSFZxO47w9VRQrjQDKWG19ziCGaAM6oHAxuWqW0IsZFotvxiT+rRlT\nythYO0Sxv82bcHgJ9t7amdqt2xcbZrXpvM4J+xFF50zGeoNBQfcnHBo+fGWQ\nsOqo\r\n=KJP3\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD59JM10nHbA2BxKhiSw82tG/XYBCrMKgqGDwq7/HoNMQIgdD3yY6hW9Q3wU6fsSdqSUAHsg7oxrwNgeIB0zQx8swk=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.9.0_1549750942139_0.14537639901082056" + }, + "_hasShrinkwrap": false + }, + "6.9.1": { + "name": "ajv", + "version": "6.9.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/*.js lib/compile/*.js spec/*.js scripts", + "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*", + "test-spec": "mocha spec/*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js '!lib/dotjs/index.js' && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 8 npm run test-browser", + "prepublish": "npm run build && npm run bundle", + "watch": "watch 'npm run build' ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "2.9.7", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^5.1.1", + "nyc": "^12.0.1", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "2fc78ab32ff5311dd110817feabcfdb526d152b6", + "_id": "ajv@6.9.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "shasum": "a4d3683d74abc5670e75f0b16520f70a20ea8dc1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.9.1.tgz", + "fileCount": 92, + "unpackedSize": 908183, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcX+P1CRA9TVsSAnZWagAA+L0P/j7H6scmYx7gXO4ajAXD\nOZNIHU3wb9wRxzEJL2YLexSvH86QJJqqVZC3RPkhvWMF0tJ5ulEHdylRx5+A\njabAv75Ceolc02mX+wUczS2Ye8J4CcLiyqYkx6cxFwp+45HIqNfUUNzWZ5t2\nT0tjO9/0X+fbQNoWPu1et0Hbc92JRoOCRJbpWWNz0FKhRxLrOyUMvO+570Ur\n2G7rdud03KdjEnFU81WNxNN0lcUl7I64NgS1w2w7Z3PqOM1fD4GLA1uKMc6o\nbZxnsbcKfmC2iU9z5N4wMKkuvjYwxa2LteyVk67PEChs4g48ztoPfQSF4Iet\nkWMDgQrBzGGodUjkxGb3msVw5hdLTkblAJiSDbkIogHgjQgPcKLvXWR712T8\nx57aFhhDOPeFduUoOyykloUiRSsb9Oa26Xd+UKBJNyXOhXf6uPHrLgyKG5Dt\n3XALjQj08UnF8hoGH4h1m+gvpvCpJpe2OFZjEEhABHz9Yi+LaHDOhi2AOlgD\nAiFJ+0RdeTtDycx5NRSiVMrMYpZf42JPlH+hsa5gAfAZiRe1osVe2FuwX8Ot\nN70ZRy12PqSBFtKpyh/gSu4uzufm4piFie88Ki2OGR7ELQeRV46BEYqJj/Tm\n4aH4KlTm1mV9poKnKLXdlsdCC/CPaKEic4rNxk+cumkhZFt87PpVRs3F/fDU\nZu6q\r\n=3VVf\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDGAT0DkdSV7IPHNM+pET2YjZR3R7dVycVwvHyzsmi9WgIgIrJIkyFd75gkOSi/idvAttGG9jZDfQQWThzDwTSRfIA=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.9.1_1549788148080_0.944968704954243" + }, + "_hasShrinkwrap": false + }, + "6.9.2": { + "name": "ajv", + "version": "6.9.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-ts && npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "2.9.7", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^6.0.0", + "nyc": "^13.2.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "2aa49aebd4e19c4e4e120424a6ed77990c95e591", + "_id": "ajv@6.9.2", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==", + "shasum": "4927adb83e7f48e5a32b45729744c71ec39c9c7b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.9.2.tgz", + "fileCount": 92, + "unpackedSize": 910208, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJccFigCRA9TVsSAnZWagAAdoUP/i8mJDv1HocDoEu3/6Jz\nUA0catB6ebIJmijE57tklFGSMFZq3DsaDGHl8lsZrT5qi2EMWDoRG/z6jVvH\n9B8fahN4G8pcItOSGKSyowecR6S3yPKCfQVq2bNBehykUr4AHeHMa7/4yWNR\nvV9Y5O9PApLje7zDQ+2Fj6wEO6LgIeXmKFGXhYIKHTRK0zfvHftfJo2XhNXY\n1rI+nMhHgo03nhMAEBrTCxEW3KotDuRhybaoUg8Lt7RoIN1JU2uWpjEKWyTq\ndSC5VQGKPlvClpinhdK89pzg+2QXe4ig9+I1cfd1A+0yiq6+WDlH4h+MzoVp\n04mx1+HVyIhXL5f+a0tLMHgbOitlw6AMW9a1bOxMqGEh3XXWWtENCwIVL/Bj\nesb/1m4wayI+IBLaQumLl2esPnWanAo2GQ2Cz/wvL9CiZTN/bCWXEvQnkSML\nrdy2IKzuNFNd9tPsBfs3tmWl5fcKndoeDN84qhujBQiA18ZqF4HCWEH7C7Sx\np+6xAGI16YL5Epc1UeEgLs2pe1Xn0frwkY8nv5KC13D9R+vtdzJQwftMVS9F\nrQZrs+y0VkQYwZioGrsQYB2ZpUx0l86zcuvRgfFuBO4vzxOdLZj4MllKgvHv\npD3n4lA2ZLpzFkcFYaMjBI/NPQhrKFXy9GyUXcgy8YYaVAsZ/i3B7i7fUjtY\nG+/x\r\n=4MAj\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDmAE3XAqMaxuTvq7pOtBR0Yf+RORYHUKHr3OiWSffCtwIgXXHuhAr63je+bY5Fjsohw6WPByujkwBCW3PFVVi8m7o=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.9.2_1550866591380_0.2886587079855554" + }, + "_hasShrinkwrap": false + }, + "6.10.0": { + "name": "ajv", + "version": "6.10.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-ts && npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^1.1.0", + "dot": "^1.0.3", + "eslint": "^5.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "2.9.7", + "json-schema-test": "^2.0.0", + "karma": "^3.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^6.0.0", + "nyc": "^13.2.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "6c20483b6690af2c7eb760826f00ed6b37488cbb", + "_id": "ajv@6.10.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "shasum": "90d0d54439da587cd7e843bfb7045f50bd22bdf1", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.10.0.tgz", + "fileCount": 92, + "unpackedSize": 916965, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJce7o9CRA9TVsSAnZWagAAacEP/3w6WeBk3jqRzafNOpMV\nJ5lSPFG4PI8tdopK6Vk9HMDn6Rq4aoS3mkvfwbOHOV8RYctTVjEmkmIxMzo1\nQ72ZvU7w4DOPE6JOd6YxRHAwr4W69gDoPdb3bjet9UM6kqQvW2URyiuTKWCH\nj59Cl4AWfS2x5tc2NbnUqEQlA6GIX+xwPu9mFQL+IocYXB5eY/EI6/3nXPc7\n5k9ctCYRtKS0lDTFJjIYkxOLWzmZ4tRH9bwGTeWfDBYcl1pDPXrVPfTyq8GL\nPJD9hqA+M2vq7oRZSX1TnU+OvGzKL4AZsp66UPbDEBe4YlSudVYZCnczh8lN\nvYwF5OMenEqbOCRL56PfpEWgz9nXSAhgvUQwXa6D1rR3oT+N/sqTvd0G+21p\nM2yHoQIPptfwnkH9Skh/qigNO3Vjm/TlsVaA2+RIXg3Th47462QlI8rzqLUZ\nmmFKPjl0FA2gw6qcv5VyHA+aHd1Y8tcUFsQMFwXuRHhECJjXWOTinfduMORL\nGMlxHFv+YfprJtV48j24ec+NXwEE+PEJprQVEN/OpN2PzRXvIjeLjtSensnt\nqa3dYk0MXgGA0kDSArbXuJkNNafVq8puPc9TOXu/d4Etn1yZaaO1zRpSkVKO\nQ8B1YgaFHVOsEvuQJFqM8ZXJDwzS+rJCFTL6tlVQpNj6989gCuMeataJht33\nvVhH\r\n=WXw0\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCWspap5cHY9FjheD6FfXdQ6h6lgVz49MknefKdt1yAKAIhANwO0NurMS/lJmUfitQmS7aqPwtKyo0qJeVjE6N5a22a" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.10.0_1551612476419_0.17179835943045996" + }, + "_hasShrinkwrap": false + }, + "6.10.1": { + "name": "ajv", + "version": "6.10.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-ts && npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^2.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^4.0.1", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^6.0.0", + "nyc": "^14.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "8b59052aa517d51c763e5eb8fef51487c7042a91", + "_id": "ajv@6.10.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", + "shasum": "ebf8d3af22552df9dd049bfbe50cc2390e823593", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.10.1.tgz", + "fileCount": 92, + "unpackedSize": 911527, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIOUrCRA9TVsSAnZWagAAiCYP/3VRKf98i1Elj84iPOU2\nILyn+DhMvypaiUShrErAYeJjwXJSh7mHm6924X2MisJk1i5WS5/kTvtOJVjS\nGPJ4Vb1jzMVpqgXktFVWHrOsNDjaaxhh1Fcwzs4fO8qxXhgkJZZ06P8eYIKW\n9U5nMEW2BP+xgqwTAm1acpBevTZzSpC+cQ4ltXxtP1Vix0Lc5FY3fpDwbWVm\nbmCwGlPyWEuX9X9uWY5Baj+QhgnggrbbdFHhsiNunPsAqm2W63K72armEbnk\nnd8uMTneG3CM4AnHgnTpb6dauokxWsY/lcZoHGrjbCE79t80tTTsRmWWC7eo\nxaElIakuifJo0N45OgKQ5FM3TJ2IhtoBcT9nq6UCsNA8KJLBALvocif7t4ri\nf9Z6eT15vvZh9ygPX/syQB5mdwL8FhWeyJ6H1JTVcJOfmk0myhzgjpQL39xU\nVL1ZJPigE7EVXxliMimCHAD9cCV8sI9c5fQ1e3fQt7EjfaI/Zbqn1PARIz9Q\nVW9Ey/nOeSV/hasUrLcWVvc7HLd7kqQjAINR6ac66DQfpd2JbbvwF7OA+T+h\n+Az4I9cN7IQ00RRl9SeIB4odDwURDc8bOlDhXJqJg93gEqQ/UljCaeDbqvB3\nMYpzEExCHko4dDNTFCyUatphh7pbIhhDTMAT0d47bjZ1SDYlXljP5dH6iaMj\nDSQ6\r\n=FSfR\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIE/q57iNZMonPWMPWHv5+RKxxki50dwxBqBc11d0vva0AiAclGR4iNRAEu1RGDzXliDx3I+knvdpHKeu07e+QfbOng==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.10.1_1562436905923_0.0899430785117723" + }, + "_hasShrinkwrap": false + }, + "6.10.2": { + "name": "ajv", + "version": "6.10.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-ts && npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^2.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^4.0.1", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^6.0.0", + "nyc": "^14.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.3.24", + "watch": "^1.0.0" + }, + "gitHead": "6e4a3464b935053c0a5b65fa27db454367d23b2b", + "_id": "ajv@6.10.2", + "_npmVersion": "5.6.0", + "_nodeVersion": "10.0.0", + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "dist": { + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "shasum": "d3cea04d6b017b2894ad69040fec8b623eb4bd52", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.10.2.tgz", + "fileCount": 92, + "unpackedSize": 917050, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKzkpCRA9TVsSAnZWagAAnmwP/33u+sU3tuv7hPmFgM56\nBY0KZK4ZQXRvOCBocfnKSYCrDTuqp2tpkIvO+NrjaGNZyII/k+1Vatrw7dbM\nRJ9PejJiHurFw0WplNV0rdN7K8/g/wN+bgqmH95lrVVRNlYDpUlFgR88VPzE\nm6aq4vRfuXeryvRUGV0VMc8dnHv0QVOp6iHLmeCaF2n8c/4ZEy1q56eStEy/\nTo7T67k8XapRKGcXdjlzhjIfRnJmwF8uiZhMuk/lblPQ/9eYoDFyv7kWM5X7\nOO0WAQNyjbtipB9carSjmAFmi57dE3mLOmrmhwA/Ynxd5bxszzrVgUDnk7aY\n+P971HqTGC3XP/r2RRq/Yr+4jd63vmoZLI4tKSVAlv5mxIfdX+CQtDdU+Lzv\nHJyc6ra33/hBZSy8BSPTdVyO8ZTU/Q7z/3wTFB6nsl8TjgdCYVhGlTGZZYB5\nBDX2PYpDaSu4iGrbpGHfY9HSlAgg2JX2jHfoBEgNLuC/O/PeH1lqGCM5MYfc\n7uG99/MQnFZSd/poLKz2maaHAbR4ydrqj/vi4RIn/27jQXcanEAkik6OZ9p4\nfjf4AfuQDj7cYPEL4gpvZ++Y8uY14QKaS1MOJLBxtS97OfoXIHTfZcbGDFs9\nxo87ifGakfVMfdAkE60LO7rLk1+OOFU++6ZAvHkUKl8klcOpg8wLmvxp6IFJ\nxoIQ\r\n=XOWc\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDcTWxaB5RlcXKqtcwxM/eeYSVkqPTpgaGS42vHarN1oQIgSHJ5YkdTLlfqPUfuPGECIe5vG6QRHCMKWQBNDAY8Tvw=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.10.2_1563113768263_0.9049343604906372" + }, + "_hasShrinkwrap": false + }, + "6.11.0": { + "name": "ajv", + "version": "6.11.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^4.0.1", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^6.0.0", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "gitHead": "03198c2b6d52ec5eb7ffbf7623f05db5372689a1", + "_id": "ajv@6.11.0", + "_nodeVersion": "12.6.0", + "_npmVersion": "6.9.0", + "dist": { + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "shasum": "c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.11.0.tgz", + "fileCount": 92, + "unpackedSize": 919270, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIsuxCRA9TVsSAnZWagAAFUwQAIedVWzdcKLv9bbMD7jH\nKiPoJvRjiL894Dhbsh0H+fBlTd+xGIU0EQlQva8H/tHD/Nfi7ahIO21p7PnW\nT7Wv2EnOaal2hL6nMIPTQEU1thL0LqFVT531ol581c4mdjMa0REyp/qCQRCv\n979Mno1Fbpr2PewXnU/RlYfrfu7Hxof9Ijo67rNZ9dvEBo4+GzOYCgeBB+ap\nQC8AhvSKCn+LxqSGslbyGpEJZIMgO9YSNUT9L03s3/9s1QU0rFV7IFBIvLQW\nm800bN/ATsVbj5VpqLtAR2yeMGpvZ5S8kk2bI7KjF+w1d4LZJIGFIK0Y6F+Q\nMqr3WErA/0tijcG1IS6giJTCCmMT5s1rqAxzhZ7G/IS75VLTyP2OLNXbK7L/\nOVSmThxslU/wrlbPRqCRXV9dggsJNdiY4qmRPGsq3M1YB68K+vJhYg8UWmKC\nwt+2nwsWZJ6ih/btlZqmoJiXi0PhiNApee6lRFrEZnx9o0RkGmkpECW7bW/y\n8YCmatKYZT103f5uYjIhXSzAOui6DFKFbjCPID6Cl9wRuVZ8uEeIR2II4rb1\nf1ioP6z+zliFEwcZxsKo00Coq4t6y3ugvX2jRHl3QhKHUSvSJ/cSeUiRGbvW\nBJNIgBCKNmlm3OEwi6P2u0J8FlkKZqv7c02Yfwd4dxEQPL79M5k0JdRcHC5D\n+YhA\r\n=wug1\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDuCyA4ykEqv5hcpQVWt+XI04vjorqML58ttzoBaHRULwIhAPaoXKm9Dr52JenNF8TDeWxkjgwe0umOpST7APeEcPLK" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.11.0_1579338672919_0.07857721750691904" + }, + "_hasShrinkwrap": false + }, + "6.12.0": { + "name": "ajv", + "version": "6.12.0", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^4.0.1", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^1.1.1", + "karma-sauce-launcher": "^2.0.0", + "mocha": "^7.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "gitHead": "03d0012f0cf35a834933de07d79522fe7ec9e90a", + "_id": "ajv@6.12.0", + "_nodeVersion": "12.13.1", + "_npmVersion": "6.12.1", + "dist": { + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "shasum": "06d60b96d87b8454a5adaba86e7854da629db4b7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.0.tgz", + "fileCount": 92, + "unpackedSize": 920879, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUTH1CRA9TVsSAnZWagAAypQQAIDpP/yXWVJGK+pkG4KP\nmxsRZQpDrH/i0H9TjXBg3/TQ5GJbSejECLJUTd3VNmg3hs3mTQ3Dm01jQxMc\nFXrOeqvNMo+lN412X8QBs4Eazb8YPlLnOnlnH4gOpePDA0GZc+6fUEAI7TfE\nk+ycrFWLKwUeZS9ySK2cZha7agSFgTdgomoaulGehr3gjYi4AEREuNqm/cIF\n47zPWvrE8asEBEmo9bVTJ/7mFGFlu26eVUypG9y2UbZ3gMfceBl/RdLAEJTV\nVPM/RwH4FG243looAAgUxdANhPTVT+zD++d+pbOA8i08owO30+PwMIN6ZqzI\n6WQcDnfbfHF0BMMxm1fUk7BZ6hC+m7aUBVgMuTccjcHJ+hVxZ3lvHk1lyQEi\nHP9emeCqyoK1czPkRczz0xrcZzLy4xJ3DjRy1yhHWI43e41CYnaMXZpEFDEg\ntqWDYU9kzryaVysuyJGZH1NFWGsi+x/ehtUzXByjV3EHUOEGHu2BMBakC6to\nDBTms0MJpA/j68Ptw7SYfFWWd4Qhg8pc28LpYzCsxOs9P8aBqjD/Y2HCr7Oo\nkdG5CLx8h5oZnqk3FUxciv2kS0JzMtcB3YKy9AazIkRmh4nCSLPmuGTWt3du\nj+krzgfZdsfQaWRCTHu44s8+CipkC3ZdoaJLgYzfTnz7N65l+Nqp/yim9i3k\nP4jl\r\n=7EPf\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIE8j725Djn+nGZDh8WpNsRJd7/kWjjiMURopph4DXFhRAiBnbfj1itALHYBtwk6l+1Nzgnil4aBG0wZwxqgmwNKqZw==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.0_1582379508730_0.8664336467982701" + }, + "_hasShrinkwrap": false + }, + "6.12.1": { + "name": "ajv", + "version": "6.12.1", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot", + "postinstall": "opencollective-postinstall || true" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "opencollective-postinstall": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^7.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "gitHead": "b511ae230f19519d5f16f55cd8959330327adb7a", + "_id": "ajv@6.12.1", + "_nodeVersion": "12.6.0", + "_npmVersion": "6.9.0", + "dist": { + "integrity": "sha512-AUh2mDlJDAnzSRaKkMHopTD1GKwC1ApUq8oCzdjAOM5tavncgqWU+JoRu5Y3iYY0Q/euiU+1LWp0/O/QY8CcHw==", + "shasum": "cce4d7dfcd62d3c57b1cd772e688eff5f5cd3839", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.1.tgz", + "fileCount": 92, + "unpackedSize": 923762, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJem1c2CRA9TVsSAnZWagAAhlEP/j1bColyJ1oCZ6nHBGHM\nz6o5utyy2J7qp+hZASn1qoEVTJW3uW3p2stITRh1ExjUp6xoctVISQLBgm+T\nYwinycioBQTyQCtOesWL8DBkZGmzuUVrP/cqvwnqTGB63CBQisI5kEBQQEgb\nY/m974pL+lTZRJg7dFyT7Kzyio8bShSrYyQ667IZhTXOWWXZMJOap96wQp2b\nnAvxIll1R48/0V7z0kHfyrrd/9TwrQlBTXvHGTR86L6bjnBbnh2QQaKULxav\nfZWdJQKunyVkb082XkWpVQSI4Ei0Or06om3DTAgrx0jZxJ1sX1IpN/tHupSG\nP8+mqJcTvbBHQSXpn9Z7gliXKWambtv/Wv7VaFmGmxMOPQI4OW0Ci1f23uZn\n6ddGHyABnFMuDl2qwtWVQYzsiDW0i2foy8qvq7Bau7m9BubKopQFjmkuPkbi\nR+oWPCvRcKy5pwX8xStP0s5jvn0xJ6l3MqRKNMX1joTuv6+YrB42W0BSygs1\n/UR3TA7+BQ9MbsVy0KjnN5LAf7TleamWmsBrxZkYNXmO2/YGb0J8TrF6dfQU\nF0gS9T2Pj7p85TLC9XERNMAFH/Oo5vA5lByRKNAoKx4ZWXR6wJJCEtgDy+jy\nEbgl3+FGjAC4A/0kvHH448gajAOnE24uKJPE54SAZL+ClW2jFClgrzzemuCt\nxesy\r\n=ASYy\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHvxW7Ytx538Gi9hbb4SUbuZZJT5t1ltJLIETse2Z/4FAiAblB/O3wwZWOfDAGFvlWcgCNkIdqcXs8Fx/CpC5Gx8UA==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.1_1587238709895_0.41414731584600584" + }, + "_hasShrinkwrap": false + }, + "6.12.2": { + "name": "ajv", + "version": "6.12.2", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/epoberezkin/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/epoberezkin/ajv/issues" }, + "homepage": "https://github.com/epoberezkin/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^6.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^7.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^2.8.3", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "gitHead": "6a671057ea6aae690b5967ee26a0ddf8452c6297", + "_id": "ajv@6.12.2", + "_nodeVersion": "12.6.0", + "_npmVersion": "6.9.0", + "dist": { + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "shasum": "c629c5eced17baf314437918d2da88c99d5958cd", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.2.tgz", + "fileCount": 92, + "unpackedSize": 923661, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenNw+CRA9TVsSAnZWagAAr7cP/A6G0EypcfnurVXY+CIl\nmYD8pCwvjUa64E8PgN0h9y0OPzFhjzU57D4v/1q+950cmAHkU4VDJEPNnYdq\nBSXViGLKBAhjEM9W0A9mo5dC0Tqj0+sojGE1GamTQbCfZeqFrCsogRYK3+Ec\n12ynfBaYA5wAL5IOaaRSlpwmRPOCDjzEC6RLRyVmtnqFfSVZymAV473cnPk0\nVuwP5iLocanVAQrZOOYB78D+M6Y5mmh+LiDB/joLd2cjiRlmebcJQVR80/TV\nsh4r47OTCUixR0Qmmtns0R3E+IDs3F0x3trKMV77y+BwzgSzBVzSLfvXCkGe\ndvMZCG6qPfneP77hp2v16YCKay1rALYdQf1m7htZxicQHl+WLyyWOY1I8GG6\nBsauR+vCiwmF4loUbjlhwUSS42HCvrg0t9DHZAawp8ukwZ+MH59wsaESe+zj\noBRc1NEnI8CqFpp7raiSyfQHBSxwaIIxWCWz/YUiKoKfJn+uEgqLL7eALE7c\nRmqKuZ43xoa7YNrvALaBgg9WrdzuzfitFOK0zok08hYMPWFE22dFEg77mUuO\nPXJsBJSD1Ljkl8UZfr0ZKjuBkttaAOEbSJeDz6oAxLQ0jaTaW6NKSgGCUPHf\nq/HYeMSPc0jN8PWYcDdGX13gBXdCtqrVSvZx2Y8thwaxVLRXSs8ubhFXyVff\nFLNr\r\n=UP+u\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHw1sy77g8YEa8jmWZvx+lx5MP2Mk2f3ICNGkUTNPnmyAiA9Cy0zP3mVKsc7RJvpcajMDErSCpnucrJd3vPm9+qy1Q==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.2_1587338301902_0.2862427109390573" + }, + "_hasShrinkwrap": false + }, + "6.12.3": { + "name": "ajv", + "version": "6.12.3", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^7.3.1", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^3.9.5", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "gitHead": "521c3a53f15f5502fb4a734194932535d311267c", + "_id": "ajv@6.12.3", + "_nodeVersion": "12.6.0", + "_npmVersion": "6.9.0", + "dist": { + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "shasum": "18c5af38a111ddeb4f2697bd78d68abc1cabd706", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.3.tgz", + "fileCount": 92, + "unpackedSize": 923810, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAKgFCRA9TVsSAnZWagAARSUP/2npvdus2Ao4WXe+MpO+\nKDzL0sOmJh7Ide6uAwvL06dBgR5HGNn6QL/qaBM9FEQ8wmbgDoRuVjJsCHeE\nzijZGiGgccmG0f3ZeoFI3OTdZEkzopWJ6M8iAbI3rrWR3O7kAkutpWS68lK6\njzc8Lwgvp0AorJoVv7Me8fn7j41qBzzmpjNwQx8dPKRnRnn5oEgAe7AtjauL\nDHMggEv/J8yC7U/RZn/gamTW3cqvyCfGuAhHecKpUqwbVxRrva862tbS1Noq\n3jiHW+f5IcrcEbtzRfde0vgCjJa5y31eupu2+S243EM/FZS4ROHb4ftE3zto\nW9I5ujy8X1LO+8n4802WK2baWCZhwDBcBPizwJYka5M9ICc7s8OsHJv8xQYX\nRHeHdpq0ARKT49y56tGSz5fr9XGwv57MTLXgFGxbyfy8uczLxfNPXQB3qsvC\n5zxvuxi+ADC60zxtvHFND9XW2rMLRww8XHnhiMV3zXKsD8lxExtaDbMFAUrr\nSwPU4FHaURMbMqafCUVEec0739WUYJ5xBSYHiSbvkc41sExqLOjo++cJftJO\nEhvmHDhVh6l5BTa+EylK/8cuKWh6nzgpJeKjiztEgsvLPYCGt+qk/2O46K9J\nM+e1WrtQigpOLn2AbNA4dlz5QeD046zu956XELQYJCkDdawCZQFJQWllat8/\nilzI\r\n=iCMb\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGzLUsHaWOWR67O8jFeedg52+iAQcOOP9qaTBe/+Hy/UAiAJWGedI2D29+vGvF4H7z0R6isEEurBZlxqhDN9hkMFIQ==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.3_1593878532604_0.43437506995878317" + }, + "_hasShrinkwrap": false + }, + "6.12.4": { + "name": "ajv", + "version": "6.12.4", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^7.3.1", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^3.9.5", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "gitHead": "cf88d1dc22283dffbfbfed472507fc219b3bdbbb", + "_id": "ajv@6.12.4", + "_nodeVersion": "14.4.0", + "_npmVersion": "6.14.5", + "dist": { + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "shasum": "0614facc4522127fa713445c6bfd3ebd376e2234", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.4.tgz", + "fileCount": 92, + "unpackedSize": 922968, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfN6XtCRA9TVsSAnZWagAA98UP/id3Zll7iD01lzF1vuxR\nZLDR5XgrsPeJzvz12wrQA53NlD1cXfizlErBbU+gMQLIWVyqdSV8Jk+pM046\nRlM529g4siIuSytl2n2VBr5IkCLYAR68aG3BqRzBVqp6NzRhCCMyHdXPo7Cs\nM0myHVjvefdYhOWzDnHIaX5ccZesluJKV2IL/tufZtm1yPunQZi3sfQ9A871\nYAjnetGym/pXciNEd3wzXWrs81ig+yxEJ/TqjAbIiD1u44yOaHO1+x/grcCh\nuJ+3IVfS6w2KNbEj4wAxeFrYOyIaTvvyELPVfZs+W/BPWn2Z1qS6h01aMOnT\nhxdoDMwoMOpg42jZi/3y29qgqLc+YesY810CSsLK0zdu4BtCYw+nw8I6vi94\n6Df3rjz0GJMqS8mT4c8q6EklYPKHoHbUDhmObjQnnV9fB+ojPGPeV/GYzwCD\nXY0dh4elozqd5pxnQQ3ydLY/E3AxiXFPeuMweAM1rMM0dT/13CwxEUnYZRBu\niqF1AxzRklO4+/qu9vvd9fxIcayPPE+0H2gQIEnxV2qzLA4u5lM0nk1utFy8\nfPIh8yhpq895zgIt5mxD2xejopVGMpOmlUe5VGJncG/TzL9SgoWfzJ1cY+9g\nJ/KFMzKYwPfUDjxhrmStVW+KlhyXEVEa3i2fvl0SaqBSPDyYh4YqDpNDH//h\nCBI6\r\n=Ybfj\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIB2Uetm8+SsvhLmDJ+sI9sju9WqfAgfKjs6AZsQHJ+AIAiA4a+gyz0EVHiqQG6kbnQOHNXaS4I81mPgRW51MepiK7A==" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.4_1597482476355_0.6629683537538098" + }, + "_hasShrinkwrap": false + }, + "6.12.5": { + "name": "ajv", + "version": "6.12.5", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^7.3.1", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^3.9.5", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "gitHead": "f1c8e45b9cdff918be28becf03bf0b339321c398", + "_id": "ajv@6.12.5", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "shasum": "19b0e8bae8f476e5ba666300387775fb1a00a4da", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.5.tgz", + "fileCount": 92, + "unpackedSize": 927868, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXkd0CRA9TVsSAnZWagAA2oQP/2+LZMv7ZpiOSFefAjXC\n7bmWS3cgZ0S7KyZ+L7JcjalJtFtrsebQQ6g6f4JD/8vnbplr2bFgJ7e6Iult\nny1TlzpWkDRdN1og5b5X+nDImqBkjRqjHyC9jG626Cu36vKJnQjN+oz18bnO\nRjsTzqb+7+NY08oiXoPDRGPGk9vnaZzaGtKoxMFSuTTPKJi/HYGQrDf952fN\ngnphNY3TPAWDcE1BdaUGZVsdkoU59zuIFPwJ2NtSRC95JzzI90bbBtqpJgO0\n9SMRuJhk18AN81cSdURyJY33H8Q04M9/4G7D5lgnkosoZ4qr7q1i8WPj3Dsh\nB57L8aRH1jbXc59zDVOT2o9R+AzdHb6AaUO0Yef0TjMPdEBGYSkZVBhYh6iH\nC08jBEbcv0HzS0V6JvNwotzEYX9m/4jLZR/6VJo6eOB3H7h3mkmSQ1J8F6Xq\nbf5zVjjKIRavacTgR2zyJ9qGrs5+c2BsaakQjg0+qBBmEwlY15gSJEH8krVE\n/SPO8iC/o9H/S20ySnE3vXh85x1X1C1LRJ3eF/bnfLaIpfxo2bPdVVjrI98h\nQGKzsnZ015tgSQN7kel2CorBvZJcQURo2BdRnUo2ibt4NnHv69wHKxOO0f1X\nplI8r//0Me8c59VxSbdiEN2NlNfxzySPFqgW5GIxAcqRut5+6DuuLPTWFGPD\nMHOJ\r\n=8Dh/\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIB9cUr7giGV2/NfVWnjHToe42+DQtUKGQDKRmPtlY0O0AiEAvjPnvQRXL814nTcq2Ap1rh4wf6GLbUH7ztAGFCfFh0I=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.5_1600014195659_0.19428012065230837" + }, + "_hasShrinkwrap": false + }, + "7.0.0-alpha.0": { + "name": "ajv", + "version": "7.0.0-alpha.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint 'lib/**/*.ts' 'spec/**/*.*s' scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.2", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.2.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Using version 6\n\n[JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published.\n\n[Ajv version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes).\n\n**Please note**: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance:\n\n```javascript\najv.addMetaSchema(require(\"ajv/lib/refs/json-schema-draft-06.json\"))\n```\n\n**Please note**: use Ajv v6 if you need draft-04 support - v7 does NOT support it.\n\n## Contents\n\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#getting-started)\n- [Frequently Asked Questions](https://github.com/ajv-validator/ajv/blob/master/FAQ.md)\n- [Using in browser](#using-in-browser)\n - [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp)\n- [Command line interface](#command-line-interface)\n- Validation\n - [Strict mode](#strict-mode)\n - [Keywords](#validation-keywords)\n - [Annotation keywords](#annotation-keywords)\n - [Formats](#formats)\n - [Combining schemas with \\$ref](#ref)\n - [\\$data reference](#data-reference)\n - NEW: [$merge and $patch keywords](#merge-and-patch-keywords)\n - [User-defined keywords](#user-defined-keywords)\n - [Asynchronous schema compilation](#asynchronous-schema-compilation)\n - [Asynchronous validation](#asynchronous-validation)\n- [Security considerations](#security-considerations)\n - [Security contact](#security-contact)\n - [Untrusted schemas](#untrusted-schemas)\n - [Circular references in objects](#circular-references-in-javascript-objects)\n - [Trusted schemas](#security-risks-of-trusted-schemas)\n - [ReDoS attack](#redos-attack)\n- Modifying data during validation\n - [Filtering data](#filtering-data)\n - [Assigning defaults](#assigning-defaults)\n - [Coercing data types](#coercing-data-types)\n- API\n - [Methods](#api)\n - [Options](#options)\n - [Validation errors](#validation-errors)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, License](#open-source-software-support)\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](#options)\n- [error messages with parameters](#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [filtering data](#filtering-data) from additional properties\n- [assigning defaults](#assigning-defaults) to missing properties and items\n- [coercing data](#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nThe fastest validation call:\n\n```javascript\n// Node.js require:\nvar Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nvar ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nvar validate = ajv.compile(schema)\nvar valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nor with less code\n\n```javascript\n// ...\nvar valid = ajv.validate(schema, data)\nif (!valid) console.log(ajv.errors)\n// ...\n```\n\nor\n\n```javascript\n// ...\nvar valid = ajv.addSchema(schema, \"mySchema\").validate(\"mySchema\", data)\nif (!valid) console.log(ajv.errorsText())\n// ...\n```\n\nSee [API](#api) and [Options](#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors)\n\n**Note for TypeScript users**: `ajv` provides its own TypeScript declarations\nout of the box, so you don't need to install the deprecated `@types/ajv`\nmodule.\n\n## Using in browser\n\nYou can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\nAjv is tested with these browsers:\n\n[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin)\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n### Ajv and Content Security Policies (CSP)\n\nIf you're using Ajv to compile a schema (the typical use) in a browser document that is loaded with a Content Security Policy (CSP), that policy will require a `script-src` directive that includes the value `'unsafe-eval'`.\n:warning: NOTE, however, that `unsafe-eval` is NOT recommended in a secure CSP[[1]](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval), as it has the potential to open the document to cross-site scripting (XSS) attacks.\n\nIn order to make use of Ajv without easing your CSP, you can [pre-compile a schema using the CLI](https://github.com/ajv-validator/ajv-cli#compile-schemas). This will transpile the schema JSON into a JavaScript file that exports a `validate` function that works simlarly to a schema compiled at runtime.\n\nNote that pre-compilation of schemas is performed using [ajv-pack](https://github.com/ajv-validator/ajv-pack) and there are [some limitations to the schema features it can compile](https://github.com/ajv-validator/ajv-pack#limitations). A successfully pre-compiled schema is equivalent to the same schema compiled at runtime.\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Strict mode\n\nStrict mode intends to prevent any unexpected behaviours or silently ignored mistakes in user schemas. It does not change any validation results compared with JSON Schema specification, but it makes some schemas invalid and throws exception or logs warning (with `strict: \"log\"` option) in case any restriction is violated.\n\nThe strict mode restrictions are below. To disable these restrictions use option `strict: false`.\n\n##### Prohibit unknown keywords\n\nJSON Schema [section 6.5](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-6.5) requires to ignore unknown keywords. The motivation is to increase cross-platform portability of schemas, so that implementations that do not support certain keywords can still do partial validation.\n\nThe problems with this approach are:\n\n- Different validation results with the same schema and data, leading to bugs and inconsistent behaviours.\n- Typos in keywords resulting in keywords being quietly ignored, requiring extensive test coverage of schemas to avoid these mistakes.\n\nBy default Ajv fails schema compilation when unknown keywords are used. Users can explicitly define the keywords that should be allowed and ignored:\n\n```javascript\najv.addKeyword(\"allowedKeyword\")\n```\n\nor\n\n```javascript\najv.addVocabulary([\"allowed1\", \"allowed2\"])\n```\n\n#### Prohibit ignored \"additionalItems\" keyword\n\nJSON Schema section [9.3.1.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.2) requires to ignore \"additionalItems\" keyword if \"items\" keyword is absent. This is inconsistent with the interaction of \"additionalProperties\" and \"properties\", and may cause unexpected results.\n\nBy default Ajv fails schema compilation when \"additionalItems\" is used without \"items.\n\n#### Prohibit ignored \"if\", \"then\", \"else\" keywords\n\nJSON Schema section [9.2.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.2) requires to ignore \"if\" (only annotations are collected) if both \"then\" and \"else\" are absent, and ignore \"then\"/\"else\" if \"if\" is absent.\n\nBy default Ajv fails schema compilation in these cases.\n\n#### Prohibit overlap between \"properties\" and \"patternProperties\" keywords\n\nThe expectation of users (see #196, #286) is that \"patternProperties\" only apply to properties not already defined in \"properties\" keyword, but JSON Schema section [9.3.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2) defines these two keywords as independent. It means that to some properties two subschemas can be applied - one defined in \"properties\" keyword and another defined in \"patternProperties\" for the pattern matching this property.\n\nBy default Ajv fails schema compilation if a pattern in \"patternProperties\" matches a property in \"properties\" in the same schema.\n\nIn addition to allowing such patterns by using option `strict: false`, there is an option `allowMatchingProperties: true` to only allow this case without disabling other strict mode restrictions - there are some rare cases when this is necessary.\n\nTo reiterate, neither this nor other strict mode restrictions change the validation results - they only restrict which schemas are valid.\n\n#### Prohibit unknown formats\n\nTODO\n\nThis will supercede unknownFormats option.\n\n#### Prohibit ignored defaults\n\nWith `useDefaults` option Ajv modifies validated data by assigning defaults from the schema, but there are different limitations when the defaults can be ignored (see [Assigning defaults](#assigning-defaults)). In strict mode Ajv fails schema compilation if such defaults are used in the schema.\n\n#### Number validation\n\nStrict mode also affects number validation. By default Ajv fails `{\"type\": \"number\"}` (or `\"integer\"`) validation for `Infinity` and `NaN`.\n\n## Validation keywords\n\nAjv supports all validation keywords from draft-07 of JSON Schema standard:\n\n- [type](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#type)\n- [for numbers](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf\n- [for strings](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format\n- [for arrays](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#contains)\n- [for objects](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#propertynames)\n- [for all types](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#const)\n- [compound keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf, [if/then/else](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#ifthenelse)\n\nWith [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON Schema standard:\n\n- [patternRequired](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match.\n- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc.\n\nSee [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md) for more details.\n\n## Annotation keywords\n\nJSON Schema specification defines several annotation keywords that describe schema itself but do not perform any validation.\n\n- `title` and `description`: information about the data represented by that schema\n- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options).\n- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults).\n- `examples` (NEW in draft-06): an array of data instances. Ajv does not check the validity of these instances against the schema.\n- `readOnly` and `writeOnly` (NEW in draft-07): marks data-instance as read-only or write-only in relation to the source of the data (database, api, etc.).\n- `contentEncoding`: [RFC 2045](https://tools.ietf.org/html/rfc2045#section-6.1), e.g., \"base64\".\n- `contentMediaType`: [RFC 2046](https://tools.ietf.org/html/rfc2046), e.g., \"image/png\".\n\n**Please note**: Ajv does not implement validation of the keywords `examples`, `contentEncoding` and `contentMediaType` but it reserves them. If you want to create a plugin that implements some of them, it should remove these keywords from the instance.\n\n## Formats\n\nFrom version 7 Ajv does not include formats defined by JSON Schema specification - these and several others formats are provided by [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin.\n\nTo add all formats from this plugin:\n\n```javascript\nconst ajv = new Ajv()\nrequire(\"ajv-formats\")(ajv)\n```\n\nSee ajv-formats documentation for further details.\n\nIt is recommended NOT to use \"format\" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack).\n\n**Please note**: if you need to use \"format\" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios.\n\nThe following formats are defined in [ajv-formats](https://github.com/ajv-validator/ajv-formats) for string validation with \"format\" keyword:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time with optional time-zone.\n- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)).\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\nYou can add (and replace) any formats using [addFormat](#api-addformat) method.\n\nThe option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can allow specific format(s) that will be ignored. See [Options](#options) for details.\n\nYou can find regular expressions used for format validation and the sources that were used in [formats.js](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js).\n\n## Combining schemas with \\$ref\n\nYou can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword.\n\nExample:\n\n```javascript\nvar schema = {\n $id: \"http://example.com/schemas/schema.json\",\n type: \"object\",\n properties: {\n foo: {$ref: \"defs.json#/definitions/int\"},\n bar: {$ref: \"defs.json#/definitions/str\"},\n },\n}\n\nvar defsSchema = {\n $id: \"http://example.com/schemas/defs.json\",\n definitions: {\n int: {type: \"integer\"},\n str: {type: \"string\"},\n },\n}\n```\n\nNow to compile your schema you can either pass all schemas to Ajv instance:\n\n```javascript\nvar ajv = new Ajv({schemas: [schema, defsSchema]})\nvar validate = ajv.getSchema(\"http://example.com/schemas/schema.json\")\n```\n\nor use `addSchema` method:\n\n```javascript\nvar ajv = new Ajv()\nvar validate = ajv.addSchema(defsSchema).compile(schema)\n```\n\nSee [Options](#options) and [addSchema](#api) method.\n\n**Please note**:\n\n- `$ref` is resolved as the uri-reference using schema \\$id as the base URI (see the example).\n- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.).\n- You don't have to host your schema files at the URIs that you use as schema \\$id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs.\n- The actual location of the schema file in the file system is not used.\n- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema \\$id.\n- You cannot have the same \\$id (or the schema identifier) used for more than one schema - the exception will be thrown.\n- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation).\n\n## \\$data reference\n\nWith `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works.\n\n`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems.\n\nThe value of \"$data\" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the \\$data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema).\n\nExamples.\n\nThis schema requires that the value in property `smaller` is less or equal than the value in the property larger:\n\n```javascript\nvar ajv = new Ajv({$data: true})\n\nvar schema = {\n properties: {\n smaller: {\n type: \"number\",\n maximum: {$data: \"1/larger\"},\n },\n larger: {type: \"number\"},\n },\n}\n\nvar validData = {\n smaller: 5,\n larger: 7,\n}\n\najv.validate(schema, validData) // true\n```\n\nThis schema requires that the properties have the same format as their field names:\n\n```javascript\nvar schema = {\n additionalProperties: {\n type: \"string\",\n format: {$data: \"0#\"},\n },\n}\n\nvar validData = {\n \"date-time\": \"1963-06-19T08:30:06.283185Z\",\n email: \"joe.bloggs@example.com\",\n}\n```\n\n`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not \"number\" for maximum keyword) the validation fails.\n\n## $merge and $patch keywords\n\nWith the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902).\n\nTo add keywords `$merge` and `$patch` to Ajv instance use this code:\n\n```javascript\nrequire(\"ajv-merge-patch\")(ajv)\n```\n\nExamples.\n\nUsing `$merge`:\n\n```json\n{\n \"$merge\": {\n \"source\": {\n \"type\": \"object\",\n \"properties\": {\"p\": {\"type\": \"string\"}},\n \"additionalProperties\": false\n },\n \"with\": {\n \"properties\": {\"q\": {\"type\": \"number\"}}\n }\n }\n}\n```\n\nUsing `$patch`:\n\n```json\n{\n \"$patch\": {\n \"source\": {\n \"type\": \"object\",\n \"properties\": {\"p\": {\"type\": \"string\"}},\n \"additionalProperties\": false\n },\n \"with\": [{\"op\": \"add\", \"path\": \"/properties/q\", \"value\": {\"type\": \"number\"}}]\n }\n}\n```\n\nThe schemas above are equivalent to this schema:\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"p\": {\"type\": \"string\"},\n \"q\": {\"type\": \"number\"}\n },\n \"additionalProperties\": false\n}\n```\n\nThe properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema.\n\nSee the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) for more information.\n\n## User-defined keywords\n\nThe advantages of defining keywords are:\n\n- allow creating validation scenarios that cannot be expressed using pre-defined keywords\n- simplify your schemas\n- help bringing a bigger part of the validation logic to your schemas\n- make your schemas more expressive, less verbose and closer to your application domain\n- implement data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated\n\nIf a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result).\n\nThe concerns you have to be aware of when extending JSON Schema standard with additional keywords are the portability and understanding of your schemas. You will have to support these keywords on other platforms and to properly document them so that everybody can understand and use your schemas.\n\nYou can define keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords.\n\nAjv allows defining keywords with:\n\n- code generation function (used by all pre-defined keywords)\n- validation function\n- compilation function\n- macro function\n\nExample. `range` and `exclusiveRange` keywords using compiled schema:\n\n```javascript\najv.addKeyword({\n keyword: \"range\",\n type: \"number\",\n schemaType: \"array\",\n implements: \"exclusiveRange\",\n compile: ([min, max], parentSchema) =>\n parentSchema.exclusiveRange === true\n ? (data) => data > min && data < max\n : (data) => data >= min && data <= max,\n})\n\nconst schema = {range: [2, 4], exclusiveRange: true}\nconst validate = ajv.compile(schema)\nconsole.log(validate(2.01)) // true\nconsole.log(validate(3.99)) // true\nconsole.log(validate(2)) // false\nconsole.log(validate(4)) // false\n```\n\nSeveral keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package - they can be used for your schemas and as a starting point for your own keywords.\n\nSee [User-defined keywords](https://github.com/ajv-validator/ajv/blob/master/CUSTOM.md) for more details.\n\n## Asynchronous schema compilation\n\nDuring asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options).\n\nExample:\n\n```javascript\nvar ajv = new Ajv({loadSchema: loadSchema})\n\najv.compileAsync(schema).then(function (validate) {\n var valid = validate(data)\n // ...\n})\n\nfunction loadSchema(uri) {\n return request.json(uri).then(function (res) {\n if (res.statusCode >= 400) throw new Error(\"Loading error: \" + res.statusCode)\n return res.body\n })\n}\n```\n\n**Please note**: [Option](#options) `missingRefs` should NOT be set to `\"ignore\"` or `\"fail\"` for asynchronous compilation to work.\n\n## Asynchronous validation\n\nExample in Node.js REPL: https://runkit.com/esp/ajv-asynchronous-validation\n\nYou can define formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [User-defined keywords](user-defined-keywords)).\n\nIf your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `\"$async\": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation.\n\n**Please note**: all asynchronous subschemas that are referenced from the current or other schemas should have `\"$async\": true` keyword as well, otherwise the schema compilation will fail.\n\nValidation function for an asynchronous format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return errors from the keyword function).\n\nAjv compiles asynchronous schemas to [async functions](http://tc39.github.io/ecmascript-asyncawait/). Async functions are supported in Node.js 7+ and all modern browsers. You can supply a transpiler as a function via `processCode` option. See [Options](#options).\n\nThe compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas.\n\nValidation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property.\n\nExample:\n\n```javascript\nconst ajv = new Ajv()\n\najv.addKeyword({\n keyword: \"idExists\"\n async: true,\n type: \"number\",\n validate: checkIdExists,\n})\n\nfunction checkIdExists(schema, data) {\n return knex(schema.table)\n .select(\"id\")\n .where(\"id\", data)\n .then(function (rows) {\n return !!rows.length // true if record is found\n })\n}\n\nvar schema = {\n $async: true,\n properties: {\n userId: {\n type: \"integer\",\n idExists: {table: \"users\"},\n },\n postId: {\n type: \"integer\",\n idExists: {table: \"posts\"},\n },\n },\n}\n\nvar validate = ajv.compile(schema)\n\nvalidate({userId: 1, postId: 19})\n .then(function (data) {\n console.log(\"Data is valid\", data) // { userId: 1, postId: 19 }\n })\n .catch(function (err) {\n if (!(err instanceof Ajv.ValidationError)) throw err\n // data is invalid\n console.log(\"Validation errors:\", err.errors)\n })\n```\n\n#### Using transpilers\n\n```javascript\nvar ajv = new Ajv({processCode: transpileFunc})\nvar validate = ajv.compile(schema) // transpiled es7 async function\nvalidate(data).then(successFunc).catch(errorFunc)\n```\n\nSee [Options](#options).\n\n## Security considerations\n\nJSON Schema, if properly used, can replace data sanitisation. It doesn't replace other API security considerations. It also introduces additional security aspects to consider.\n\n##### Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n##### Untrusted schemas\n\nAjv treats JSON schemas as trusted as your application code. This security model is based on the most common use case, when the schemas are static and bundled together with the application.\n\nIf your schemas are received from untrusted sources (or generated from untrusted data) there are several scenarios you need to prevent:\n\n- compiling schemas can cause stack overflow (if they are too deep)\n- compiling schemas can be slow (e.g. [#557](https://github.com/ajv-validator/ajv/issues/557))\n- validating certain data can be slow\n\nIt is difficult to predict all the scenarios, but at the very least it may help to limit the size of untrusted schemas (e.g. limit JSON string length) and also the maximum schema object depth (that can be high for relatively small JSON strings). You also may want to mitigate slow regular expressions in `pattern` and `patternProperties` keywords.\n\nRegardless the measures you take, using untrusted schemas increases security risks.\n\n##### Circular references in JavaScript objects\n\nAjv does not support schemas and validated data that have circular references in objects. See [issue #802](https://github.com/ajv-validator/ajv/issues/802).\n\nAn attempt to compile such schemas or validate such data would cause stack overflow (or will not complete in case of asynchronous validation). Depending on the parser you use, untrusted data can lead to circular references.\n\n##### Security risks of trusted schemas\n\nSome keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to):\n\n- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)).\n- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well.\n- `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate\n\n**Please note**: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors).\n\nYou can validate your JSON schemas against [this meta-schema](https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-secure.json) to check that these recommendations are followed:\n\n```javascript\nconst isSchemaSecure = ajv.compile(require(\"ajv/lib/refs/json-schema-secure.json\"))\n\nconst schema1 = {format: \"email\"}\nisSchemaSecure(schema1) // false\n\nconst schema2 = {format: \"email\", maxLength: MAX_LENGTH}\nisSchemaSecure(schema2) // true\n```\n\n**Please note**: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results.\n\n##### Content Security Policies (CSP)\n\nSee [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp)\n\n## ReDoS attack\n\nCertain regular expressions can lead to the exponential evaluation time even with relatively short strings.\n\nPlease assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example.\n\n**Please note**: some formats that Ajv implements use [regular expressions](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources **it is strongly recommended** to consider the following:\n\n- making assessment of \"format\" implementations in Ajv.\n- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe).\n- replacing format implementations provided by Ajv with your own implementations of \"format\" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method.\n- disabling format validation by ignoring \"format\" keyword with option `format: false`\n\nWhatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios.\n\n## Filtering data\n\nWith [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation.\n\nThis option modifies original data.\n\nExample:\n\n```javascript\nvar ajv = new Ajv({removeAdditional: true})\nvar schema = {\n additionalProperties: false,\n properties: {\n foo: {type: \"number\"},\n bar: {\n additionalProperties: {type: \"number\"},\n properties: {\n baz: {type: \"string\"},\n },\n },\n },\n}\n\nvar data = {\n foo: 0,\n additional1: 1, // will be removed; `additionalProperties` == false\n bar: {\n baz: \"abc\",\n additional2: 2, // will NOT be removed; `additionalProperties` != false\n },\n}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 0, \"bar\": { \"baz\": \"abc\", \"additional2\": 2 }\n```\n\nIf `removeAdditional` option in the example above were `\"all\"` then both `additional1` and `additional2` properties would have been removed.\n\nIf the option were `\"failing\"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed).\n\n**Please note**: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example:\n\n```json\n{\n \"type\": \"object\",\n \"oneOf\": [\n {\n \"properties\": {\n \"foo\": {\"type\": \"string\"}\n },\n \"required\": [\"foo\"],\n \"additionalProperties\": false\n },\n {\n \"properties\": {\n \"bar\": {\"type\": \"integer\"}\n },\n \"required\": [\"bar\"],\n \"additionalProperties\": false\n }\n ]\n}\n```\n\nThe intention of the schema above is to allow objects with either the string property \"foo\" or the integer property \"bar\", but not with both and not with any other properties.\n\nWith the option `removeAdditional: true` the validation will pass for the object `{ \"foo\": \"abc\"}` but will fail for the object `{\"bar\": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema).\n\nWhile this behaviour is unexpected (issues [#129](https://github.com/ajv-validator/ajv/issues/129), [#134](https://github.com/ajv-validator/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way:\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"foo\": {\"type\": \"string\"},\n \"bar\": {\"type\": \"integer\"}\n },\n \"additionalProperties\": false,\n \"oneOf\": [{\"required\": [\"foo\"]}, {\"required\": [\"bar\"]}]\n}\n```\n\nThe schema above is also more efficient - it will compile into a faster function.\n\n## Assigning defaults\n\nWith [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items.\n\nWith the option value `\"empty\"` properties and items equal to `null` or `\"\"` (empty string) will be considered missing and assigned defaults.\n\nThis option modifies original data.\n\n**Please note**: the default value is inserted in the generated validation code as a literal, so the value inserted in the data will be the deep clone of the default in the schema.\n\nExample 1 (`default` in `properties`):\n\n```javascript\nvar ajv = new Ajv({useDefaults: true})\nvar schema = {\n type: \"object\",\n properties: {\n foo: {type: \"number\"},\n bar: {type: \"string\", default: \"baz\"},\n },\n required: [\"foo\", \"bar\"],\n}\n\nvar data = {foo: 1}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 1, \"bar\": \"baz\" }\n```\n\nExample 2 (`default` in `items`):\n\n```javascript\nvar schema = {\n type: \"array\",\n items: [{type: \"number\"}, {type: \"string\", default: \"foo\"}],\n}\n\nvar data = [1]\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // [ 1, \"foo\" ]\n```\n\nWith `useDefaults` option `default` keywords throws exception during schema compilation when used in:\n\n- not in `properties` or `items` subschemas\n- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/ajv-validator/ajv/issues/42))\n- in `if` schema\n- in schemas generated by user-defined _macro_ keywords\n\nThe strict mode option can change the behavior for these unsupported defaults (`strict: false` to ignore them, `\"log\"` to log a warning).\n\nSee [Strict mode](#strict-mode).\n\n## Coercing data types\n\nWhen you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards.\n\nThis option modifies original data.\n\n**Please note**: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value.\n\nExample 1:\n\n```javascript\nvar ajv = new Ajv({coerceTypes: true})\nvar schema = {\n type: \"object\",\n properties: {\n foo: {type: \"number\"},\n bar: {type: \"boolean\"},\n },\n required: [\"foo\", \"bar\"],\n}\n\nvar data = {foo: \"1\", bar: \"false\"}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 1, \"bar\": false }\n```\n\nExample 2 (array coercions):\n\n```javascript\nvar ajv = new Ajv({coerceTypes: \"array\"})\nvar schema = {\n properties: {\n foo: {type: \"array\", items: {type: \"number\"}},\n bar: {type: \"boolean\"},\n },\n}\n\nvar data = {foo: \"1\", bar: [\"false\"]}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": [1], \"bar\": false }\n```\n\nThe coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of \"anyOf\" and other compound keywords).\n\nSee [Coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md) for details.\n\n## API\n\n##### new Ajv(Object options) -> Object\n\nCreate Ajv instance.\n\n##### .compile(Object schema) -> Function<Object data>\n\nGenerate validating function and cache the compiled schema for future use.\n\nValidating function returns a boolean value. This function has properties `errors` and `schema`. Errors encountered during the last validation are assigned to `errors` property (it is assigned `null` if there was no errors). `schema` property contains the reference to the original schema.\n\nThe schema passed to this method will be validated against meta-schema unless `validateSchema` option is false. If schema is invalid, an error will be thrown. See [options](#options).\n\n##### .compileAsync(Object schema [, Boolean meta][, function callback]) -> Promise\n\nAsynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when:\n\n- missing schema can't be loaded (`loadSchema` returns a Promise that rejects).\n- a schema containing a missing reference is loaded, but the reference cannot be resolved.\n- schema (or some loaded/referenced schema) is invalid.\n\nThe function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded.\n\nYou can asynchronously compile meta-schema by passing `true` as the second parameter.\n\nSee example in [Asynchronous compilation](#asynchronous-schema-compilation).\n\n##### .validate(Object schema|String key|String ref, data) -> Boolean\n\nValidate data using passed schema (it will be compiled and cached).\n\nInstead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference.\n\nValidation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors).\n\n**Please note**: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later.\n\nIf the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation).\n\n##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv\n\nAdd schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole.\n\nArray of schemas can be passed (schemas should have ids), the second parameter will be ignored.\n\nKey can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key.\n\nOnce the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data.\n\nAlthough `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time.\n\nBy default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option.\n\n**Please note**: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`.\nThis allows you to do nice things like the following.\n\n```javascript\nvar validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri)\n```\n\n##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv\n\nAdds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option).\n\nThere is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`.\n\n##### .validateSchema(Object schema) -> Boolean\n\nValidates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard.\n\nBy default this method is called automatically when the schema is added, so you rarely need to use it directly.\n\nIf schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false).\n\nIf schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema.\n\nErrors will be available at `ajv.errors`.\n\n##### .getSchema(String key) -> Function<Object data>\n\nRetrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema.\n\n##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv\n\nRemove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references.\n\nSchema can be removed using:\n\n- key passed to `addSchema`\n- it's full reference (id)\n- RegExp that should match schema id or key (meta-schemas won't be removed)\n- actual schema object that will be stable-stringified to remove schema from cache\n\nIf no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared.\n\n##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv\n\nAdd format to validate strings or numbers.\n\nStrings are converted to RegExp.\n\nFunction should return validation result as `true` or `false`.\n\nIf object is passed it should have properties `validate`, `compare` and `async`:\n\n- _validate_: a string, RegExp or a function as described above.\n- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal.\n- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`.\n- _type_: an optional type of data that the format applies to. It can be `\"string\"` (default) or `\"number\"` (see https://github.com/ajv-validator/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass.\n\nFormats can be also added via `formats` option.\n\n##### .addKeyword(Object definition) -> Ajv\n\nAdd validation keyword to Ajv instance.\n\nKeyword should be different from all standard JSON Schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance.\n\nKeyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`.\nIt is recommended to use an application-specific prefix for keywords to avoid current and future name collisions.\n\nExample Keywords:\n\n- `\"xyz-example\"`: valid, and uses prefix for the xyz project to avoid name collisions.\n- `\"example\"`: valid, but not recommended as it could collide with future versions of JSON Schema etc.\n- `\"3-example\"`: invalid as numbers are not allowed to be the first character in a keyword\n\nKeyword definition is an object with the following properties:\n\n- _keyword_: keyword name string\n- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types.\n- _schemaType_: optional string or array of strings with the required schema type\n- _code_: function to generate code, used for all pre-defined keywords\n- _validate_: validating function\n- _compile_: compiling function\n- _macro_: macro function\n- _error_: optional error definition object\n- _schema_: an optional `false` value used with \"validate\" keyword to not pass schema\n- _metaSchema_: an optional meta-schema for keyword schema\n- _dependencies_: an optional list of properties that must be present in the parent schema - it will be checked during schema compilation\n- _implements_: an optional list of keyword names to reserve that this keyword implements\n- _modifying_: `true` MUST be passed if keyword modifies data\n- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords.\n- _\\$data_: an optional `true` value to support [\\$data reference](#data-reference) as the value of keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has _code_ or _validate_ function (the latter can be used in addition to _compile_ or _macro_).\n- _\\$dataError_: optional error definition for invalid \\$data schema\n- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of \"macro\" and \"inline\" keywords.\n- _errors_: an optional boolean or string `\"full\"` indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation.\n\n_compile_, _macro_ and _code_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to _compile_ or _macro_ to support \\$data reference.\n\n**Please note**: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed.\n\nSee [User defined keywords](#user-defined-keywords) for more details.\n\n##### .getKeyword(String keyword) -> Object|Boolean\n\nReturns keyword definition, `false` if the keyword is unknown.\n\n##### .removeKeyword(String keyword) -> Ajv\n\nRemoves added or pre-defined keyword so you can redefine them.\n\nWhile this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results.\n\n**Please note**: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again.\n\n##### .errorsText([Array<Object> errors [, Object options]]) -> String\n\nReturns the text with all errors in a String.\n\nOptions can have properties `separator` (string used to separate errors, \", \" by default) and `dataVar` (the variable name that dataPaths are prefixed with, \"data\" by default).\n\n## Options\n\nDefaults:\n\n```javascript\n{\n // strict mode options\n strict: true,\n allowMatchingProperties: false,\n // validation and reporting options:\n $data: false,\n allErrors: false,\n verbose: false,\n $comment: false,\n format: true,\n formats: {},\n unknownFormats: true,\n schemas: {},\n logger: undefined,\n // referenced schema options:\n missingRefs: true,\n extendRefs: \"ignore\", // recommended 'fail'\n loadSchema: undefined, // function(uri: string): Promise {}\n // options to modify validated data:\n removeAdditional: false,\n useDefaults: false,\n coerceTypes: false,\n // advanced options:\n meta: true,\n validateSchema: true,\n addUsedSchema: true,\n inlineRefs: true,\n passContext: false,\n loopRequired: Infinity,\n loopEnum: Infinity,\n ownProperties: false,\n multipleOfPrecision: false,\n messages: true,\n sourceCode: false,\n processCode: undefined, // function (str: string, schema: object): string {}\n cache: new Cache,\n serialize: undefined\n jsPropertySyntax: false, // deprecated\n}\n```\n\n##### Strict mode options\n\n- _strict_: By default Ajv executes in strict mode, that is designed to prevent any unexpected behaviours or silently ignored mistakes in schemas (see [Strict Mode](#strict-mode) for more details). It does not change any validation results, but it makes some schemas invalid that would be otherwise valid according to JSON Schema specification. Option values:\n - `true` (default) - use strict mode and throw an exception when any strict mode restrictions is violated.\n - `\"log\"` - log warning when any strict mode restriction is violated.\n - `false` - ignore any strict mode restriction.\n- _allowMatchingProperties_: pass true to allow overlap between \"properties\" and \"patternProperties\". See [Strict Mode](#strict-mode).\n\n##### Validation and reporting options\n\n- _\\$data_: support [\\$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api).\n- _allErrors_: check all rules collecting all errors. Default is to return after the first error.\n- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default).\n- _\\$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values:\n - `false` (default): ignore \\$comment keyword.\n - `true`: log the keyword value to console.\n - function: pass the keyword value, its schema path and root schema to the specified function\n- _format_: formats validation mode. Option values:\n - `true` (default) - validate added formats (see [Formats](#formats)).\n - `false` - ignore all format keywords.\n- _formats_: an object with format definitions. Keys and values will be passed to `addFormat` method.\n- _keywords_: an array of keyword definitions or strings. Values will be passed to `addKeyword` method.\n- _unknownFormats_: handling of unknown formats. Option values:\n - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [\\$data reference](#data-reference) and it is unknown the validation will fail.\n - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [\\$data reference](#data-reference) and it is not in this array the validation will fail.\n - `\"ignore\"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification.\n- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object.\n- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values:\n - logger instance - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown.\n - `false` - logging is disabled.\n\n##### Referenced schema options\n\n- _missingRefs_: handling of missing referenced schemas. Option values:\n - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted).\n - `\"ignore\"` - to log error during compilation and always pass validation.\n - `\"fail\"` - to log error and successfully compile schema but fail validation if this rule is checked.\n- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values:\n - `\"ignore\"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation.\n - `\"fail\"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing.\n - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0).\n- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation).\n\n##### Options to modify validated data\n\n- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values:\n - `false` (default) - not to remove additional properties\n - `\"all\"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them).\n - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed.\n - `\"failing\"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema).\n- _useDefaults_: replace missing or undefined properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values:\n - `false` (default) - do not use defaults\n - `true` - insert defaults by value (object literal is used).\n - `\"empty\"` - in addition to missing or undefined, use defaults for properties and items that are equal to `null` or `\"\"` (an empty string).\n- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md). Option values:\n - `false` (default) - no type coercion.\n - `true` - coerce scalar data types.\n - `\"array\"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema).\n\n##### Advanced options\n\n- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword.\n- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values:\n - `true` (default) - if the validation fails, throw the exception.\n - `\"log\"` - if the validation fails, log error.\n - `false` - skip schema validation.\n- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with \"#\". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method.\n- _inlineRefs_: Affects compilation of referenced schemas. Option values:\n - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions.\n - `false` - to not inline referenced schemas (they will be compiled as separate functions).\n - integer number - to limit the maximum number of keywords of the schema that will be inlined.\n- _passContext_: pass validation context to _compile_ and _validate_ keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your keywords. By default `this` is Ajv instance.\n- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance.\n- _loopEnum_: by default `enum` keyword is compiled into a single expression. In case of a very large number of allowed values it may result in a large validation function. Pass integer to set the number of values above which `enum` keyword will be validated in a loop.\n- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst.\n- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/ajv-validator/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations).\n- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when messages are generated outside of Ajv code (e.g. with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n)).\n- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call).\n- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code.\n- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`.\n- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used.\n- _jsPropertySyntax_ (deprecated) - set to `true` to report `dataPath` in errors as in v6, using JavaScript property syntax (e.g., `\".prop[1].subProp\"`). By default `dataPath` in errors is reported as JSON pointer. This option is added for backward compatibility and is not recommended - this format is difficult to parse even in JS code.\n\n## Validation errors\n\nIn case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property.\n\n### Error objects\n\nEach error is an object with the following properties:\n\n- _keyword_: validation keyword.\n- _dataPath_: JSON pointer to the part of the data that was validated (e.g., `\"/prop/1/subProp\"`).\n- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation.\n- _params_: the object with the additional information about error that can be used to generate error messages (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package). See below for parameters set by all keywords.\n- _message_: the standard error message (can be excluded with option `messages` set to false).\n- _schema_: the schema of the keyword (added with `verbose` option).\n- _parentSchema_: the schema containing the keyword (added with `verbose` option)\n- _data_: the data validated by the keyword (added with `verbose` option).\n\n**Please note**: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `\"propertyNames\"`.\n\n### Error parameters\n\nProperties of `params` object in errors depend on the keyword that failed validation.\n\n- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword).\n- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false).\n- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords).\n- `dependencies` - properties:\n - `property` (dependent property),\n - `missingProperty` (required missing dependency - only the first one is reported currently)\n - `deps` (required dependencies, comma separated list as a string),\n - `depsCount` (the number of required dependencies).\n- `format` - property `format` (the schema of the keyword).\n- `maximum`, `minimum` - properties:\n - `limit` (number, the schema of the keyword),\n - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`),\n - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be \"<\", \"<=\", \">\", \">=\")\n- `multipleOf` - property `multipleOf` (the schema of the keyword)\n- `pattern` - property `pattern` (the schema of the keyword)\n- `required` - property `missingProperty` (required property that is missing).\n- `propertyNames` - property `propertyName` (an invalid property name).\n- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property).\n- `type` - property `type` (required type(s), a string, can be a comma-separated list)\n- `uniqueItems` - properties `i` and `j` (indices of duplicate items).\n- `const` - property `allowedValue` pointing to the value (the schema of the keyword).\n- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword).\n- `$ref` - property `ref` with the referenced schema URI.\n- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes).\n\nUser-defined keywords can define other keyword parameters.\n\n### Error logging\n\nA logger instance can be passed via `logger` option to Ajv constructor. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown.\n\n- **Required Methods**: `log`, `warn`, `error`\n\n```javascript\nconst otherLogger = new OtherLogger()\nconst ajv = new Ajv({\n logger: {\n log: console.log.bind(console),\n warn: function warn() {\n otherLogger.logWarn.apply(otherLogger, arguments)\n },\n error: function error() {\n otherLogger.logError.apply(otherLogger, arguments)\n console.error.apply(console, arguments)\n },\n },\n})\n```\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-async](https://github.com/ajv-validator/ajv-async) - plugin to configure async validation mode (DEPRECATED)\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](https://github.com/ajv-validator/ajv/blob/master/CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n[Version 5.0.0](https://github.com/ajv-validator/ajv/releases/tag/5.0.0).\n\n[Version 4.0.0](https://github.com/ajv-validator/ajv/releases/tag/4.0.0).\n\n[Version 3.0.0](https://github.com/ajv-validator/ajv/releases/tag/3.0.0).\n\n[Version 2.0.0](https://github.com/ajv-validator/ajv/releases/tag/2.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](https://github.com/ajv-validator/ajv/blob/master/CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "80f6f5dcfd83774e585a7c85f4173e7645d60037", + "_id": "ajv@7.0.0-alpha.0", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-Zbe5fRhojt5dN8shJ2cPJftrvJBnrRvPZEw+NQT72XX/yZ81kDc52hGqI0Kw7VBaWlyUPAJTdkAG/Hx2hSpXkA==", + "shasum": "4534c309d621a570dd4644b46129227e533516c8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-alpha.0.tgz", + "fileCount": 250, + "unpackedSize": 594593, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYNaRCRA9TVsSAnZWagAA+D4P/0R0OufSH5U+ZirtwhTE\nQtULT2vbshO0+bNcg8MZ3dDtctLGSEpagX1QFhmY5PZ79IW7LZgZlj9vgYa2\nJ2jj7kDERruX7L0GsDCkw+coYf7VDZCwKR7y1uzaXnbDnJ0jvaCRg7hKLsHg\nEhH8ywuwM+f/KQHE0+zk7vFjwHz+nfrnnR5kHRknn3dOeiV6p+wbnAkMJdCC\nCpxjAfBXQFTpvTgjGfzY856S0IEW7WOwR9kw6EWuHvM1lVtOgyxJLx2WMMIW\nu88lq3ev7zk3j4osYZrjfoZNCya741SvxP4GsADiVCkHLPxY5uonMhMnTgJ2\nmND/L8+2KYzPN1FRl4Pe57hAFlPy+CcWchX/MaFowdpUX4fvEtyAtB30BsyF\n5a9eoCeNiQB3DosbXB3GIj6sLH+/UMOe13PvEIJUL9GwmO73fn3yHsQgL5q/\nYEosX4qdPtuKvYAmMtrbxw67HUcFH9/UchPgnsA4p4icOAm9v4LpV2/3/Sou\nKJDpU/jhJbvddGKP3sJbuEwhz1YYT5DgWanycz3Dd1aFexkQ1hy0Hcobd8Hu\ntb0yyjEt7lyD+8h9hJszvDrnCKv5ADPkpoWIMh4Zw6Lu2gk3g3OIwU9bYMyG\nxPyLBdP1KzAK/TkQf65TtBvwu1o4xhW8kPHK17T19grA1aCSDgCs9uDePHTo\nGke3\r\n=vtbO\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCPFud4TU8UWm1DMbGfRN1EY/MfXbvL0sj2KzZBd7HTxQIhAM7NMl3KVu+HIOEPJ4yApDjZTO1qGyx+9lGV6qnq7e6N" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-alpha.0_1600181905151_0.45655946955055704" + }, + "_hasShrinkwrap": false + }, + "7.0.0-alpha.1": { + "name": "ajv", + "version": "7.0.0-alpha.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint 'lib/**/*.ts' 'spec/**/*.*s' scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.3.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Using version 6\n\n[JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published.\n\n[Ajv version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes).\n\n**Please note**: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance:\n\n```javascript\najv.addMetaSchema(require(\"ajv/lib/refs/json-schema-draft-06.json\"))\n```\n\n**Please note**: use Ajv v6 if you need draft-04 support - v7 does NOT support it.\n\n## Contents\n\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#getting-started)\n- [Frequently Asked Questions](https://github.com/ajv-validator/ajv/blob/master/FAQ.md)\n- [Using in browser](#using-in-browser)\n - [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp)\n- [Command line interface](#command-line-interface)\n- Validation\n - [Strict mode](#strict-mode)\n - [Keywords](#validation-keywords)\n - [Annotation keywords](#annotation-keywords)\n - [Formats](#formats)\n - [Combining schemas with \\$ref](#ref)\n - [\\$data reference](#data-reference)\n - NEW: [$merge and $patch keywords](#merge-and-patch-keywords)\n - [User-defined keywords](#user-defined-keywords)\n - [Asynchronous schema compilation](#asynchronous-schema-compilation)\n - [Asynchronous validation](#asynchronous-validation)\n- [Security considerations](#security-considerations)\n - [Security contact](#security-contact)\n - [Untrusted schemas](#untrusted-schemas)\n - [Circular references in objects](#circular-references-in-javascript-objects)\n - [Trusted schemas](#security-risks-of-trusted-schemas)\n - [ReDoS attack](#redos-attack)\n- Modifying data during validation\n - [Filtering data](#filtering-data)\n - [Assigning defaults](#assigning-defaults)\n - [Coercing data types](#coercing-data-types)\n- API\n - [Methods](#api)\n - [Options](#options)\n - [Validation errors](#validation-errors)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, License](#open-source-software-support)\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](#options)\n- [error messages with parameters](#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [filtering data](#filtering-data) from additional properties\n- [assigning defaults](#assigning-defaults) to missing properties and items\n- [coercing data](#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nThe fastest validation call:\n\n```javascript\n// Node.js require:\nvar Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nvar ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nvar validate = ajv.compile(schema)\nvar valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nor with less code\n\n```javascript\n// ...\nvar valid = ajv.validate(schema, data)\nif (!valid) console.log(ajv.errors)\n// ...\n```\n\nor\n\n```javascript\n// ...\nvar valid = ajv.addSchema(schema, \"mySchema\").validate(\"mySchema\", data)\nif (!valid) console.log(ajv.errorsText())\n// ...\n```\n\nSee [API](#api) and [Options](#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors)\n\n**Note for TypeScript users**: `ajv` provides its own TypeScript declarations\nout of the box, so you don't need to install the deprecated `@types/ajv`\nmodule.\n\n## Using in browser\n\nYou can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\nAjv is tested with these browsers:\n\n[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin)\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n### Ajv and Content Security Policies (CSP)\n\nIf you're using Ajv to compile a schema (the typical use) in a browser document that is loaded with a Content Security Policy (CSP), that policy will require a `script-src` directive that includes the value `'unsafe-eval'`.\n:warning: NOTE, however, that `unsafe-eval` is NOT recommended in a secure CSP[[1]](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval), as it has the potential to open the document to cross-site scripting (XSS) attacks.\n\nIn order to make use of Ajv without easing your CSP, you can [pre-compile a schema using the CLI](https://github.com/ajv-validator/ajv-cli#compile-schemas). This will transpile the schema JSON into a JavaScript file that exports a `validate` function that works simlarly to a schema compiled at runtime.\n\nNote that pre-compilation of schemas is performed using [ajv-pack](https://github.com/ajv-validator/ajv-pack) and there are [some limitations to the schema features it can compile](https://github.com/ajv-validator/ajv-pack#limitations). A successfully pre-compiled schema is equivalent to the same schema compiled at runtime.\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Strict mode\n\nStrict mode intends to prevent any unexpected behaviours or silently ignored mistakes in user schemas. It does not change any validation results compared with JSON Schema specification, but it makes some schemas invalid and throws exception or logs warning (with `strict: \"log\"` option) in case any restriction is violated.\n\nThe strict mode restrictions are below. To disable these restrictions use option `strict: false`.\n\n##### Prohibit unknown keywords\n\nJSON Schema [section 6.5](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-6.5) requires to ignore unknown keywords. The motivation is to increase cross-platform portability of schemas, so that implementations that do not support certain keywords can still do partial validation.\n\nThe problems with this approach are:\n\n- Different validation results with the same schema and data, leading to bugs and inconsistent behaviours.\n- Typos in keywords resulting in keywords being quietly ignored, requiring extensive test coverage of schemas to avoid these mistakes.\n\nBy default Ajv fails schema compilation when unknown keywords are used. Users can explicitly define the keywords that should be allowed and ignored:\n\n```javascript\najv.addKeyword(\"allowedKeyword\")\n```\n\nor\n\n```javascript\najv.addVocabulary([\"allowed1\", \"allowed2\"])\n```\n\n#### Prohibit ignored \"additionalItems\" keyword\n\nJSON Schema section [9.3.1.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.1.2) requires to ignore \"additionalItems\" keyword if \"items\" keyword is absent. This is inconsistent with the interaction of \"additionalProperties\" and \"properties\", and may cause unexpected results.\n\nBy default Ajv fails schema compilation when \"additionalItems\" is used without \"items.\n\n#### Prohibit ignored \"if\", \"then\", \"else\" keywords\n\nJSON Schema section [9.2.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.2.2) requires to ignore \"if\" (only annotations are collected) if both \"then\" and \"else\" are absent, and ignore \"then\"/\"else\" if \"if\" is absent.\n\nBy default Ajv fails schema compilation in these cases.\n\n#### Prohibit overlap between \"properties\" and \"patternProperties\" keywords\n\nThe expectation of users (see #196, #286) is that \"patternProperties\" only apply to properties not already defined in \"properties\" keyword, but JSON Schema section [9.3.2](https://tools.ietf.org/html/draft-handrews-json-schema-02#section-9.3.2) defines these two keywords as independent. It means that to some properties two subschemas can be applied - one defined in \"properties\" keyword and another defined in \"patternProperties\" for the pattern matching this property.\n\nBy default Ajv fails schema compilation if a pattern in \"patternProperties\" matches a property in \"properties\" in the same schema.\n\nIn addition to allowing such patterns by using option `strict: false`, there is an option `allowMatchingProperties: true` to only allow this case without disabling other strict mode restrictions - there are some rare cases when this is necessary.\n\nTo reiterate, neither this nor other strict mode restrictions change the validation results - they only restrict which schemas are valid.\n\n#### Prohibit unknown formats\n\nTODO\n\nThis will supercede unknownFormats option.\n\n#### Prohibit ignored defaults\n\nWith `useDefaults` option Ajv modifies validated data by assigning defaults from the schema, but there are different limitations when the defaults can be ignored (see [Assigning defaults](#assigning-defaults)). In strict mode Ajv fails schema compilation if such defaults are used in the schema.\n\n#### Number validation\n\nStrict mode also affects number validation. By default Ajv fails `{\"type\": \"number\"}` (or `\"integer\"`) validation for `Infinity` and `NaN`.\n\n## Validation keywords\n\nAjv supports all validation keywords from draft-07 of JSON Schema standard:\n\n- [type](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#type)\n- [for numbers](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf\n- [for strings](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format\n- [for arrays](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#contains)\n- [for objects](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#propertynames)\n- [for all types](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#const)\n- [compound keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf, [if/then/else](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#ifthenelse)\n\nWith [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON Schema standard:\n\n- [patternRequired](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match.\n- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc.\n\nSee [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md) for more details.\n\n## Annotation keywords\n\nJSON Schema specification defines several annotation keywords that describe schema itself but do not perform any validation.\n\n- `title` and `description`: information about the data represented by that schema\n- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options).\n- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults).\n- `examples` (NEW in draft-06): an array of data instances. Ajv does not check the validity of these instances against the schema.\n- `readOnly` and `writeOnly` (NEW in draft-07): marks data-instance as read-only or write-only in relation to the source of the data (database, api, etc.).\n- `contentEncoding`: [RFC 2045](https://tools.ietf.org/html/rfc2045#section-6.1), e.g., \"base64\".\n- `contentMediaType`: [RFC 2046](https://tools.ietf.org/html/rfc2046), e.g., \"image/png\".\n\n**Please note**: Ajv does not implement validation of the keywords `examples`, `contentEncoding` and `contentMediaType` but it reserves them. If you want to create a plugin that implements some of them, it should remove these keywords from the instance.\n\n## Formats\n\nFrom version 7 Ajv does not include formats defined by JSON Schema specification - these and several others formats are provided by [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin.\n\nTo add all formats from this plugin:\n\n```javascript\nconst ajv = new Ajv()\nrequire(\"ajv-formats\")(ajv)\n```\n\nSee ajv-formats documentation for further details.\n\nIt is recommended NOT to use \"format\" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack).\n\n**Please note**: if you need to use \"format\" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios.\n\nThe following formats are defined in [ajv-formats](https://github.com/ajv-validator/ajv-formats) for string validation with \"format\" keyword:\n\n- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6).\n- _time_: time with optional time-zone.\n- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)).\n- _uri_: full URI.\n- _uri-reference_: URI reference, including full and relative URIs.\n- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570)\n- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url).\n- _email_: email address.\n- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5).\n- _ipv4_: IP address v4.\n- _ipv6_: IP address v6.\n- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor.\n- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122).\n- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901).\n- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00).\n\n**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin.\n\nYou can add (and replace) any formats using [addFormat](#api-addformat) method.\n\nThe option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can allow specific format(s) that will be ignored. See [Options](#options) for details.\n\nYou can find regular expressions used for format validation and the sources that were used in [formats.js](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js).\n\n## Combining schemas with \\$ref\n\nYou can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword.\n\nExample:\n\n```javascript\nvar schema = {\n $id: \"http://example.com/schemas/schema.json\",\n type: \"object\",\n properties: {\n foo: {$ref: \"defs.json#/definitions/int\"},\n bar: {$ref: \"defs.json#/definitions/str\"},\n },\n}\n\nvar defsSchema = {\n $id: \"http://example.com/schemas/defs.json\",\n definitions: {\n int: {type: \"integer\"},\n str: {type: \"string\"},\n },\n}\n```\n\nNow to compile your schema you can either pass all schemas to Ajv instance:\n\n```javascript\nvar ajv = new Ajv({schemas: [schema, defsSchema]})\nvar validate = ajv.getSchema(\"http://example.com/schemas/schema.json\")\n```\n\nor use `addSchema` method:\n\n```javascript\nvar ajv = new Ajv()\nvar validate = ajv.addSchema(defsSchema).compile(schema)\n```\n\nSee [Options](#options) and [addSchema](#api) method.\n\n**Please note**:\n\n- `$ref` is resolved as the uri-reference using schema \\$id as the base URI (see the example).\n- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.).\n- You don't have to host your schema files at the URIs that you use as schema \\$id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs.\n- The actual location of the schema file in the file system is not used.\n- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema \\$id.\n- You cannot have the same \\$id (or the schema identifier) used for more than one schema - the exception will be thrown.\n- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation).\n\n## \\$data reference\n\nWith `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works.\n\n`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems.\n\nThe value of \"$data\" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the \\$data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema).\n\nExamples.\n\nThis schema requires that the value in property `smaller` is less or equal than the value in the property larger:\n\n```javascript\nvar ajv = new Ajv({$data: true})\n\nvar schema = {\n properties: {\n smaller: {\n type: \"number\",\n maximum: {$data: \"1/larger\"},\n },\n larger: {type: \"number\"},\n },\n}\n\nvar validData = {\n smaller: 5,\n larger: 7,\n}\n\najv.validate(schema, validData) // true\n```\n\nThis schema requires that the properties have the same format as their field names:\n\n```javascript\nvar schema = {\n additionalProperties: {\n type: \"string\",\n format: {$data: \"0#\"},\n },\n}\n\nvar validData = {\n \"date-time\": \"1963-06-19T08:30:06.283185Z\",\n email: \"joe.bloggs@example.com\",\n}\n```\n\n`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not \"number\" for maximum keyword) the validation fails.\n\n## $merge and $patch keywords\n\nWith the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902).\n\nTo add keywords `$merge` and `$patch` to Ajv instance use this code:\n\n```javascript\nrequire(\"ajv-merge-patch\")(ajv)\n```\n\nExamples.\n\nUsing `$merge`:\n\n```json\n{\n \"$merge\": {\n \"source\": {\n \"type\": \"object\",\n \"properties\": {\"p\": {\"type\": \"string\"}},\n \"additionalProperties\": false\n },\n \"with\": {\n \"properties\": {\"q\": {\"type\": \"number\"}}\n }\n }\n}\n```\n\nUsing `$patch`:\n\n```json\n{\n \"$patch\": {\n \"source\": {\n \"type\": \"object\",\n \"properties\": {\"p\": {\"type\": \"string\"}},\n \"additionalProperties\": false\n },\n \"with\": [{\"op\": \"add\", \"path\": \"/properties/q\", \"value\": {\"type\": \"number\"}}]\n }\n}\n```\n\nThe schemas above are equivalent to this schema:\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"p\": {\"type\": \"string\"},\n \"q\": {\"type\": \"number\"}\n },\n \"additionalProperties\": false\n}\n```\n\nThe properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema.\n\nSee the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) for more information.\n\n## User-defined keywords\n\nThe advantages of defining keywords are:\n\n- allow creating validation scenarios that cannot be expressed using pre-defined keywords\n- simplify your schemas\n- help bringing a bigger part of the validation logic to your schemas\n- make your schemas more expressive, less verbose and closer to your application domain\n- implement data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated\n\nIf a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result).\n\nThe concerns you have to be aware of when extending JSON Schema standard with additional keywords are the portability and understanding of your schemas. You will have to support these keywords on other platforms and to properly document them so that everybody can understand and use your schemas.\n\nYou can define keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords.\n\nAjv allows defining keywords with:\n\n- code generation function (used by all pre-defined keywords)\n- validation function\n- compilation function\n- macro function\n\nExample. `range` and `exclusiveRange` keywords using compiled schema:\n\n```javascript\najv.addKeyword({\n keyword: \"range\",\n type: \"number\",\n schemaType: \"array\",\n implements: \"exclusiveRange\",\n compile: ([min, max], parentSchema) =>\n parentSchema.exclusiveRange === true\n ? (data) => data > min && data < max\n : (data) => data >= min && data <= max,\n})\n\nconst schema = {range: [2, 4], exclusiveRange: true}\nconst validate = ajv.compile(schema)\nconsole.log(validate(2.01)) // true\nconsole.log(validate(3.99)) // true\nconsole.log(validate(2)) // false\nconsole.log(validate(4)) // false\n```\n\nSeveral keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package - they can be used for your schemas and as a starting point for your own keywords.\n\nSee [User-defined keywords](https://github.com/ajv-validator/ajv/blob/master/CUSTOM.md) for more details.\n\n## Asynchronous schema compilation\n\nDuring asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options).\n\nExample:\n\n```javascript\nvar ajv = new Ajv({loadSchema: loadSchema})\n\najv.compileAsync(schema).then(function (validate) {\n var valid = validate(data)\n // ...\n})\n\nfunction loadSchema(uri) {\n return request.json(uri).then(function (res) {\n if (res.statusCode >= 400) throw new Error(\"Loading error: \" + res.statusCode)\n return res.body\n })\n}\n```\n\n**Please note**: [Option](#options) `missingRefs` should NOT be set to `\"ignore\"` or `\"fail\"` for asynchronous compilation to work.\n\n## Asynchronous validation\n\nExample in Node.js REPL: https://runkit.com/esp/ajv-asynchronous-validation\n\nYou can define formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [User-defined keywords](user-defined-keywords)).\n\nIf your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `\"$async\": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation.\n\n**Please note**: all asynchronous subschemas that are referenced from the current or other schemas should have `\"$async\": true` keyword as well, otherwise the schema compilation will fail.\n\nValidation function for an asynchronous format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return errors from the keyword function).\n\nAjv compiles asynchronous schemas to [async functions](http://tc39.github.io/ecmascript-asyncawait/). Async functions are supported in Node.js 7+ and all modern browsers. You can supply a transpiler as a function via `processCode` option. See [Options](#options).\n\nThe compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas.\n\nValidation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property.\n\nExample:\n\n```javascript\nconst ajv = new Ajv()\n\najv.addKeyword({\n keyword: \"idExists\"\n async: true,\n type: \"number\",\n validate: checkIdExists,\n})\n\nfunction checkIdExists(schema, data) {\n return knex(schema.table)\n .select(\"id\")\n .where(\"id\", data)\n .then(function (rows) {\n return !!rows.length // true if record is found\n })\n}\n\nvar schema = {\n $async: true,\n properties: {\n userId: {\n type: \"integer\",\n idExists: {table: \"users\"},\n },\n postId: {\n type: \"integer\",\n idExists: {table: \"posts\"},\n },\n },\n}\n\nvar validate = ajv.compile(schema)\n\nvalidate({userId: 1, postId: 19})\n .then(function (data) {\n console.log(\"Data is valid\", data) // { userId: 1, postId: 19 }\n })\n .catch(function (err) {\n if (!(err instanceof Ajv.ValidationError)) throw err\n // data is invalid\n console.log(\"Validation errors:\", err.errors)\n })\n```\n\n#### Using transpilers\n\n```javascript\nvar ajv = new Ajv({processCode: transpileFunc})\nvar validate = ajv.compile(schema) // transpiled es7 async function\nvalidate(data).then(successFunc).catch(errorFunc)\n```\n\nSee [Options](#options).\n\n## Security considerations\n\nJSON Schema, if properly used, can replace data sanitisation. It doesn't replace other API security considerations. It also introduces additional security aspects to consider.\n\n##### Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n##### Untrusted schemas\n\nAjv treats JSON schemas as trusted as your application code. This security model is based on the most common use case, when the schemas are static and bundled together with the application.\n\nIf your schemas are received from untrusted sources (or generated from untrusted data) there are several scenarios you need to prevent:\n\n- compiling schemas can cause stack overflow (if they are too deep)\n- compiling schemas can be slow (e.g. [#557](https://github.com/ajv-validator/ajv/issues/557))\n- validating certain data can be slow\n\nIt is difficult to predict all the scenarios, but at the very least it may help to limit the size of untrusted schemas (e.g. limit JSON string length) and also the maximum schema object depth (that can be high for relatively small JSON strings). You also may want to mitigate slow regular expressions in `pattern` and `patternProperties` keywords.\n\nRegardless the measures you take, using untrusted schemas increases security risks.\n\n##### Circular references in JavaScript objects\n\nAjv does not support schemas and validated data that have circular references in objects. See [issue #802](https://github.com/ajv-validator/ajv/issues/802).\n\nAn attempt to compile such schemas or validate such data would cause stack overflow (or will not complete in case of asynchronous validation). Depending on the parser you use, untrusted data can lead to circular references.\n\n##### Security risks of trusted schemas\n\nSome keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to):\n\n- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)).\n- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well.\n- `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate\n\n**Please note**: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors).\n\nYou can validate your JSON schemas against [this meta-schema](https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-secure.json) to check that these recommendations are followed:\n\n```javascript\nconst isSchemaSecure = ajv.compile(require(\"ajv/lib/refs/json-schema-secure.json\"))\n\nconst schema1 = {format: \"email\"}\nisSchemaSecure(schema1) // false\n\nconst schema2 = {format: \"email\", maxLength: MAX_LENGTH}\nisSchemaSecure(schema2) // true\n```\n\n**Please note**: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results.\n\n##### Content Security Policies (CSP)\n\nSee [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp)\n\n## ReDoS attack\n\nCertain regular expressions can lead to the exponential evaluation time even with relatively short strings.\n\nPlease assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example.\n\n**Please note**: some formats that Ajv implements use [regular expressions](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources **it is strongly recommended** to consider the following:\n\n- making assessment of \"format\" implementations in Ajv.\n- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe).\n- replacing format implementations provided by Ajv with your own implementations of \"format\" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method.\n- disabling format validation by ignoring \"format\" keyword with option `format: false`\n\nWhatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios.\n\n## Filtering data\n\nWith [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation.\n\nThis option modifies original data.\n\nExample:\n\n```javascript\nvar ajv = new Ajv({removeAdditional: true})\nvar schema = {\n additionalProperties: false,\n properties: {\n foo: {type: \"number\"},\n bar: {\n additionalProperties: {type: \"number\"},\n properties: {\n baz: {type: \"string\"},\n },\n },\n },\n}\n\nvar data = {\n foo: 0,\n additional1: 1, // will be removed; `additionalProperties` == false\n bar: {\n baz: \"abc\",\n additional2: 2, // will NOT be removed; `additionalProperties` != false\n },\n}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 0, \"bar\": { \"baz\": \"abc\", \"additional2\": 2 }\n```\n\nIf `removeAdditional` option in the example above were `\"all\"` then both `additional1` and `additional2` properties would have been removed.\n\nIf the option were `\"failing\"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed).\n\n**Please note**: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example:\n\n```json\n{\n \"type\": \"object\",\n \"oneOf\": [\n {\n \"properties\": {\n \"foo\": {\"type\": \"string\"}\n },\n \"required\": [\"foo\"],\n \"additionalProperties\": false\n },\n {\n \"properties\": {\n \"bar\": {\"type\": \"integer\"}\n },\n \"required\": [\"bar\"],\n \"additionalProperties\": false\n }\n ]\n}\n```\n\nThe intention of the schema above is to allow objects with either the string property \"foo\" or the integer property \"bar\", but not with both and not with any other properties.\n\nWith the option `removeAdditional: true` the validation will pass for the object `{ \"foo\": \"abc\"}` but will fail for the object `{\"bar\": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema).\n\nWhile this behaviour is unexpected (issues [#129](https://github.com/ajv-validator/ajv/issues/129), [#134](https://github.com/ajv-validator/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way:\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"foo\": {\"type\": \"string\"},\n \"bar\": {\"type\": \"integer\"}\n },\n \"additionalProperties\": false,\n \"oneOf\": [{\"required\": [\"foo\"]}, {\"required\": [\"bar\"]}]\n}\n```\n\nThe schema above is also more efficient - it will compile into a faster function.\n\n## Assigning defaults\n\nWith [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items.\n\nWith the option value `\"empty\"` properties and items equal to `null` or `\"\"` (empty string) will be considered missing and assigned defaults.\n\nThis option modifies original data.\n\n**Please note**: the default value is inserted in the generated validation code as a literal, so the value inserted in the data will be the deep clone of the default in the schema.\n\nExample 1 (`default` in `properties`):\n\n```javascript\nvar ajv = new Ajv({useDefaults: true})\nvar schema = {\n type: \"object\",\n properties: {\n foo: {type: \"number\"},\n bar: {type: \"string\", default: \"baz\"},\n },\n required: [\"foo\", \"bar\"],\n}\n\nvar data = {foo: 1}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 1, \"bar\": \"baz\" }\n```\n\nExample 2 (`default` in `items`):\n\n```javascript\nvar schema = {\n type: \"array\",\n items: [{type: \"number\"}, {type: \"string\", default: \"foo\"}],\n}\n\nvar data = [1]\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // [ 1, \"foo\" ]\n```\n\nWith `useDefaults` option `default` keywords throws exception during schema compilation when used in:\n\n- not in `properties` or `items` subschemas\n- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/ajv-validator/ajv/issues/42))\n- in `if` schema\n- in schemas generated by user-defined _macro_ keywords\n\nThe strict mode option can change the behavior for these unsupported defaults (`strict: false` to ignore them, `\"log\"` to log a warning).\n\nSee [Strict mode](#strict-mode).\n\n## Coercing data types\n\nWhen you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards.\n\nThis option modifies original data.\n\n**Please note**: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value.\n\nExample 1:\n\n```javascript\nvar ajv = new Ajv({coerceTypes: true})\nvar schema = {\n type: \"object\",\n properties: {\n foo: {type: \"number\"},\n bar: {type: \"boolean\"},\n },\n required: [\"foo\", \"bar\"],\n}\n\nvar data = {foo: \"1\", bar: \"false\"}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": 1, \"bar\": false }\n```\n\nExample 2 (array coercions):\n\n```javascript\nvar ajv = new Ajv({coerceTypes: \"array\"})\nvar schema = {\n properties: {\n foo: {type: \"array\", items: {type: \"number\"}},\n bar: {type: \"boolean\"},\n },\n}\n\nvar data = {foo: \"1\", bar: [\"false\"]}\n\nvar validate = ajv.compile(schema)\n\nconsole.log(validate(data)) // true\nconsole.log(data) // { \"foo\": [1], \"bar\": false }\n```\n\nThe coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of \"anyOf\" and other compound keywords).\n\nSee [Coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md) for details.\n\n## API\n\n##### new Ajv(Object options) -> Object\n\nCreate Ajv instance.\n\n##### .compile(Object schema) -> Function<Object data>\n\nGenerate validating function and cache the compiled schema for future use.\n\nValidating function returns a boolean value. This function has properties `errors` and `schema`. Errors encountered during the last validation are assigned to `errors` property (it is assigned `null` if there was no errors). `schema` property contains the reference to the original schema.\n\nThe schema passed to this method will be validated against meta-schema unless `validateSchema` option is false. If schema is invalid, an error will be thrown. See [options](#options).\n\n##### .compileAsync(Object schema [, Boolean meta][, function callback]) -> Promise\n\nAsynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when:\n\n- missing schema can't be loaded (`loadSchema` returns a Promise that rejects).\n- a schema containing a missing reference is loaded, but the reference cannot be resolved.\n- schema (or some loaded/referenced schema) is invalid.\n\nThe function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded.\n\nYou can asynchronously compile meta-schema by passing `true` as the second parameter.\n\nSee example in [Asynchronous compilation](#asynchronous-schema-compilation).\n\n##### .validate(Object schema|String key|String ref, data) -> Boolean\n\nValidate data using passed schema (it will be compiled and cached).\n\nInstead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference.\n\nValidation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors).\n\n**Please note**: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later.\n\nIf the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation).\n\n##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv\n\nAdd schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole.\n\nArray of schemas can be passed (schemas should have ids), the second parameter will be ignored.\n\nKey can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key.\n\nOnce the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data.\n\nAlthough `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time.\n\nBy default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option.\n\n**Please note**: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`.\nThis allows you to do nice things like the following.\n\n```javascript\nvar validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri)\n```\n\n##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv\n\nAdds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option).\n\nThere is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`.\n\n##### .validateSchema(Object schema) -> Boolean\n\nValidates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard.\n\nBy default this method is called automatically when the schema is added, so you rarely need to use it directly.\n\nIf schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false).\n\nIf schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema.\n\nErrors will be available at `ajv.errors`.\n\n##### .getSchema(String key) -> Function<Object data>\n\nRetrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema.\n\n##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv\n\nRemove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references.\n\nSchema can be removed using:\n\n- key passed to `addSchema`\n- it's full reference (id)\n- RegExp that should match schema id or key (meta-schemas won't be removed)\n- actual schema object that will be stable-stringified to remove schema from cache\n\nIf no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared.\n\n##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv\n\nAdd format to validate strings or numbers.\n\nStrings are converted to RegExp.\n\nFunction should return validation result as `true` or `false`.\n\nIf object is passed it should have properties `validate`, `compare` and `async`:\n\n- _validate_: a string, RegExp or a function as described above.\n- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal.\n- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`.\n- _type_: an optional type of data that the format applies to. It can be `\"string\"` (default) or `\"number\"` (see https://github.com/ajv-validator/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass.\n\nFormats can be also added via `formats` option.\n\n##### .addKeyword(Object definition) -> Ajv\n\nAdd validation keyword to Ajv instance.\n\nKeyword should be different from all standard JSON Schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance.\n\nKeyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`.\nIt is recommended to use an application-specific prefix for keywords to avoid current and future name collisions.\n\nExample Keywords:\n\n- `\"xyz-example\"`: valid, and uses prefix for the xyz project to avoid name collisions.\n- `\"example\"`: valid, but not recommended as it could collide with future versions of JSON Schema etc.\n- `\"3-example\"`: invalid as numbers are not allowed to be the first character in a keyword\n\nKeyword definition is an object with the following properties:\n\n- _keyword_: keyword name string\n- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types.\n- _schemaType_: optional string or array of strings with the required schema type\n- _code_: function to generate code, used for all pre-defined keywords\n- _validate_: validating function\n- _compile_: compiling function\n- _macro_: macro function\n- _error_: optional error definition object\n- _schema_: an optional `false` value used with \"validate\" keyword to not pass schema\n- _metaSchema_: an optional meta-schema for keyword schema\n- _dependencies_: an optional list of properties that must be present in the parent schema - it will be checked during schema compilation\n- _implements_: an optional list of keyword names to reserve that this keyword implements\n- _modifying_: `true` MUST be passed if keyword modifies data\n- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords.\n- _\\$data_: an optional `true` value to support [\\$data reference](#data-reference) as the value of keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has _code_ or _validate_ function (the latter can be used in addition to _compile_ or _macro_).\n- _\\$dataError_: optional error definition for invalid \\$data schema\n- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of \"macro\" and \"inline\" keywords.\n- _errors_: an optional boolean or string `\"full\"` indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation.\n\n_compile_, _macro_ and _code_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to _compile_ or _macro_ to support \\$data reference.\n\n**Please note**: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed.\n\nSee [User defined keywords](#user-defined-keywords) for more details.\n\n##### .getKeyword(String keyword) -> Object|Boolean\n\nReturns keyword definition, `false` if the keyword is unknown.\n\n##### .removeKeyword(String keyword) -> Ajv\n\nRemoves added or pre-defined keyword so you can redefine them.\n\nWhile this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results.\n\n**Please note**: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again.\n\n##### .errorsText([Array<Object> errors [, Object options]]) -> String\n\nReturns the text with all errors in a String.\n\nOptions can have properties `separator` (string used to separate errors, \", \" by default) and `dataVar` (the variable name that dataPaths are prefixed with, \"data\" by default).\n\n## Options\n\nDefaults:\n\n```javascript\n{\n // strict mode options\n strict: true,\n allowMatchingProperties: false,\n // validation and reporting options:\n $data: false,\n allErrors: false,\n verbose: false,\n $comment: false,\n format: true,\n formats: {},\n unknownFormats: true,\n schemas: {},\n logger: undefined,\n // referenced schema options:\n missingRefs: true,\n extendRefs: \"ignore\", // recommended 'fail'\n loadSchema: undefined, // function(uri: string): Promise {}\n // options to modify validated data:\n removeAdditional: false,\n useDefaults: false,\n coerceTypes: false,\n // advanced options:\n meta: true,\n validateSchema: true,\n addUsedSchema: true,\n inlineRefs: true,\n passContext: false,\n loopRequired: Infinity,\n loopEnum: Infinity,\n ownProperties: false,\n multipleOfPrecision: false,\n messages: true,\n sourceCode: false,\n processCode: undefined, // function (str: string, schema: object): string {}\n cache: new Cache,\n serialize: undefined\n jsPropertySyntax: false, // deprecated\n}\n```\n\n##### Strict mode options\n\n- _strict_: By default Ajv executes in strict mode, that is designed to prevent any unexpected behaviours or silently ignored mistakes in schemas (see [Strict Mode](#strict-mode) for more details). It does not change any validation results, but it makes some schemas invalid that would be otherwise valid according to JSON Schema specification. Option values:\n - `true` (default) - use strict mode and throw an exception when any strict mode restrictions is violated.\n - `\"log\"` - log warning when any strict mode restriction is violated.\n - `false` - ignore any strict mode restriction.\n- _allowMatchingProperties_: pass true to allow overlap between \"properties\" and \"patternProperties\". See [Strict Mode](#strict-mode).\n\n##### Validation and reporting options\n\n- _\\$data_: support [\\$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api).\n- _allErrors_: check all rules collecting all errors. Default is to return after the first error.\n- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default).\n- _\\$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values:\n - `false` (default): ignore \\$comment keyword.\n - `true`: log the keyword value to console.\n - function: pass the keyword value, its schema path and root schema to the specified function\n- _format_: formats validation mode. Option values:\n - `true` (default) - validate added formats (see [Formats](#formats)).\n - `false` - ignore all format keywords.\n- _formats_: an object with format definitions. Keys and values will be passed to `addFormat` method.\n- _keywords_: an array of keyword definitions or strings. Values will be passed to `addKeyword` method.\n- _unknownFormats_: handling of unknown formats. Option values:\n - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [\\$data reference](#data-reference) and it is unknown the validation will fail.\n - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [\\$data reference](#data-reference) and it is not in this array the validation will fail.\n - `\"ignore\"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification.\n- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object.\n- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values:\n - logger instance - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown.\n - `false` - logging is disabled.\n\n##### Referenced schema options\n\n- _missingRefs_: handling of missing referenced schemas. Option values:\n - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted).\n - `\"ignore\"` - to log error during compilation and always pass validation.\n - `\"fail\"` - to log error and successfully compile schema but fail validation if this rule is checked.\n- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values:\n - `\"ignore\"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation.\n - `\"fail\"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing.\n - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0).\n- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation).\n\n##### Options to modify validated data\n\n- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values:\n - `false` (default) - not to remove additional properties\n - `\"all\"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them).\n - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed.\n - `\"failing\"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema).\n- _useDefaults_: replace missing or undefined properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values:\n - `false` (default) - do not use defaults\n - `true` - insert defaults by value (object literal is used).\n - `\"empty\"` - in addition to missing or undefined, use defaults for properties and items that are equal to `null` or `\"\"` (an empty string).\n- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md). Option values:\n - `false` (default) - no type coercion.\n - `true` - coerce scalar data types.\n - `\"array\"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema).\n\n##### Advanced options\n\n- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword.\n- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values:\n - `true` (default) - if the validation fails, throw the exception.\n - `\"log\"` - if the validation fails, log error.\n - `false` - skip schema validation.\n- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with \"#\". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method.\n- _inlineRefs_: Affects compilation of referenced schemas. Option values:\n - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions.\n - `false` - to not inline referenced schemas (they will be compiled as separate functions).\n - integer number - to limit the maximum number of keywords of the schema that will be inlined.\n- _passContext_: pass validation context to _compile_ and _validate_ keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your keywords. By default `this` is Ajv instance.\n- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance.\n- _loopEnum_: by default `enum` keyword is compiled into a single expression. In case of a very large number of allowed values it may result in a large validation function. Pass integer to set the number of values above which `enum` keyword will be validated in a loop.\n- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst.\n- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/ajv-validator/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations).\n- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when messages are generated outside of Ajv code (e.g. with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n)).\n- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call).\n- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code.\n- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`.\n- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used.\n- _jsPropertySyntax_ (deprecated) - set to `true` to report `dataPath` in errors as in v6, using JavaScript property syntax (e.g., `\".prop[1].subProp\"`). By default `dataPath` in errors is reported as JSON pointer. This option is added for backward compatibility and is not recommended - this format is difficult to parse even in JS code.\n\n## Validation errors\n\nIn case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property.\n\n### Error objects\n\nEach error is an object with the following properties:\n\n- _keyword_: validation keyword.\n- _dataPath_: JSON pointer to the part of the data that was validated (e.g., `\"/prop/1/subProp\"`).\n- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation.\n- _params_: the object with the additional information about error that can be used to generate error messages (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package). See below for parameters set by all keywords.\n- _message_: the standard error message (can be excluded with option `messages` set to false).\n- _schema_: the schema of the keyword (added with `verbose` option).\n- _parentSchema_: the schema containing the keyword (added with `verbose` option)\n- _data_: the data validated by the keyword (added with `verbose` option).\n\n**Please note**: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `\"propertyNames\"`.\n\n### Error parameters\n\nProperties of `params` object in errors depend on the keyword that failed validation.\n\n- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword).\n- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false).\n- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords).\n- `dependencies` - properties:\n - `property` (dependent property),\n - `missingProperty` (required missing dependency - only the first one is reported currently)\n - `deps` (required dependencies, comma separated list as a string),\n - `depsCount` (the number of required dependencies).\n- `format` - property `format` (the schema of the keyword).\n- `maximum`, `minimum` - properties:\n - `limit` (number, the schema of the keyword),\n - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`),\n - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be \"<\", \"<=\", \">\", \">=\")\n- `multipleOf` - property `multipleOf` (the schema of the keyword)\n- `pattern` - property `pattern` (the schema of the keyword)\n- `required` - property `missingProperty` (required property that is missing).\n- `propertyNames` - property `propertyName` (an invalid property name).\n- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property).\n- `type` - property `type` (required type(s), a string, can be a comma-separated list)\n- `uniqueItems` - properties `i` and `j` (indices of duplicate items).\n- `const` - property `allowedValue` pointing to the value (the schema of the keyword).\n- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword).\n- `$ref` - property `ref` with the referenced schema URI.\n- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes).\n\nUser-defined keywords can define other keyword parameters.\n\n### Error logging\n\nA logger instance can be passed via `logger` option to Ajv constructor. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown.\n\n- **Required Methods**: `log`, `warn`, `error`\n\n```javascript\nconst otherLogger = new OtherLogger()\nconst ajv = new Ajv({\n logger: {\n log: console.log.bind(console),\n warn: function warn() {\n otherLogger.logWarn.apply(otherLogger, arguments)\n },\n error: function error() {\n otherLogger.logError.apply(otherLogger, arguments)\n console.error.apply(console, arguments)\n },\n },\n})\n```\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-async](https://github.com/ajv-validator/ajv-async) - plugin to configure async validation mode (DEPRECATED)\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](https://github.com/ajv-validator/ajv/blob/master/CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n[Version 5.0.0](https://github.com/ajv-validator/ajv/releases/tag/5.0.0).\n\n[Version 4.0.0](https://github.com/ajv-validator/ajv/releases/tag/4.0.0).\n\n[Version 3.0.0](https://github.com/ajv-validator/ajv/releases/tag/3.0.0).\n\n[Version 2.0.0](https://github.com/ajv-validator/ajv/releases/tag/2.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](https://github.com/ajv-validator/ajv/blob/master/CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](https://github.com/ajv-validator/ajv/blob/master/LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "4bb210de5cd6f1ba9190b80a26e52ec9eb56bff8", + "_id": "ajv@7.0.0-alpha.1", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-vOWutHnEGQJ6AWg7JFil9yhZ0OJQMHkCbUJrrDWcnHYcUMBHkxf+5mCAU16dCz3eZh3Tkaf/JsyFVbTQkqjzNw==", + "shasum": "19d5bcec514ac4f31125a68e2ecf6f747e9fb0ae", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-alpha.1.tgz", + "fileCount": 250, + "unpackedSize": 595851, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYhXHCRA9TVsSAnZWagAATGIP/2m6xiuTGIwORcnwkbhW\nyDjojpmM0pdjsbIGxtuo3+VwpUtdoRLZqb3HdN4P5/hBW6XDyU22C0KuXQvu\nhApKLUJ12ZH7JaEUeB3uWozP3ppTpS9c0TCoIp4T/PHfFZriiXyuPgavlfG9\n+yZwz/n+I63rqxrKzUNCHzH+9AxjVrt6mbYDAka4AzJqapCvoIqEdRRuB7RB\nGPutS/az2qcu1V4/wg7DePgg8A3gOHpqPGy0mCRu//5qKR6hRiR4+mqu0gpM\n9NaRe7DduFcte4kyQGBzF1FZy5jprXgjkdCVmaijWpJZOz32hwhio65JQT++\ntfLS1tK3w1CeLIN/fnFR8MZO0HjR+5Q5eww5sUK/88SS4SVDQJh18TrQxo8q\n9eiQkMgn8OUV4blLCoKLCxRKlL73ku3d3FR86R/lqBPdBwEMAJyaNC6MLTtR\ndEZOXIrKVoZ9c5zzrz1+IOqupnvU6YYdHBKTNdHHA2IDxtEYbr+6r+HD9GG9\ngc5AoDpZ/mFhMU2kW0RLgSYdBkhvkDFRglbHASWV5oHfUnt3MkFU4piGEEIU\nvD31R1p48qPq1iyDSIF5v25q/iWPJ4yFWxu6wcQP2Z96tRYyrWDEZGTHXaca\nLc5NJZYnnrCtrGV+IOwBFhsU4EM2nAkJ64iM6idiN8medWg4o9SCmpActIPb\nVGec\r\n=kyiv\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAaSswMYxyB/2YnUSlu241Ua/FJp8MwDGwF6dW3G8OcIAiEAsYfnnuztl8+wDA9Zg9GRqmP4d8glsr6ax4KVhYXcJx0=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-alpha.1_1600263622829_0.3319937715228203" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.0": { + "name": "ajv", + "version": "7.0.0-beta.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.3.2", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (tag)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.0)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\n[Ajv version 7.0.0-beta.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) is released with these changes:\n\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe.\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas.\n- schemas are compiled to ES6 code (ES5 code generation is supported with an option).\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using version 6 that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitely added if you use them.\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n**Please note**: use [Ajv v6](https://github.com/ajv-validator/ajv) if you need draft-04 support - v7 does NOT support it.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- assitional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\nTo install version 7 beta:\n\n```\nnpm install ajv@beta\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// Node.js require:\nconst Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n[Changes in version 7.0.0-alpha.2](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0).\n\n[Changes in version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "16c905b67fecdeb32d46af9980c13e4b68037504", + "_id": "ajv@7.0.0-beta.0", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-7hwYZ5gefadrdKkDNYzOSVtHsZR9I1wOn8Urve2xA9aBnT9aijBDoRl2pu51Wpz/iSLP6EULgGxog6yjCki/GA==", + "shasum": "6bea4bf29c9ca253d7de11d8cfb869026381c645", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.0.tgz", + "fileCount": 255, + "unpackedSize": 690746, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfa58oCRA9TVsSAnZWagAAm/8P/0XlKYf9Mrl1e6UOwHGV\n0Ru0MdorXd5ScN6AMWfc+hfqatSPeQKi/E1SX00NGXQlFI4IxibMYPTuqTgG\nbYj+IyhPvkd7yFOxdHE4wIhb3GjhZK32Zhjj2b/i5Qk82E6rZBzfG7Vhbg5R\nkYuUjqjDgtI8I2vjV/zhtYq+mCCRPn9vQIlHXLH5DnPz/FOwpRcyGkgG+1az\nfRh7sIaq4I3gn9dKStYqH2i9l7zB/xQyRtYInOc5MEuPe66v+nwypNXbDl6E\nm59r6Ep4cq8gF+gTRvLI6aaCSIpQCEUSdnrFTdn1cnNp4lL6Pu/oXDaUZ7hJ\neflJ+PPT/5pK4MtzIIKFaCLUH0RTp32PaKdgj2L1frr3baX/4/6JMVcsMSsx\nkffgzQP2qhgstBoxqD4uSBHHISI5MsrDrPSq3Fzu+o/v8QBSuwhchbC0A5Gy\niz+v2LX0krVW2qanCaAzUHD4kYeDlxpadLZVSz4Eg7RB1jn3e8rAn1ihqCFD\nNe9MeQIEeXvRp5Ur4dnrTwdiqRboX5d+9RD1vGfMasrWweNq48xA9NjS8g7m\nHy77ed4mTCeKjf5ipSElyGm+5DwAxVuOunZumVVXHWiq4B3Rbc6OBbzXkvrU\nIYQtu8OXwSQ0QXN+TtFL5x4zmLUrXWVRcXqZNk3SeHOg9ql5c53Y7JA0IVLK\n6Dx0\r\n=PCmN\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGIpqqB9z09XenvadvRQgBBMJ1oP1iI8lk48eT2/Ihc1AiEA2Cv78i7p8CG6g+tTQle/A8k2TEm6EjrnlVYbNw2kLP0=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.0_1600888615763_0.49029968574610594" + }, + "_hasShrinkwrap": false + }, + "6.12.6": { + "name": "ajv", + "version": "6.12.6", + "description": "Another JSON Schema Validator", + "main": "lib/ajv.js", + "typings": "lib/ajv.d.ts", + "scripts": { + "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "jshint": "jshint lib/{compile/,}*.js", + "lint": "npm run jshint && npm run eslint", + "test-spec": "mocha spec/{**/,}*.spec.js -R spec", + "test-fast": "AJV_FAST_TEST=true npm run test-spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", + "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", + "bundle-beautify": "node ./scripts/bundle.js js-beautify", + "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", + "test-karma": "karma start", + "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", + "test": "npm run lint && npm run build && npm run test-all", + "prepublish": "npm run build && npm run bundle", + "watch": "watch \"npm run build\" ./lib/dot" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "ajv-async": "^1.0.0", + "bluebird": "^3.5.3", + "brfs": "^2.0.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "coveralls": "^3.0.1", + "del-cli": "^3.0.0", + "dot": "^1.0.3", + "eslint": "^7.3.1", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "jshint": "^2.10.2", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "karma-sauce-launcher": "^4.1.3", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "pre-commit": "^1.1.1", + "require-globify": "^1.3.0", + "typescript": "^3.9.5", + "uglify-js": "^3.6.9", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "gitHead": "fe591439f34e24030f69df9eb8d91e6d037a3af7", + "_id": "ajv@6.12.6", + "_nodeVersion": "12.12.0", + "_npmVersion": "6.11.3", + "dist": { + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "shasum": "baf5a62e802b07d977034586f8c3baf5adf26df4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-6.12.6.tgz", + "fileCount": 92, + "unpackedSize": 929154, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgej1CRA9TVsSAnZWagAAR0YP/jHA0M1PzBq8lWSpR5ri\n/7QS2sKRHRXJWldbw9lQNe2bIyCbFdzWfCTiDZjWv8g+8/CsJ/PkwmdAoCS6\nAIKXIMrPMFZ5lG6uNSX+pzPtaS2N/E74iaofRgkN1hTqb/5P1o8Dxsbb7SG1\nuxVUFnW+RzKEzWVji48/bCPmSvGoGl1fWU75aHbSwET5YA5hmNL1A6jbBffa\ns0tNJocggD3tZLKYzw5CbqEwsSLmzOmBg1HIhFUDtTelzDo7CCRAUU6rPdHp\nGbeR9KjsUwQstAiwukLUWBAmkEG55ACaS1FsZ9DDy7sny/g1ohcUXZVaC3tb\nYiNhkh5X2GSqCGaN8qmgmPezFtCfbQe8+oQk4i7jnxUnqujJOOSKAmThhER1\nWII8HaTfUYQj5cUWLc/Te0d8HlJwVyTFmzTPjE58zQS5xyIXhOLn/jGgP2Qp\nP4t1S7s8IrnovefPhCj1RSwzbJRYkU/XRr4mvYpwMTn06TE1GhlN6hkzjfL/\n3noaTGYXgxPzJ5LCjmhINan1BrqIx7oUyeAwPsevz5TnEignDl/NcdjhOnXr\nuyvfU8arfygvmzacp+1XMS2b5w+FLbbqrh+s1SI4iJHBxamhxE5R3jbqovXI\npClzWbOwOrZ2lzNBiojI3vacgk0LHGVy8Zhn+8jbhlkmIrTiiqMTVDBN9UvF\nGSGr\r\n=Vg+s\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDkPRWEQ/1xKKRlM+xlc9LGcUY+TnlcRMLKDo9GML2A/AiEA/+QmhzkvJWIPyOj7OL175pm72Hst85SfxBAt+rGSmzI=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_6.12.6_1602349300413_0.18453932021292485" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.1": { + "name": "ajv", + "version": "7.0.0-beta.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write './**/*.{md,json,yaml,js,ts}'", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.3.2", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.1)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\n[Ajv version 7.0.0-beta.1](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes:\n\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas.\n- schemas are compiled to ES6 code (ES5 code generation is supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitely added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- assitional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\nTo install version 7 beta:\n\n```\nnpm install ajv@beta\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// Node.js require:\nconst Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "a010c1f1388df438e220cce4bc7d99dc6042d8af", + "_id": "ajv@7.0.0-beta.1", + "_nodeVersion": "12.12.0", + "_npmVersion": "6.11.3", + "dist": { + "integrity": "sha512-rKX+VjvPBBBTw+fXQ1b37Z9sarOr49/1QP5Clb1PSy/f8pKiU/+cQ2uBIFtX3QanL/3/LW+mKiw/G8gwRdyTEA==", + "shasum": "7427b34592edaf2eaa97655ec398e5d17991b817", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.1.tgz", + "fileCount": 255, + "unpackedSize": 738367, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgfoTCRA9TVsSAnZWagAACS0P+QCqwKJSfn22MXvmNM6V\n4srVm7ktrXU1FJGyw96wMusIp0KpYs/Pezy2HDXUV4ArH6fDoHiAaXfBwsYh\njkL+LYs2psWX/57Bd1jpzTAAWEvmh6Hj/Ep7zrbSdmia6uzf53jITdgEKE68\n2xuuE/B23ChYaA/gTyQUDS/h2zdgXGmsuP2j+94TX0Py+FMP2zfKS4IeHFOE\n+rJvmCA3X32SnRTq+lKskRB2JRfxLFzcB9co1IHnRDWLVo8ceb/yLKdsjAEb\nPV9BydxFOPK659ckLjYOFfoM/vQN0MMJJDq8aLOKjzmzgVE5uUJjdpo8IC52\njs4TOcZZ+Tli9qH2D2dFfX6vulXXhnRVHhvh8x7ZXMwnMzzlZPs2Du42Y3Ca\ny5pU2e7NHb0koOQAbpENvw6+n3ZrlyGLzEFEcEkwZkneR3Zj1PExtzvtsS5K\nGcDi+Tx1JB+Lkf32TtMBYqFItq78zyX3KP8qAZWYKI7Yum4cUALJVmT3pYdl\nGFfmTRLWhJ7d2qnZROlTL2dLsLMWqDn96RA/KVHo/AZ8va3xNu92rB6CdG4a\n158PzlxfMYS/CsS/OSXa+Ck1jYpu/8iBInHNqDts5bhfMTrU1sc/WWquhhv9\nX4/Ep7LNgWlMSZcov6WxRRrLWYlLADYlgHd0OBMv8FniXtwE6CJohVckde6/\nDBgm\r\n=VDyd\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCysd9B4O0F/87aH1U57e7JfoVBZIiyXqiFDInyz+l45AIgfE4CYZpAJkUgcZwCIhs2rtTLpv/42Y2gFGHCNIyxH4I=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.1_1602353682748_0.12518119863012855" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.2": { + "name": "ajv", + "version": "7.0.0-beta.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.3.2", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.2)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\n[Ajv version 7 (beta)](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes:\n\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas.\n- schemas are compiled to ES6 code (ES5 code generation is supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitely added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- assitional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\nTo install version 7 beta:\n\n```\nnpm install ajv@beta\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// Node.js require:\nconst Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "47263dd74119acf246a519805ebf7d12cdf6a44e", + "_id": "ajv@7.0.0-beta.2", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-QNYgGgTZ370cYyxsIpQWt8HG7fxBlYrb3wW/SVxsAJ9qqVh8bmbszwNWut93EEhK+rTOY2IKj+SOQRo/7mvQiw==", + "shasum": "709980b7850183a027631160c01954409c05cfac", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.2.tgz", + "fileCount": 255, + "unpackedSize": 732099, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflG8DCRA9TVsSAnZWagAAge8P/iVGNEvLlGQ9F17X43Br\nCMV/muJDLIPuwZelOmCuMUTl0Oj2zsaGdhkWHAgIZUQsvrkBqdGPiTFwv53c\nzqt1AkX7ov9a2gHQWtfjaJcMB5rglB1PsH9f2g8WrIZjbz4PLpmfhQviB0fO\nLCLABl8sw0JmfQ/JyhVAdM0aUdPPzdGIMPE0u0hbhwEPBzoy63rlfOTWz7sv\nXh4eg4wSbn9aKsf/VPTc2rOY6sABgK2o/KlyrAjLlXzenF3hhQguWCe5oijz\n1LLw5iyzxar/noWf9WCXE/1V/dStbWQAwJ9uRcEzAKe3Zw5vkX/48pJqpQuJ\n0MR8i6y+P6LDdQJ0ZUMDlHpIiXfAPM7jTTi8Fm88J8oJLnHnnldCtBDuEj98\nhL5w4kqPrePlTyau8MjUu5twncLJWcAnIPEtM+NECsHvFLlMILQBjxNGzUSg\nVFKmtKGX4Th5wxZop4/zssZ5lhazB2mSs2FvXvrcB8bFUdgZbLGbs4hjjl7g\nn3Sh//GmTpSrh/5wGcyzjKkJq9McBO+5ZjEn0T1zDe1fQFZrI1pj+wCNmDWo\nYRc4htL4d9PynPSQZ0K9FkF8pGbBwMbXbisaLxJEyCUwg0vnEcvRr0ildRB0\nk+UEHvKcf263vkDTbaQYXjl0PZTtb/5zRFi5MeiIVXgN92WI25D9L6FpsO8b\nlECF\r\n=gMrc\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDj+BDeichbcl7iIjatpAqBz+ncNYf6zs2DXtxgCvWE8AIgAOdXs2DRgrPyKOVHJKyF+KDcVl6yeJN3l9H79zJeLXs=" + } + ] + }, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.2_1603563266781_0.7921179124179916" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.3": { + "name": "ajv", + "version": "7.0.0-beta.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.3.2", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.3)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\n[Ajv version 7 (beta)](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes:\n\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas.\n- schemas are compiled to ES6 code (ES5 code generation is supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitely added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- assitional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\nTo install version 7 beta:\n\n```\nnpm install ajv@beta\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// Node.js require:\nconst Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "8bedd820360e0f6be3e9a2ae04059546e58dc5b2", + "_id": "ajv@7.0.0-beta.3", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-gUGVvM4NmyqrFvCNAQnP4P7FC0RjxMQyRnrXpozNglBkDJnTysVbvycyOZUy5n6yLKSqVDUqWZBXj7dXINrSqw==", + "shasum": "d34861ccfbdebb55bf9f49a08b29f76bf656fc5c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.3.tgz", + "fileCount": 283, + "unpackedSize": 795088, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfo7VOCRA9TVsSAnZWagAAMkoP/0WFOe2VsVhWGMmVditG\ndIikPWVO60u1rvWjPqH6w3FR/+HRxgAykGaIWdwllZyAgvDCrtik7JnuVw+C\niUhZOyPiihOn2EybrGs61fZpV4Cfjy33XmzIGdk5smkezWYq3sapPhifIrJn\nXm3NjFrudtVe0TnSbnM/yIcArK3CK1ZeaZuleBJhbtNlJ1IjjmlbiTPU49B3\nVseinnkTvPoIBYot+b3WYpjO0ddyuZaJwjLdvAaffmRy2VMBnd+xdecXEDQc\ntRttk/3lnZ+kMu/kOwgDOfqjRMrFpOG43H1YFdbEj5dqXle6REubw/7Vdv10\nHdLSPmv4IOn9s8tRpDJMDJS/3kzY3V8olknTBzTIu0VPcwyw5aYKQwOQpQ+K\neK8jlx4D1KTQFb3LKzMjw9y90n8J98YZr6d5vauJv68UOPd1jlKMzXGKRcYr\njwlRPMaB38sbBZaaLYRIgCKArTcr1XQbpDRP2/cThL+3mxFb50qw+Z9cuqNy\nNJLU68bZdLjdaV7ZXlcf7L3Pp/SDM0EHeiS5HqpFdJseEMKEMVzPH6RPOQoK\n0kLWGOryqXJe1wIzbaX0XULdESj5QtYiIm0r24MdT1rlVkGAaFzqr3wSvTI7\n/T95Gia27tE+1ZFWBY1Yd0E3I2QFsofdof4kX7f5HpuCO/A4uAwWJ70NYF3f\nWFaa\r\n=Swfi\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCxR32lV1GIO/3sPW1dwEhRn1Ehvr+lrCCp60xrpgJQMgIgS6u2Xz+Q4XFKJkzPHHF1hQG/6vuKn5TeiSq27xh2G+A=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.3_1604564302050_0.9773755126453094" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.4": { + "name": "ajv", + "version": "7.0.0-beta.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different './**/*.{md,json,yaml,js,ts}'", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/**/*.spec.ts' -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.5.0", + "browserify": "^16.2.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07 (draft-04 is supported in v6).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.4)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\n[Ajv version 7 (beta)](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitely added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- assitional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\n```\nnpm install ajv\n```\n\nTo install version 7 beta:\n\n```\nnpm install ajv@beta\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// Node.js require:\nconst Ajv = require(\"ajv\")\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "a416acec42beeb8a0e706779b0d40dff77c319e6", + "_id": "ajv@7.0.0-beta.4", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-c6ROIXt0YR6uu3/XfwpXhRetEjNrmaa6WkofjGvO45rUXYNi0S5kI2Cwdm6vQBOnvzjCHSzUrRnCx54SaE1dgQ==", + "shasum": "1885f0fe044922ca468729f6b299328463379d37", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.4.tgz", + "fileCount": 321, + "unpackedSize": 838351, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqk5rCRA9TVsSAnZWagAACeQP/R5V17qvH3RcBCxsng1f\nGosK+slAqLSddLYX9WmdKbCutRi/f1Zv/GsSF4IhFJc0fvBvo9/qsGdVM6dm\n2KRWWz1QUHJOgcssO576l9Pce/nd81oUwbcAVZdDG3MgcKfrndCmHiDG6yln\nyDcg2POOviQ0WkNq0PgkZj8nmpFDPcg+xfwVRathx0wOygnrvaWYEro39l7V\nR/fsEdH72lrn7y59UWTr96EOHbpOdXBeNha2KvFmY7cxx2BdKFTGnIuAA5Bi\n8HMbEPQ+JnrgiGR6P7fhP7Ar0TfJ+jSO6MQ8/mcE/XIFZWSap2oeLaiyE7kR\n73x9Q0AoJXBW/9mMDUq6h4B6hj6TbmhE1vhD8FG9D9ScpNmVWX4oFcmQvWXI\nIfUDRKp/Ze5AIrY/ipIGs6NuVifAwGuhX0cVrl0iBfWw3stWM0GiJ9U66KRD\nVwr2mSojJaVfA2QBh0VDHUSaxDy6TdzXjA+MKiTI3e+tgM+4iQBAgyZJ7lCd\nWUEdqhVmmDZYWfLB03OykvI4i2Tq+HevCMFYwgmowgjk5K11YgD5c15S8IFa\nigCaXG1LqM5F4erYWqE8c9dUieK3HQDtgHYVXQbIbMx/6U8cpW7SicWxs9MR\nvv4waoSNx6LdnkMBMN6BI8YrGGv9Mbe7z8GnZO03XtZrxfxdQG6Zs6H/NrJV\n+nhp\r\n=97lt\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCAffpPCYJ21wN2qcfen/XpN/qM6ncwSLd+3wP5f/9iwwIgLoaHCh+odS3l6Ll2OD/Hfa50odKi0djNaSj/pLJN2cQ=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.4_1604996714930_0.847305201110609" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.5": { + "name": "ajv", + "version": "7.0.0-beta.5", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.5)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "5ba3462b5c13a90ab2ff157577a53c12bff9fdc6", + "_id": "ajv@7.0.0-beta.5", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-Pa/C51m4ICBeeIXopCOzeAtbw44rxA9O3oFCP1N8y3Y6TZU3YMSfobhEipvEma5ln7tYF6vOmEuaDbc7ByX/Bg==", + "shasum": "9aab801e671726954e2875fa8f87b0fec1a1082e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.5.tgz", + "fileCount": 333, + "unpackedSize": 842070, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsVzACRA9TVsSAnZWagAAS0IP/i4jA0DSOtBmz/4utf//\n/klbz6y0LGAi8qidgICaF0Va17GG/Tlmc3TM5DJlbjH4X7r6KdkHI9r3oQYt\nNxMulnWzvXirNwaKdJO0/jWPjU2A5uCaOAHJhu5ZYOvGh5fxudpfGr7BeV8u\nPfIJFScC6UIeAJE96fBsHEBabQ7hzSEYTFLjSp7EhPhQeL2dbtJwGBR2lBrM\nRpnHhGVfK2S47p9e863eUd+hRFvim3Gsendzq8/h0amfirMPb/WSclPM8ZRh\naWCC4IEv9FdnokdjrrsINzbh/fbNroqgVSRwDimIazf+XGC3OZKLutDYmq2G\nteI09KdLElM/anCulSvAlXpTH674ffOGoboxRhCmrnNSuHBwhmOZXn0B+FWj\ntzM9a8KjE5m8fAvuzY5Eqv2YFpo6xeATdA3eUAnm8oQ5B24fHvgGLCZ6cPAN\n8FZ5bZznmTd39bSPSHJLyn0vAW6GRJQO9dnJMcFcAH9SdfllfY5zm1oTTk2E\nxAHzXy4XayHMH6mAgx/qv3rFNP7X/+c+DSBnvOJ8BiRNM31yTqV4ri1wHGdR\nD/6RHAVkJKMzFwp7iMex+pzfzMUM9aW2AcUvvKTsLEBX0VwEfyEaiAVYZHMe\naaN9cCF7MgbszBRuHef3KyauwL8yP3aHYZ4kIMl2OMEyAYbfTfQjxG5bVu4v\nqOM6\r\n=naQA\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFpWG4JfBdeJgNypPV1z06x++Ybd5GPa837xIVIUA/JyAiB8eJvye2piN3AqiUKshfow1WDQovAtyxT/OyHcdmvePw==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.5_1605459135510_0.9674409509446347" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.6": { + "name": "ajv", + "version": "7.0.0-beta.6", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.5)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "2c4e5bb89c577a6f2d6f10abf8552b92acd00af1", + "_id": "ajv@7.0.0-beta.6", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-9aDR4p4ReYBS1XxrYONdWuFVRweLjJTv8RaNkBEpJm09jkVcVYhtaul5IL7Y/x1RJ9UakETm0oBze4VHIjq4nA==", + "shasum": "506037b27b7bd62e0e23a237319d2d11dcaba939", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.6.tgz", + "fileCount": 333, + "unpackedSize": 842286, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsva0CRA9TVsSAnZWagAAkacP+wfksrhIiE8XoF5A2AWm\nGhnxw8zMkOydVgdGr4CUDc/UC/syvvDEWnm7/Y97pWyb8d2NtHVZkW2p8wiO\ngTAqX0/Xnf2J/qTB67M0qt7rYD1SWFO5Zc/w7Erd5iEdYUDw/ZKYNyr1NERR\ngKLZ6j4atelYJmxDrpE43z/43eZ4zjVsdix1TBDHeUJhqUBaIXZBDAid8LOk\nLbN7dTYNkpVfKLIflzScBdE7CeKcovopYTJUNaUkedp6mPVsA4f7aF2TwGsG\n+evcXs9xiZU4UFttvs5RElkVBKtktUrE2ixpnT5Oa8WxZYycVZ2kcE1NVq1Q\na9370wmH1P/QMjfvtNJQcXLjDkwVd4ja7PXhAu8KJtH9gZOGS0dz3wKR+715\nfRteR/9GTgy9orEaRQwwm5qAaJk4zjHGXOtnY8kqwFBH7VLCn6k1U7RSwSPi\ntaBVEsxHg4dX/0xG5/8uSEwIiGMwSD4uFRxM7e+zkxAEle+Et29LiASNewNL\nAosaA+C5g5J8ksDloYQjoILhIcqkbHHcW5h+rkIuSmqfwO8W4yZceJcpk/0D\nIsWMpe+AjdeM0qYIiFTzRqpHOdsCOwOEaAHCvNP8vo4J3y9hor3BHbOTRApu\nW2gwqNwypLYHLnNx9doBXWFIgg9AO3qUU4DflpelDeXnVIIga8xL2GRovwuQ\n3YfO\r\n=4SIg\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEaWecikWXxwH69reIZ1irX9vHgko7QONX8RARKRHGICAiBxQ25+uJENzrckSdMw5Harw1zQjqp5pXTY++ftlRduyw==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.6_1605564083731_0.6920167652138527" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.7": { + "name": "ajv", + "version": "7.0.0-beta.7", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run build && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.5)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policies](./docs/security.md#content-security-policies)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policies](./docs/security.md#content-security-policies) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack))\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "b9f674e3e8156d554595d3d606cfe2ffa4ca56a5", + "_id": "ajv@7.0.0-beta.7", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.9", + "dist": { + "integrity": "sha512-1VY5E4aN4P1lNL+Y+qCGlL0IxT4WCt/f2xWnoJ5qsXCc8fxrKHQqoscXIAkjwhXX+iw10cOtPgPNUto/08Mnkg==", + "shasum": "39f2c8c8da65aa6889bbf9160ab6c050687eb495", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.7.tgz", + "fileCount": 333, + "unpackedSize": 843794, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfuk2SCRA9TVsSAnZWagAAIt8P/0xnHparSC3yvxj/gftG\n4roRdQZfBfgzcpqMZLivVZhQJ85alB0JcdnWgfIKW5gqdPqhkfcbvDSAR8Am\nwZrnEiChtZOBCmBAI5TO0cWoz3jSsvddZ0YppDbDNMFJnQKT4CaQeK5nTpGi\n/TCPDQ8iWTQk2LQWzARy6vOZeYM76Kh+nCWoqXhycde0n5G28XNB1n82eQe9\nB8rUeIcR4YlnK6jD0kzf+I3GnQCfQiPO/gsEGZwRxg/WeYt74cUpRLpf5CLd\nu0mMis3NkX8Mc+IGBGC+VM4ChPGgTlFQHiV99ukMFbbci6rVTa/FqtCc6swd\nR60iuQEjL4RaW2hd/42u6pgZiyqUEZSGsGArJxyihzTGzUjLFiWm2UL1c7y4\nE0+ZzcRx+woCmDf0X+a7urCloAKorwUVTIfFG2mcoyqRA5cE30Dv9AMppUHL\n/ofhRcxA8jDu9eqNYVOTqQ4kUWxZIAK8hB7g/ZWOhWxoj0SwP6eDXr8JtQ36\n+Vt2/dJiGYNpg+9WQo6nBPZXRGYjE5srLBnxZfyTj2jFuN/3a1I6f+mwpVYW\nIWmm+x2EOjHrt0nVS3FYN1tubAshQGIFpZi3/K/WeXtnXyxU+eMXnxDDPgXN\nLrO1+dP3UyJjBEzxPLUVMG0JrDoclAo3M+d34N93+oZqzftY8DryWHgq056I\nsKyo\r\n=PgEE\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCN6gnYTZyTTF5UsEuJh3dxKPJW/fjn5m3nfWurxifH5gIhAJ11gsVhvg0F5epSBPbIm0qMyC6uelo1F+/bzMq5luaI" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.7_1606045073872_0.07561729603504608" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.8": { + "name": "ajv", + "version": "7.0.0-beta.8", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.6.1", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.8)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "2c25b22620a1527b1557f2edaee9b7a226a9877a", + "_id": "ajv@7.0.0-beta.8", + "_nodeVersion": "14.14.0", + "_npmVersion": "6.14.9", + "dist": { + "integrity": "sha512-vzGJf12dayS+Z+eX36ONWWZGop6psAtCU7xDoGHtpPbdr6kDr1VOKSyWcTJyFsnm9n9IafUDYCaSC8kF6qGUaA==", + "shasum": "9eb3b9277f18e0021d41823e8d9a2585da3d397d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.8.tgz", + "fileCount": 346, + "unpackedSize": 863223, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfw/b6CRA9TVsSAnZWagAAVQgP/2Boc6ZPFO+EsQf4evce\ntj8UMzZj0KwiJ+IHtrqwooVkEYOqLxeSJ5q1/Pw15VGDruz++9tPJFd7ilZO\nBca3r0VFAkNJKcNvKcHbtMIod5URXRQv9Hewji1ERva0kr1l2v92UdMhhH9/\n0jBb4JKO+5J7LZVaP29ch3Bff0oU60eM41DKe6dig2lMUDhPvWKqaaKrqTGc\n4lnlZCeVuADQhpaMie1uqDkX3w5sEdmW64ll6LUqPrEqGPvbqE60PrMY5ksd\nP4VHF+wEaGBB2RKfkymI4hKp7Kw7QMPRTaVlBSx98bE0an0Lm8OT0Bt+3tav\nJ40760czWVqVdtckCoDW3p6jnzmJWNeoKDGtjYm5yWfDAU8FXZrDV1cR95hL\nqgPRC/8y8z7PK38utUhiwHWvl/R0LcsI4/VZpaZbAidDASnctbwB0wyGCjMC\nmCtFG9Xcd7e+Hi0ssSnP0Cr0egAsEn3tiYBWAglta9FhdL6iYhrSSnr3gQiP\nt+GOQ1tJSGaXYpD+teGAZppDN/KD9ZmC5YxOrydkvHCn36pUFtrS3ccFCJJ6\n6Ohnrw+flKR6tD2f1EkV4Nh/Zoh9hciqDTbjq04w2Gxa3zVAWzMFnprScccg\nZVSxitsdLq5ck61gnIhG+FkHTvEIZGcM06pfpJPUZoHpQzlYnZ3H93iB4/yp\n+rzn\r\n=hMCQ\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHm9inzLFcLwlhUnnybgqFoUsSx9veEwEifrVeKYWZcrAiEA8W9VdmlDhIT0PLuxTvuDyRjGfw+n2ZRzOIgW6+SM8U4=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.8_1606678265485_0.21792584008426297" + }, + "_hasShrinkwrap": false + }, + "7.0.0-beta.9": { + "name": "ajv", + "version": "7.0.0-beta.9", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.6.1", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "7b4402e285cc572447013942f58f677b8252a0d7", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.9)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// optional schema type annotation for schema to match MyData type\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-beta.9", + "_nodeVersion": "14.15.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-XTTuOzIBFMakbATMb54pjbqFzMTXqHgWmahPZu7erwOQRXpGGelAyZd3S5g6iBiMg4R60fQUyWm0wc8W3Sh5OQ==", + "shasum": "f67e6890e15b95b302e93338c573b34762f64332", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-beta.9.tgz", + "fileCount": 346, + "unpackedSize": 864148, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx03RCRA9TVsSAnZWagAAOn4P/26ANbLohfWbnwpE4CU+\nJagtw1XYRMe79TgERZTbkBhBjivAOoTWoSnYnvpiVtUvpDih6vdq9l67tBZY\nP9jne1VhvLnLpgamJOLrLi422NlANd8/DQ4p8fCyFdPGhGKgibEVBe/4MwDq\nk3MQRIxFCQ2/ZrHZhL1IDHww4a24toe5tnbfAGE12mn1037l5ew6rsOftK1t\nEJRzEG13YTW5WaT8i6jI0oIkWmnChOP5yj/fBGG+ir2F1qo3mRTwk0geE6rn\njRQ0YoPh34hyfS5MyqZNJ5hquWJ8AtzOLlyH9LGaXDOwiqCpYlJuH+rD4NGI\n67JwdK7U2nHHKKST+CHTBKa7m2K9Rd4FKrtJU3b/urEim44KwHoQZJ9fagan\ncbV6woYpwBWpHYCfOamdiOvZWZ6a/UntuQZ1BhnFqrcktDSeHyeVwkazlgMg\nJ9SWGZOdq4jBiPIbcDJzfZar6DQoK0xaaTmRA8GFKsMSomuvCSqAlyMb5tuI\nva1J/PZDekVty/mK9uZ1/Jf920swpXdZvpKjSgMGY5arjfWYui2Fo96VKifo\ndt3O/YfBQEfLTSrNmt+zpuUbTru9EPVgAp7MhcvUcVr6FgP2KzjudGH6jCKx\nNDMw3dKbijcVD2wk1/wr15QgUlRuvR+z+uVLZVQhqKVQW8jeVyvVOr3sqLs8\nw0SQ\r\n=mmJM\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGUEGRVSr+MrPNekIh0L6CB8yv2quc4GSchkWFUohs/KAiBws25fwe+k/2VlgjDRBLDhQSGMXUpyYT71ms+y57Awgg==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-beta.9_1606897105206_0.24836913702738705" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.0": { + "name": "ajv", + "version": "7.0.0-rc.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.2.3", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.6.1", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "cf39c22267ce6eaea47640efbf4a6a997e0862cf", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.0)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.0", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-dG0RJVjrKMXyo69dCGl3qSbMVsEiNSgNaUAzNicH88lAKPeBBtepiR7fPf+JZvlA8mXQAqVxIFTurbatuAxXug==", + "shasum": "ed024372c6adbc9ff634bb621505c1ce85cedbb2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.0.tgz", + "fileCount": 346, + "unpackedSize": 866450, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzPseCRA9TVsSAnZWagAAyRMQAJQ3MsA3vTkd2nzMgTkN\nxNMYWHFhIv987/tdzQfNw50AkT87O6w+/LO6oZ82lU2SjiX/9QcPNuA/6EEt\n//TfYJ+ppl+m88/VpbHP9mR+fhhLLQraEXj7GVu4+JtLCVn86HpIKohuOXi8\nz05457dGPVXnu3ODdhbxKfpll5/RRTF4IfBOJNdXKEAXlpUbudUSqz6EYiMV\n7iHHggehTwKdyWO4C4Ev2PxyaUTJJAaCij/eLvHqPqqANf1ld1AodgLENLUA\n9e+5Ag4DqH9DmMhWlBlY4JvupKx2BHEfOs+BAKG4E/Rv46uhO57QsGWe4hnD\nd+OFYY1qHkYR/fX3lN/12tTkuNCyAsDbfPFHFnaMmq/rLwbxPy6AOoupSDOj\npkQyhdl37u9jIH6xuwo6cV4F8SoaXur5ojSKZ4Xkq8epG1XY5829rPI7fC6x\nfMYJYCusHu5bwREhWrjDjWbIbertajHHJTf4dV5oT9PWc+Q4Zy0cnDE9VxQX\nKqF6N82F2jXMCtHs43Wu0CHPMMsx+Jli2VcHh1GfaQBx0baL7CLh1DMZwa93\nV0pm2hq+8RU9sqnmcEFzslPNSMgDIv4J7u9RMC9cvMX5I9uImp/Z7neEdfXR\nFedtppP968Nsx3gVHsXNysKpVif7X8AJuULd9jTlvp+ocYOXxELrwTAaOAa3\nHQz/\r\n=RPYG\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDRCJ/7sXCciVNJpDKqiuGUbQMl7uoOJFkawmFkQOQRqQIgNjb0Etab7Pc3mTcRf8DIT9aQHj5P56+DHvf/mDSYFdY=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.0_1607269149355_0.03848574561269591" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.1": { + "name": "ajv", + "version": "7.0.0-rc.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv Ajv && node ./scripts/bundle.js 2019 ajv2019 Ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "watch": "watch \"npm run build\" ./lib" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^0.5.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^0.6.1", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0", + "watch": "^1.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "2721434704ca17edcfa801cad43dc2b79d894f13", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.1)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7 (beta)\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contents\n\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [User-defined keywords](./docs/keywords.md)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Plugins](#plugins)\n- [Related packages](#related-packages)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Tests, Contributing, Changes history](#tests)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)).\n\nThen you need to load Ajv in the browser:\n\n```html\n\n```\n\nThis bundle can be used with different module systems; it creates global `Ajv` if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function\n- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining\n- this function can accept an optional configuration as the second parameter\n\nYoucan import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n## Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification.\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`).\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Tests\n\n```\nnpm install\ngit submodule update --init\nnpm test\n```\n\n## Contributing\n\n`npm run build` - compiles typescript to dist folder.\n\n`npm run watch` - automatically compiles typescript when files in lib folder change\n\nPlease see [Contributing guidelines](./CONTRIBUTING.md)\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.1", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-LGri6nQmALezUc2p8J3eHqlRYXK1bVPyHBd4IGBOaCgCCTM0naZssHIy7SpFX2ZqDe7A0DJi5oCljCwT6WXLrg==", + "shasum": "e69bf2e131a6c4f5c24c7500ec83b62a2812bf29", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.1.tgz", + "fileCount": 346, + "unpackedSize": 868411, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0TheCRA9TVsSAnZWagAAUbwP/iDtCnjy4dMvQ5Qgdp0c\nnG9taR5R+Mjg9cVI+FzUXrsajtukBSOiHelGRtcdqmgshXBekfMoxuEpVeHW\nEdDDD92slmzpTi+UsYP6E2DZRLKLXxCjf5qjUc2PwzMq/ev9y5I/PcmGYNyI\nNZ333jbX4p0ZxhcXPSVBbOlTOWIA/kMcdJmsuUo8EI2CLR/uPuMwgS+klzj4\ncYo5toTa8Xmn3MqXNrQAhAnwpeZSzxmI5qijwFVaKeTQfg4ebjicvROnSTBb\nQSNV0pQ0tLwieMF+9GwUbI7TOW/Xw3wVpsSg9AyHWgUQidhZ9zDZ7o/F1m88\nGVYvCRhLbeFsE3MoLvrPzWnOVWjOwiNzBUsFsK1hXWWE8YDMKCubxVHsg9WD\nkqGyTN5G2ivROnyAgJ5tQCsMAO7cQZAZZSEKjDly8K9GkB99ZeqYCIGaR3XZ\nxzlNBoWMs5+gmULzqNWY57TYTTTwGdg8cUxTLTQHctvwlALpRpuEdNdkklQe\nk6dU94dubnUnqpAoN/rjkK+oMe1Z4OsaU7z+W0UJkYEgqKA61M9Mmc8TUp5V\n/ezGeufSLRaKjfpz0J3XiUhXB0UvLUHtWdXVQKnHMg4i3jNtKQTZmyQKMDsf\nAtPS/iB/XHEU0S3U6XTL+l5uPi1lGZRQUduTq6Ez//Uk6YKMjNsfAlyPREW3\nJf0G\r\n=NfUC\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC6O4pyF6QZUlJjSnATN+Ylw+i9JfBXE+EKn0WIfyMAPgIhAJ2speMpry3+GI0dbvSinMCItUtQEEXTOwd71odINiO6" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.1_1607546971649_0.7851852167860442" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.2": { + "name": "ajv", + "version": "7.0.0-rc.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "3545374786e1c121b0f4aa65f1c2bedfde9cfa04", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.2)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\n100+ people contributed to Ajv. You are very welcome to join by implementing new features that are valuable to many users and by improving documentation.\n\nPlease do not be disappointed if your suggestion is not accepted - it is important to maintain the balance between the library size, performance and functionality. If it seems that a feature would benefit only a small number of users, its addition may be delayed until there is more support from the users community - so please submit the issue first to explain why this feature is important.\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/validation.md#user-defined-keywords)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundles using `npm run bundle` script.\n\nThen you need to load Ajv with support of JSON Schema draft-07 in the browser:\n\n```html\n\n\n```\n\nor to load the bundle that supports JSONSchema draft-2019-09:\n\n```html\n\n\n```\n\nThis bundle can be used with different module systems; it creates global `ajv` (or `ajv2019`) if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in a way that is not compatible with CommonJS module format. In this case Ajv bundle has to be loaded before the framework and then you can use global `ajv` (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrating schemas to draft-07 and draft-2019-09 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas, validation keywords and formats\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/validation.md#user-defined-keywords) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.2", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-D2iqHvbT3lszv5KSsTvJL9PSPf/2/s45i68vLXJmT124cxK/JOoOFyo/QnrgMKa2FHlVaMIsp1ZN1P4EH3bCKw==", + "shasum": "9c237b95072c1ee8c38e2df76422f37bacc9ae5e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.2.tgz", + "fileCount": 347, + "unpackedSize": 874034, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1m1kCRA9TVsSAnZWagAATIMP/1+dyjMTADUY+4yFg3El\nBrlL9ueY/bRCsZ6uSufwY+CzoFs7FTn0WghEPgBhgN9tSdTklGBbNoCqdHmf\nuLK0mkGW/tOKPbm4d0myuaTJ4tqeG156Mnol5guvH4his54UolkaTmm7zGjN\nDhD95J3XeBHcTyUigVPcmfNIkeaZCxZX1srtgbIbDgOl1MApxB+KheaXEYEf\nWdO7/LGI3Jg1Te6Mwr9xjvZjWBFnhrHYAUgQ9vFI3J1YV3ZyQGA2+KiiIEdH\nAG1soX7X2s2mkavGgoLKumbQQMxIqjmSoVRt++MyM9CgdZiqP8C/jUHdI7t0\nlPav1xBjgfta8voU1t3PE60sj8VINsMJcUf2TW8XrhSG6fE3s5f2ImtRo5x3\nJ3LWz6zq9VMwolL7uNd0LCUIvZTgN+ZGCJbSlVvqsEjk5/Xm+cx6118iaCy0\nB4jTmH8Jx4gZXKYEAsd+vNJEtWWh+g688G/jgeg8Jbt7+3V9socUw6dkxhyI\nf0uPascnoZ1KXUQ6h20AgsVBbJkvmBs6qlCtwvsaKdiKQtKgvUF7jLwpM+1R\nsiurtzJG9PVwmz7PCK7ieO886bPuLEPgGkoJLK5yx4oWaNcpppsv9PLNDs+i\nHGazdH9OVFFT8+glOM8kFpijyZ1pn4nt1/X4zOKYBiUnMijNu3TImc4EYIuz\nIgB1\r\n=B8wt\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBBQAJ8YPqiIfkDxRi2sUho5H6G7DfX67ukBwEymTQ/OAiAgb877IJTjLDDHqDDVgTl9ofRLS68YCvbtuBT6VAivTA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.2_1607888228072_0.3082910675740216" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.3": { + "name": "ajv", + "version": "7.0.0-rc.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "680532989543b60b449658aec35b33f7c07ca937", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.3)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\n100+ people contributed to Ajv. You are very welcome to join by implementing new features that are valuable to many users and by improving documentation.\n\nPlease do not be disappointed if your suggestion is not accepted - it is important to maintain the balance between the library size, performance and functionality. If it seems that a feature would benefit only a small number of users, its addition may be delayed until there is more support from the users community - so please submit the issue first to explain why this feature is important.\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/validation.md#user-defined-keywords)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundles using `npm run bundle` script.\n\nThen you need to load Ajv with support of JSON Schema draft-07 in the browser:\n\n```html\n\n\n```\n\nor to load the bundle that supports JSONSchema draft-2019-09:\n\n```html\n\n\n```\n\nThis bundle can be used with different module systems; it creates global `ajv` (or `ajv2019`) if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in a way that is not compatible with CommonJS module format. In this case Ajv bundle has to be loaded before the framework and then you can use global `ajv` (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrating schemas to draft-07 and draft-2019-09 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas, validation keywords and formats\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/validation.md#user-defined-keywords) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.3", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-znrbMViJVAr+wDDup8uVW0QDseb2PfAlfnOb8LrpRBoi03LdXoDLhBH59+kpSV+jH7hJvSz9Wdxe7ZaIo5mMzA==", + "shasum": "2454f695767ababa8d3a176b04cc0ac96a0e8f6a", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.3.tgz", + "fileCount": 347, + "unpackedSize": 874385, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf17jPCRA9TVsSAnZWagAA0fQP/A0MYjzYtE6Ksxy5cl8G\nfSLtcukH5BO36FT2OfFb9aLhr536r19OvQ6fc6fyzH8ZTSiUufd3+sX82ubp\n4jstmer5PZyK0poJcyypnIyYDoxsFfuMSsjaAJCpkWXaDehoj8iu9zgfGVy6\nIhn9eTPCv+QHTvtzQHXAt8jyIlMBNqOaIWsktGal1f+7Zd7Mz8AA760/wlzR\nIeIYNQYVW8mwH24V076i6CWV7VhD2ihhPpTknEF9Mha0LA1aZqqMyvGdnGHP\nFfYA/9BrNEPhA522O7pUaeUi2tCVigfpU2G6ULxkbqeqHMON5/llpTPqwYVM\nEcr0QQaZbRp54+LVJC68ki6QIAFnNPwAFcrEnhHYhw8ghjSN2SWAP/A0pxri\nzSoXR6vFBM775K84mJAVKnmuFbcUwUKnrBB+Fo4l6qTbXPQzJha1C9A4sdfW\nJ0Jo9uHAeyaNRSPNYvJ0xUbgaNqB0LSrankDJIuw57fx5RE4mOQSBj3iVRnP\nH0BgZL4vPt9ngpBenH3w3FiH6W8VlRD5Z9+lIZ0tBOsWECO4e2huQ9e0aFEB\nTzdVrfU1t4Tmouy6yshyIrLI/fXMgefuAnk6PR3y6KOuRmrsXX+WeyP0fWO1\ncB5h9JW1HVRtBfwQ3F/d1iFnXtHpLasc5CEi5iqQuO+kH2VztxXbhDo7E+AP\n8tz3\r\n=EwF9\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC4Hsi4VzL3DnaqOZz1QpUeF6EIATcgx4Dmmi/gZl6DmQIhAIzvPhg6SC/YtplGN2iGDYiuV9bjani3moOCyak0XHOE" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.3_1607973071365_0.8885780698187438" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.4": { + "name": "ajv", + "version": "7.0.0-rc.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "82d052175ceef1e4b5c1890f60fc4c4b5f6e5ef2", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.4)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\n100+ people contributed to Ajv. You are very welcome to join by implementing new features that are valuable to many users and by improving documentation.\n\nPlease do not be disappointed if your suggestion is not accepted - it is important to maintain the balance between the library size, performance and functionality. If it seems that a feature would benefit only a small number of users, its addition may be delayed until there is more support from the users community - so please submit the issue first to explain why this feature is important.\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/validation.md#user-defined-keywords)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundles using `npm run bundle` script.\n\nThen you need to load Ajv with support of JSON Schema draft-07 in the browser:\n\n```html\n\n\n```\n\nor to load the bundle that supports JSONSchema draft-2019-09:\n\n```html\n\n\n```\n\nThis bundle can be used with different module systems; it creates global `ajv` (or `ajv2019`) if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in a way that is not compatible with CommonJS module format. In this case Ajv bundle has to be loaded before the framework and then you can use global `ajv` (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrating schemas to draft-07 and draft-2019-09 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas, validation keywords and formats\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/validation.md#user-defined-keywords) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.4", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-maq+H2VHruKQqN6vBRZr/CSnDKHzzxn9wnZhgv11oj7g/ka5h+sk9+DiTjSEoAxuBYEM+vP9xTfZJQMX0+pY9g==", + "shasum": "a957c2f07dd7b86db2875c7b40f9305ff11f18e8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.4.tgz", + "fileCount": 347, + "unpackedSize": 874391, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf175WCRA9TVsSAnZWagAAhSsQAIQoNUbj4c+ONZppl2JI\nQNU1YQHaJ6hXBgLkighCimK4BdawXoCr9mv2u/e4N5jWTf/3Ec9BsHfHgC4Q\nhHyOIFovNsIvJcsY5julrY5VTJJGG18/ZoeL7mRfcceUt3Ej8cK3CnHk3c0V\n4CClLsyj0953VmZs1IR0SIDDAJQQ9L3HW0ylCq/CHnxMZOcNGMyoR5n5BM1+\n+triRBu69r5rTkWnWUlDiqTlgTWMg445lxXAFNvkbTkCMuFadXiiRJL6vGIp\nbEb2G27FwGlfpdJacwqm2l4loWC3ROBqNONwguKuuMlMVpiFvxwYhMbu8KXo\n0sj8LQzIPz8OobzcPYSY34txmksSmoPZuaojDtv+DpbwHvmdq39O4POp/hKD\nJNzv+UN732Ee9Q5z0MUE5y2V8ZevTM+37x3hX09BLliDtP4aNi6aFih4GtCA\ndS3A+j+VBMwLVStgcMlwtzofdw2xvPojTwzozmF4QvaypBwaz5nkmuUosvSb\nfp6uV9p29Dfm7YMshuBDOwNAITwk2LBMs3eg9BW9VFRjzw9fO5FoUwc9NnUv\nP6Wm4eV+ryW1Ex2uMshXxpCfRnO9YVghrPeKjv3Vn6XkSpFAiUz0LIqU+/i0\n7hf+38v+DpQryEXdYKyfvZ1GJKz3QpZQNhDMdTjptHztPU7ThbfxrlLria2h\n+SpO\r\n=PPp2\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDqmDluPn1byLgPk1X3q1qpsjmOXMN0HV0898zesGR2EgIgEJ7dUsXjFz8T2A7KcbrGedQPw0NTjF49TJIAXsNJZ8g=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.4_1607974486025_0.8984206937968382" + }, + "_hasShrinkwrap": false + }, + "7.0.0-rc.5": { + "name": "ajv", + "version": "7.0.0-rc.5", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "gh-pages-generator": "^0.2.3", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "12690aca66cbca594a16d85f2a0ce961f9b1877c", + "readme": "\"Ajv\n\n# Ajv: Another JSON Schema Validator\n\nThe fastest JSON Schema validator for Node.js and browser. Supports draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-rc.5)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 (beta) is released with these changes:\n\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./json-schema.md#unevaluateditems), [dynamic recursive references](./validation.md#extending-recursive-schemas) and other [additional keywords](./json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0-beta.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0-beta.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv@beta\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\n100+ people contributed to Ajv. You are very welcome to join by implementing new features that are valuable to many users and by improving documentation.\n\nPlease do not be disappointed if your suggestion is not accepted - it is important to maintain the balance between the library size, performance and functionality. If it seems that a feature would benefit only a small number of users, its addition may be delayed until there is more support from the users community - so please submit the issue first to explain why this feature is important.\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](#using-in-browser)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Command line interface](#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Data validation](./docs/validation.md)\n - [Validation basics](./docs/validation.md#validation-basics): [JSON Schema keywords](./docs/validation.md#validation-keywords), [annotations](./docs/validation.md#annotation-keywords), [formats](./docs/validation.md#formats)\n - [Modular schemas](./docs/validation.md#modular-schemas): [combining with \\$ref](./docs/validation.md#ref), [\\$data reference](./docs/validation.md#data-reference), [$merge and $patch](./docs/validation.md#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/validation.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/validation.md#asynchronous-validation)\n - [Modifying data](./docs/validation.md#modifying-data-during-validation): [additional properties](./docs/validation.md#removing-additional-properties), [defaults](./docs/validation.md#assigning-defaults), [type coercion](./docs/validation.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/validation.md#user-defined-keywords)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/validation.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/validation.md#removing-additional-properties)\n- [assigning defaults](./docs/validation.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/validation.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/validation.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv@beta\n```\n\nTo install the previous [version 6](https://github.com/ajv-validator/ajv/tree/v6):\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nIn TypeScript:\n\n```typescript\nimport Ajv, {JSONSchemaType, DefinedError} from \"ajv\"\n\nconst ajv = new Ajv()\n\ntype MyData = {foo: number}\n\n// Optional schema type annotation for schema to match MyData type.\n// To use JSONSchemaType set `strictNullChecks: true` in tsconfig `compilerOptions`.\nconst schema: JSONSchemaType = {\n type: \"object\",\n properties: {\n foo: {type: \"number\", minimum: 0},\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\n// validate is a type guard for MyData - type is inferred from schema type\nconst validate = ajv.compile(schema)\n\n// or, if you did not use type annotation for the schema,\n// type parameter can be used to make it type guard:\n// const validate = ajv.compile(schema)\n\nconst data: any = {foo: 1}\n\nif (validate(data)) {\n // data is MyData here\n console.log(data.foo)\n} else {\n // The type cast is needed to allow user-defined keywords and errors\n // You can extend this type to include your error types as needed.\n for (const err of validate.errors as DefinedError[]) {\n switch (err.keyword) {\n case \"minimum\":\n // err type is narrowed here to have \"minimum\" error params properties\n console.log(err.params.limit)\n break\n // ...\n }\n }\n}\n```\n\nSee [this test](./spec/types/json-schema.spec.ts) for an advanced example, [API reference](./docs/api.md) and [Options](./docs/api.md#options) for more details.\n\nAjv compiles schemas to functions and caches them in all cases (using schema itself as a key for Map) or another function passed via options), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.\n\nThe best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).\n\n**Please note**: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](./docs/api.md#validation-errors)\n\n## Using in browser\n\nSee [Content Security Policy](./docs/security.md#content-security-policy) to decide the best approach how to use Ajv in the browser.\n\nWhether you use Ajv or compiled schemas, it is recommended that you bundle them together with your code.\n\nIf you need to use Ajv in several bundles you can create a separate UMD bundles using `npm run bundle` script.\n\nThen you need to load Ajv with support of JSON Schema draft-07 in the browser:\n\n```html\n\n\n```\n\nor to load the bundle that supports JSONSchema draft-2019-09:\n\n```html\n\n\n```\n\nThis bundle can be used with different module systems; it creates global `ajv` (or `ajv2019`) if no module system is found.\n\nThe browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv).\n\n**Please note**: some frameworks, e.g. Dojo, may redefine global require in a way that is not compatible with CommonJS module format. In this case Ajv bundle has to be loaded before the framework and then you can use global `ajv` (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)).\n\n## Command line interface\n\nCLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports:\n\n- compiling JSON Schemas to test their validity\n- generating [standalone validation code](./docs/standalone.md) that exports validation function(s) to be used without Ajv\n- migrating schemas to draft-07 and draft-2019-09 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate))\n- validating data file(s) against JSON Schema\n- testing expected validity of data against JSON Schema\n- referenced schemas\n- user-defined meta-schemas, validation keywords and formats\n- files in JSON, JSON5, YAML, and JavaScript format\n- all Ajv options\n- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/validation.md#user-defined-keywords) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee https://github.com/ajv-validator/ajv/releases\n\n**Please note**: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@7.0.0-rc.5", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-HMSdbwBa1Ep0HJgGSk+CYWCvbMhbu6hrQJsP/KyB0mt6WIN9jct5Xl4Z72Fkj+2JXCd5d0hguT2Vc/CHZtlHuw==", + "shasum": "3bcffe7d85ca7199d90bdc48825a1f45628533cf", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0-rc.5.tgz", + "fileCount": 347, + "unpackedSize": 874408, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf18ZNCRA9TVsSAnZWagAAlFEP/0DMh+ExyEdb0tfxohYO\nWEhNBNFr34veohbvQFY/TEW2vT9V6C184KJC6Yg5QWM4YNjKhWNW9iUZMdsG\nwFPyd1Xjjhoc6oP6mtaajAldP0Toz7Z9o/LLsYtBwcbd2zYPtee7Yf/fVb5G\nqrD8JGQwDfjyHRDSX3/QwLORKJR5TCvCv6GjTIi8tdcgvjYiNGckig7uS6jj\nbZ+Zp/I7N9abf8Vt7+XExgZJRO57dpQiTUj46l6rQmuogSVhfJuYfrrEhgSe\nZ16PAGHXoJmAr1ooscmWjNJnUCNvlEu0IVA9d0PugGTYIB/13yTZlzzNLEfH\nNfA9rANWKUtIsGJI85FjSC29UVj40QNQmJxjupH1sn+GT7fTYFv3Gz5CYwiV\nUn4vY46ElEmbPy24dPXlVMnR8kdg7hExA1duE5vaAnWeYTOOp/hz6cHFmchM\nE51gMyBhp5JpmbNhD6TUl7qmdPHnApN/TJwp+Utcv9u9VhRckOm3HL4RuGdn\nffz7yjq6MDZ1sQkCZkSes6F2LI9VuAqmb4jQ3hnIx8n3y3BkybMI5N8yt7Gt\nPmGZhCPUTfLCL9vskvSSTx8ITVkQhKWQWeSSNVPrMXpK0Sr0rEzHMO6a+XEy\n6NxxHNC3uCUBFZqNvp3xLlZ49f0SvsvN9R2qGA+KLNiNOCY4vtWxnOuTQhTS\nl/jl\r\n=e24Y\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCTkmbkyzD3a72GyXvoi3eQ6Vn6re2mpNw7xGvezLX78AIhAJULKCkARnv/KhnfAq7sEx7rD2RAHn2CnBJlAqMd3TRd" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0-rc.5_1607976525051_0.9083602305178484" + }, + "_hasShrinkwrap": false + }, + "7.0.0": { + "name": "ajv", + "version": "7.0.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "cd7c6a8385464f818814ebb1e84cc703dc7ef02c", + "_id": "ajv@7.0.0", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-hT38y4TE4E8WkqIZMFhGnd9F4Afn75YtFPJlMv8/j4RY2Vz48dYxn6AiD6CeE6JMo96F3Ldgb+j8qmgvcYT9Qg==", + "shasum": "59804586d998d19efe446fbbf821d147d300d8e2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.0.tgz", + "fileCount": 347, + "unpackedSize": 874072, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2QqpCRA9TVsSAnZWagAAgN4QAJcz+GqWp/qj2LHOsCyK\nuyd6tp6hZpEk4dMOV8MR202F3XuejLjpx/vzTiHkt6XfXrUrYmk92SsJMQ0o\np5EZCTn2r4i5MTXhNviR0pUdyKWWsiSzeMJ3ouhnkUy5cPZQiGvh5U2nNCg/\n15Sl36Df/EZYeaOZyEKwlhsHlRM7DCh5511LTR0xCV33C3FzkoCN3qhrSkqE\n2Et1e/lk1QZI6vr8ykxTPyJuD/bF0vTKe7KEc2YqpXbAZYAF0tJfFFb10494\ncT74khut2i4sgsT8YdC79thsMzZOFSHoWgSnM3Vld6C5EWho8d3eeQwHw1Xt\nUOwBUuzAFhbfBXd6VFp3sL7tl9YldrRI5PL8PJAugDL8JCf5z98DaFBoaFhS\nArGG21s5/7HtOjtRGsypUtl+4FGJuMqO1iWS7MofW4WpO8sr8k1zqui2ksYv\n48wJ2nfPGPwwTGqm7wReO2MGP3HV9sqquJ3BP3DW3BfSiVbK214V78fOth3t\nSOjbUA7pnIBC0Bd7OeXGpxHll6bpg27hdel/R+ADcAPae3H0GZkkFLNCqn8Y\nuWdfpIIPO0beNqYe9EJiIpRKVDAe5r7JlPqYAqUFaCDEoPq5zkOnDq72Wu6h\ndCsMK+6x7DVSDLc3WYtxNNp3TjSZghwzPKAKFfA368DLE56n3xyXr4me9hT1\nJN2W\r\n=wcw9\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFpQAR9ekoEl7d2y1jEspxp6CF7XfQEJP78X3+O17EaFAiAIAeVkkmSSU5NVlUg4pB/z8YuHS4lZFgajtBUzSL/61A==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.0_1608059560652_0.390501110651579" + }, + "_hasShrinkwrap": false + }, + "7.0.1": { + "name": "ajv", + "version": "7.0.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "616a725993d6d271ada3845f8b050ac226f3a217", + "_id": "ajv@7.0.1", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-D2UYOXvDzGLVwld2/EyRu3xiJG885QUz2xS1phZzebYLPMPBFbPK4naXGDCtPltZoOG+I1+ZkNAJ65SJ3vqbsg==", + "shasum": "d39ed49159672a91f796e2563e1e96984956e338", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.1.tgz", + "fileCount": 347, + "unpackedSize": 874082, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2mMQCRA9TVsSAnZWagAAQnoP/1hvG1UWt8Y2S9hWrHCl\nf73dHRyilVNNtIhYKR5MQ27laVtRR7A6eg1d/7hjxAOklAGzp+5L8nd2sNhw\ncJA8GhdlbjaJmnKewDtPzy9hUXRyjhtOalzHPSoj25U+iJBrOrdbQlZMwj8S\nDHwiUIGJm2r1tien/bAUpUTbgImz1HDZDeK20NoXSPtmRXzcJRMxxiF0L0qQ\nYlG4xlywG3ELx72aeLQ/HuDkN4AwGW+v/IBMHT21STrPLoIiimzobqMByXWA\ncPATHr020Rr9RzqUjUZduW0ZGNeYkDFBb91GgZAs8uK0WPp3luZqNkxR6+zc\nDorMUtjtCfyVScjl/yywcnAYZaxudkx8q98KyvzO0reKrtAKiaUGgtq6qt5s\n9jvLD7kMNICVUOpgLUjyEfAuHc3aFlkSnXsPI3D7vZB0qrc/LQ79lCVA2udx\nCZVXDXK1LfdjpaK4w/UJ+f4auFo168K4HXNs3ba6nyqH9MvxLwmk4GcSpTcY\nhTeX8Tap5j/E4Ft4OeK7Wkcu8eFJXnSr2xexVYAzR3UZVVnOeb1fOmkjnmDk\nmY0p1tQt32XwshQdtxmCSp8Ql5GhT7RfuT1HoNOOdj+jyNo0PvH1KZNk1jxw\nWJ7byYTmI8zfXNuIy2wazT/HBkTG154d3R+hFfuhWaLh3zc0Mlb3vhZcZktN\nmlzc\r\n=up5U\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCPl8HdCtmJrAhQRdc0F2Tg+vTErBDqwU7T5fWT2ZlHCAIgMd99r0jybi4MrcIXD1loeSd7JDezEQDsgGiXyx8kgTA=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.1_1608147728179_0.6734007577980927" + }, + "_hasShrinkwrap": false + }, + "7.0.2": { + "name": "ajv", + "version": "7.0.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "5c28d853673948c86ab3d876a31c14dae9d63d32", + "_id": "ajv@7.0.2", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-qIaxO9RXjaXyO21tJr0EvwPcZa49m64GcXCU8ZrLjCAlFyMuOcPpI560So4A11M1WsKslJYIXn6jSyG5P0xIeg==", + "shasum": "04ccc89a93449c64382fe0846d45a7135d986dbc", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.2.tgz", + "fileCount": 347, + "unpackedSize": 874916, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3kmKCRA9TVsSAnZWagAAxwsQAJ1U4YT+s+hoP9/xah38\njyhT5m4jV3Msb8RO8PpiQvQLbSeYk67R495B0riRLeetOFu8gFGI/3iW7p0w\nuL57gDFmewIM7wXEVfFRQ8z3JrhoB51czB7bFAifVyqhX7m9H3fje+wIsOnd\nXkW33zLWsVnWJo5bH8aEen3ewYj3eLukP+1toyQ1vDOAls0Vrci9xkhfLlov\nGkPE8rHL0/U1kW1WW9pDftO3K7aSOlREJtLk30BdH81WQnsuRugAxJ2LzPSI\nzP20151KnVVAb4SjW61LxhplfShTXwr+/n8R/SvdrJQXDxMA8eYzYEPqrsAl\nwtFmiB+dX2Ylka4JSW7qMrPayqD5UcOCcs0bZClLJde6GohnDyAMwDTPMNYK\ndHygqNGp2NmaXBSOcRXRCZz3KgiIesdHIbRBOmv34R+T+idyA0BQkwcvxUuF\n7P82EOxpmr5Ob4CRuSfR9H6y4VMV0EaQWgYtFu1eKJwAfoVG0ZQiKcVSIHSY\nxNBRH4xzumWRk8Z48Jgs4AEonobTGngpQcuCZ4vrIvhQ/2lZkHRC/hkjnT3I\naNl5Q7oKZZzEMlxMFpf8oRbi2VUlUoX+iEFlJ04d1e/zSbcIBixBDUY1XwD2\n9bCRPuC4Makpb5klD1ztHpkx/fsYuNdIScfXFtE/3hKCG2e1F3ClbfocPXhC\nTtkB\r\n=8xVj\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBserjB9EKqT+ncYEC8byVqZOd7a8gwqtv/9OZ6BzHX/AiEA0clgGRJ+f7b90oK5sU8fJUuEmwnPswYQHzp/FgIOowM=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.2_1608403337831_0.5627637239627219" + }, + "_hasShrinkwrap": false + }, + "7.0.3": { + "name": "ajv", + "version": "7.0.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "ca2ae61c489f45fa2ec3ff2ee78b10136cb1ed3c", + "_id": "ajv@7.0.3", + "_nodeVersion": "14.15.1", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "shasum": "13ae747eff125cafb230ac504b2406cf371eece2", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.3.tgz", + "fileCount": 347, + "unpackedSize": 875320, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8FRZCRA9TVsSAnZWagAA6lAP/RIhBDnqDD401IjIF2U/\nJHXWh4WUocvjCiUANsPeU9T884nKOQg8l8yn2Gb3QfZmd0FTQj2ihGlXsyM+\n5DJ94Ow6/N1xv6+c8C8O7FE1omEiP5GaDUgtwc4FIujwDIRyJ5plaxsmY06+\npSPRdtFyUBRJg7z308n2iBDmfovh7DTgmbYifd8e0KVOsJ4NmTUiU8RF9mhk\nyGn+c5vPvbyoJNpR1UEAyKk927GXhCZXVgJnW1FrFvpfShX8ohIL5v+IItEA\nYXaRUBCLSJNFHLlO8v6EfzMP/eT9zmt1mUnly9qIxhPRWwUs3LH8IWKyh3H6\n2nE5TSxiT/Q1ufXsZu13AqBc7nHQkqXQnvSBz7xyY6yJpzaxwnGIt3pi9vhh\ngobMQ58FxLoUlTyrmXVGILub8v2lnx2F9NfTOwQasQVeNB1EyyTbDdvAbTsC\nJ/HMb2ohQB6ZFwUrrqQPl6gg9qYSkMs/8IMBlV4H0/hNGTxKbV/JBdkTBhlJ\nXu33OOESi05SEmikd697IRxnCJHaQAvQ46gouOfuKR4X0PX8xOtHCJJLX4g1\nhz3HEdwZMhhN4Hx+bERBYjB9U1o0pe1SruJS3S8vdXMwi6/1PDNK/1gTXNV2\nrtkKtls8FcTUgkdkCFIgnqChzW7bqsGLXxbteFcc67RvceHQNc6jwH2sYNPY\nc5B9\r\n=dlPY\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD9XsHclJZIzxza6le7zmd4nIZdqCKEThGt68xF/yu6JAIgLpobs6W2cXagZ9yynkclSZg5OTKSJ0n6X7LMBDRX7+Q=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.3_1609585753086_0.06854842769080394" + }, + "_hasShrinkwrap": false + }, + "7.0.4": { + "name": "ajv", + "version": "7.0.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^4.2.5", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "63486ce5aa1f9b942775098ae7228cb2408d245f", + "_id": "ajv@7.0.4", + "_nodeVersion": "14.15.4", + "_npmVersion": "6.14.10", + "dist": { + "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", + "shasum": "827e5f5ae32f5e5c1637db61f253a112229b5e2f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.0.4.tgz", + "fileCount": 347, + "unpackedSize": 878305, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGGz1CRA9TVsSAnZWagAAZ04P/Ale7eikSPzCLRqavHgb\nxvVYUg6a/I+T6xRS0NF05J4bKcQ9i7m7hvJ/IioIJgyWi8HMSMvBD1w6yqgu\nv5qTJa+Xsw5cBzhU02EmsnWhxq6JHHvOHqdqj7I5JiLDF7OMILX/GdzwkhkA\nKxB6g027W2wov1hnDJRx7eSzoXjg5JMZ+P+Csbu7iPDCQR5cT1SdL6nwlRja\n+WDWZ3QVp5ojJUbS6Poo1ChHkJp0Au2I3YDvKnNNQaKptaoN52Mm+GBzxuhL\nCZkNmTKFEP57DafGOS97qPp/leggYOTIftE5EoQ4eRxOjgR0Dd5SGT5YoT6A\nwDjiLIWQnQe/mC78ms4WIDX6h/yRsPy/WQMWllz3iNnLGcTQFQvBh0nds//v\ng1Uec8qPnrNVSAvzK/+cvRPf0doA8V8KQXhzZ1P7WBHYOXJpHfaq3ka+eHYQ\n+TDikSMyETeh+K8gwpX/HkMKXnQeLHmiBVM6B7s8ApAZfzUzAPE/wQGtoQaT\ngQ6xpkE4J3lq2XZokwFnlLoZy9vWNRFoSHNTgjxZ8h1Uu84pd3KfMzuki3tJ\nbGMLklMWHoeXF0Amhi4Bf0CwA7iw3kJauBg6R7wi5mFiJCcyzyGObU89TiSo\n42yq2jRlrVmVt4HlhnYmQW9yWOzEsLxxR0Zgmhj3/KL6yrWCwiJq/xzmXGIN\nZRmi\r\n=cAqv\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBmlVgZlzoaS2DiDDWRYfDolH8xVOpPCHHHM+MfJncWQAiBxxa8C7nLEHWE6X8ZnDCvyWR0LmJr/Txx5SZJCTq70/A==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.0.4_1612213486548_0.4713523608459591" + }, + "_hasShrinkwrap": false + }, + "7.1.0": { + "name": "ajv", + "version": "7.1.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "8ec80c48384abcf8c46617be27201307a2d7c402", + "_id": "ajv@7.1.0", + "_nodeVersion": "14.15.4", + "_npmVersion": "6.14.10", + "dist": { + "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", + "shasum": "f982ea7933dc7f1012eae9eec5a86687d805421b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.1.0.tgz", + "fileCount": 408, + "unpackedSize": 972115, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJO3hCRA9TVsSAnZWagAAq6UP/3G0XSdUFCCvw8//bGU8\n70GilKD2UmHBrSbW+mHlTiNWBXzsX0KCY/nF1IgPP2UT2pI8HZnOZjahpZol\n4Vo4N8YtK7WlFR4JuUrMaY3kSlWQ7DV0J361MWLYwshrWeQWtYBEYymb6zkc\n4OBkDRqOYQZKqyTu3cA191k501CWzYSDSpWu15AzjCm+yGAKgJRj3HLyqb2e\nniLseKVw+6PMcSnoZJCM7unSIdFP22IXusAif8NSug+B5YEkPnwX19JTeFuZ\nbtyKs3s7cLrEPSpETMS8jXfp7uVClRnDGfvgIRY0f066kb+gnmEFfCB85TI1\nVGDv9V78lb3a7xjO/YL4+kG3JW7gL56EUvFsWSYh1IhKs0FAaVATVZoysHto\ne0SkoS4/RCI6eA0JKlLb4u50bv5XcGvN59IqhO7l8Xe7XljF5pMznzrWf0If\n8ileFgOA/zZxRrjay3KOgqBn+AwuiNvbtD42RYEc7bRpyDD5UujDfkwHv5i3\nVhgg3ySSFDHYfRxekVkpFV7Jy3dXSjmET3CPN4+mxMdaDygClz41kN0DJt1o\nd+KAnAJpTO1zTVz6sI2CPxEslm7KyhXig3NUCGnCzvzMWtEOeYPgCGZj2ZmL\nFV8zy8b1DtrD2gy9Cp+oJG76FebYp5ppClx1L/mleVsjWwrNBZaPAKfMVL+D\ne0xh\r\n=nSFU\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD2Nidp4M+FkDFxXOSzZivs/cSb6SiEx702hBDGcBmmzgIgG4AZ6hEnzMdOoiLYcG2gmHdMsAuw46N+O/Tn/jJ4Chk=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.1.0_1613032928047_0.3384724874310796" + }, + "_hasShrinkwrap": false + }, + "7.1.1": { + "name": "ajv", + "version": "7.1.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.0.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{md,json,yaml,js,ts}": "prettier --write" }, + "gitHead": "77d788f5827669928e6d3b714585b47e5d70971f", + "_id": "ajv@7.1.1", + "_nodeVersion": "14.15.4", + "_npmVersion": "6.14.10", + "dist": { + "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==", + "shasum": "1e6b37a454021fa9941713f38b952fc1c8d32a84", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.1.1.tgz", + "fileCount": 408, + "unpackedSize": 972134, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLN1mCRA9TVsSAnZWagAA6EMQAKTl+oR/orO40FZrqFuh\nhvyWHSptWknDB61/qX07dlWekfeHlfiFJD2JQJQKO6YsEXnOQ5UDdzrXtAU2\ngXLWoOyKhju8U1l9HHtq87XpQHjlvZ0kfSUFqd3t5fJx0FzddM1VCPMHBb+M\nGbWPCTGoUGkU6hQthywA8cl1kDKAJ0xFutP0xF9eq/TLosbQV1EIptpNef3c\na15P3bbM4ZNmhQjUGdrL8Xqz6LLm+V8bat0bePcz+Ez4Hadtw6meyKjSxUko\nAV1i1N5eFuwfmx7ukeV7zhR6eJHTS58QmiPuzFB8qSTuGtirY7+HIIW8qVWr\nA167VZAqYTWtxaBRujLB2s0BV1FBCyorSBgPDGoDd2xr+xXqohhgEzV1AmfW\nD02yB+TV01XQqch+4gba9OWqIPa5c/QWx3ON9G2r8jYVwuTaPfFqGsD89UF2\n5KNYjB+R31GjZ0in5k9JjboJcaby9d3NG1wesUm2IFP5EnEzujl2U49oAmty\ntNKXfxp4iSsJsnqyHIn0wOn+Lv780ga3cRgd4ctjf+33UQZXdoMWvmdqCNex\nB1Xay8H1GueDtjAizwBrlg6zZsXURUhm4Jlb3BCrosI5C16cc3ks5OUaRnsS\nk/yMLEPJ8qYKjEMah83OSKsou2ukTSqsDtSiC5NUmsfUsEveOXmha3kzCPUG\nmOCS\r\n=Vi5t\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEkE7yfzIO8TG/Bk83efSz/A0C1YFBN22gJF3uQjpovdAiBU09lTKUFyaxSwmq7wgvnrz+v8OiG9sN6ckMU+yiACqA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.1.1_1613552997768_0.4328567676481856" + }, + "_hasShrinkwrap": false + }, + "7.2.0": { + "name": "ajv", + "version": "7.2.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "vuepress dev docs", + "docs:build": "vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "9823d1d588762e10a05d5260c83a057eb11be3d8", + "_id": "ajv@7.2.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-51Na3IUg3uOACsQ7hzTUCjSzGy8xROySgI8tmNJ+y9JF2hfDS6qkTP7+Ep3htUtSQG1t17QMbe+jZFTlaU4dDQ==", + "shasum": "54948182f79f2e18c70a501700d78f7a44e6e398", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.2.0.tgz", + "fileCount": 483, + "unpackedSize": 1241049, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRKRaCRA9TVsSAnZWagAABBYP/0OsoiXZ6unLTw/AF1g9\nNY0nUOoKOdO9sodY9qX/j5jNGLrdi39APSQd/6kSw/L0fm2Ab8C50RNTrgpY\nKgRMpyf1+VkoF14SEzIpojt6dIrEbnIEKc5VFgt8Rrk4NHWweN5yCK1q0o/m\ngRWlM+vT2ET4MufN/5TEbvOyg8yIRX5ODRgYf7Jjg5qYXE93paBikW+Izf43\ngiSOEyhz6KtKBHj0Jl7a/wdIU01TFwYhkeVbZL+vrAEFh12p311ZItGSXgSL\nA6oo/UV9a+GGzgwtfpHv16zoESjO3Xrrxk8Vj9fFMDNYoONbu7CXQcpYOz8H\nKah2bYVii6bhAPP4BPTxULVXxDI1dKMqAIa5DuS7lH8OOwbRs8+Pgk0iZdvs\nToLyx53Dy5KRBJp3SarpClHHJoLwVjw5wLVTlPQjfdBn7sqExckQcngG+bqv\nSWq5Gobmy1RnzvD59PVBB9Gi2W/HZSCHB69E/7n7TpDcPZA5xiyFYZ8axUeu\n2Y0n32gUQWYFxM2pZscAObDF2rvNGPEb2/n85StYz1rL2XuRBRQMQ1wpAyCU\nKrNrzeHW06XI6OZb8wtiUV3fN9Jh8uRezpX7NzjnXn2ZqJhFwi/ossXckg+s\nge4sCSykA/iofPwW2TysVZgsGBJSwbCxqc7m6fA95t6b/iLvm9yWv8u7zD/J\nv8Up\r\n=XBgu\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCbUCzvpL0ONMaCVoHrt8s0GFhv5338A0xsTRrK2e2dUgIhALvX+L+MA+UFLy+qIln9xYkcpo44y/DAJymXTcFY2/pH" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.2.0_1615111258159_0.8622245469441063" + }, + "_hasShrinkwrap": false + }, + "7.2.1": { + "name": "ajv", + "version": "7.2.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "vuepress dev docs", + "docs:build": "vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "dd0eab50fd718249e3c7a0f5e7ed3227dff10e33", + "_id": "ajv@7.2.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", + "shasum": "a5ac226171912447683524fa2f1248fcf8bac83d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.2.1.tgz", + "fileCount": 484, + "unpackedSize": 1239266, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRSNrCRA9TVsSAnZWagAA3W4P/0YNT/vgZ6xrk+Ok+9sE\n9VYQEjsv/3LuoxKU3WwOoKrhpa1hTS8gO7tWTBKWhFPb2E9mxomSkZbJfiyt\nM7lbkWwtxC4QjbvAlWIcf2d5eGz0XAs0iw6v4kep1FeOmvcFX/kq85yxbVwL\n7CSA57yCPlU8G7RG5GNB8UXQtNNQZFfAMLsL5fiwvAoIz9sCYLCLBHn7Ep+6\n5MP55QTVuli5qjz4RkrLMYs6kGgVFXo2rXvuaJLHuYBlB8MAYyB8PwOeiM9k\nI4J7+dpctrVLszrpQwQksxC1jdDT3pZ6AhGo2fXYP8gGeOcf8s50wh7I2B4q\nBPoLxeM9orc/62D/5bNG26mTP5G1adlp60MWn68RCesVxMG1OHACOWeDTHuU\nveRBuMhti9QHcMEsV1UNkFiVbSDLVnqcZ1iGz3OPef9Knt5sHCMgmfR1Hd8D\nvzYQ/sdhxKvrJg63+aPIXR37cJUQ30ccb9c8HcP1TOPmvpH7mLXb4vEuSxSM\nVePL8HJh2i3xdGpEZafzoH5uHsaWh9MN/7boe0QUbvEUdNpJbNYuUhxDEvOg\n94dhboXKHTE3RHC2jshMM6JFFVaRCSsNBBmS+OWA5G35hjUqpCYhfXWBtYtY\ncx3bN513Yn8EaiQNsjneF/oRD5Dwvl0eA9PuRW4GShEn66lEWd0WGEFjO/74\ntVWE\r\n=DKCA\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCs8tcPApx3rDC1YQCow/VSKJ6Y1yldt+had85eYwZXQwIhAOH+kt+dhPD52JOxObm4cbo8F8dB9RWfZHSkDEgYKCeG" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.2.1_1615143786921_0.25395392125776173" + }, + "_hasShrinkwrap": false + }, + "8.0.0-beta.0": { + "name": "ajv", + "version": "8.0.0-beta.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "51cbcc2ba07f2d61c47a7a2191913325c8c4a318", + "readme": "\"Ajv\n\n \n\n# Ajv: Another JSON schema validator\n\nSuper fast JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 has these new features:\n\n- NEW: support of JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) (from [v7.1.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v7.1.0)), including generation of [serializers](./docs/api.md#jtd-serialize) and [parsers](./docs/api.md#jtd-parse) from JTD schemas that are more efficient than native JSON serialization/parsing, combining JSON string parsing and validation in one function.\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./docs/json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./docs/json-schema.md#unevaluateditems), [dynamic recursive references](./docs/guide/combining-schemas.md#extending-recursive-schemas) and other [additional keywords](./docs/json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nAt Ajv, we are committed to creating more equitable and inclusive spaces for our community and team members to contribute to discussions that affect both this project and our ongoing work in the open source ecosystem.\n\nWe strive to create an environment of respect and healthy discourse by setting standards for our interactions and we expect it from all members of our community - from long term project member to first time visitor. For more information, review our [code of conduct](./CODE_OF_CONDUCT.md) and values.\n\n### How we make decisions\n\nWe value conscious curation of our library size, and balancing performance and functionality. To that end, we cannot accept every suggestion. When evaluating pull requests we consider:\n\n- Will this benefit many users or a niche use case?\n- How will this impact the performance of Ajv?\n- How will this expand our library size?\n\nTo help us evaluate and understand, when you submit an issue and pull request:\n\n- Explain why this feature is important to the user base\n- Include documentation\n- Include test coverage with any new feature implementations\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease also review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Choosing schema language: JSON Schema vs JSON Type Definition](./docs/guide/schema-language.md#comparison)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](./docs/guide/environments.md#browsers)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Using in ES5 environment](./docs/guide/environments.md#es5-environments)\n- [Command line interface](./docs/guide/environments.md#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Validation guide](./docs/guide/getting-started.md)\n - [Getting started](./docs/guide/getting-started.md)\n - [Validating formats](./docs/guide/formats.md)\n - [Modular schemas](./docs/guide/combining-schemas.md): [combining with \\$ref](./docs/guide/combining-schemas#ref), [\\$data reference](./docs/guide/combining-schemas.md#data-reference), [$merge and $patch](./docs/guide/combining-schemas#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/guide/managing-schemas.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/guide/async-validation.md)\n - [Modifying data](./docs/guide/modifying-data.md): [additional properties](./docs/guide/modifying-data.md#removing-additional-properties), [defaults](./docs/guide/modifying-data.md#assigning-defaults), [type coercion](./docs/guide/modifying-data.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/guide/user-keywords.md)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)[](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all forms (see [JSON Type Definition schema forms](./docs/json-type-definition.md))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/guide/managing-schemas.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/guide/modifying-data.md#removing-additional-properties)\n- [assigning defaults](./docs/guide/modifying-data.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/guide/modifying-data.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/guide/combining-schemas.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\").default\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nSee more examples in [Guide: getting started](./docs/guide/getting-started.md)\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/guide/user-keywords.md) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@8.0.0-beta.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-S3sxD8f96ENFLFguo+Ibo0d1bP30WE+Xw7vu7HHdVUfQW/mapSGGj/0m66vgMxLS4lUe1YxNtKxanyHihTzNCw==", + "shasum": "4d822a9671f73008d418aebdec2f005c58c6111f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0-beta.0.tgz", + "fileCount": 490, + "unpackedSize": 1259826, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTJ0pCRA9TVsSAnZWagAAZYwQAJyMZXymuV2qkP1WZFX9\n6ztWCQkdrAt0KWWR0+yOvY3/c8Sp+53ZbGKT4nNHxOwzCvng9baaVko3Nti0\nF7zOwbrnSIwokUDEZisMnGnSzfZYk3FU4zTkOaEi8OlbYDPGz5UYc3zWBdLs\n1Cg8f/0Pi42wkoVkszJgQE4dKZ0nEkS4qQrz/yKvVjCNjSUt4MVFO6o8xRpi\nwxtfskuO5upYiB/W2zxEk295258ROd2AyWA1jZv00LErTg7hNhMxjuEOsQ3G\nl0lFTzwWYvuZqYAEZVIK0Jm0r772y6yKBmhedwydcqfbZHknDVRoVb4pl7Ys\nx7v0CHsKF6NoK2Y3CefSccevxVQhBImtE2BXXcWjB/7BYlfCVRRuB/YXJmuT\nsBU6656UqrHBRwQIQciTmRlTc0Yp9hnVXiVA2aLYRrGWmlNachOg1+TilOW2\niIP5CA24bATt6F3e4HUY7fxQaGRj9skgfU9iCatWns+yWNKqEOHVTVJR6M1k\nXoT80jEFXZXacxqwomu43oj2en08pXMxx5eyu+k09L6rXf3orru9NSn6p5th\ne95+OGeDzzzjdw2bLpEjCxAibWTHkYY4eyVIZbjcyjF9GGbv/2XO8oOFO+sF\nR3CHElqE5zNZZ+5MPJxZm1pkAYUorLe/E59WmguQj18h9sZMpfNZlbR0yMMu\nLLjj\r\n=Ac8z\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICeZL5kLM/Z1P87KxSwB2KA6uo84Ulji82fxDA5OHotFAiB22efDHfNU6n2ShhK1pNeYctOAD2wWMhC0tRA/d4kZrw==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0-beta.0_1615633705017_0.47563018708357707" + }, + "_hasShrinkwrap": false + }, + "8.0.0-beta.1": { + "name": "ajv", + "version": "8.0.0-beta.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -f \"\\$recursiveRef with no \\$recursiveAnchor in the initial target schema resource\" -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run prettier:check && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0-beta.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "fbbd2c9e9380f12d52723ed009cf5510e41d3578", + "readme": "\"Ajv\n\n \n\n# Ajv: Another JSON schema validator\n\nSuper fast JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 has these new features:\n\n- NEW: support of JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) (from [v7.1.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v7.1.0)), including generation of [serializers](./docs/api.md#jtd-serialize) and [parsers](./docs/api.md#jtd-parse) from JTD schemas that are more efficient than native JSON serialization/parsing, combining JSON string parsing and validation in one function.\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./docs/json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./docs/json-schema.md#unevaluateditems), [dynamic recursive references](./docs/guide/combining-schemas.md#extending-recursive-schemas) and other [additional keywords](./docs/json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nAt Ajv, we are committed to creating more equitable and inclusive spaces for our community and team members to contribute to discussions that affect both this project and our ongoing work in the open source ecosystem.\n\nWe strive to create an environment of respect and healthy discourse by setting standards for our interactions and we expect it from all members of our community - from long term project member to first time visitor. For more information, review our [code of conduct](./CODE_OF_CONDUCT.md) and values.\n\n\n\n### How we make decisions\n\nWe value conscious curation of our library size, and balancing performance and functionality. To that end, we cannot accept every suggestion. When evaluating pull requests we consider:\n\n- Will this benefit many users or a niche use case?\n- How will this impact the performance of Ajv?\n- How will this expand our library size?\n\nTo help us evaluate and understand, when you submit an issue and pull request:\n\n- Explain why this feature is important to the user base\n- Include documentation\n- Include test coverage with any new feature implementations\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease also review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Choosing schema language: JSON Schema vs JSON Type Definition](./docs/guide/schema-language.md#comparison)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](./docs/guide/environments.md#browsers)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Using in ES5 environment](./docs/guide/environments.md#es5-environments)\n- [Command line interface](./docs/guide/environments.md#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Validation guide](./docs/guide/getting-started.md)\n - [Getting started](./docs/guide/getting-started.md)\n - [Validating formats](./docs/guide/formats.md)\n - [Modular schemas](./docs/guide/combining-schemas.md): [combining with \\$ref](./docs/guide/combining-schemas#ref), [\\$data reference](./docs/guide/combining-schemas.md#data-reference), [$merge and $patch](./docs/guide/combining-schemas#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/guide/managing-schemas.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/guide/async-validation.md)\n - [Modifying data](./docs/guide/modifying-data.md): [additional properties](./docs/guide/modifying-data.md#removing-additional-properties), [defaults](./docs/guide/modifying-data.md#assigning-defaults), [type coercion](./docs/guide/modifying-data.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/guide/user-keywords.md)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)[](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all forms (see [JSON Type Definition schema forms](./docs/json-type-definition.md))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/guide/managing-schemas.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/guide/modifying-data.md#removing-additional-properties)\n- [assigning defaults](./docs/guide/modifying-data.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/guide/modifying-data.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/guide/combining-schemas.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nSee more examples in [Guide: getting started](./docs/guide/getting-started.md)\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/guide/user-keywords.md) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@8.0.0-beta.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-Gv2uhXJEeah+8m3LtVW3rm8epYdhMw73O+1QjZsjOLUPoeDEtOnhfFKXk566Dk0L4E3SQ2qmw265qjSZSo3gxw==", + "shasum": "d39cf119edece647ac2beaf39796c5dde645e7da", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0-beta.1.tgz", + "fileCount": 488, + "unpackedSize": 1265822, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTxNDCRA9TVsSAnZWagAAFaIP/3gTJi7EDQ76lDV385Th\nZUP05Sd2ihKbOPPoeCAuCqKnzVO0GGT3IbsrOAnGBKVIHEjvAXdUAkRvTtXW\nSrlE5H5a5wd62ovK6VZ+944sWVPi4ep/k7pb/XtYABSMMkMYK0KJAV1nt17O\nWNfWMnQpw6er8EVuoC9huxGai/QkYHiB7bcMci2U4yN8nfQtEiSZPZV1xoh5\nl9dgYlkdSSgHbEPvioiP7NbdgTdMu3KNm7lFLlFo+z5bJ94uBJYC3OovH+Ql\nanW+y3+V3coYzNPGzFdxtaP96UxGWTbmN5260MJ03MX7OP2xpPXrNXR/Yqh7\nnSK/MnJ0k7a4qOOdoO3nmgYqHeit0no//p893HkolNtRL8niYQop6E9aoYB5\nYrKRSbXvnZ169dBdFWUaKoenR+ueOVpTwHhZj+eoZ6Onx9LBzwjolaSTgcE1\nacFDku+kpUUQOO+s3QpODCA8yHiDmKUbWF8+bTj6AzgVt/1WRaY4XQZqmzIE\ndtGJqaO2B/guMJJo3UUilxsxp/m88lSXJ0KcqlxQdMyOV7Cj3GCU43uVEJJc\nbIbM4Z/zagby2kQjRfKlYN6rTVSkJZBtMhGkwP5ocp2yfCYOTLmJjp1u3DXa\ni0401Y5He8S8hQW2LXpUUaWfJI9uV1MR7kDuXjaejvFithAY0L4DSy+cd83+\nzlyg\r\n=7wHA\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHdIdAyxoJqpfwITS1f3YAbKyiXcadr1wjyG0zmIDFcgAiEAlPq72oKdM/6Ul0tziLEwK83WEwdUOsLGI4hPxJH8DM0=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0-beta.1_1615795011203_0.22470218042154277" + }, + "_hasShrinkwrap": false + }, + "8.0.0-beta.2": { + "name": "ajv", + "version": "8.0.0-beta.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -f \"\\$recursiveRef with no \\$recursiveAnchor in the initial target schema resource\" -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run prettier:check && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0-beta.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "261eb3ec7efaca5d817471d64b9931d77f9e23ec", + "readme": "\"Ajv\n\n \n\n# Ajv: Another JSON schema validator\n\nSuper fast JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-06/07/2019-09 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 has these new features:\n\n- NEW: support of JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) (from [v7.1.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v7.1.0)), including generation of [serializers](./docs/api.md#jtd-serialize) and [parsers](./docs/api.md#jtd-parse) from JTD schemas that are more efficient than native JSON serialization/parsing, combining JSON string parsing and validation in one function.\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./docs/json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./docs/json-schema.md#unevaluateditems), [dynamic recursive references](./docs/guide/combining-schemas.md#extending-recursive-schemas) and other [additional keywords](./docs/json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nAt Ajv, we are committed to creating more equitable and inclusive spaces for our community and team members to contribute to discussions that affect both this project and our ongoing work in the open source ecosystem.\n\nWe strive to create an environment of respect and healthy discourse by setting standards for our interactions and we expect it from all members of our community - from long term project member to first time visitor. For more information, review our [code of conduct](./CODE_OF_CONDUCT.md) and values.\n\n\n\n### How we make decisions\n\nWe value conscious curation of our library size, and balancing performance and functionality. To that end, we cannot accept every suggestion. When evaluating pull requests we consider:\n\n- Will this benefit many users or a niche use case?\n- How will this impact the performance of Ajv?\n- How will this expand our library size?\n\nTo help us evaluate and understand, when you submit an issue and pull request:\n\n- Explain why this feature is important to the user base\n- Include documentation\n- Include test coverage with any new feature implementations\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease also review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Choosing schema language: JSON Schema vs JSON Type Definition](./docs/guide/schema-language.md#comparison)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](./docs/guide/environments.md#browsers)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Using in ES5 environment](./docs/guide/environments.md#es5-environments)\n- [Command line interface](./docs/guide/environments.md#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Validation guide](./docs/guide/getting-started.md)\n - [Getting started](./docs/guide/getting-started.md)\n - [Validating formats](./docs/guide/formats.md)\n - [Modular schemas](./docs/guide/combining-schemas.md): [combining with \\$ref](./docs/guide/combining-schemas#ref), [\\$data reference](./docs/guide/combining-schemas.md#data-reference), [$merge and $patch](./docs/guide/combining-schemas#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/guide/managing-schemas.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/guide/async-validation.md)\n - [Modifying data](./docs/guide/modifying-data.md): [additional properties](./docs/guide/modifying-data.md#removing-additional-properties), [defaults](./docs/guide/modifying-data.md#assigning-defaults), [type coercion](./docs/guide/modifying-data.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/guide/user-keywords.md)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)[](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - keyword \"nullable\" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema draft-07 standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all forms (see [JSON Type Definition schema forms](./docs/json-type-definition.md))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/guide/managing-schemas.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/guide/modifying-data.md#removing-additional-properties)\n- [assigning defaults](./docs/guide/modifying-data.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/guide/modifying-data.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/guide/combining-schemas.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nSee more examples in [Guide: getting started](./docs/guide/getting-started.md)\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/guide/user-keywords.md) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@8.0.0-beta.2", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-M0YXx/qvObxf4bG2lCvU14pVLvm5vAd87u/KylxCXrB/5YmDpGk9gACkPDLCWjiz62Rgzahlx1xvdEPdCdhGnA==", + "shasum": "3e357bc3944d30a8facc2b89ad2cfb9fccb884fa", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0-beta.2.tgz", + "fileCount": 496, + "unpackedSize": 1284713, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgURONCRA9TVsSAnZWagAAGXoP/3sRTKAbfcw3Ghbl0+1j\neEI6AVfvGHqhFSoo+l8S2SEHa1f5dI9+DV2FJo/reP2sb5gzCDKqg8vqAYzc\n9x0SKCuo2ta7LeKXVc6wR/2lHKa1xTr715wmZr1+b5/JWJs+IqRsMAZlmw3o\n9jjg54Ydjo8FS47VdR3UjuDoZVd7h//2w0DJi9IaxByG7Eh5yYX2SYm2YB6N\nOWrXkfhNFI13fTVR7Typh9D+6PuE2hqu7Iew5mAnVBfX6cfjgZDGvc2pedJl\nDarpaVijbxNQjGaLJnCnaIJWm/FHNa647C/8LS8jWaxW+J/c61iNdrVHQTau\nScj2E+RA7/bW5nnZtfEF5FzvFvfjbqA7bxeyoESSB7OE96R5h8PId14HCUcX\neuB+uUPUHQoy5TFB9ID8LNPpZydxY6qsyPtrfZ0OzCnDSsGkbhntzNRrqOUN\nwG8gjZMNLCHjN49EJQIGC4j7vCsDhW4Q9S8rdgaD2RKEgirdhCJ2+mOFhdn4\niYL/KxMDFTLCeWOwmzWtQ7mWvA0IEM0JikNb2GOKT0pybDEj+RPVlPOXYCd9\nUEpAjQqyDVRe9WObjJVQ/keWdeO8Ny4xxYrL0urDZrOjySeaPLwrtjPHnTRQ\nCVooW1IE+eqNgCK/Kwvi0Fd+Z6nXdMgz66PwiwPStFJkKiRvqPwkqNfjHLzo\noNl1\r\n=O0ay\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCDCN5s5zN/7BjPDyc9nACtIzStVAAhIu5yrg2pnbY6/AIhANI2/mGTAzQDEHS5hEPYXJa6ip7dAyK/kBQXqbLWAbon" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0-beta.2_1615926157094_0.21166170291613873" + }, + "_hasShrinkwrap": false + }, + "7.2.2": { + "name": "ajv", + "version": "7.2.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -f \"\\$recursiveRef with no \\$recursiveAnchor in the initial target schema resource\" -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "678f243d7b54e224f4aa9c61305ddc1a59cc64fd", + "_id": "ajv@7.2.2", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-uEsX8jbbSu5MfRDQfao+AGt2QdThdRysvCFo7arlv5e2qQzRaCUV28TcS7TCzfGWD1ZLZIlFV+AOvoqQRARuOQ==", + "shasum": "33e4d3fe9e6ba9f4beb116d08c788160979b2a69", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.2.2.tgz", + "fileCount": 488, + "unpackedSize": 1244759, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVZmMCRA9TVsSAnZWagAAg5YQAIOIsjgkFms2iG8JjgRb\nC13bqvrecdrjzBQoe2eFu2tirrJknet7/iBIpyUL0IPfIP9PUDcCnfBXvbrS\nZJ/Kvirg9ebK+GASXCdGIBoWBEnPa51M7XUM1JmBCrtPveL3uRRQ/kiYCFer\n+tDB7LiEhBEZ8zlUQm2Gp3phhknHnf4wDqoClQQU9KewW/U+gmxtEpLBxSVe\nXqieU6mmed2kkHt9+uzGu99eKt1nbN+tjzrppY26/ZWr15zuHSsIPsh3W1/8\nkE1PHZTM/Vz0/Hq2f+9twglv4KLz1k3d+WA2xflPc1n8WEOLQuXMU51xsLLn\ncpY4yUHyWn84hHwyhd/aCIuhF+lDZmg1D73NtdBrXsxTDySulL8eCVf5IGrl\nciDt/Row1I+luL33zf3IpUAJDfZ6lNu6oHsiFHVJw1TVZDhK6XvPm60prgh8\nSD3mV8eIvNmyVXRNWTJsqWDstro/BxPBx5pUO+xPPRoG48zK1NzTjQOB8WbN\nXton72D/Am+N+6BcoRedfDprEYFxTvYvPadYmwAdWqOp0WB5VIbFMEtPVnad\noughf/cgFdcnCH/CB9o011a1/MHGGaPsqeSUcwm4QGol11+Mw3jAE8g7AGDL\nWWUkzBMiB9bSKnXxP2zHvwlgBRg7ht0DNIPhS0qYGubaTg9MV6AIG2AuxDjN\ns+P3\r\n=AV3+\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICrUqy2B1v4n118I75y5bUjY5BtW7EqD/7yNC/ON2DLAAiBgXAWt5+/WWL6bSbAh0j6/eVu2esM0HCwbUgr4bSiBnA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.2.2_1616222604141_0.023944197944711476" + }, + "_hasShrinkwrap": false + }, + "7.2.3": { + "name": "ajv", + "version": "7.2.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -f \"\\$recursiveRef with no \\$recursiveAnchor in the initial target schema resource\" -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "1b07663f3954b48892c7210196f7c6ba08000091", + "_id": "ajv@7.2.3", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "shasum": "ca78d1cf458d7d36d1c3fa0794dd143406db5772", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.2.3.tgz", + "fileCount": 422, + "unpackedSize": 927078, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVZ2+CRA9TVsSAnZWagAA+JAP/AvYiapJNCZsuRrT4ZIC\nWsjZuI+bXrxCcdpBs2bUkIHQ0XpWtN2OVWm5ta1MvJUVMbv+SnkhcsIDRtAB\nXqskcDoQ7TCoIDjBPKyGrDeq7SiJ79/uacpJLKfWbIGgbqKku5+2qmcM2TEJ\nLbUL+roivOQccA5ev2NBd96lBh/no/4dVul7pc1u/wyJaf4am7NR4aRttS9I\nA9mawiWlEJtc5kV3wufCX0sgxcsqKNV9x+i3TGx4VxCzXqm5lgGySRel9csy\n9mdglzTJMA3gIibVj+7abLRy/BCXvWj7CRkrz84tx4ykBfaZOdhbHJLngS4t\ndR/hbyt5hGQQbzrcHD5efHughbwez6IqVllGSm/IX9cvCyOm/OXmYBpzpbDb\n8yQN4T9SLBzljR4Qy8ECGBINlBtKicrCA8vw7bxMGQBxCd24GEbSemq19fcz\n8d25Qlxr8PX45k5H3GpkyTy5GFt18U/e6DMWiDh1aPi30TypVc0yfNyUDimO\nvvc7z6IntYoPAFS+51lGXagnZQ04Fdc6uJ0wPPDeFkvQO4UZvGMBDKo5qyCr\neQTkH7p72327K78pGmCYFacaaNg5NW3H22t9T2xaB9PsdkYeM5PK+sLCMyyp\nfAaQ+jGLQhfL5HH8uCb2erCVunjrYd7W7Twkxslki244vVPq5+7v8E2IZFCn\nSsV0\r\n=nDn7\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFx+gRhjmJ7iVpuQagsuWk5WxvVqMJrC58nAsBmW82MZAiAk11wwe9zU8u0gdrmdzxelY5tEr/PKKpWsFKiFj8Gj2A==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.2.3_1616223677554_0.31732159673019944" + }, + "_hasShrinkwrap": false + }, + "8.0.0-beta.3": { + "name": "ajv", + "version": "8.0.0-beta.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run prettier:check && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0-beta.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "d80b6cde4a585be54c678421af5303b87c229c39", + "readme": "\"Ajv\n\n \n\n# Ajv: Another JSON schema validator\n\nSuper fast JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-06/07/2019-09/2020-12 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 has these new features:\n\n- NEW: support of JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) (from [v7.1.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v7.1.0)), including generation of [serializers](./docs/api.md#jtd-serialize) and [parsers](./docs/api.md#jtd-parse) from JTD schemas that are more efficient than native JSON serialization/parsing, combining JSON string parsing and validation in one function.\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./docs/json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./docs/json-schema.md#unevaluateditems), [dynamic recursive references](./docs/guide/combining-schemas.md#extending-recursive-schemas) and other [additional keywords](./docs/json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nAt Ajv, we are committed to creating more equitable and inclusive spaces for our community and team members to contribute to discussions that affect both this project and our ongoing work in the open source ecosystem.\n\nWe strive to create an environment of respect and healthy discourse by setting standards for our interactions and we expect it from all members of our community - from long term project member to first time visitor. For more information, review our [code of conduct](./CODE_OF_CONDUCT.md) and values.\n\n\n\n### How we make decisions\n\nWe value conscious curation of our library size, and balancing performance and functionality. To that end, we cannot accept every suggestion. When evaluating pull requests we consider:\n\n- Will this benefit many users or a niche use case?\n- How will this impact the performance of Ajv?\n- How will this expand our library size?\n\nTo help us evaluate and understand, when you submit an issue and pull request:\n\n- Explain why this feature is important to the user base\n- Include documentation\n- Include test coverage with any new feature implementations\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease also review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Choosing schema language: JSON Schema vs JSON Type Definition](./docs/guide/schema-language.md#comparison)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](./docs/guide/environments.md#browsers)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Using in ES5 environment](./docs/guide/environments.md#es5-environments)\n- [Command line interface](./docs/guide/environments.md#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Validation guide](./docs/guide/getting-started.md)\n - [Getting started](./docs/guide/getting-started.md)\n - [Validating formats](./docs/guide/formats.md)\n - [Modular schemas](./docs/guide/combining-schemas.md): [combining with \\$ref](./docs/guide/combining-schemas#ref), [\\$data reference](./docs/guide/combining-schemas.md#data-reference), [$merge and $patch](./docs/guide/combining-schemas#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/guide/managing-schemas.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/guide/async-validation.md)\n - [Modifying data](./docs/guide/modifying-data.md): [additional properties](./docs/guide/modifying-data.md#removing-additional-properties), [defaults](./docs/guide/modifying-data.md#assigning-defaults), [type coercion](./docs/guide/modifying-data.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/guide/user-keywords.md)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)[](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09/2020-12](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - [OpenAPI](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md) extensions:\n - NEW: keyword [discriminator](./docs/json-schema.md#discriminator).\n - keyword [nullable](./docs/json-schema.md#nullable).\n - full support of schema references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all forms (see [JSON Type Definition schema forms](./docs/json-type-definition.md))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/guide/managing-schemas.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/guide/modifying-data.md#removing-additional-properties)\n- [assigning defaults](./docs/guide/modifying-data.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/guide/modifying-data.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/guide/combining-schemas.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nSee more examples in [Guide: getting started](./docs/guide/getting-started.md)\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/guide/user-keywords.md) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "_id": "ajv@8.0.0-beta.3", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-bgtJ6Qi7Cw9SRf5ghhJO8TpQSFR21fI8Y+j2VT7NxPY19klb+aQrHqat/KbAIduEmDV4cZgWFrTbEf4O2oCeww==", + "shasum": "8f859668516e093ac829616ba80152a1818a15a8", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0-beta.3.tgz", + "fileCount": 470, + "unpackedSize": 998452, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgV5QVCRA9TVsSAnZWagAAfX0P+gNZcYup83qkH2zjl5bm\nOeb/N3dSu+JLwi5Nc5docxB1Cwjs60w3vvzCYAqEPEYNzYehUe6TzQQ3EPqc\n81+0TXhnBxs+LALn8L4b6nMQ0UHIh2MMF8334x8tQzWRM7p+bG2z9hTS0ikn\n0e7hvS6auA7Ka+P/MUmHcftYs2faCmAt2u4LKRBKNl90PAtLrO1m7irNLqxP\nna5FLFuoqEUxngWQrZkOrU//08uYlEy1zvd12+Va/oQZ6E6Jm29e3QpSEzzo\nlIsMP8i34WrbgZEz5L+c0Y0jrq6Zmk4oAZyA6P7P/81lYZXp3oocRzZdidpy\neG8ArPtTqq4PW8pw4F0caLaat8PBILY/7cEJtagqBBoGJ1yhMvNyrqhII4/6\n9AfrDIuQTlSDKhKV8od8NFsIxCjGxV5sapHiD1FnuewMH+y/E6e5b/CGl7S6\nGANTZotlplhRZ5bWlUz4PkwlJPCjIIp/9ZPs6Q8vlP+CXA0mD/hYKGfs77el\nm4CBfYB/TDh/7g04HzYjb215WCQ9TdSUCexsOXjLRyhKTs6JJymrGlsHaBGt\nhiz9aToIW7sD6mnm/Rr0i/c1ML8UpXYj/fFfEbzF4E70NjbRSE0ypN3mLXiM\ntpZ5hXuwlqf0lxMaZcG1tweUanDB1nSwljX2vrzAIgAQAAgy+nu0gb4Dl8WV\nuZJW\r\n=TlW9\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBqFMzRjO7SFkpBirKRe/qzlAy/+p9Zj0a/D0KCvm4kpAiB88OjmsfTcIEA5RNN/ExQuT91uiz6wk4k7fUDbMgBu3A==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0-beta.3_1616352276309_0.40604715258402346" + }, + "_hasShrinkwrap": false + }, + "8.0.0-beta.4": { + "name": "ajv", + "version": "8.0.0-beta.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run prettier:check && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0-beta.2", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "readme": "\"Ajv\n\n \n\n# Ajv: Another JSON schema validator\n\nSuper fast JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-06/07/2019-09/2020-12 (draft-04 is supported in [version 6](https://github.com/ajv-validator/ajv/tree/v6)) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Platinum sponsors\n\n[](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n## Using version 7\n\nAjv version 7 has these new features:\n\n- NEW: support of JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/) (from [v7.1.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v7.1.0)), including generation of [serializers](./docs/api.md#jtd-serialize) and [parsers](./docs/api.md#jtd-parse) from JTD schemas that are more efficient than native JSON serialization/parsing, combining JSON string parsing and validation in one function.\n- support of JSON Schema draft-2019-09 features: [`unevaluatedProperties`](./docs/json-schema.md#unevaluatedproperties) and [`unevaluatedItems`](./docs/json-schema.md#unevaluateditems), [dynamic recursive references](./docs/guide/combining-schemas.md#extending-recursive-schemas) and other [additional keywords](./docs/json-schema.md#json-schema-draft-2019-09).\n- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements.\n- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe and to allow code optimization (compiled schema code size is reduced by more than 10%).\n- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package was updated to use the new API (in [v4.0.0](https://github.com/ajv-validator/ajv-keywords/releases/tag/v4.0.0))\n- schemas are compiled to ES6 code (ES5 code generation is also supported with an option).\n- to improve reliability and maintainability the code is migrated to TypeScript.\n\n**Please note**:\n\n- the support for JSON-Schema draft-04 is removed - if you have schemas using \"id\" attributes you have to replace them with \"\\$id\" (or continue using [Ajv v6](https://github.com/ajv-validator/ajv/tree/v6) that will be supported until 02/28/2021).\n- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.\n\nSee [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0) for the details.\n\nTo install the new version:\n\n```bash\nnpm install ajv\n```\n\nSee [Getting started](#usage) for code example.\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nAt Ajv, we are committed to creating more equitable and inclusive spaces for our community and team members to contribute to discussions that affect both this project and our ongoing work in the open source ecosystem.\n\nWe strive to create an environment of respect and healthy discourse by setting standards for our interactions and we expect it from all members of our community - from long term project member to first time visitor. For more information, review our [code of conduct](./CODE_OF_CONDUCT.md) and values.\n\n\n\n### How we make decisions\n\nWe value conscious curation of our library size, and balancing performance and functionality. To that end, we cannot accept every suggestion. When evaluating pull requests we consider:\n\n- Will this benefit many users or a niche use case?\n- How will this impact the performance of Ajv?\n- How will this expand our library size?\n\nTo help us evaluate and understand, when you submit an issue and pull request:\n\n- Explain why this feature is important to the user base\n- Include documentation\n- Include test coverage with any new feature implementations\n\nPlease include documentation and test coverage with any new feature implementations.\n\nTo run tests:\n\n```bash\nnpm install\ngit submodule update --init\nnpm test\n```\n\n`npm run build` - compiles typescript to `dist` folder.\n\nPlease also review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](./docs/components.md).\n\n## Contents\n\n- [Platinum sponsors](#platinum-sponsors)\n- [Using version 7](#using-version-7)\n- [Contributing](#contributing)\n- [Mozilla MOSS grant and OpenJS Foundation](#mozilla-moss-grant-and-openjs-foundation)\n- [Sponsors](#sponsors)\n- [Performance](#performance)\n- [Features](#features)\n- [Getting started](#usage)\n- [Choosing schema language: JSON Schema vs JSON Type Definition](./docs/guide/schema-language.md#comparison)\n- [Frequently Asked Questions](./docs/faq.md)\n- [Using in browser](./docs/guide/environments.md#browsers)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Using in ES5 environment](./docs/guide/environments.md#es5-environments)\n- [Command line interface](./docs/guide/environments.md#command-line-interface)\n- [API reference](./docs/api.md)\n - [Methods](./docs/api.md#ajv-constructor-and-methods)\n - [Options](./docs/api.md#options)\n - [Validation errors](./docs/api.md#validation-errors)\n- NEW: [Strict mode](./docs/strict-mode.md#strict-mode)\n - [Prohibit ignored keywords](./docs/strict-mode.md#prohibit-ignored-keywords)\n - [Prevent unexpected validation](./docs/strict-mode.md#prevent-unexpected-validation)\n - [Strict types](./docs/strict-mode.md#strict-types)\n - [Strict number validation](./docs/strict-mode.md#strict-number-validation)\n- [Validation guide](./docs/guide/getting-started.md)\n - [Getting started](./docs/guide/getting-started.md)\n - [Validating formats](./docs/guide/formats.md)\n - [Modular schemas](./docs/guide/combining-schemas.md): [combining with \\$ref](./docs/guide/combining-schemas#ref), [\\$data reference](./docs/guide/combining-schemas.md#data-reference), [$merge and $patch](./docs/guide/combining-schemas#merge-and-patch-keywords)\n - [Asynchronous schema compilation](./docs/guide/managing-schemas.md#asynchronous-schema-compilation)\n - [Standalone validation code](./docs/standalone.md)\n - [Asynchronous validation](./docs/guide/async-validation.md)\n - [Modifying data](./docs/guide/modifying-data.md): [additional properties](./docs/guide/modifying-data.md#removing-additional-properties), [defaults](./docs/guide/modifying-data.md#assigning-defaults), [type coercion](./docs/guide/modifying-data.md#coercing-data-types)\n- [Extending Ajv](#extending-ajv)\n - User-defined keywords:\n - [basics](./docs/guide/user-keywords.md)\n - [guide](./docs/keywords.md)\n - [Plugins](#plugins)\n - [Related packages](#related-packages)\n- [Security considerations](./docs/security.md)\n - [Security contact](./docs/security.md#security-contact)\n - [Untrusted schemas](./docs/security.md#untrusted-schemas)\n - [Circular references in objects](./docs/security.md#circular-references-in-javascript-objects)\n - [Trusted schemas](./docs/security.md#security-risks-of-trusted-schemas)\n - [ReDoS attack](./docs/security.md#redos-attack)\n - [Content Security Policy](./docs/security.md#content-security-policy)\n- [Some packages using Ajv](#some-packages-using-ajv)\n- [Changes history](#changes-history)\n- [Support, Code of conduct, Contacts, License](#open-source-software-support)\n\n## Mozilla MOSS grant and OpenJS Foundation\n\n[](https://www.mozilla.org/en-US/moss/)[](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/)\n\nAjv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition (RFC8927)](https://datatracker.ietf.org/doc/rfc8927/).\n\nAjv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users.\n\nThis [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details.\n\nI am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a \"maintainer\" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community.\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09/2020-12](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](./docs/json-schema.md))\n - [OpenAPI](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md) extensions:\n - NEW: keyword [discriminator](./docs/json-schema.md#discriminator).\n - keyword [nullable](./docs/json-schema.md#nullable).\n - full support of schema references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of circular references between schemas\n - correct string lengths for strings with unicode pairs\n - [formats](#formats) defined by JSON Schema standard (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin) and additional formats (can be turned off)\n - [validates schemas against meta-schema](./docs/api.md#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all forms (see [JSON Type Definition schema forms](./docs/json-type-definition.md))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](#using-in-browser) and Node.js 0.10-14.x\n- [asynchronous loading](./docs/guide/managing-schemas.md#asynchronous-schema-compilation) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](./docs/api.md#options)\n- [error messages with parameters](./docs/api.md#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](./docs/guide/modifying-data.md#removing-additional-properties)\n- [assigning defaults](./docs/guide/modifying-data.md#assigning-defaults) to missing properties and items\n- [coercing data](./docs/guide/modifying-data.md#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](#user-defined-keywords)\n- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`\n- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](./docs/guide/combining-schemas.md#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](./docs/api.md#asynchronous-validation) of user-defined formats and keywords\n\n## Install\n\nTo install version 7:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nSee more examples in [Guide: getting started](./docs/guide/getting-started.md)\n\n## Extending Ajv\n\n### User defined keywords\n\nSee section in [data validation](./docs/guide/user-keywords.md) and the [detailed guide](./docs/keywords.md).\n\n### Plugins\n\nAjv can be extended with plugins that add keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions:\n\n- it exports a function that accepts ajv instance as the first parameter - it allows using plugins with [ajv-cli](#command-line-interface).\n- this function returns the same instance to allow chaining.\n- this function can accept an optional configuration as the second parameter.\n\nYou can import `Plugin` interface from ajv if you use Typescript.\n\nIf you have published a useful plugin please submit a PR to add it to the next section.\n\n### Related packages\n\n- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats\n- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface\n- [ajv-formats](https://github.com/ajv-validator/ajv-formats) - formats defined in JSON Schema specification\n- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for defining error messages in the schema\n- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages\n- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas\n- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with additional validation keywords (select, typeof, etc.)\n- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch\n- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't included in [ajv-formats](https://github.com/ajv-validator/ajv-formats) (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`)\n\n## Some packages using Ajv\n\n- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser\n- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services\n- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition\n- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator\n- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org\n- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com\n- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js\n- [table](https://github.com/gajus/table) - formats data into a string table\n- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser\n- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content\n- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation\n- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation\n- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages\n- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema\n- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests\n- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema\n- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file\n- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app\n- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter\n- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages\n- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX\n- [Spectral](https://github.com/stoplightio/spectral) - the customizable linting utility for JSON/YAML, OpenAPI, AsyncAPI, and JSON Schema\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "readmeFilename": "README.md", + "gitHead": "3570c90881ae609da2a4fd130c728b40ef3ef645", + "_id": "ajv@8.0.0-beta.4", + "_nodeVersion": "14.14.0", + "_npmVersion": "7.5.2", + "dist": { + "integrity": "sha512-M4SfW/InvqHRdSKcgVttiVzN824DOhX4fHYvSWjO1wyEz1+9AdZGbV0o4IA47IverLnyrZxAAd1w5B7rjI3Xhw==", + "shasum": "9f6779a0dac21a2ac0e1ca9604276eb0c9bf63e4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0-beta.4.tgz", + "fileCount": 478, + "unpackedSize": 1036616, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWZqhCRA9TVsSAnZWagAA8g4P/j7y8wcOdFGZe3z6lGrH\nUdfLwRENr+HNrQ7NDGI0uIXp+axLCxv0lNrL4KhRjp+5NmjE7ULoXR7PD3WE\nsrNVDcrnRB0fakkecEA3h72fokO1ni796b4SfKvPzIGmP7RrYCJQPInjo4eL\nbo7RJ8oLg8kXcdk1097BTb3xrkdOkiVSEeKdcYN925Y2kKa9DlSnXZG7EHWE\nc7JbYMayl32GqnGMW9sFUDuQ52j4NFm91xH2lF1SqWuchkPMp+JoxYRgIRiO\n2YIQ3QA3MxzVpt1qjaTCD8b9ef4aknquFlpY1FrLusvzqjUIOrp+Wh+dmaFu\nEA8IDdmhhRgMiPx6UlXGWDkvImMhtGW/sNYHlzVDMkxN3AhuQsLPoYeeVIfp\nXckE6bmSbSI5S5QX6Xk1r7JlFLEnZYT2fXe6JIqgtnKcWJy0fXK7jeVRiaF+\nbuoVn5Nn74jGbPdkvie7AAjXL8EoCxDhm0xcPf4EGtv7eg5/U7Gntr5XZ38y\nS4VCcz8omE2+ZSLh6kBdlyCrg0syGhOD3pAVy9dFMdALuT8UCnXbby9uU6In\ninfFxMtcbn3H6ioNYJ4lPCCG1YAPqUPiKzBlV9FAhEIladZvPooLjcvUYlmU\njWjiz0RVH7XdNNyOeOKbF1BDWcQwtwAg7EgPrnINeTB4kOgww/DOcIsR7lkR\njYSG\r\n=9C6X\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA/8KwqswGNsE3fNMq39IGdnP21Lo/O7r84oABP5rwRMAiA4jb71e8ymUrG4HPco5zD4bPnt+hKG9oliIgf3FJ+5lA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0-beta.4_1616485024717_0.7681146387238358" + }, + "_hasShrinkwrap": false + }, + "7.2.4": { + "name": "ajv", + "version": "7.2.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -f \"\\$recursiveRef with no \\$recursiveAnchor in the initial target schema resource\" -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm link && npm link ajv && npm run json-tests && npm run eslint && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^1.5.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "d6585481ab698d914639c8a7c379c164498fcba6", + "_id": "ajv@7.2.4", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==", + "shasum": "8e239d4d56cf884bccca8cca362f508446dc160f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-7.2.4.tgz", + "fileCount": 422, + "unpackedSize": 927198, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXZkVCRA9TVsSAnZWagAAw1YP/jk7Js2lJcqcE55VRo1K\ngOzMriEjh7AJD8qbTG5X4BERkgv32c8eDxa7zb59xwQ07JPwUQWk+auyHTVR\n0ZC0aXute717jyZahx1q1VyOvoXwuAbJDtbSwxo95JPtbZdr3U3ylsV/mg8R\nciNU8p12Okwvos53bjppIr/QW0CoJK2128yDYGZmQwoP8k/FCvcoyTL3x8Ge\n5YH9ROkk7tua9mj7nlpOY7lr5rO0FlY8yZLQVJBASk3YlQsmE7Ztrwy65g92\nFJ9ru4WmV4dq2H3Q/c0pXr1BG5Wx3WfirYsOi0s9KuuF9NgyHdpyvelHTxb1\nMkueJJjRIxjvuf0TMyg8YAtwwWfPfXOXfd2LKEcHPV7AGSBaHfwbzJX+8cvR\nEkUuEvgUKIovdLZ4LZKeG3XbsDH5hXeYJu8CX8STuySWm10/6fpz+tJLjZXj\n1uOFhMza11ZT7VeSFYFLdIF3OcpSbOIzbFNnhIgKrttsvaTbAicDi6+W/dYn\nXtImw5EGkES0/SMMk1RVBEOYk2/M1LjnmIC/eIDHwtQotZIph/k/R4K4y9MN\nsqd0MaF+8kFWJzqfjXTmbm2sWUIWFVNySrmzS8fyn1g8PX28V0RoQAk/TElw\ntoliF60Aqt/UadoHeG7io0TJ87IAkuwbJ9DX0zAa3HGAOEkYhazrCNi6KqP3\nTAbi\r\n=yhsH\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDNJKqAdfaVQ30SayRh2YK1iqXKI/35kZhirz0fRDRtTwIhAMX/6pxnoLEtmdCYC/PWgoM4ro2yynd9Vv2LeW2XbRbA" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_7.2.4_1616746773188_0.7629486919187622" + }, + "_hasShrinkwrap": false + }, + "8.0.0": { + "name": "ajv", + "version": "8.0.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "d7428bed95f5f1a5863ab501c8a59bddc06f49ff", + "_id": "ajv@8.0.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-AgKgeO3Y58RMZoi3S+6OYqGjndt8VlrCwGM3bQEMtbGTLOO+VrymV1Fb0TnffzG4gSwa6MEgIreOn9y3Q9rt+A==", + "shasum": "392f0aee6a4b6ee8367f5b0bf516e43210762ae7", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.0.tgz", + "fileCount": 467, + "unpackedSize": 985539, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXyiZCRA9TVsSAnZWagAAFv8P/1GqaRqICQMKkvGiyBj7\nWrnSaIWD3khl07mB+r0mXQvMqCUUxfZ4dG1B1tNoftfxesvPBMYsHEGK0cCI\n2tWON7F+l3VVjtdslbgWiIWAlbg1Xlh+jZA76EIdSei+ONzgkdnVJmIiCydj\nsuqkMP/DgsKoLqSrJc7BReerajNY3uycGP0nYZBp3erKIhS/5P8NfC47YpFo\ncGS4ZY2Vj8cn/LAXx1AWis32Ix24Hj/jjM+n5TnJh1v/+Xs3aQpPp8+Q9HTD\nrR0hINVmLdhIDzydF221gA4xJlewGc5Ps2K9fnkBQqFJqzzTnKZ60VckOlrd\nUGRClo5aNEHL6Z1wUGL2qmci7yU/JmqjL2FeLqwKXI3Gb+o2+zilRzZsfRpP\n/+fS0MTW6FFe8sKHjdlklcG2EPmUuklnsW9OlUJjH1lM4SV4YupRGpIKM9yl\nhuuCxmsAOqICzw57JXM1F3YzYObmUS0o2yZzDBLa7yjHe6JEjIEk1ham4+Ul\ns9FdnnLa8ih8fX0YPIDLx7j+NVlyKt/DBp3PbAET31ryzsI3mbq54lnVWB7T\nNtWC3vgruEdHXk8aeMT17X5eap5bEfFlqNJa9Brt+kXlcVLkuk+p21jF14VN\ndEX7mFzrTjng7JMtZG+2sfrVOyQdBlf5Og79CG2+TbBsOEdHrXGT6LX2LRzx\n9agx\r\n=/ZGD\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDcY6pYSb3nS+t/lxi3csI2BoEb0xT8/vMmOnGCFdIcBAiBeRky9OirBB/4lUBWenotLjFlWWfQqy95oAMqcilz7zA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.0_1616849048849_0.5448691335872347" + }, + "_hasShrinkwrap": false + }, + "8.0.1": { + "name": "ajv", + "version": "8.0.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "022874f855feef8ca585407e2bc5190f7bfdc542", + "_id": "ajv@8.0.1", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-46ZA4TalFcLLqX1dEU3dhdY38wAtDydJ4e7QQTVekLUTzXkb1LfqU6VOBXC/a9wiv4T094WURqJH6ZitF92Kqw==", + "shasum": "dac101898a87f8ebb57fea69617e8096523c628c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.1.tgz", + "fileCount": 467, + "unpackedSize": 985725, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgX7YNCRA9TVsSAnZWagAA1VcP/13GKSKzGg3wLYTYyurJ\nrkCAT+NJ/JrtnIC1f2HSqgxlEcnVuIU8nqafs0eHaRdoiJfLc6Hs3zMqIUAx\nwQ7CVX2vgk6D5ijS2e9nMpcqq1bgoALUIrk7qM56vYN/X53Hj+an2KDcJnyT\nzHPQdM9SDgY2QLRg48f+h7g8/iJVDGxkDoSwnwXBU9imSMNCphbeN1H0d/yR\ny/e66EIH7yQ/AN1Wa916OLbaAAYoE0ypzx+PSP4UJMsgLU6NV2+6DFm5/iOZ\nMTc2BlnbdUdF9l034pkXO/HA8R6n0MCy3glEL8k21cpzB5fDlEKQUXogD6fz\n7okTGeiarYOqsCznv4izmaM3F+KkbzOapPh2neiv//qfjwBIWLlYvBIO/CaA\nuExNtArnyzP7UrjyzWvcZdHyPrpJXbzvxIyuLcY6Dzt81nwG0A/I1TEbfSr1\nQGDr5eTii21vzPulnHS0e0C+EGva2M4PdiMUxi80AK6Ts1KtrXvUlB8xTEoB\nC/DWfPU8OQvWhuuinKNAdrB2zwx0yzkB1te18xwe4W6CB9QZjunWYIdmnjSR\nq04NLIw6M3Iu/aCsWrrnhjI+orDEhfvyRGWoZf1IkC3iChy3wct0zdIdEJaO\nzodIPJs3VCMdIkISMIFDclyKd5R9UaSmjpATzJzxyj64Cmb2VpvqBajdqnBg\nzJWc\r\n=ZuFv\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFuDQ1F1NpyL0eYI03ERv/quneJsh5JE6IvaXeuSAFxdAiEA/nd9evG7NzXk+5qCtm88/Eo+h6lgNyuDNWfZCpi1bFk=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.1_1616885260739_0.28858210660416694" + }, + "_hasShrinkwrap": false + }, + "8.0.2": { + "name": "ajv", + "version": "8.0.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "24dba5c0795f9c01c74e60c7407c5aa33a2da2e9", + "_id": "ajv@8.0.2", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==", + "shasum": "1396e27f208ed56dd5638ab5a251edeb1c91d402", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.2.tgz", + "fileCount": 467, + "unpackedSize": 986792, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZCwSCRA9TVsSAnZWagAAHTgP/3dfcNOMYHxTn/qBwi/C\ncVINUw0imhxIYtU4jEpXuVg+SRLey4n1HhyJUQU81fE4gIuRDL0X4q4qsbOM\nY72109mtFNjwZNaGm2KWF+d5ZfwDE24K0QwvwaD0LjSVwErKeUW63pgelEDm\n9Tfyt781Vw+t5cqJXWjv4oqH4uqXU4BLnFzzMqLzEjZIjWfkLTpOdMmMuJi9\n+nobdIhCTGHSCNimRaOYxD0syh1vYgRjzPERjLixerFDZvtgcCg5MV6TtIWJ\n/C/vtukvdK21kE8nhBmaU+p2WZxfOIFbCQbkEXJrBU0Ry6UnyqWBDLDoBdZJ\niNmyx4lhN/cyJggje7K0CTAXMHKMd9P8LorWCtOdKOAkAveLxU+sDhaFLFT6\nU3mv3laWrYDdQ7OkEFsUeVNWBF720sSsu3ohvXiNrCZG/mV9H46arYiIqgh8\ncrqHAURTcMGp2SgKAQVVcTI5tjwfzbx8OypGvskdbvExXn9g2XnQCWSguJhS\n+TuEllgxW/9pRICjWpo2t5Y9/yukwQKoM/897XlWnxrPnnFoWtxlIfq95i5M\nmllA67QRWbvFtk3l3ezjmMqjKubKi2K78c7Ph55mtfCC4xlShz52FDgn0NCC\nUUL9TjfL5MPve13StG5oEOWLCuMOcrhPwDZQtdpUaftZj/FThOZebHeSzGPw\n6wTq\r\n=sGU5\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEv3RUkOq37H02WkPdaZF2lTCn1zDmJzE48xs+EkthkGAiEAg4vHigPWBV1jrJHSRIqNtbzGYxDKIQoq6+wQAYYVnUw=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.2_1617177617382_0.9710023278386131" + }, + "_hasShrinkwrap": false + }, + "8.0.3": { + "name": "ajv", + "version": "8.0.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://github.com/ajv-validator/ajv", + "tonicExampleFilename": ".tonic_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^5.0.9", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "f16edb153976fcb2541144715d309d4f9e94d8ee", + "_id": "ajv@8.0.3", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-Df6NAivu9KpZw+q8ySijAgLvr1mUA5ihkRvCLCxpdYR21ann5yIuN+PpFxmweSj7i3yjJ0x5LN5KVs0RRzskAQ==", + "shasum": "81f1b07003b329f000b7912e59a24f52392867b6", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.3.tgz", + "fileCount": 467, + "unpackedSize": 986930, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZXCECRA9TVsSAnZWagAAS/sP/3zRVlsGEQqEi3LvDmhJ\nFvwMZIgnALIcHF2GlZ2WidJHAhWGfzxzxduq66Sp91GOhLrzpVmow4Qdne/6\noGFEMZzvKiIDJWQMff/Y6TnIC0hVHpwnhbFom0hwVxCE8i58v1acfxfwUj2N\nVwEQT1gIA6rtEAZb1yiiJbXjtr72jyWz4wpaxRhd1z/S1u1pHMrt8PshSHbr\nw3IgTmvnLPfvhiEwUdqFtgTpKdIVsU3otzEVaXsNnaw7SWE1JSZtOphz9BNk\nsZa4rDCXZK8YSd5hGh5OJvSCaODtRTyhrDml4yDNAR11mfV4i/km6U+znj3Z\nKPwzZFN/llwxHyI/h7Bc4cQysyRiAaKoVCDwg9JFohfeeQebmLXVah13ZmE+\noz+aGfhQtKq0gZOuuRaLq0YEDveKMgABzF/5v25U0sk05yrNKCsdIlspH1xV\naRazKZ3YpnPVLM8IkCEGKJvPqdUyn7qT5BWK5EoGH5FJANJOeZScll4r512i\nHY/oc4NEw6HXCR4GMm7riPXxkbugDfTWWE3740F1xorGRr6GP27cSg5J1Ijv\npm3KsZnls7nzJOb56lDizWOzIBSTmPQyVTxoBSffcQWIA7OG2SOpKlaCPA4U\n1P9F4um2DaCb+8jKKCpUfA14YejIpsHonKu5EXoYZqFdzfx6GJdH2sNJXnOX\nj2KE\r\n=rT//\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEY31Pjia+GLn7Wx1fLqtVozYs2TMpy6Cm+9BxoPXiCdAiEAv93QkN9BmtkbjY78j8XKgAcVQ7s2FCouAeoBV1pUVfo=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.3_1617260676251_0.8763611490255627" + }, + "_hasShrinkwrap": false + }, + "8.0.4": { + "name": "ajv", + "version": "8.0.4", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "facbb231b726ba4cb5b879432f3dc9a9d9750acb", + "_id": "ajv@8.0.4", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-v1qwknPv7rNGqtiaC4ywb3OZ3LNrEjbJL5igAe8eTbXOj8ye0XVul2pFRulwl/j3QfUKdQ/J9HZaYfQCnR7cvA==", + "shasum": "7dc77632eb5dcde646b3aa18dd3bfe0d8965f379", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.4.tgz", + "fileCount": 335, + "unpackedSize": 657421, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZxPfCRA9TVsSAnZWagAAip0P/005O6aUyMLJRCFwOxBI\ni/e7C3Mpgkd+JvaEEVu45SjRZPqdkXwCSMYr/n1avzNSCrzFD3whM9Xk+DU3\nRia10HtrMjgHZnn4x2lTMtf5f6kcAcx3iUqEb2fVFUC6uY2KYBZHabW2HTu8\nQb0eNqRDWLahXGjeDf6xsA5pr7OFcRJr/YJsiCCn4RRe8yxNQBT4+++emz9/\nLkl62CydLzk2J7TMEtlOEKlRBpvjGqYh8jDTAxiRGzby+Rb66HD3ox3IoM6Q\n0mR0PvSAdUCjLZCQw/5gekD71Xp3ecMHXHFpQwPd9I0BgO1vTwRtFuce32tP\nSXk2eYsXQq45bJ67MO4LWf0smsmLyrLI7c11p/H6gU7ItFoBesxd0Q9Z39is\noQtRTX4TEoGFnwXjCRvdQpVMyg+E+VwyR7J3XK7jp1i2ja9UaWLG7L+fIxh9\nEnJ2zF0zQLMAeFve8JpiUXWB6h1dH5w3NxoUZLSvY68UTwJEv+1uB1eQC4th\ngp8WU79fRM4rG1KhGUxTcr1bXa6JIq8NccPebT9FyPE7hhIJEP7zJFMQ7m15\n+CWPcBOO+A82CQPKaKmnA8y18s/vnUyx1RzYnW5/giSjhGjN7Ix7P/X2BAyw\n4fn/+v1KMqOgA0WzBxCqq0q3i4tZRlV27ljzzl2Ph3MBCzK2WtmCMDHaK3tH\nNJjB\r\n=qGVY\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICYZ6WWGGqBl1w1EOsjtp8vpHVo0XngwEDWLXx5YhLSVAiEAivGvOurhLYMrCes/2XUxhS6Ut/DY7rXIx0C/3P1waDI=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.4_1617368030587_0.04092862724189339" + }, + "_hasShrinkwrap": false + }, + "8.0.5": { + "name": "ajv", + "version": "8.0.5", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "b5642ea8655c3922de7f2403cc99d668871d35fb", + "_id": "ajv@8.0.5", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==", + "shasum": "f07d6fdeffcdbb80485570ce3f1bc845fcc812b9", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.0.5.tgz", + "fileCount": 458, + "unpackedSize": 979565, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZz4cCRA9TVsSAnZWagAAPzAP/RKxknmY2CmCYsXDDlhr\nLsWdnI6Ek35rfrUQfH6xseTvlvjUhb3hySbiUh4+3MH8VQpnBEGhLC80tJ9S\nvAVwfi9pa+MT/RnfEgZi6vx9GA4lLIA/xNyHCDN2RZUSrl6bM/0Dk7eJi806\nwO+QVCMr+vT7GfzrRMw3mKnOn3XJMoj0cmqcT7UyJFgB4URLtxaZ0frCnCXP\nZ3nfIsvuE3P7O/POBNUhHCXOblJJL7q1CAgHqAPyK2Y4lfb92U5D6u67cBn+\nY0X4a73thrxYsN3Eis0m9ziQ8Vu/WQHGYeE/wnCjdIamn3AWBIlznJ2oU4cP\nZgrzQnkRcl4by9hQ24NGDhE+wWsaxEJgSEPPHcpjODml1FYfrePFsXk3PzrA\nIwUgkQ7wMrORQRA4qZgzkttqgdtQqgrwI5UzZeealOyfznkkPi2nyWB5i2WM\nhkdHrS/J+GjESCQdCwqEw0oD7gbKN00wNax3o3tXh2UW/zgGDjAr5KIBF+6E\nsJg7wcGy9qosmOK62b3wg4FqN0s/aXrg3wNL1w9uTgU5jdj+1rRPSlN06kmF\njD/BivOK+uxrrD+ZGalTBezRc50ITjdFDuyakEPrF6FMs2b0/rGFmrLuebso\npSW6quOCAVdXkt+XCgpFZn7ZC/aCax+2kibBnEGpOqXe+WgY+t+UQJ/69Z0z\nibUx\r\n=iMZC\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD++bp9pUeiuAJ9vcAN4dRPQ/zKYuJNqaxQOmxpmpQTMgIgSeWXMgboUQ33t4NwayN8vVfYXKU10qp+nSH1cTPGtMg=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.0.5_1617378843463_0.9631326227977666" + }, + "_hasShrinkwrap": false + }, + "8.1.0": { + "name": "ajv", + "version": "8.1.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "terser": "^5.2.1", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "df07f668131c6670e9ed624f60d6419a4da9a3c8", + "_id": "ajv@8.1.0", + "_nodeVersion": "14.16.0", + "_npmVersion": "6.14.11", + "dist": { + "integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==", + "shasum": "45d5d3d36c7cdd808930cc3e603cf6200dbeb736", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.1.0.tgz", + "fileCount": 458, + "unpackedSize": 980522, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcylACRA9TVsSAnZWagAAObEP/jqDELz9d8KSWuuZe7NG\nIhYLxtX6UZw5ETimXgMebaQA0GMaD++s9iVuNOtjfcUtt9Q4jkugpqhDIpFv\n9lF6NI8kciK+pGVlGlng2X45k7hg+zlL8JWIekRWoFZ+80xc1AaPiV69mXWc\noWea9FVxiYs5FpQog2KIxA6EoPf5ne8Yu0lW4SJASt7iCEbQos3APzBmTVrz\nIZVVPnunSqdaXOqr1rOkRJFLjHHT+HHcXjNFw3TpUQKULwBl8zEu6jtSGLkl\n9qNRXhGbPNui0UHGiCsYd6prI0qsLdufTxW0eAfAQiush5QQJEGSk8Y9IGuo\nbai11J12be4g5f8FcCkHS1loM+aI5Pe+c6YB8zaqxCPX4O+vMpi4YyGqRuAO\n3d7ZcrVIIDtFQMzX0vtMR1CgQCm4sU44Zx/oDjBAYD7dZ/1UhRgrER/iL84E\nzhGff21C4b+2YYl8a+Wh/PJfZNe4bbozBE7Qq0swvJRIb9QnnBQOMIllPrQQ\nH/UqnYVKoPzQEi67IdeQni69ojjwV4wIjVhdJ9f/sx0PIrl5ix19TBuBGr1v\n1SsFLjR763FTmR3ZqTuO++FSAYIXKY8pmjdgFReyahv0ujONXcRLm2yFi91C\niloI1yN2HBaYuMxlbwe+PiQ0s+3iHZd5o7zvAeQL5pQHi5chXtik7WyBI25W\nIcr9\r\n=fARX\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDOWPTXo53rjt+4rzB54ZDoARLxZV4uRs7a5BTorTmnIQIhAJvguHB5e4Jrs74nAvJhYJodt1z22rIUsy6xRa0cSW/Q" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.1.0_1618159936103_0.8768703964028881" + }, + "_hasShrinkwrap": false + }, + "8.2.0": { + "name": "ajv", + "version": "8.2.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^18.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^14.0.27", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "2123bf28c9ce9a948c32301ef5b2ed33359e3742", + "_id": "ajv@8.2.0", + "_nodeVersion": "14.16.1", + "_npmVersion": "6.14.12", + "dist": { + "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", + "shasum": "c89d3380a784ce81b2085f48811c4c101df4c602", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.2.0.tgz", + "fileCount": 458, + "unpackedSize": 985073, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiCkHCRA9TVsSAnZWagAAnZYQAIvRTdYlDVEsdKwKSOa4\nheKz1UH0mQsPDylFUOf1HVqkaKE9MTVoSsj6PFrLBbs7zqLituSIlHk0Uxkc\n/ySzmfLURro2MFhwg4iL6JJRDSdzYy7PJMGxOMFNj4V/wL8BfrXLhBlmljrd\nlgLQG2fI2QEonKbJNN0rU11fPhxLVo0PPl8jrmAlfPKfuwh50yAqBF8/F61M\nvsJajs+l6+szx4kk7/WWtShWo3UNoxkgUb5TOIruTPSj3/VtPCau2I75V49x\nawH04jjjPNtZdavOxoZ8krLhesIvLGbdva3zwrKMausiH8QhKVcBrvrCpgFk\nHsVNX2cG2vRDash9y+M5mot1aVuXOWh86MkzQ4l+g+qfyR4sJiaoOBCXWczI\ntiugAlYNoVR9XH+7h8v8QnUjdLuIj/vq6sg76GAlMoAL3nuO+WjjXKW9p+92\nfU7st0L8LVvfhEMQUltqsgGfvh8NvfKmIUSie4feR4kdoTGVq4JF01nbzhSD\nSq0HApNB2QZpNmfn3VBMTKm8zw1laTJ1OyuBwsLw6twB/XqRN0JDELL9r62B\nPcwzWKD9GH/Yp2vsfSgC/KLAisjUrR68VYwE7ORMYMpEYPiS+GnTFeWlyFTe\nJhJzFPSK3XbW4Dv2xC0z/rr8Fb9luv1EGh2IJp/LoOfOV6MBf1io5FAVVZ05\nXN82\r\n=CrVI\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGrGE74bPNrzTBZTl23kHIn7KT/JEWPki5jUSNf9htKEAiEAs3OIfI7974YZDP5ai4FMGWsJtDGNS562csrlt0QCr2U=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.2.0_1619536134601_0.930788876360908" + }, + "_hasShrinkwrap": false + }, + "8.3.0": { + "name": "ajv", + "version": "8.3.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^18.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^15.0.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^5.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "dec89097def11e48d2de94e3e214405f18658986", + "_id": "ajv@8.3.0", + "_nodeVersion": "14.16.1", + "_npmVersion": "6.14.12", + "dist": { + "integrity": "sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==", + "shasum": "25ee7348e32cdc4a1dbb38256bf6bdc451dd577c", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.3.0.tgz", + "fileCount": 458, + "unpackedSize": 988475, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgl8jDCRA9TVsSAnZWagAA2MsQAKL7BzqpySQtuka+6IGW\nVPeBWRuE1/qqPOj5rY/qBZyNo6VnqMSF9gQBmCv/s3GA/f3yn7SyN1AzhM2O\nOAxrpUlfx6+wClpr+ZB9g13CM+dMtu9GvsHanJBj9iVgrp6FtFDc3eUPbxXS\nUhmYfGLDb3PGBuzHMq7meDQIjxmG+Wi/AiwKjPIWVspBK5FrgvF6zVpqiZVE\n5fdIoMO+GBhYeZI40AMlvKtzhhgRYU6OOvZidX/+84TWXgsmoS0FhhypI2C2\nRwglxpRTNR2mRTlP4mNycIsu3qIzNdqVg42QHW9MNS+8V0zY0nw+ktL0xFxp\n0+wrH0GyYv38lKAmt9h2wY7XFYROlN6SCCoUn4umtOSQnrCLHT76fUotFhJg\nlr6ewCjEE+wUGQ6YzeEeoRhoFvURkwX1yFQc3PldC6zSklB282V6+3fIADCj\no21z3BvHMLUKipe2+xGUsbyDbhq+P7JGVH3eh4KhJQafd1Uf73U+ZEWXPeyG\nBZu4eZl6GstC8VXzDQbfXRbU1XvIHbcTq1qAI1E4apiCzo2h0piEGC9IDknz\n4qj6apHAmWjznQuJ9sxDaMi4Xzfp3BHCEeOrTP37R/Ct9YvUQTVQquJHXi0q\nFM2lye0yLPkmkcjhCeWRwmuLiu1mDUL12Os5WIKkiKwaWQPiVwoN5em9LM/H\nBKGm\r\n=S0Mu\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC4j1lqnk7YEO4Kw7j4i3DvkKp9s3MZPBbQRfJIQFRsggIgSlB+nLAR9NpWlYy3I3DsfZRRyQe6EP1d5oNttQocfI0=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.3.0_1620560067325_0.05086957557406735" + }, + "_hasShrinkwrap": false + }, + "8.4.0": { + "name": "ajv", + "version": "8.4.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^18.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^15.0.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "84abab262528969bc19879f86039be116df10964", + "_id": "ajv@8.4.0", + "_nodeVersion": "14.16.1", + "_npmVersion": "6.14.12", + "dist": { + "integrity": "sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q==", + "shasum": "48984fdb2ce225cab15795f0772a8d85669075e4", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.4.0.tgz", + "fileCount": 458, + "unpackedSize": 990584, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgntmYCRA9TVsSAnZWagAAKCsP/RyDKU6Hrq7mEyyK/Soj\n6VyWke78FdXVo+HJETg2FO3Nn81h/SARxClnu1aAulEpZvCZMg2k64/vk0Vb\nXO2gfgHMH/uObBFBAONpUECpIH96WbmwfwCr550p7VDQf3aC3IUfBNosAZF/\ntJIhHZiB9phi1PlHKZ8sDlI6thc+MKsSmYQ/UdL0uvLN0J0GeujwRcpPZf3y\nW9IzUitZpiyCj3bv2i+jtcD3gdd0Yus2DhF5llWgW9rrZ0bo8oc4RjEwP8/J\nM8o7fMqiAXNCktUhJROofHpobJEuyh4I8J2r/nYBjJBA2HOeQnIGfw9lXFRa\nXloSH3iVZKIiBc0mKsdXmnRJZdULWOYNS7L710tND5Rr4zoGvIXyUfW/GlZN\n3yJYPEu69cHj/tzAms8gpvJyblEsEvLqj1DF9Aa49TLmnoUI+zEqZXrfWxGu\nEnzRsFdrLdAHjfXDdSFk24dbT92JxsWvEAN3s22gnpTgOfBbfxUvNLiHriZP\nhwy4nntzI2uNJXrsERgN7XdHZI+0Q5qoUU6m3ZSPGlbsRDyoni0LvIDX8IsB\n55vnDiqmD/tvDSph+OBYZYhsrJLUY+W7vbfuxVJkEbmAtG5bDj8OsXvt7RWm\nwe8So8Lm8XJAWEn9+RI+ybqEW5nhZMbFIvjuF+tGI2JZ7crJOEZsRspHh+7k\nl3MW\r\n=XWRn\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBot+BlwnKf64Iv4BgOxrZPjiiGOsGpKaTz5Mhp/Y5g6AiBQCR3hUDossDcWXSIMgp4xcIh/EJEUdG7VyJk0OBEsOw==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.4.0_1621023128388_0.7353005585410983" + }, + "_hasShrinkwrap": false + }, + "8.5.0": { + "name": "ajv", + "version": "8.5.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^18.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^15.0.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^10.2.11", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.0.5", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^9.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "be07d3d8c0aac8fffe68378d25bdd892c61ba2e5", + "_id": "ajv@8.5.0", + "_nodeVersion": "14.17.0", + "_npmVersion": "6.14.13", + "dist": { + "integrity": "sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==", + "shasum": "695528274bcb5afc865446aa275484049a18ae4b", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.5.0.tgz", + "fileCount": 458, + "unpackedSize": 993887, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpmU4CRA9TVsSAnZWagAAicwQAJidyvbz3bIAeGYHai01\n2HCpG6psPIsYHA27ukfrQPloRKsEYa5Fav7oH3mfy9kSbxQpE+zWmR9RMWlI\ntea/4TvERhYFYPunKLozKxzapKYUNg+c2srXt9Tl4W28YBMav9/sicU9FH0w\n/qBd5t9LxMdz0DbyrbDcgcq81EfOysqgku4WNNvdna6HYyaCcfVhm3T0wTdS\nmI1HTz76b6bhL6I5U2ckSMDuJW4GCR1P7KAIhIdtQ6tNSLcntt96HltCpxbI\npCuK1vWTKyWzCBzInJmkAd1t6J2cS6jusYRYsyqPiE91u4dAeLsZQrsBzfkN\nWc2+3BppvVY1D8xyPVXPZaggOaXrwu8GqRWLIYbrMm09d+H76lgWJNpoMFmZ\niLzKMNDz04n8s0rGS5k20kCDVrLxraSXjXcadjcv2+mVBIErk/Riw1SZhZSS\n+uCcGHw2Bw7mOocu70437fwG4Js5QeUnF8mg+HdxlLvpUNhRsEZm0NFwNmaa\nq/h9Xl8rmeqVySuZgF2tuJBtAB/HaDh0JwmaWhN+22lI2+E2hgd/X/+dfAeH\nruvhdxfdN+BA1/2Z1oDt9j0IbvnI0iqJUduhjo8Kbw/nA8ztaU3OWg4eVp7h\nCkNdB8vXoM6f+jNAV7rtiPWOcgcNiJD//+s+0q42YTqqUdaVL0uuBzN8LQjH\nBiVm\r\n=Rki5\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCTkvnAMcGGT66hJq1NGiKAITcp3a3n/5j4aE0Ea6oqKwIhAI1MA5ySZF03P9+hFW/Jnd0QRrhaRGfOojA0y+H2nQdZ" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.5.0_1621517623520_0.2034396048160314" + }, + "_hasShrinkwrap": false + }, + "8.6.0": { + "name": "ajv", + "version": "8.6.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^19.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^15.0.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "f8708387a5be62fbd0becc0cedfc580021a5c5da", + "_id": "ajv@8.6.0", + "_nodeVersion": "14.17.0", + "_npmVersion": "6.14.13", + "dist": { + "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", + "shasum": "60cc45d9c46a477d80d92c48076d972c342e5720", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.6.0.tgz", + "fileCount": 458, + "unpackedSize": 997144, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvOJcCRA9TVsSAnZWagAAvQEP/iz/nIYLWARPdb7aFYVu\nVUJ9QXJx0pf0j+wzhQRznxoMWK5obpJY5cadEFlBmvsz9yu1RKt9N1wf6Wsv\n0GEm76248GuCi4+add6kQwSaODYK2wnQM9G8wpBZny4i/Eci1ylRoaNsCH7w\n4o5stbuPHCc7IP5diH6ZfFixX7LuRGrFEMpHHHfnGXLVNJd/n0RIFaEyNE3u\nxvZMH1fMTdwvC33MOQTcel19fZ1k0MDag45qKYbvpvZZCNtv8VjeMDT4/tL5\n0p0tXkAzTPqP4r0DuwPha8QLhzq4Tp7GwaxhqT0sPV7V0MntLqKj/qxiZTyt\n2rDXAEGg7PbMg59zKsmKsC8X+BVqQqtoA9FRHywKFEAtAe1XnSeFn/WTMb+T\n9q5inxs1MOMRlgnm2JfmT1IleCBWOe2jfyspH9OjHkNkQQpRqxt5h4bHNDrn\nfQJF3cgdyI4VIVUWUHHRd2iT4wgA8g//qT0cePf2VPOaD+CpVYrx1Pa7O9Ju\nOVJ6tfgAKxq4vzI2UZtR2BBQtYO0tIgkv7KXVS5xHAuz8MhJUcfRl3LJTm4W\nceFWq6OioF7HdbRieekLlFpn2r0+Kioo7ecyuVEA6H92cs8ROGfPJwu7DHNM\neseLo1X6bYyq0NY8tvB7TEDW2+iIsjfZlOls6w37JTMbLqS/95/WFBfrHncN\ne7IE\r\n=gfVm\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDzOCkWwgnrkiVKpWfwnJf96Pr4LfCA2wa8VoBwkwBj2AIgTDrWy4QNFSK9a/8mqVHUCK3opLQNmqum9ZtLu16oRQ0=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.6.0_1622991452432_0.2906901136533957" + }, + "_hasShrinkwrap": false + }, + "8.6.1": { + "name": "ajv", + "version": "8.6.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^19.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^15.0.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^6.0.0", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "9166e38f9ee7e125e283890c60a594d18bb63614", + "_id": "ajv@8.6.1", + "_nodeVersion": "14.17.1", + "_npmVersion": "6.14.13", + "dist": { + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", + "shasum": "ae65764bf1edde8cd861281cda5057852364a295", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.6.1.tgz", + "fileCount": 458, + "unpackedSize": 997724, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4YUOCRA9TVsSAnZWagAA9/MP/A/JVYP3mXrMtputqlQ7\n+oRL2PiVO5J5n95KG5ueDG2mSi3w9rDMdVc+mG6iUuxWic4fwwptkIXycGQE\nQNkZfKOli2afry4HCEj2ECbaZDuMzxKfs9j5+io72ocDvAxOBfbZylC7UE4b\nNr4ZtRdUGyzIgfM2vzdqfyIgIMFVYHFM7h8jwyZaVPBGOHnIEKz1XWbmSKgf\nsNDx7AFBDqQr4ghW9HQ9zS16xTJ+ezNk3sAoSwUZim6vPvyWMjbGOQ7UDxur\nA0ia6ZSw15S7dxOvKDutn8o46Xpcf+AlyOT/8KlblSfEDmvR08yVs1w3QNrx\nAlQFspdawHhkCmAoaGbRTEGrAIveApZssus/mJ6EvN7KGar+mB3WNIoXX9Qq\n04HB4UwfVA3v96D8GcwCPy1b2Vdavxz1QkG7LMm3F4ekhttHI2Uj8CjABouT\nDMzAvFanvth9C8t6cr4ohrVU6O1V3eJnlvLGkrJAsY+wrXwc5CTKvL8tYosZ\ncC6NQSXHEtgdPxG0wvv3AfsjHrRdJafuzFAR8Iu8YiLWYvFi1enH9f9m83oy\njQQIOE/W8ZnhHWtFasx5DhGmta6C+VeOtJG0NHXo2u21A/jlS1KMfZohflHN\n72Qy2bUsIi7tKu8BZTWHWv5VepFqkPtyUWvRTsu3WbSgwSRJB1YUa+xsGL3n\ntEJI\r\n=qUzO\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIF8TBhbrFUCmH/r4cXBp/9hvGxTDd+/8d3UFvV7a9AJhAiBUS6cRsHzlzKPSgoiqe7rstwB7UO0y60Pjvwr3/eT8LA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.6.1_1625392397723_0.7562276567285842" + }, + "_hasShrinkwrap": false + }, + "8.6.2": { + "name": "ajv", + "version": "8.6.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^19.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.3", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^8.0.1", + "node-fetch": "^2.6.1", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "a04657014022c9ecb9ae0738b2ac07cb0d76cf3f", + "_id": "ajv@8.6.2", + "_nodeVersion": "14.17.3", + "_npmVersion": "6.14.13", + "dist": { + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "shasum": "2fb45e0e5fcbc0813326c1c3da535d1881bb0571", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.6.2.tgz", + "fileCount": 458, + "unpackedSize": 997742, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8JbbCRA9TVsSAnZWagAAdDAQAIjez5ftPLlfAdXrUOWn\nmSBuMmagbRbIJ9GzQEq8lqnE3B2bT7ChnpAsv+V1fQ5CI4nSG2Ov50hW0Scc\n3E6tTBqW8mq7VyaNX9vdgbV7GQaA53dE1a0L3oA8K6nFjr3+CsjIFj4dgWO2\nzAPr1r64FLAghNEV0hAo5m/8agM29+mSTxkVzGrnX7mP6P3RvHFiEzqsCUu/\n10R5Urko5Mr0BaHC2hbkMoa4SzaqGr6Z+duD5Y+3JEDQjbrtmQZ50SouO4vc\nf9Ste+450bH2fJ+yGVrzJFglaOZ/U25CrmJTP2bKLS7E/aHW5liTioLRIwWo\nq8VdZ2qRomfzDCV/s5xMvZ2wjgQxamfnqRxPt60+QzKWNonUrltdDm7wupeH\nHyoSIx4Z2NU9Ldpz/qWN8rh4Zd1anAFTQBOw9GcRL3nUqYcUZNG9diXNjxVR\nVEvD88doQwdkIFXGHYhPVx97ql+deqOgrL+S5stoWtCNMGS3vA2jh3wKPYRu\nmIHTNd20o1c0n1u9EVMkkr69i6yDtGqgRHZg8IT1pQYcVreYwwSjBRD7nQ6R\n/pyG0fbz8B4SZaTVtBm6XGp6bSO4MmsIH8aWwtb6RD8mXymbYOiw+O13NIag\nFtn32Bjwsa5r2ZtfuqeLgktOHQ+uMIZT+N55OdJ0JGBpQwlx/6tZoyY3EJ97\nAQQD\r\n=zw9V\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCXcqA9FO+MAGIBg/47nXYXVxCIMZnSwpMUu7mEk2u+ewIgW7/ckkv/SBNOMu2v+D6BT5cC627yIKHYiHYM8fRsKWI=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.6.2_1626379995375_0.996525796725164" + }, + "_hasShrinkwrap": false + }, + "8.6.3": { + "name": "ajv", + "version": "8.6.3", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" scripts --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot -g \\(.recursiveRef.with.no..recursiveAnchor\\|.dynamicRef.with.no..dynamicAnchor\\).in.the.initial.target.schema.resource -i", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^20.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "@vuepress/shared-utils": "^1.8.2", + "ajv-formats": "^2.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0", + "vuepress": "^1.8.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "760fd100cd36df29c7fda41a23aad0ed537dfa58", + "_id": "ajv@8.6.3", + "_nodeVersion": "14.17.6", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "shasum": "11a66527761dc3e9a3845ea775d2d3c0414e8764", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.6.3.tgz", + "fileCount": 458, + "unpackedSize": 1005628, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPkT8CRA9TVsSAnZWagAAZIAP/1318U1NmCG2kzms99Bv\nCjJhsQ2UIe6KdQJRb9l7PA5xgmDvgex8ET0A8KXCKH3XZDjMm0cuXW8qjjDn\n+D8SJ4UfPR6xNvY7vINnR+dqFUgRJAZ53eafO8sWHfNXq+pBa+yPbt6J7Av8\nE2IagMeqJIqA5UrYrnzyCrEsCd0g1lRf/1ct5FLfKS/U41052hU90Pvg9acp\nH0T8sBnCnOwKZboUUTC+dbz7nDUs9ujnsNGg2b1FJbgtsTV40RgWprEvt561\nCXhsJtFgu+DSWWe4BE45G32HUWlynrq/oCPIE4Rxa/EC/wAILdY9m/Ba4UuP\nEF4sQqwhlPtYv3ghgHI9bqP0xa8B+oNUjdd47NrAoexaSNA2U19I4dxHSBDx\nwPmp+YvYj+wizso5fz5e4dIQ/Jn0h8Wq72OOH+eiE7jM1yF85iZph247/KAv\n08mCriWN3pawdvHPCtwCYVFipKrtcLgu72R0GvLtCGfExzMiYDJe38AnNT9K\ndEDfyECfREaJTpDfj4AchrEmbmMKV64tiC2FRgDXlK8yuSIaC1IE8vGvAd/S\nQSGUD0oOSapnU+52HuaTTKROKz0zp1HgR5V3gkAgV54VlAY6oRRR+lCQ9fsZ\nwxL+WPAVfXi0MJjptPLDgAKjP8y43xiWRMMjN80bC2Xwu72nBfhPzpCn4pDP\nNcg9\r\n=htFk\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDcELRVVCV9F8AQ3pLL+z5KQdB/OcPtV10DDUsH2FTCBQIgRMVDebyEibshAJ+wsP+6DO0LyVPB2YvVKtLsUNrhMy0=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.6.3_1631470844543_0.706804260232037" + }, + "_hasShrinkwrap": false + }, + "8.7.0": { + "name": "ajv", + "version": "8.7.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "da46e38a0d4bc85e1c891dcc3ab526fc28961d18", + "_id": "ajv@8.7.0", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-fX9/Yiy9YwnP/QB/4zqBpTavtL4YuXpiHlXlkE0y2itGcO++ixFIg+NFk1l0TfHjt11EDDhHAhLVe0rFgTBaGA==", + "shasum": "643a9dd10bcaf6b084162f9d1f551091dd6650aa", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.7.0.tgz", + "fileCount": 458, + "unpackedSize": 1006454, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDNHi3jqKAt2+zgV5gPIn6jxGkaYBxsaU6orWK9Hqm4HAIhAKTOOfmooV9slwrIRSwPomOgtEEHRecdPEuazNFhgRjA" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.7.0_1636402533987_0.9727572277831318" + }, + "_hasShrinkwrap": false + }, + "8.7.1": { + "name": "ajv", + "version": "8.7.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "bundle": "rm -rf bundle && rollup -c", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "8fccddb4161cfe4d63f2b8987d58f6c10a6bf005", + "_id": "ajv@8.7.1", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==", + "shasum": "52be6f1736b076074798124293618f132ad07a7e", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.7.1.tgz", + "fileCount": 458, + "unpackedSize": 1006454, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIENJFi1pQWtMvB8AbMubpJNBknIPneCZZwtoS+EIEK1oAiEAxQeXwuKJkd7UNkh0i9ibH90ckLqJ6IyXG/EkutU4dfY=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.7.1_1636405951365_0.754909540995621" + }, + "_hasShrinkwrap": false + }, + "8.8.0": { + "name": "ajv", + "version": "8.8.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "62048a170893d51451d10b05eb13587a5a27a562", + "_id": "ajv@8.8.0", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==", + "shasum": "c501f10df72914bb77a458919e79fc73e4a2f9ef", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.8.0.tgz", + "fileCount": 462, + "unpackedSize": 1009069, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGczusX+XAC1cCnow7urv1N/8Vg4jaHzg8zVKFsaVp3TAiEAgTyTAHMSyga24rnMRF3rPKEODMaYm1dBzwVDrX7ZimA=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.8.0_1636828384709_0.035928155380404725" + }, + "_hasShrinkwrap": false + }, + "8.8.1": { + "name": "ajv", + "version": "8.8.1", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "4cc0cad069a42ef110b8ac01be20c887cc876623", + "_id": "ajv@8.8.1", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-6CiMNDrzv0ZR916u2T+iRunnD60uWmNn8SkdB44/6stVORUg0aAkWO7PkOhpCmjmW8f2I/G/xnowD66fxGyQJg==", + "shasum": "e73dd88eeb4b10bbcd82bee136e6fbe801664d18", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.8.1.tgz", + "fileCount": 462, + "unpackedSize": 1009069, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlBJ1CRA9TVsSAnZWagAAxMgP/AnECjaA9T13kBqBSS0R\nJDN/MVF2SHf76Bzhs2rShJz/HeU6NUB83Me072lE89imrmT+l1uUuDB2GGjf\ngjPp9A0vrR1hf4BByK6/ZrsN4idoxJGfErMMGf+gyLbYcGyo+3arHRZbecmh\nkQN+4E9Ub+soPDlxcpvHkzUJRFLybiIIJawBYFf0GavzCicy42fGXGo/j6RU\ni6LeMMhSnmyCdeSIEwCywlxNXVNx85j6uRNeI1ZZq2X3HR8bG5IgMD44nCaM\n1PWHvDvlbEgL2Z4rWtweWiiXwvtyIc16DRlLjQvexAzaruh4xhB6MUDeTZCa\nGie4Gmw/Es1Ec/2DkPCovBXXz/ncAD7vb+8kdmU4l7vCeMCNhi1XneyCpyUc\nedhBsGjkJp4MNjPqCnBaSewpqhkS7DInPWWM37mKDFYk4jbSfDMJeUTpiVU7\nug1y/VWuHNQUV2mDbsM4GJmgxsy/qWvjGy8EkZ2h6JuXTCSEo9upzfeyeJiK\nJ36lBGr+yluHQAsY2L8J8jGoogufEqGx/qobOJpXrnWyg8yBbGbIj2hEdvCK\nFV0Q6cKZWGT1NIo2toriRTmgeL+/vlE1Rbg6QxmZwCVdLiqCFDs3ys2wppzd\nn6w/BB4sd33QACwt6/hPznk2W1wzdpQRZmD5PPP1dukh2rufyaaLC1zaBO67\nS+fD\r\n=Smc7\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDuEboHjiHs8QJJiwgK2BKLZPCZTkYowq2iRbw65BqqPAiAD46ZydAdQIjoOsnyTb+NiIDfnAT3yuYHgXXT6ZBWYgA==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.8.1_1637094005157_0.3347696741575781" + }, + "_hasShrinkwrap": false + }, + "8.8.2": { + "name": "ajv", + "version": "8.8.2", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^16.3.2", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^11.0.0", + "mocha": "^9.0.2", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "b2bf7504bab515db60ad276dc015b9c14f775607", + "_id": "ajv@8.8.2", + "_nodeVersion": "14.18.1", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "shasum": "01b4fef2007a28bf75f0b7fc009f62679de4abbb", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.8.2.tgz", + "fileCount": 462, + "unpackedSize": 1009162, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmpjiCRA9TVsSAnZWagAAxJcP/R1lntz7NwGw0cWVRUl7\nMTU1lSwCwW7vQo+lq56HzyyboZWr2eOpZUwQtb72FB0ehE4tPb/NF4IWivBq\nNXJmti6++KMMVkpXUJEy79go96O7CuBz7GEAkpo2k91Ce22qvEHeI4iNRgHw\najqdDW7FXMIFfHebkICOTxVdP0ER3r+gMAhS4qSNbhxWFvOVOzQm3TvIB99q\nQh6VYXA9wcSe6BfsjT4wIUogNrRi5dEkN2HrUmAB8UaZsdpapzVOcPgMgU+Q\n1V+4ZFnya0cfSZ1Bkyrzajmh70Q1yG/fka8tMxSYuauihvmPJWbuAfmO2wxn\nT0AbxFSg5R58vJEk6rR7co3DtPphq9AMcC2NWukZJE0XmbRik4/T2B8rWj8s\nt8ULJYsC/rl1hV+VH7OfheKrAPaRYj1gc4IxQBiP5YGX3//9h2HQAVoZzyt3\nBn/BP6v1Q2+rp4W5JYc6UvEjaMi/ZXdhs0o6285HzZ4VXvK+TdmlEwun/q3a\nTr3G17vt/g/EviQOad++poqe9rgBwlzuDRe4TbcqQQueowSRQrmmSaB1CXyb\n45qBlvcpfMNHNSl6lGH/n0rP4U0yjEv3vbf6oK16cgMWEgWrwQeUvuhqwSb+\nYkpc7qzRIvfzFdqjLGi5OqMJ7gC/Ns/4WMJa1JQWeaiFsSWwpTVzUQ86w1H6\nBwcs\r\n=/ftt\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICGbLDLh1Sg6J8k4x7+lAXjngPb307Jb8a3fVmy2RWQFAiAJE/DuZzXPfdogOdB6ca0Q3aZqfXZMHHwQ8vwWUpb+4Q==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.8.2_1637521634718_0.0026152001312946815" + }, + "_hasShrinkwrap": false + }, + "8.9.0": { + "name": "ajv", + "version": "8.9.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^17.0.0", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^12.1.1", + "mocha": "^9.0.2", + "module-from-string": "^3.1.3", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "979d46b1585a92e4343bf9e4505f61139c3eecf8", + "_id": "ajv@8.9.0", + "_nodeVersion": "14.18.3", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "shasum": "738019146638824dea25edcf299dcba1b0e7eb18", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.9.0.tgz", + "fileCount": 462, + "unpackedSize": 1012740, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4sWMCRA9TVsSAnZWagAA/CcP/iHvDdkHXiGZLHzWVinB\nZpPtuEY0mq3TtfsK2npviTzJ7R1KUCbg7NZS4eduqaUxZRmbKMDksbWNhHQ4\nRFmiVYUaRnLPvX3FsFMgQ165xm5fnzenXWzoHZyO9m8snZcA80Aqa+aEryEb\n5C2cWbHE5sCylrptDDu1m4uJoo8xJZnQ05n3UqqnUt9T0YWMrzdREQGOjqhU\nZURHlguTKamVbHd25APWJZNc4J6EL/ejqJc1pbwM7KHxeBYmrn3DPhtXR5x8\n3SWqVx57lCNiMVGJqYfaNryer+5e4cybfxb+EE2Rx0XNuSZ40DarFDXQGsRD\nMTHqLXB6OIeYNtOaaN+B7muccmGsg1fFu9Yb6OPPSIXornh4fSbG0WFjjwmp\n0zIT+dhO+P3mwJ0nn6xHebXVIn4FlZ1gv68fQg7d3cb8XB3spYK0ASLrEEoY\n/8E9XecsCFlLWGjfrEi+0iuM31me2+efSnfizylJkpaHXX4LsLCwfAPWXRnf\n/JZ3h1BuEUmbqP8guHTgyC4hlgpzUSj636Aguvy5e75mY6UyKm674Cu8YQdO\nOCCddmE12ezY41BtAX5vsn4IMvHUvWleUk8EL4wG6ydRwKV9qMQES3nEbLZQ\nmfLelhmj9InZvQi0x4zBUoTrMIgFBFOruWb4g8sYf2y17E/c81Haa37nHfD0\naXs8\r\n=ZiQ8\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC2j0sp3f0aJHDXI55OkG41nMQlp6RuD/j0EPsjPfKQWwIhAKMUEyb7iLxqNtwugL+iYhW9zzgohj2s+7sxHKbXdqs4" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.9.0_1642251660058_0.9221599369011317" + }, + "_hasShrinkwrap": false + }, + "8.10.0": { + "name": "ajv", + "version": "8.10.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^17.0.0", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "fast-uri": "^1.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^12.1.1", + "mocha": "^9.0.2", + "module-from-string": "^3.1.3", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "a27f78264ab1c3951d5131f27181d0a50e54aed0", + "_id": "ajv@8.10.0", + "_nodeVersion": "14.18.3", + "_npmVersion": "6.14.15", + "dist": { + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "shasum": "e573f719bd3af069017e3b66538ab968d040e54d", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.10.0.tgz", + "fileCount": 466, + "unpackedSize": 1016629, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/W7iCRA9TVsSAnZWagAAaLUP/1hksgauRb5lI5wLT16b\nyaTP4MwaNuUzUyp5IPmMLPD7gecxDy+AMHLSw3Q98qbZqVu72l8voPQxjTn8\nTUpWO/Mj6R2DcwDHPZfKqM1ZZ1Z4dB1HgF3QQfS/0NXMZj7JZLv64hLsO+Aj\nEiR3rHqvWvxmzP2fUDDKQiDLBQ8Jpkt3wuj4sHno9aFMIO61I7FwGMNmzJQN\nNEp4l5lTkDV4roSBDLswpXOM8STdaFSmbKAfKcrz65S8yYWmpjcYjCHPVYa6\nLnRfsQ1N7UZLTZVgvMut16w6fqKp9kA7beHIJ1S863PGSLtVbkmNgCEcUyF5\nBk0urjDkORs1BoS+NgpYcByyhUsfBaJMcVS2viIsKmcaMKRv46rnBJge0QEx\nF8H85JyoeBcj6MC874e19CWAgCBroivQ/LOuLxCkrYl6SLnosDl8WzKq3EQ+\nbsuTSA8rp2W6e/jEpfWZR/CBV3g+GfrdISwqAx9bQwr1U2ZZUwoCyI1KYIuT\nX4t6WaPbwAk+/PRyH6moaupfktpuUZm9ZyHl6ZIkXFmHxgdPAJa4HXW0d6v2\nvY0eI5a9gB3I5/Juz147V8IMMS+ExsMQ8OdBCIiwm34ri5hp7lEArTktisHV\n7QyadS+0VuY7ZJghBXHxTIeQgZ5wwXmLbe6e8NNCRz+4aRbrLo5HsSUISzyM\nKL1z\r\n=HLGP\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHHNWCWcdd1ReXhYOCyYylkQD2Bzd0a5N/2mD20RyHnvAiBBvuozay7qa3D7seQyAKyGetQUPqiAfZnx6dmlE4mA4g==" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.10.0_1643998946582_0.10137826404974248" + }, + "_hasShrinkwrap": false + }, + "8.11.0": { + "name": "ajv", + "version": "8.11.0", + "description": "Another JSON Schema Validator", + "main": "dist/ajv.js", + "types": "dist/ajv.d.ts", + "scripts": { + "eslint": "eslint \"lib/**/*.ts\" \"spec/**/*.*s\" --ignore-pattern spec/JSON-Schema-Test-Suite", + "prettier:write": "prettier --write \"./**/*.{json,yaml,js,ts}\"", + "prettier:check": "prettier --list-different \"./**/*.{json,yaml,js,ts}\"", + "test-spec": "cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register \"spec/**/*.spec.{ts,js}\" -R dot", + "test-codegen": "nyc cross-env TS_NODE_PROJECT=spec/tsconfig.json mocha -r ts-node/register 'spec/codegen.spec.ts' -R spec", + "test-debug": "npm run test-spec -- --inspect-brk", + "test-cov": "nyc npm run test-spec", + "rollup": "rm -rf bundle && rollup -c", + "bundle": "rm -rf bundle && node ./scripts/bundle.js ajv ajv7 ajv7 && node ./scripts/bundle.js 2019 ajv2019 ajv2019 && node ./scripts/bundle.js 2020 ajv2020 ajv2020 && node ./scripts/bundle.js jtd ajvJTD ajvJTD", + "build": "rm -rf dist && tsc && cp -r lib/refs dist && rm dist/refs/json-schema-2019-09/index.ts && rm dist/refs/json-schema-2020-12/index.ts && rm dist/refs/jtd-schema.ts", + "json-tests": "rm -rf spec/_json/*.js && node scripts/jsontests", + "test-karma": "karma start", + "test-browser": "rm -rf .browser && npm run bundle && scripts/prepare-tests && karma start", + "test-all": "npm run test-cov && if-node-version 12 npm run test-browser", + "test": "npm run json-tests && npm run prettier:check && npm run eslint && npm link && npm link --legacy-peer-deps ajv && npm run test-cov", + "test-ci": "AJV_FULL_TEST=true npm test", + "prepublish": "npm run build", + "benchmark": "npm i && npm run build && npm link && cd ./benchmark && npm link --legacy-peer-deps ajv && npm i && node ./jtd", + "docs:dev": "./scripts/prepare-site && vuepress dev docs", + "docs:build": "./scripts/prepare-site && vuepress build docs" + }, + "nyc": { + "exclude": ["**/spec/**", "node_modules"], + "reporter": ["lcov", "text-summary"] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "author": { "name": "Evgeny Poberezkin" }, + "license": "MIT", + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "homepage": "https://ajv.js.org", + "runkitExampleFilename": ".runkit_example.js", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "devDependencies": { + "@ajv-validator/config": "^0.3.0", + "@rollup/plugin-commonjs": "^21.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.0", + "@rollup/plugin-typescript": "^8.2.1", + "@types/chai": "^4.2.12", + "@types/mocha": "^9.0.0", + "@types/node": "^17.0.0", + "@types/require-from-string": "^1.2.0", + "@typescript-eslint/eslint-plugin": "^3.8.0", + "@typescript-eslint/parser": "^3.8.0", + "ajv-formats": "^3.0.0-rc.0", + "browserify": "^17.0.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "dayjs": "^1.10.4", + "dayjs-plugin-utc": "^0.1.2", + "eslint": "^7.8.1", + "eslint-config-prettier": "^7.0.0", + "fast-uri": "^1.0.0", + "glob": "^7.0.0", + "husky": "^7.0.1", + "if-node-version": "^1.0.0", + "jimp": "^0.16.1", + "js-beautify": "^1.7.3", + "json-schema-test": "^2.0.0", + "karma": "^6.0.0", + "karma-chrome-launcher": "^3.0.0", + "karma-mocha": "^2.0.0", + "lint-staged": "^12.1.1", + "mocha": "^9.0.2", + "module-from-string": "^3.1.3", + "node-fetch": "^3.0.0", + "nyc": "^15.0.0", + "prettier": "^2.3.1", + "re2": "^1.16.0", + "rollup": "^2.44.0", + "rollup-plugin-terser": "^7.0.2", + "ts-node": "^10.0.0", + "tsify": "^5.0.2", + "typescript": "^4.2.0" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ajv" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + }, + "prettier": "@ajv-validator/config/prettierrc.json", + "husky": { "hooks": { "pre-commit": "lint-staged && npm test" } }, + "lint-staged": { "*.{json,yaml,js,ts}": "prettier --write" }, + "gitHead": "c067d6d9c3285054ea4c0a2d2adbbc8b5d631935", + "_id": "ajv@8.11.0", + "_nodeVersion": "14.19.0", + "_npmVersion": "6.14.16", + "dist": { + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "shasum": "977e91dd96ca669f54a11e23e378e33b884a565f", + "tarball": "http://localhost:4545/npm/registry/ajv/ajv-8.11.0.tgz", + "fileCount": 466, + "unpackedSize": 1016907, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOktjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJaxAAlaVvTQ2Odj3CLA5v+enMW0jEAGeGlyYxD0Ts+DiQAB4WfJNX\r\nVe0RbcTH/zgnFoDlDEOfcx1/1fEDGn92EfMNH4B+ltJE5qyOPaAVYZeE4+A3\r\nl7P3z01LhKtp911KBXT4DaZ1VXAwvr9rc5tubleEy5iv51Pr9Y2ytB8jNXtC\r\nUpTlwJbKlgP8xvyBs/rZLG7igxdWsA1UWSWU3o90eKBB1Bg6fL8is8ZPMabR\r\nPSINIR4L7T2dSSUlsdzs7RijmZQbu9rzc/Wzz+JR9rc7eufoMUkj0nXkMg84\r\nFP7A3zVGuRZyw0/2dOL3yqMn58DHQaVayFiHQhPDWfG2OJwpTIvDKAuMP2kE\r\nIT3215DU3aUdQvPLNCsSz2B1LnjVPJKOIwAOCRCx5AG+S6jQf2cZWs4QHBzH\r\n6LczlMxWyktXuZvW7a5EvuQGPfaWXGC/uhzXoFUQdukvyez6kR8Ud5tm2yDZ\r\n1KVRxuvq9y+7ZrtHgn4EquzXanJRny6glk5qwlNcxVY5mKPWnxoFgX2W5f4+\r\navGLINZXtGr9prKOyobeQ0kmRP6BPs7QG2NR8eCGrZXVNDD5PU0qM8qPpCoq\r\nnns6qwr7wk3reYcMXewd7ZDP1FaXED/VOmZFCLkK5DlWO12BHCcddpOfZiS5\r\n+l0dQlmSC3TBRvuzsAv2BzTSw19SeHFebto=\r\n=GDNg\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBvHJRPXJkPRNoscrSJ8kMjkbE/LlkpAlxhMcZma8ljPAiEAoT5UriPgOHdP72VlfTAzIq6qQyMFATTzsNuwOhTbU1U=" + } + ] + }, + "_npmUser": { "name": "esp", "email": "e.poberezkin@me.com" }, + "directories": {}, + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ajv_8.11.0_1647987555563_0.09423244421860977" + }, + "_hasShrinkwrap": false + } + }, + "readme": "\"Ajv\n\n \n\n# Ajv JSON schema validator\n\nThe fastest JSON validator for Node.js and browser.\n\nSupports JSON Schema draft-04/06/07/2019-09/2020-12 ([draft-04 support](https://ajv.js.org/json-schema.html#draft-04) requires ajv-draft-04 package) and JSON Type Definition [RFC8927](https://datatracker.ietf.org/doc/rfc8927/).\n\n[![build](https://github.com/ajv-validator/ajv/workflows/build/badge.svg)](https://github.com/ajv-validator/ajv/actions?query=workflow%3Abuild)\n[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)\n[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master)\n[![SimpleX](https://img.shields.io/badge/chat-on%20SimpleX-%2307b4b9)](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2Fap4lMFzfXF8Hzmh-Vz0WNxp_1jKiOa-h%23MCowBQYDK2VuAyEAcdefddRvDfI8iAuBpztm_J3qFucj8MDZoVs_2EcMTzU%3D)\n[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)\n[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin)\n\n## Ajv sponsors\n\n[\"Mozilla\"](https://www.mozilla.org)[](https://opencollective.com/ajv)\n\n[\"Microsoft\"](https://opensource.microsoft.com)[](https://opencollective.com/ajv)[](https://opencollective.com/ajv)\n\n[\"Retool\"](https://retool.com/?utm_source=sponsor&utm_campaign=ajv)[\"Tidelift\"](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=enterprise)[\"SimpleX\"](https://github.com/simplex-chat/simplex-chat)[](https://opencollective.com/ajv)\n\n## Contributing\n\nMore than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.\n\nPlease review [Contributing guidelines](./CONTRIBUTING.md) and [Code components](https://ajv.js.org/components.html).\n\n## Documentation\n\nAll documentation is available on the [Ajv website](https://ajv.js.org).\n\nSome useful site links:\n- [Getting started](https://ajv.js.org/guide/getting-started.html)\n- [JSON Schema vs JSON Type Definition](https://ajv.js.org/guide/schema-language.html)\n- [API reference](https://ajv.js.org/api.html)\n- [Strict mode](https://ajv.js.org/strict-mode.html)\n- [Standalone validation code](https://ajv.js.org/standalone.html)\n- [Security considerations](https://ajv.js.org/security.html)\n- [Command line interface](https://ajv.js.org/packages/ajv-cli.html)\n- [Frequently Asked Questions](https://ajv.js.org/faq.html)\n\n## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin)\n\nSince I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!\n\nYour continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.\n\nPlease sponsor Ajv via:\n\n- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it)\n- [Ajv Open Collective](https://opencollective.com/ajv)\n\nThank you.\n\n#### Open Collective sponsors\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Performance\n\nAjv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.\n\nCurrently Ajv is the fastest and the most standard compliant validator according to these benchmarks:\n\n- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place\n- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster\n- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\nPerformance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):\n\n[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=62,4,1&chs=600x416&chxl=-1:|ajv|@exodus/schemasafe|is-my-json-valid|djv|@cfworker/json-schema|jsonschema&chd=t:100,69.2,51.5,13.1,5.1,1.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)\n\n## Features\n\n- Ajv implements JSON Schema [draft-06/07/2019-09/2020-12](http://json-schema.org/) standards (draft-04 is supported in v6):\n - all validation keywords (see [JSON Schema validation keywords](https://ajv.js.org/json-schema.html))\n - [OpenAPI](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md) extensions:\n - NEW: keyword [discriminator](https://ajv.js.org/json-schema.html#discriminator).\n - keyword [nullable](https://ajv.js.org/json-schema.html#nullable).\n - full support of remote references (remote schemas have to be added with `addSchema` or compiled to be available)\n - support of recursive references between schemas\n - correct string lengths for strings with unicode pairs\n - JSON Schema [formats](https://ajv.js.org/guide/formats.html) (with [ajv-formats](https://github.com/ajv-validator/ajv-formats) plugin).\n - [validates schemas against meta-schema](https://ajv.js.org/api.html#api-validateschema)\n- NEW: supports [JSON Type Definition](https://datatracker.ietf.org/doc/rfc8927/):\n - all keywords (see [JSON Type Definition schema forms](https://ajv.js.org/json-type-definition.html))\n - meta-schema for JTD schemas\n - \"union\" keyword and user-defined keywords (can be used inside \"metadata\" member of the schema)\n- supports [browsers](https://ajv.js.org/guide/environments.html#browsers) and Node.js 10.x - current\n- [asynchronous loading](https://ajv.js.org/guide/managing-schemas.html#asynchronous-schema-loading) of referenced schemas during compilation\n- \"All errors\" validation mode with [option allErrors](https://ajv.js.org/options.html#allerrors)\n- [error messages with parameters](https://ajv.js.org/api.html#validation-errors) describing error reasons to allow error message generation\n- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package\n- [removing-additional-properties](https://ajv.js.org/guide/modifying-data.html#removing-additional-properties)\n- [assigning defaults](https://ajv.js.org/guide/modifying-data.html#assigning-defaults) to missing properties and items\n- [coercing data](https://ajv.js.org/guide/modifying-data.html#coercing-data-types) to the types specified in `type` keywords\n- [user-defined keywords](https://ajv.js.org/guide/user-keywords.html)\n- additional extension keywords with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package\n- [\\$data reference](https://ajv.js.org/guide/combining-schemas.html#data-reference) to use values from the validated data as values for the schema keywords\n- [asynchronous validation](https://ajv.js.org/guide/async-validation.html) of user-defined formats and keywords\n\n## Install\n\nTo install version 8:\n\n```\nnpm install ajv\n```\n\n## Getting started\n\nTry it in the Node.js REPL: https://runkit.com/npm/ajv\n\nIn JavaScript:\n\n```javascript\n// or ESM/TypeScript import\nimport Ajv from \"ajv\"\n// Node.js require:\nconst Ajv = require(\"ajv\")\n\nconst ajv = new Ajv() // options can be passed, e.g. {allErrors: true}\n\nconst schema = {\n type: \"object\",\n properties: {\n foo: {type: \"integer\"},\n bar: {type: \"string\"}\n },\n required: [\"foo\"],\n additionalProperties: false,\n}\n\nconst data = {\n foo: 1,\n bar: \"abc\"\n}\n\nconst validate = ajv.compile(schema)\nconst valid = validate(data)\nif (!valid) console.log(validate.errors)\n```\n\nLearn how to use Ajv and see more examples in the [Guide: getting started](https://ajv.js.org/guide/getting-started.html)\n\n## Changes history\n\nSee [https://github.com/ajv-validator/ajv/releases](https://github.com/ajv-validator/ajv/releases)\n\n**Please note**: [Changes in version 8.0.0](https://github.com/ajv-validator/ajv/releases/tag/v8.0.0)\n\n[Version 7.0.0](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0)\n\n[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0).\n\n## Code of conduct\n\nPlease review and follow the [Code of conduct](./CODE_OF_CONDUCT.md).\n\nPlease report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team.\n\n## Security contact\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.\n\n## Open-source software support\n\nAjv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.\n\n## License\n\n[MIT](./LICENSE)\n", + "maintainers": [ + { "name": "blakeembrey", "email": "hello@blakeembrey.com" }, + { "name": "esp", "email": "e.poberezkin@me.com" } + ], + "time": { + "modified": "2022-06-13T02:34:02.048Z", + "created": "2015-05-29T22:33:14.989Z", + "0.0.4": "2015-05-29T22:33:14.989Z", + "0.0.5": "2015-05-29T22:54:15.469Z", + "0.0.6": "2015-05-29T23:29:05.805Z", + "0.0.7": "2015-05-29T23:30:34.265Z", + "0.0.8": "2015-05-30T08:54:32.262Z", + "0.0.9": "2015-05-30T08:59:50.749Z", + "0.0.10": "2015-05-30T10:50:33.733Z", + "0.0.11": "2015-05-30T18:11:21.515Z", + "0.0.12": "2015-05-30T20:10:46.548Z", + "0.1.0": "2015-05-30T22:05:16.542Z", + "0.1.1": "2015-05-30T23:42:28.944Z", + "0.1.2": "2015-05-31T00:11:45.840Z", + "0.1.3": "2015-05-31T01:01:44.939Z", + "0.1.4": "2015-05-31T09:47:27.976Z", + "0.1.5": "2015-05-31T11:21:59.955Z", + "0.1.6": "2015-05-31T17:40:16.586Z", + "0.1.7": "2015-05-31T20:46:42.129Z", + "0.1.8": "2015-06-01T01:00:08.605Z", + "0.1.9": "2015-06-01T17:51:44.247Z", + "0.1.10": "2015-06-01T22:44:00.710Z", + "0.1.11": "2015-06-01T23:14:54.510Z", + "0.1.12": "2015-06-02T00:59:48.826Z", + "0.1.13": "2015-06-03T21:30:56.159Z", + "0.1.14": "2015-06-03T23:17:48.218Z", + "0.1.15": "2015-06-03T23:31:39.001Z", + "0.1.16": "2015-06-04T17:04:24.567Z", + "0.2.0": "2015-06-04T20:43:29.201Z", + "0.2.1": "2015-06-04T22:09:18.191Z", + "0.2.2": "2015-06-04T23:44:18.866Z", + "0.2.3": "2015-06-05T18:08:24.214Z", + "0.2.4": "2015-06-05T20:38:32.546Z", + "0.2.5": "2015-06-06T01:08:01.193Z", + "0.2.6": "2015-06-06T01:40:29.318Z", + "0.2.7": "2015-06-06T13:13:46.327Z", + "0.2.8": "2015-06-06T15:19:02.504Z", + "0.2.9": "2015-06-06T18:44:25.222Z", + "0.3.0": "2015-06-07T20:55:50.274Z", + "0.3.1": "2015-06-07T20:59:08.400Z", + "0.3.2": "2015-06-07T23:20:03.433Z", + "0.3.3": "2015-06-07T23:32:14.776Z", + "0.3.4": "2015-06-08T06:45:46.961Z", + "0.3.5": "2015-06-08T07:02:12.159Z", + "0.3.6": "2015-06-10T20:51:30.704Z", + "0.3.7": "2015-06-10T22:59:02.241Z", + "0.3.8": "2015-06-12T10:43:55.629Z", + "0.3.10": "2015-06-12T21:12:53.124Z", + "0.3.11": "2015-06-12T22:31:05.529Z", + "0.3.12": "2015-06-13T09:27:35.123Z", + "0.4.0": "2015-06-13T12:01:18.880Z", + "0.4.1": "2015-06-13T12:55:34.208Z", + "0.4.2": "2015-06-13T15:35:37.382Z", + "0.4.3": "2015-06-13T22:42:06.936Z", + "0.4.4": "2015-06-14T08:04:37.959Z", + "0.4.5": "2015-06-14T09:06:02.012Z", + "0.4.6": "2015-06-15T07:03:31.736Z", + "0.4.7": "2015-06-15T10:14:59.183Z", + "0.4.8": "2015-06-15T15:31:02.604Z", + "0.4.9": "2015-06-15T23:21:32.851Z", + "0.4.10": "2015-06-16T14:10:55.936Z", + "0.4.12": "2015-06-16T17:16:40.649Z", + "0.4.14": "2015-06-16T21:20:19.365Z", + "0.4.15": "2015-06-16T21:54:34.049Z", + "0.5.0": "2015-06-17T01:06:16.112Z", + "0.5.2": "2015-06-17T15:01:45.873Z", + "0.5.3": "2015-06-17T21:06:22.558Z", + "0.5.4": "2015-06-17T21:24:10.021Z", + "0.5.5": "2015-06-18T19:50:11.731Z", + "0.5.6": "2015-06-19T00:00:10.090Z", + "0.5.7": "2015-06-19T10:40:04.993Z", + "0.5.8": "2015-06-20T14:37:41.033Z", + "0.5.9": "2015-06-20T17:42:13.103Z", + "0.5.10": "2015-06-22T13:40:40.647Z", + "0.5.11": "2015-06-23T16:27:20.498Z", + "0.5.12": "2015-06-23T23:44:08.346Z", + "0.6.0": "2015-06-24T00:28:55.952Z", + "0.6.1": "2015-06-30T23:31:42.236Z", + "0.6.2": "2015-07-20T16:41:46.983Z", + "0.6.3": "2015-07-21T18:18:18.689Z", + "0.6.4": "2015-07-21T21:36:48.393Z", + "0.6.5": "2015-07-21T22:09:03.819Z", + "0.6.6": "2015-07-21T22:20:20.261Z", + "0.6.7": "2015-07-22T15:33:12.876Z", + "0.6.8": "2015-07-24T09:48:18.819Z", + "0.6.9": "2015-07-26T10:01:24.946Z", + "0.6.10": "2015-07-30T08:22:29.151Z", + "0.6.11": "2015-07-31T18:52:46.577Z", + "0.6.12": "2015-08-06T23:14:50.168Z", + "0.6.13": "2015-08-07T00:55:20.873Z", + "0.6.14": "2015-08-08T09:58:13.385Z", + "0.6.15": "2015-08-08T18:26:38.859Z", + "0.7.0": "2015-08-09T11:51:14.897Z", + "0.7.1": "2015-08-11T07:28:24.043Z", + "0.7.2": "2015-08-16T01:13:01.895Z", + "1.0.0": "2015-08-17T17:23:01.027Z", + "1.0.1": "2015-08-21T22:43:52.986Z", + "1.1.0": "2015-08-22T21:25:09.847Z", + "1.1.1": "2015-08-23T10:45:49.244Z", + "1.2.0": "2015-08-23T20:37:30.227Z", + "1.2.1": "2015-08-23T23:54:29.847Z", + "1.3.0": "2015-09-02T23:10:00.756Z", + "1.3.1": "2015-09-02T23:31:49.579Z", + "1.3.2": "2015-09-07T09:13:20.058Z", + "1.4.0": "2015-09-13T00:06:34.662Z", + "1.4.1": "2015-09-22T22:24:24.453Z", + "1.4.2": "2015-09-23T22:48:36.121Z", + "1.4.3": "2015-10-02T21:23:28.533Z", + "1.4.4": "2015-10-10T23:17:39.822Z", + "1.4.5": "2015-10-15T17:58:38.934Z", + "1.4.6": "2015-10-25T00:23:18.801Z", + "1.4.7": "2015-10-25T11:45:09.212Z", + "1.4.8": "2015-10-25T22:12:13.067Z", + "1.4.9": "2015-11-07T14:09:25.378Z", + "2.0.0-beta.0": "2015-11-13T14:35:35.798Z", + "2.0.0-beta.1": "2015-11-14T23:14:14.681Z", + "1.4.10": "2015-11-17T20:40:23.302Z", + "2.0.0-beta.2": "2015-11-17T23:10:49.902Z", + "2.0.0-beta.3": "2015-11-17T23:24:59.628Z", + "2.0.0": "2015-11-22T01:28:10.264Z", + "2.0.1": "2015-11-22T02:17:31.906Z", + "2.0.2": "2015-11-24T06:44:47.137Z", + "2.0.3": "2015-11-26T22:57:04.293Z", + "2.0.4": "2015-11-27T09:27:00.421Z", + "2.1.0": "2015-11-28T15:12:08.655Z", + "2.1.2": "2015-11-28T22:40:06.539Z", + "2.1.3": "2015-11-29T01:45:30.526Z", + "2.1.4": "2015-12-04T22:22:09.562Z", + "2.2.0": "2015-12-05T21:28:23.007Z", + "2.2.1": "2015-12-06T22:10:50.214Z", + "2.2.2": "2015-12-07T22:08:53.825Z", + "2.3.0": "2015-12-11T21:44:43.025Z", + "2.4.0": "2015-12-12T21:58:19.063Z", + "2.5.0": "2015-12-19T19:01:14.847Z", + "3.0.0": "2015-12-27T21:47:12.752Z", + "3.0.1": "2015-12-27T22:11:06.728Z", + "3.0.2": "2015-12-27T22:13:29.171Z", + "3.0.3": "2015-12-28T12:21:21.359Z", + "3.0.4": "2015-12-30T23:06:17.096Z", + "3.1.0": "2016-01-02T17:19:51.060Z", + "3.1.1": "2016-01-04T22:27:56.450Z", + "3.2.0": "2016-01-09T14:51:08.862Z", + "3.2.1": "2016-01-13T22:19:38.405Z", + "3.2.2": "2016-01-13T22:26:48.139Z", + "3.2.3": "2016-01-14T21:46:25.144Z", + "3.3.0": "2016-01-15T07:00:54.899Z", + "3.3.1": "2016-01-16T16:15:30.383Z", + "3.4.0": "2016-01-17T15:19:50.504Z", + "3.5.0": "2016-02-01T18:16:33.904Z", + "3.5.1": "2016-02-01T23:39:43.968Z", + "3.5.2": "2016-02-04T20:03:03.564Z", + "3.5.3": "2016-02-05T09:21:42.084Z", + "3.6.0": "2016-02-13T21:17:18.753Z", + "3.6.1": "2016-02-13T22:13:57.672Z", + "3.6.2": "2016-02-14T20:43:21.889Z", + "3.7.0": "2016-02-17T23:04:53.239Z", + "3.7.1": "2016-02-21T13:29:50.917Z", + "3.7.2": "2016-02-24T09:27:10.734Z", + "3.8.0": "2016-02-28T23:08:33.753Z", + "3.8.1": "2016-03-01T00:27:50.883Z", + "3.8.2": "2016-03-02T15:01:22.570Z", + "3.8.3": "2016-03-07T06:57:28.152Z", + "3.8.4": "2016-03-09T23:23:28.025Z", + "3.8.5": "2016-03-14T21:19:51.543Z", + "3.8.6": "2016-03-20T19:33:30.110Z", + "3.8.7": "2016-03-25T20:35:00.360Z", + "3.8.8": "2016-03-31T17:36:07.915Z", + "3.8.9": "2016-04-10T10:54:31.603Z", + "3.8.10": "2016-04-11T19:49:16.279Z", + "4.0.0": "2016-04-15T23:01:04.906Z", + "4.0.1": "2016-04-18T20:21:24.078Z", + "4.0.2": "2016-04-20T20:22:32.876Z", + "4.0.3": "2016-04-22T09:23:04.646Z", + "4.0.4": "2016-04-23T18:56:49.440Z", + "4.0.5": "2016-05-03T09:00:45.531Z", + "4.0.6": "2016-05-22T01:12:00.499Z", + "4.1.0": "2016-05-27T20:31:38.085Z", + "4.1.1": "2016-06-01T06:18:57.294Z", + "4.1.2": "2016-06-04T20:43:09.189Z", + "4.1.3": "2016-06-11T11:08:59.437Z", + "4.1.4": "2016-06-26T20:33:49.387Z", + "4.1.5": "2016-06-28T20:47:11.092Z", + "4.1.6": "2016-07-09T23:39:32.781Z", + "4.1.7": "2016-07-10T17:52:32.033Z", + "4.1.8": "2016-07-21T23:49:03.464Z", + "4.2.0": "2016-07-22T14:52:00.767Z", + "4.3.0": "2016-07-28T22:48:31.588Z", + "4.3.1": "2016-08-05T19:34:02.584Z", + "4.4.0": "2016-08-07T12:11:05.957Z", + "4.4.1": "2016-08-14T23:35:26.915Z", + "4.5.0": "2016-08-15T21:21:02.481Z", + "4.6.0": "2016-08-29T22:31:04.206Z", + "4.6.1": "2016-08-30T20:00:28.158Z", + "4.7.0": "2016-09-06T21:55:39.383Z", + "4.7.1": "2016-09-19T16:31:33.378Z", + "4.7.2": "2016-09-19T19:35:02.212Z", + "4.7.3": "2016-09-22T16:59:01.285Z", + "4.7.4": "2016-09-24T18:00:25.813Z", + "4.7.5": "2016-09-28T14:21:24.557Z", + "4.7.6": "2016-10-02T17:36:02.092Z", + "4.7.7": "2016-10-05T18:46:26.819Z", + "4.8.0": "2016-10-16T16:42:18.731Z", + "4.8.1": "2016-10-19T08:39:47.744Z", + "4.8.2": "2016-10-19T23:42:26.698Z", + "5.0.0-beta.0": "2016-11-08T19:29:00.351Z", + "4.9.0": "2016-11-14T21:01:11.669Z", + "5.0.0-beta.1": "2016-11-30T21:21:38.421Z", + "4.9.1": "2016-12-03T21:51:46.263Z", + "4.9.2": "2016-12-06T21:47:20.301Z", + "4.9.3": "2016-12-10T22:33:35.659Z", + "4.10.0": "2016-12-11T12:52:50.689Z", + "4.10.1": "2016-12-23T17:45:51.517Z", + "4.10.2": "2016-12-24T02:33:31.471Z", + "4.10.3": "2016-12-25T00:17:28.071Z", + "5.0.1-beta.0": "2016-12-31T00:39:48.657Z", + "4.10.4": "2017-01-05T20:03:54.651Z", + "5.0.1-beta.1": "2017-01-20T23:50:49.769Z", + "4.11.0": "2017-01-21T00:17:03.538Z", + "4.11.1": "2017-01-21T00:32:49.653Z", + "4.11.2": "2017-01-21T21:45:30.184Z", + "5.0.1-beta.2": "2017-01-23T21:04:55.936Z", + "5.0.1-beta.3": "2017-02-04T23:03:04.383Z", + "4.11.3": "2017-02-12T19:18:31.652Z", + "5.0.2-beta.0": "2017-02-12T19:39:58.543Z", + "5.0.3-beta.0": "2017-03-01T08:16:12.271Z", + "4.11.4": "2017-03-04T18:34:14.362Z", + "4.11.5": "2017-03-11T21:44:40.803Z", + "5.0.4-beta.0": "2017-03-12T18:46:07.515Z", + "5.0.4-beta.1": "2017-03-19T19:57:27.319Z", + "5.0.4-beta.2": "2017-03-25T16:33:52.791Z", + "4.11.6": "2017-04-07T22:56:39.286Z", + "5.0.4-beta.3": "2017-04-08T20:11:49.373Z", + "4.11.7": "2017-04-17T13:30:20.293Z", + "5.0.0": "2017-04-17T14:42:02.925Z", + "4.11.8": "2017-04-28T19:23:19.500Z", + "5.0.1": "2017-04-28T20:22:58.769Z", + "5.1.0": "2017-05-14T11:17:43.732Z", + "5.1.1": "2017-05-14T22:50:06.073Z", + "5.1.2": "2017-05-19T19:53:53.922Z", + "5.1.3": "2017-05-20T21:35:14.447Z", + "5.1.4": "2017-05-25T21:17:53.558Z", + "5.1.5": "2017-05-28T19:59:05.385Z", + "5.1.6": "2017-06-15T22:37:03.209Z", + "5.2.0": "2017-06-16T23:13:12.823Z", + "5.2.1": "2017-07-06T23:29:07.429Z", + "5.2.2": "2017-07-10T22:19:43.806Z", + "5.2.3": "2017-09-25T20:57:08.615Z", + "5.2.4": "2017-10-22T15:16:21.145Z", + "5.2.5": "2017-10-24T10:32:11.174Z", + "5.3.0": "2017-10-24T19:00:24.392Z", + "6.0.0-beta.0": "2017-11-06T07:43:01.783Z", + "6.0.0-beta.1": "2017-11-06T10:18:18.756Z", + "6.0.0-beta.2": "2017-11-12T10:13:30.663Z", + "5.4.0": "2017-11-20T21:23:25.571Z", + "5.5.0": "2017-11-24T20:45:49.264Z", + "6.0.0-rc.0": "2017-11-26T10:49:05.261Z", + "5.5.1": "2017-12-02T12:48:13.998Z", + "6.0.0-rc.1": "2017-12-03T17:59:06.388Z", + "5.5.2": "2017-12-16T20:35:18.715Z", + "6.0.0": "2018-01-07T15:32:13.671Z", + "6.0.1": "2018-01-11T22:04:19.983Z", + "6.1.0": "2018-01-26T19:08:17.617Z", + "6.1.1": "2018-01-30T19:43:41.417Z", + "6.2.0": "2018-02-26T08:23:58.517Z", + "6.2.1": "2018-03-03T21:22:14.792Z", + "6.3.0": "2018-03-17T19:53:05.496Z", + "6.4.0": "2018-03-25T10:37:19.849Z", + "6.5.0": "2018-05-08T20:49:29.979Z", + "6.5.1": "2018-06-10T12:07:59.343Z", + "6.5.2": "2018-06-30T18:57:47.002Z", + "6.5.3": "2018-08-17T16:28:53.005Z", + "6.5.4": "2018-09-23T11:04:08.808Z", + "6.5.5": "2018-11-04T21:47:17.207Z", + "6.6.0": "2018-11-29T07:22:47.772Z", + "6.6.1": "2018-11-29T10:59:52.022Z", + "6.6.2": "2018-12-16T21:10:59.894Z", + "6.7.0": "2019-01-13T17:59:39.547Z", + "6.8.0": "2019-02-02T20:04:07.359Z", + "6.8.1": "2019-02-02T20:07:09.047Z", + "6.9.0": "2019-02-09T22:22:22.323Z", + "6.9.1": "2019-02-10T08:42:28.330Z", + "6.9.2": "2019-02-22T20:16:31.617Z", + "6.10.0": "2019-03-03T11:27:56.582Z", + "6.10.1": "2019-07-06T18:15:06.046Z", + "6.10.2": "2019-07-14T14:16:08.400Z", + "6.11.0": "2020-01-18T09:11:13.146Z", + "6.12.0": "2020-02-22T13:51:48.960Z", + "6.12.1": "2020-04-18T19:38:30.061Z", + "6.12.2": "2020-04-19T23:18:22.163Z", + "6.12.3": "2020-07-04T16:02:12.780Z", + "6.12.4": "2020-08-15T09:07:56.590Z", + "6.12.5": "2020-09-13T16:23:15.885Z", + "7.0.0-alpha.0": "2020-09-15T14:58:25.284Z", + "7.0.0-alpha.1": "2020-09-16T13:40:23.006Z", + "7.0.0-beta.0": "2020-09-23T19:16:55.961Z", + "6.12.6": "2020-10-10T17:01:40.565Z", + "7.0.0-beta.1": "2020-10-10T18:14:42.993Z", + "7.0.0-beta.2": "2020-10-24T18:14:26.881Z", + "7.0.0-beta.3": "2020-11-05T08:18:22.163Z", + "7.0.0-beta.4": "2020-11-10T08:25:15.116Z", + "7.0.0-beta.5": "2020-11-15T16:52:15.815Z", + "7.0.0-beta.6": "2020-11-16T22:01:23.953Z", + "7.0.0-beta.7": "2020-11-22T11:37:54.151Z", + "7.0.0-beta.8": "2020-11-29T19:31:05.769Z", + "7.0.0-beta.9": "2020-12-02T08:18:25.409Z", + "7.0.0-rc.0": "2020-12-06T15:39:09.732Z", + "7.0.0-rc.1": "2020-12-09T20:49:34.360Z", + "7.0.0-rc.2": "2020-12-13T19:37:08.296Z", + "7.0.0-rc.3": "2020-12-14T19:11:11.603Z", + "7.0.0-rc.4": "2020-12-14T19:34:46.338Z", + "7.0.0-rc.5": "2020-12-14T20:08:45.313Z", + "7.0.0": "2020-12-15T19:12:40.866Z", + "7.0.1": "2020-12-16T19:42:08.498Z", + "7.0.2": "2020-12-19T18:42:18.067Z", + "7.0.3": "2021-01-02T11:09:13.331Z", + "7.0.4": "2021-02-01T21:04:46.913Z", + "7.1.0": "2021-02-11T08:42:08.664Z", + "7.1.1": "2021-02-17T09:09:58.171Z", + "7.2.0": "2021-03-07T10:00:58.343Z", + "7.2.1": "2021-03-07T19:03:07.134Z", + "8.0.0-beta.0": "2021-03-13T11:08:25.177Z", + "8.0.0-beta.1": "2021-03-15T07:56:51.410Z", + "8.0.0-beta.2": "2021-03-16T20:22:37.476Z", + "7.2.2": "2021-03-20T06:43:24.383Z", + "7.2.3": "2021-03-20T07:01:17.846Z", + "8.0.0-beta.3": "2021-03-21T18:44:36.581Z", + "8.0.0-beta.4": "2021-03-23T07:37:04.918Z", + "7.2.4": "2021-03-26T08:19:33.357Z", + "8.0.0": "2021-03-27T12:44:09.150Z", + "8.0.1": "2021-03-27T22:47:40.962Z", + "8.0.2": "2021-03-31T08:00:17.645Z", + "8.0.3": "2021-04-01T07:04:36.577Z", + "8.0.4": "2021-04-02T12:53:50.841Z", + "8.0.5": "2021-04-02T15:54:03.688Z", + "8.1.0": "2021-04-11T16:52:16.351Z", + "8.2.0": "2021-04-27T15:08:54.921Z", + "8.3.0": "2021-05-09T11:34:27.503Z", + "8.4.0": "2021-05-14T20:12:08.622Z", + "8.5.0": "2021-05-20T13:33:43.755Z", + "8.6.0": "2021-06-06T14:57:32.555Z", + "8.6.1": "2021-07-04T09:53:17.921Z", + "8.6.2": "2021-07-15T20:13:15.677Z", + "8.6.3": "2021-09-12T18:20:44.787Z", + "8.7.0": "2021-11-08T20:15:34.210Z", + "8.7.1": "2021-11-08T21:12:31.739Z", + "8.8.0": "2021-11-13T18:33:04.967Z", + "8.8.1": "2021-11-16T20:20:05.393Z", + "8.8.2": "2021-11-21T19:07:14.945Z", + "8.9.0": "2022-01-15T13:01:00.296Z", + "8.10.0": "2022-02-04T18:22:26.875Z", + "8.11.0": "2022-03-22T22:19:15.886Z" + }, + "homepage": "https://ajv.js.org", + "keywords": [ + "JSON", + "schema", + "validator", + "validation", + "jsonschema", + "json-schema", + "json-schema-validator", + "json-schema-validation" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/ajv-validator/ajv.git" + }, + "author": { "name": "Evgeny Poberezkin" }, + "bugs": { "url": "https://github.com/ajv-validator/ajv/issues" }, + "license": "MIT", + "readmeFilename": "README.md", + "users": { + "esp": true, + "dalcib": true, + "jason0518": true, + "robertpenner": true, + "janpotoms": true, + "kikar": true, + "slurm": true, + "xiechao06": true, + "cwagner": true, + "kevin.leptons": true, + "sopepos": true, + "antanst": true, + "zafaransari": true, + "lensi": true, + "ayozebarrera": true, + "rajiff": true, + "lichenhao": true, + "arielfr": true, + "wukaidong": true, + "ierceg": true, + "quocnguyen": true, + "horacio.casatti": true, + "gvn": true, + "david-ruzicka": true, + "raojs": true, + "princetoad": true, + "noyobo": true, + "sunnylost": true, + "lestad": true, + "panlw": true, + "tcrowe": true, + "nilz3ro": true, + "xueboren": true, + "kankungyip": true, + "qddegtya": true, + "ivan403704409": true, + "santi8ago8": true, + "nicknaso": true, + "nichoth": true, + "kontrax": true, + "abhilash503001": true, + "heineiuo": true, + "andrewhuffman": true, + "oleg_tsyba": true, + "slowmove": true, + "sasquatch": true, + "chaoliu": true, + "icognivator": true, + "yeelan0319": true, + "kakaman": true, + "wujr5": true, + "ndxbn": true, + "alopezsanchez": true, + "rvyshnevskyi": true, + "akshendra": true, + "kron4eg": true, + "mauriciolauffer": true, + "daniel-lewis-bsc-hons": true, + "zhenguo.zhao": true, + "jazzhuang": true, + "shuoshubao": true, + "hengkiardo": true, + "mysticatea": true, + "andygreenegrass": true, + "kshateesh": true, + "sinfex": true, + "astesio": true, + "kkicoo7": true, + "arefm": true, + "po": true, + "jakub.knejzlik": true, + "thangkt": true, + "danday74": true, + "vparaskevas": true, + "arai": true, + "deividasjackus": true, + "tsxuehu": true, + "ganeshkbhat": true, + "thevikingcoder": true, + "freightbpi": true, + "x-cold": true, + "esilva2902": true, + "charlie.wilson": true, + "daizch": true, + "cmbirk": true, + "ricardweii": true, + "sornaks": true, + "rafaesc92": true, + "shivayl": true, + "tommytroylin": true, + "sopov": true, + "yangwao": true, + "abnerlin": true, + "tztz": true, + "horrorandtropics": true, + "grabantot": true, + "cameronnokes": true, + "metaa": true, + "zuojiang": true, + "juanf03": true, + "hmacphail": true + } +} diff --git a/cli/tests/testdata/npm/registry/ansi-styles/ansi-styles-4.3.0.tgz b/cli/tests/testdata/npm/registry/ansi-styles/ansi-styles-4.3.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..39e6a784349d2bb96ec366a378911a04d5f571cd GIT binary patch literal 5849 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 literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/ansi-styles/registry.json b/cli/tests/testdata/npm/registry/ansi-styles/registry.json new file mode 100644 index 0000000000..36a7d12e8a --- /dev/null +++ b/cli/tests/testdata/npm/registry/ansi-styles/registry.json @@ -0,0 +1,1839 @@ +{ + "_id": "ansi-styles", + "_rev": "85-df2abb99eac01aea4e413fba47935fd1", + "name": "ansi-styles", + "description": "ANSI escape codes for styling strings in the terminal", + "dist-tags": { "latest": "6.1.0" }, + "versions": { + "0.1.0": { + "name": "ansi-styles", + "version": "0.1.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "main": "ansi-styles.js", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { "test": "mocha" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "licenses": [{ "type": "MIT" }], + "files": ["ansi-styles.js"], + "_id": "ansi-styles@0.1.0", + "dist": { + "shasum": "af63b736c8b14c5dc94af0f3818da822527c10c8", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-0.1.0.tgz", + "integrity": "sha512-S9N78mUU/qZFid8TNkgVFh796qnswzr+ho+GYuf3/3afqUTKlGKe/qN+2j7udlrbqjsrZGkrj+UCEvrRFeStfg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDRYgVTGvHrIq7Og4UBJYQvYKR3eDSnjcRMd19ES3jM5AIhAMb68zN8K9psZcQu+4Of1EI5OuSWkVyg9NjCjob0B2Ev" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.1.1": { + "name": "ansi-styles", + "version": "0.1.1", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["ansi-styles.js"], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { "test": "mocha" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "ansi-styles@0.1.1", + "dist": { + "shasum": "8f1618d24da7072a436f66b79c65385d7c1fe9cf", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-0.1.1.tgz", + "integrity": "sha512-vMKHQSsNruuO1fgtMI/I9Gc7jP3tXnv2QurI7L6QXZN3BmHsEhtd7TVy7qDzUpuRKaUxtpUlBrek5ZhhkBbLhQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIC0aJgfyP96hNCjr5FEK4lBaTSkBo0O9QC7WOwAmz9amAiAWWN0XcTm4Wwpf9Pq/d1yOiNOHmpeNCCyodoI+e5HTJQ==" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.1.2": { + "name": "ansi-styles", + "version": "0.1.2", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["ansi-styles.js"], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { "test": "mocha" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "ansi-styles@0.1.2", + "dist": { + "shasum": "5bab27c2e0bbe944ee42057cf23adee970abc7c6", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-0.1.2.tgz", + "integrity": "sha512-67aDATkGbpDcNIRjTtfPOGbQUepitKL7Kesl7SS72wV1FLvYEpLYXYFGcWHlhvB18uIoHZAHxmjfsckNMVckNg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAYttKopZ01JcjHhAIuitbV9MIUT+7TadkfGDghx50pyAiEA6Ike4TLijzKRDfP/zk+OZt3LdOHZJ5V8s/nZ9mTdNwU=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.2.0": { + "name": "ansi-styles", + "version": "0.2.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["ansi-styles.js"], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { "test": "mocha" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "ansi-styles@0.2.0", + "dist": { + "shasum": "359ab4b15dcd64ba6d74734b72c36360a9af2c19", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-0.2.0.tgz", + "integrity": "sha512-YyQBeLj0juxUC9uUXRpQ1ZAzPT1dnsn5vVeJLHYFq4Ct1p0rymUSyvckKCXCH9I0bh3jWDIETA5nXIaZVKlDyA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDmNRO4MgROcKCKyr+cHP2poBC9LE+EWT2G0ttJPsuINAiEA0ZZl7LBgb+Gl/Swo9oTRJ0bLUVCCbEIc/jt0jTAa84o=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "1.0.0": { + "name": "ansi-styles", + "version": "1.0.0", + "description": "ANSI escape codes for colorizing strings in the terminal", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/ansi-styles", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["ansi-styles.js"], + "main": "ansi-styles", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles.git" + }, + "scripts": { "test": "mocha" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "ansi-styles@1.0.0", + "dist": { + "shasum": "cb102df1c56f5123eab8b67cd7b98027a0279178", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-1.0.0.tgz", + "integrity": "sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCawl5mLAJ0kVnzqZ+AxQtfHi4mOr1xRkHULZxOLezqyAIgVpf3/aQ57vPJGxSxP7Kkc/xgSuKA9y6ZEDR2QaLsVCk=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.15", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "1.1.0": { + "name": "ansi-styles", + "version": "1.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/ansi-styles" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { "mocha": "*" }, + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "homepage": "https://github.com/sindresorhus/ansi-styles", + "_id": "ansi-styles@1.1.0", + "_shasum": "eaecbf66cd706882760b2f4691582b8f55d7a7de", + "_from": ".", + "_npmVersion": "1.4.9", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "dist": { + "shasum": "eaecbf66cd706882760b2f4691582b8f55d7a7de", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-1.1.0.tgz", + "integrity": "sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEPU864OQp7DgSU9AXNpOHK4yAAWvI99UMCEgxmBElSDAiBvIO9ty4uAsAha+OtYj48TQmtWVMraNRhn1o/CWmCYPA==" + } + ] + }, + "directories": {} + }, + "2.0.0": { + "name": "ansi-styles", + "version": "2.0.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/ansi-styles" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { "mocha": "*" }, + "gitHead": "8c71708c951ab5ba824487c67053fb8f1eb8b6ea", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "homepage": "https://github.com/sindresorhus/ansi-styles", + "_id": "ansi-styles@2.0.0", + "_shasum": "432b26162fea1b63c878896abc8cc5548f25063e", + "_from": ".", + "_npmVersion": "2.1.5", + "_nodeVersion": "0.10.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" } + ], + "dist": { + "shasum": "432b26162fea1b63c878896abc8cc5548f25063e", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-2.0.0.tgz", + "integrity": "sha512-0kjBHdIQSa1iuh2rs8Md1GQNHAKrefcRSp2W5OKQU1oBZgCSqQ5aG4o+r69irBlhIPwA8wUaPdN/FWZVIHW7rA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAQocR+KZqHu8RDVGjRE37tTHS3T72Ek/ZIq0DGr6mHAAiEAiUrPvGxFbeLDC2FzpTnoNLj4TS/j6wVExRbIrvmhnfA=" + } + ] + }, + "directories": {} + }, + "2.0.1": { + "name": "ansi-styles", + "version": "2.0.1", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/ansi-styles" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { "mocha": "*" }, + "gitHead": "da6541334e1681cb803f891fab8abf4313cc4bc1", + "bugs": { "url": "https://github.com/sindresorhus/ansi-styles/issues" }, + "homepage": "https://github.com/sindresorhus/ansi-styles", + "_id": "ansi-styles@2.0.1", + "_shasum": "b033f57f93e2d28adeb8bc11138fa13da0fd20a3", + "_from": ".", + "_npmVersion": "2.1.16", + "_nodeVersion": "0.10.35", + "_npmUser": { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + "dist": { + "shasum": "b033f57f93e2d28adeb8bc11138fa13da0fd20a3", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-2.0.1.tgz", + "integrity": "sha512-0zjsXMhnTibRx8YrLgLKb5NvWEcHN/OZEe1NzR8VVrEM6xr7/NyLsoMVelAhaoJhOtpuexaeRGD8MF8Z64+9LQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQChftvoE6wbxVGq0kMFSRJ57gEJivQWQot37JjthUMDTwIgQ2dCpoKN2KaHU199TIT0TwKY8iq5E+2DMhc8BCMLETc=" + } + ] + }, + "directories": {} + }, + "2.1.0": { + "name": "ansi-styles", + "version": "2.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/chalk/ansi-styles" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { "mocha": "*" }, + "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles", + "_id": "ansi-styles@2.1.0", + "_shasum": "990f747146927b559a932bf92959163d60c0d0e2", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + "dist": { + "shasum": "990f747146927b559a932bf92959163d60c0d0e2", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-2.1.0.tgz", + "integrity": "sha512-qGfeDJjjwuLKKzFsdbYhnbn4Hqxkel6cSzdCP5IYmT38eIzVxGCzcOceJNkMG0sD5QMFz8SauI5Y+5lwcgHIgA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDnpdD9hdGQmkMQsctjPHrYOBsZbJlYQEQlBynDrjzttwIhAL9c10O5YhEm+f298qUg4MbjskTJqZZo3V/etfLTmKqe" + } + ] + }, + "directories": {} + }, + "2.2.1": { + "name": "ansi-styles", + "version": "2.2.1", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { "mocha": "*" }, + "gitHead": "95c59b23be760108b6530ca1c89477c21b258032", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@2.2.1", + "_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe", + "_from": ".", + "_npmVersion": "3.8.3", + "_nodeVersion": "4.3.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHh2prCFZwahuHtzuSo2pE6Elj1AIQNKWAWw/ytmkefPAiB7JVjhCZ4tsZHwfaY1RsB9VMESxoHT5bB3pJnXphgr1w==" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ansi-styles-2.2.1.tgz_1459197317833_0.9694824463222176" + }, + "directories": {} + }, + "3.0.0": { + "name": "ansi-styles", + "version": "3.0.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "maintainers": [ + { "name": "qix", "email": "i.am.qix@gmail.com" }, + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "engines": { "node": ">=4" }, + "scripts": { "test": "xo && ava" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^1.0.0" }, + "devDependencies": { "ava": "*", "xo": "*" }, + "xo": { "esnext": true }, + "gitHead": "a80f4c8d155dc6d2c90c0a790ce2dc2e60e6defb", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@3.0.0", + "_shasum": "5404e93a544c4fec7f048262977bebfe3155e0c1", + "_from": ".", + "_npmVersion": "3.10.9", + "_nodeVersion": "7.2.0", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "shasum": "5404e93a544c4fec7f048262977bebfe3155e0c1", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-3.0.0.tgz", + "integrity": "sha512-caosO5GROQ6HZCO0PCuqFmKb0g2ow+7fvz60N3/A3ggyeDnFvLjW8mLR84eK/6hsh206bSm3s3j34bLKJPcnLw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD7venaNuAJCBsAVEI6opbc2mQTvo4N7tj851qo7NSfjQIgPAoAAOgf5TSENXsBNXu/EWbcWH/RTVxSfjjEkU0EdMo=" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/ansi-styles-3.0.0.tgz_1484644594587_0.7388329922687262" + }, + "directories": {} + }, + "3.1.0": { + "name": "ansi-styles", + "version": "3.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "maintainers": [ + { "name": "dthree", "email": "threedeecee@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" }, + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "engines": { "node": ">=4" }, + "scripts": { "test": "xo && ava" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^1.0.0" }, + "devDependencies": { "ava": "*", "babel-polyfill": "^6.23.0", "xo": "*" }, + "ava": { "require": "babel-polyfill" }, + "gitHead": "a8f7d0f353eca6d67bad277b6437860fbc0d007e", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@3.1.0", + "_shasum": "09c202d5c917ec23188caa5c9cb9179cd9547750", + "_from": ".", + "_npmVersion": "4.6.1", + "_nodeVersion": "8.0.0", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "shasum": "09c202d5c917ec23188caa5c9cb9179cd9547750", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-3.1.0.tgz", + "integrity": "sha512-1jXmDD7l38qjk7yqmpFMLvs94InTmzcupUKdP2N4YjuDy5gNRJc1J5zb3Q/ur6FKxep0GW+2vK2qL82GEAwwCQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC3/FMTqAa8GlPUV9SltNHfSTEI+sFS7rBs7CktE8w4mgIgVq1rpKXapuJpfjcI71B0iVM0UfA9vP8CAx73YK33Cdc=" + } + ] + }, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles-3.1.0.tgz_1497307320106_0.3296520886942744" + }, + "directories": {} + }, + "3.2.0": { + "name": "ansi-styles", + "version": "3.2.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=4" }, + "scripts": { "test": "xo && ava" }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^1.9.0" }, + "devDependencies": { "ava": "*", "babel-polyfill": "^6.23.0", "xo": "*" }, + "ava": { "require": "babel-polyfill" }, + "gitHead": "3340c4d536078a51fd7b5049e939c43c5ab05db3", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@3.2.0", + "_npmVersion": "5.3.0", + "_nodeVersion": "8.2.1", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "shasum": "c159b8d5be0f9e5a6f346dab94f16ce022161b88", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-3.2.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEuVVC7x7QVA3wcmy6N5R/FvCl85Kz2GXjgJ8iw0P54HAiAK+/bvLwH/Q6HoglnG5DWDc+sFxxWUBVFyGfw5f+jilw==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles-3.2.0.tgz_1500809147099_0.7141686324030161" + }, + "directories": {} + }, + "3.2.1": { + "name": "ansi-styles", + "version": "3.2.1", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && ava", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "files": ["index.js"], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^1.9.0" }, + "devDependencies": { + "ava": "*", + "babel-polyfill": "^6.23.0", + "svg-term-cli": "^2.1.1", + "xo": "*" + }, + "ava": { "require": "babel-polyfill" }, + "gitHead": "de7527a86c1cf49906b0eb32a0de1402d849ccc2", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@3.2.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "shasum": "41fbb20243e50b12be0f04b8dedbf07520ce841d", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-3.2.1.tgz", + "fileCount": 4, + "unpackedSize": 9371, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCkgSQy8Rtz7ooK6YW4Ptv5DKKpVxfmHmDkkzGYJL60BgIhAKXrz0azsciFr39Mrox8mFpX1zJdBJqXh/L7EHzl6Hp9" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_3.2.1_1519983600652_0.7656433427334486" + }, + "_hasShrinkwrap": false + }, + "4.0.0": { + "name": "ansi-styles", + "version": "4.0.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && ava", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^2.0.0" }, + "devDependencies": { + "ava": "^1.4.1", + "svg-term-cli": "^2.1.1", + "xo": "^0.24.0" + }, + "gitHead": "3df6a798ff5a86fed4e93d638a0d8525056e684d", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@4.0.0", + "_nodeVersion": "8.16.0", + "_npmVersion": "6.9.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-8zjUtFJ3db/QoPXuuEMloS2AUf79/yeyttJ7Abr3hteopJu9HK8vsgGviGUMq+zyA6cZZO6gAyZoMTF6TgaEjA==", + "shasum": "f6b84e8fc97ea7add7a53b7530ef28f3fde0e048", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.0.0.tgz", + "fileCount": 4, + "unpackedSize": 9741, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc8NNCCRA9TVsSAnZWagAAAiQP/2a4KgMz9t4UZBR03CNL\n635U+8tvDW8ihbpL5EGXWjsK4E9WWqjAkTTcP2J/eekN7qCR3MGek0Y1UFJp\nTD3M2wHb3UQrYwBTxSJ61mLR5QpvdXl3q6z1KZ1cZ364D0jWElWaYYiXhNjI\ntm8r5r6ygEbEqAv0FU6U+Dckw/k0++a6KavCa0NBqNXfqrjVNAndtjIJkARg\nwo8hmb2LiqGGqcgFRiqmESNro5+YLa/ictECH8e8RYWWFRe2UiyH8KQPQXnE\nip4ugr/ZbRxrYnbj962/Ctd1mALqeVW/mCSTP1nx70HIuBwfr9P/SjIdLbIG\nFb59gQRMlTgc4d7wmuUVyanhwuVLpZc/yTNfqbfQgDbJ9bZDoO5uKTVWzM+S\n8REx3CfRfAaJpaKjCJNrxhxZQcWdGzhMxhRhzeF3/lCvWkpv/+KyiSu/N32p\nU15+PuyJomZT8R6Kx/VJ/+dzUXCDiPsMgrTKz9+KpWOc6dRVExRKYnRgVCH2\n5Cmav2IVl4GOgM6nxeA4drZP4vR/jQdbjw4qtVbUuKXON1B1auRORDzLwub9\nZmVLXTtECJedZxWVHo0YMm8s5mnUzl+nGWPl/LMt1/MyRtxtCkh20TvV3jBo\n4s5FeioDeIKjw6nUCIraSCNQ0k73rxy/IsirJES4L3j8I8mcUrhuhn9BQmen\nXLdl\r\n=wntf\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHDVmsP+iLomR9PHgNp87F1OgJgTzLkN5I6G0mi+CG+TAiBWwyB6i8uUBqTlO+DcrvRagk5SgylEoiHbWV689eETaA==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_4.0.0_1559286594221_0.9141286342597881" + }, + "_hasShrinkwrap": false + }, + "4.1.0": { + "name": "ansi-styles", + "version": "4.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && ava", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^2.0.1" }, + "devDependencies": { + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "xo": "^0.24.0" + }, + "gitHead": "18d3055ac5dab4c210534ce525d6493430d557d9", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@4.1.0", + "_nodeVersion": "10.16.0", + "_npmVersion": "6.10.3", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-Qts4KCLKG+waHc9C4m07weIY8qyeixoS0h6RnbsNVD6Fw+pEZGW3vTyObL3WXpE09Mq4Oi7/lBEyLmOiLtlYWQ==", + "shasum": "d3ba8047b818293eaaa7978321dd61bff9842cfc", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.1.0.tgz", + "fileCount": 4, + "unpackedSize": 10214, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXdVUCRA9TVsSAnZWagAAmDcP/A8BEtzFCQLnvUOFV+fH\nZXSwAW536SLJN5oq+1jToSQkG1lJA161YVCaxr0iaDxL8SbXIn9ZQ89+VBcZ\nH6hcIEku94U1++/omuF6Qh16v8DApAJZwhs4HCsrZlBkvVNT8UpPf3Rwc8tz\nwPoXaWFlm4hihJwPT8M2nuVyAnCDUQGaZBotXoYOknvl30RanjO9E9nTMtDF\nyJ/KjbETVK+5u6JESVq0KCIc3f60+lUPRzXCUYsV95+23J80/4z0fIjwgf1O\noZhHrfvp3wrrKqpaOZxXJPiySPsJ8nGQsFmgka/DWOxdKxymL25DrmhNKMNd\nFBYbRJBeDHWmISrFqpcFaBd9yf23EH9lDaU62NoJV1DPQfpZq3u/n5Cdq3Ic\nNY6sgSL2XLf6JwKU7NfZzSnmuHSc4/ln8EcmLAJewBVUPaIqFJrRxqNfoY2K\nDoIQzWOy379/LqIs1AOqw6V/jSCAttI0NZZvwUNdNAQA7qyKCN+DyW2/wC0N\n6VRfkQGAS3RJqIeiSeKd+i2joUFMrRbJz8mXB+grqKY3cqMratg8S+cpcfHv\nPeGITPGIgcmTVcP92MC2ytpVmyL0PNbzT/scBEPUYdvhyuFumuHeUK/ul1ms\naG2NMpXfU8f9w/VHzqk7dCzwHtPrz61sAxpCmS3+DUBpKz9Ip7iZZrXnbb/F\nkgmT\r\n=w4D6\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDPSCzwwFc12TT7uJHAYs4+MbNcIZjZgHEq2cmXWtiR8gIga1KkiCj+QInHbGViQlOO4TeoI9592Kr8m5TmOtOkxlw=" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_4.1.0_1566430547434_0.3073668474671494" + }, + "_hasShrinkwrap": false + }, + "4.2.0": { + "name": "ansi-styles", + "version": "4.2.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.10.0", + "xo": "^0.25.3" + }, + "gitHead": "6d1245dee68379d261d358cb46f8f7669218b04f", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@4.2.0", + "_nodeVersion": "12.13.0", + "_npmVersion": "6.12.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", + "shasum": "5681f0dcf7ae5880a7841d8831c4724ed9cc0172", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.2.0.tgz", + "fileCount": 5, + "unpackedSize": 14675, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdypVlCRA9TVsSAnZWagAAngEP+wZkQrJHApsbLoyRRtDt\nF4MXBartHNDHjhH/k1n/+GhMoPVsRWvgS0BOXmfTCeR7FXDzbdWVpdmdOTJO\n6cJ/XHV95wrVsJYCbXZrSpm4if5J8VH70k14tAvxgYdkCPXySyIqrctzZYcK\nTas/e4IAMGfOVZ+LsmPsriuEJQwuc+cttgNcb7PII5Mb8mMSETRvRlF7RysB\nkXjiCtcGhLCazcSIyUiqtTVFL2C855h4q1vrRFXV86H+tI8DMdiKl92xgWDg\n7MajHwSXQF0mduwrdOpZhQVQXYcFCqvxzFNr9Y7izX6m6LqoiMKrbxZ08hGV\nJvRPJzOaMzTwiuWLA2rdsxePkCpA76qQWtxHwfVabYVdfIoCGAVMVejPt9A2\nsoVV48YcfTu9Q3AQArJ8tcZiGRgybXRS7mTbazGUnjn/VKfiK/npVcN8xzLH\njDjDgmqfokSp5JonfPYGFQQLWe7HyCC5zm/6lv8H1/kyfuBa8g78e6ZW1CBx\nBpQ7WHNxqhhbMdPsuufUp67ojMOz3G4JXpb88ewfxovSJVFf2+JPIkKeeCDJ\n1U7SvvU3hc7dkUWhMWxsjKiDnGyE0rEcfD1gVGlVVSGWhhE3hGI3Sur4VzTp\ni7Tty9qpnEIgROqXhnFT44FFWKQDDaK1t1K3HQFx6QhEfVq484Uhvjk9JNoG\nEreL\r\n=cINu\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDWPGPfokXrboheH0p6/o4aKx/R7ilwx4emHpfzRX2aegIgBkXGH6Wq2Yvx4nQHi2K6meOO+ZCZvtusQ70mSWTdAUg=" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_4.2.0_1573557604896_0.04368984078174476" + }, + "_hasShrinkwrap": false + }, + "4.2.1": { + "name": "ansi-styles", + "version": "4.2.1", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "gitHead": "74d421cf32342ac6ec7b507bd903a9e1105f74d7", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@4.2.1", + "_nodeVersion": "10.17.0", + "_npmVersion": "6.13.4", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "shasum": "90ae75c424d008d2624c5bf29ead3177ebfcf359", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.2.1.tgz", + "fileCount": 5, + "unpackedSize": 14729, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDOG3CRA9TVsSAnZWagAAszAP/2sW6WnLJ1UrghYkSdNT\nxbvlislTDp3antpvGjow1CkHkptklTWjZBMtp8zfrhAZat52Q3wKRrYUpOyK\nNw1eihJGgsSWwIcEX6jS0WBFMOBIvM9i5VRJ79Iwm5F9oVJ0z4aPQkQ+eUJb\nVYjjPQp/LukjvyzwjsZXxHFVuJ3u9k5EoX2q9QGOII7R7jE+M8pSunbuJcWK\nYDnbavJl7WeVd1+9QT5SuyUt59HO0WEZ9eoCkVO2ooLluyFbXZvi6ZDnURgN\n2Fjipox7lMUitDM0/UngYPmDNeGbtfi8zyYtCFRbyGUKQSgzXtYsD7+58Xtu\nH/3vzKbQvABRaRhX6laYiCSe7pV+pOi2rpnPoUAPjdhSkXZF4yLL0DLprrag\nCVBv02fVCagNGmKN9c1JQif7ACCPUEfz+jAClklsUpTY+OLfuYbaYPsJ0WKB\nuE1qZh8Sr9dgqBuK9ASot6BLJcf31Qv0SPmBszFAmdLmt7ozk4AxBZ4dkxpN\n4b59DDkW/yOyVWPxT7B5ZadYUaItTO+ucPp1WYuN/3j71nHEWf2Pcm0JqJTY\nBQy5KNr10nAeTsmNC7+xBllPeHeXM2mJ3GoT6UBQDfY8g0xvvmjU5jgDoQ4m\nUYVmjE06AsQXxXHxBSJzmSabLjQLxQy7E5GP70L8rfUjRSTq/JjpMMgYDfYe\nWZ1u\r\n=wfZo\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGeqlsZwnvqwtiKne8fqCS9cl7q3VmiJBUSXTNf4l1N2AiBpOVQvZCoLNQZIN0dSyLzBvVlPuwoItSiuk5lRbelyTg==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_4.2.1_1577902519016_0.16811694192100912" + }, + "_hasShrinkwrap": false + }, + "4.3.0": { + "name": "ansi-styles", + "version": "4.3.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "color-convert": "^2.0.1" }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "gitHead": "2d02d5bd070f733179007f0904eb5fb41090395a", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@4.3.0", + "_nodeVersion": "14.11.0", + "_npmVersion": "6.14.8", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "shasum": "edd803628ae71c04c85ae7a0906edad34b648937", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-4.3.0.tgz", + "fileCount": 5, + "unpackedSize": 16978, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeiACCRA9TVsSAnZWagAA5ccP/0DWoQsxVaTeYJuAyJlY\nPaf8cCbWwUQ6ZqFPreR4yYM+mpnSLnSlo8zqctIMofG63LIic4Co358CXP8v\nv9kvZYChYKZHcW7mxzIBUklWHRlrfDfVJSHhFiyAFHAu2X0hw70CZaZEXSGK\n0BiutHMjskT2GCSkheHBtj9g1OICvGFAP3wx1RasvYH7qhXBVFFCC/3Ci/c3\ne58izr3ivXcnOwqyC1ZlFNmL0rsgt91JtMY/7dcm/TouDpwrlO2BVGgJbD0L\nAu+jvjQnBjbjQlxskuS8mu69VvovP3lauf6YP0oeRdX2/UqY8J65/eDc1MN3\nBBcD8S98VglpGM/RGJmpUlCaoWfoz7yN9YyJk6mV/+wOSS2KRhmaiPXws9xY\nXAVdgFrK2cp1qR9RhOhmNng02WCZ3i7oh/1Pvp1DWCgDtASz5YOlT6ikvyHG\nCvqs3m7vkkhrnaEK68soPmbG2Q3O92wwINk7tX4WjH8TyqBaDbu8Z6t9NOwU\noW/v+A1gxWlrtl5eqOaMxo7XYxiF9YZzWWfzk1t6bl1rPICtYVRx2fn/3qqR\n0VRmR3DulMxsyx7ZwW1C210MbuuiRrDMIJZsg/kvuaLWOmh1US+rHa1YrD6g\n8pmirVpcxxBp1Pj44ZjM7W4X6MaboTHHNiE6dtJdJdZrO66hQnB4Bu25w9uX\n10be\r\n=uXWi\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCiWmk7MXmf0ZVnUHbCbR2mb9eLfmcN5XoDJMyjv/VX/QIgKOsdyMm5gXdutN1mR1lRxBc/muUtoCWbdoL3I/e7TB4=" + } + ] + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_4.3.0_1601839105748_0.2212872458771633" + }, + "_hasShrinkwrap": false + }, + "5.0.0": { + "name": "ansi-styles", + "version": "5.0.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { "node": ">=10" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "gitHead": "94ab248a83af375cf2179adce343df89daa25da0", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@5.0.0", + "_nodeVersion": "10.22.1", + "_npmVersion": "6.14.9", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-6564t0m0fuQMnockqBv7wJxo9T5C2V9JpYXyNScfRDPVLusOQQhkpMGrFC17QbiolraQ1sMXX+Y5nJpjqozL4g==", + "shasum": "675dbbb5ca1908fa90abe4e5b1c2e9b1f4080d99", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-5.0.0.tgz", + "fileCount": 5, + "unpackedSize": 13185, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxbuRCRA9TVsSAnZWagAAxW4P/AhubyPwX7EZahWbqG8a\nry4Gr1H6qUSbzzLOxTLDTsxxjeKkodlzCic9zzN9qoy10mNw2bZwoOPDdMdB\n0pbSv2KDqf4BQ0bUFVcEYh9FWvAkdBi6W2rOD5qUmfl1KewnvkFt/nLrRl5K\nzZcQI26UTBEl45TwYnmU1PAMCLElGwzDPwKjT19IA9/8Zh54uipAgiB9ImQS\nUypHk2+lVOYFr4cseI6Qtx4YixKUDre+1BCGXzbBnnjyy37Ht2SUU4S/AdYT\nnuWZKU7HjKi311HuxIReLrqaZTCcPkxWgBUdbiazFGH3HQIJ5LQcMZbVi6N4\nBQU00K37u4/d/+yu0ESiKujDbR/3pgddGls9r1X6azcDuqXFUDQR2DGvc4n6\nx2HO3TIire41wxVrTwL4D7ZpSsw0fhHDqu26ppCbOAcj5NFuRidJx/NaHuKF\nZqX6Kl3VAB5bA51z7WM1FkiSewqhfM2m0MQ5kRAzCw5SSJA8s9qoDLTJ8GMW\nBu/jRoPCz6TzFfOeDx7mPfl7T0HadjfC2KtptMPwxm65sQ9W55n/BhX0w75m\ndsmd53mpT0gf5a8rRDayNsewf69eIlSDvvNt5EqUOw4RPL1xGODxwCJia/2Q\nN8JzLDFiFsvmJEVUszEuIqJCnBl4FlawWFehOvxSU1QWqzASzCNQLIQq6Ogk\naI1G\r\n=sA1I\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA5mlOoFGX2ZzUw5XhEDdB+9D6d1BJLuk/E66YhwiT1EAiAgDEaQJ3WglYhB/sU8VyYsKP3wDJZFbWvf7QvdkdRLhQ==" + } + ] + }, + "directories": {}, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_5.0.0_1606794128478_0.35759914215476774" + }, + "_hasShrinkwrap": false + }, + "5.1.0": { + "name": "ansi-styles", + "version": "5.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { "node": ">=10" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "ava": "^2.4.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.14.0", + "xo": "^0.37.1" + }, + "gitHead": "b890cf7edccf56215e5948d1cc385fa4e85a8969", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@5.1.0", + "_nodeVersion": "12.20.1", + "_npmVersion": "6.14.10", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-osxifZo3ar56+e8tdYreU6p8FZGciBHo5O0JoDAxMUqZuyNUb+yHEwYtJZ+Z32R459jEgtwVf1u8D7qYwU0l6w==", + "shasum": "a436bcc51d81f4fab5080b2ba94242e377c41573", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-5.1.0.tgz", + "fileCount": 5, + "unpackedSize": 13405, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCuEfCRA9TVsSAnZWagAARQYP/j3jbwiknKp90fSTFkFL\nAhkP41N8y9cFUXbF4UTDj8oZ096xclr+Qg56EGV864kcp6x/IR5qTxDyLlUe\nhRzQ3ZtGECTr+XXXpULYg1c3TqJr3e7TaHy6onLsvNkgjLViKNvE2BxOxpnc\nWsQRbWF5ZcV4sURIzF7fQj6GArZsCbW8OaDdVKlBcNwNlysaeDXKEiY3cfLK\nPc3qhnXpjwP+br3OasE/YehDtj4OrXgKs5+0xx9S3nnUXfbsejG12a7oC2yZ\nEJNonvx+cbXYVHcL7WEhKp93PDreZLK3LsyDGVQusQcE78q/45sKxeeBsWtz\n9Th/s7TqRL/U8FubEotZl49zA4KPB6JAReFF9iUWxmx08f+pD1nae24T67dv\nVoGYC3c9UOWlgkccRebgGBzjqAnix3F5kz5zi9lLYrT3X3iSUfrjYN5ut/tc\nworOV2DpzmMFWolRpi2AslId4QxoAPM3VMsPfnINlPFDQkiWDBEkw8Ku/gad\np4j9FlTj/EUACT0SWADejY5ZWOI9t2Oj/8xgR6/bCXuL2G8i+9GAuE/BGFPc\njps+07LWI5tZQHrw2wSC8PzrfXJUx6Dh5U/5yG3xHRt9BecdkvyYy9htFTws\n3gIlp26SNcjb0n67RWmo+VXaQ6lhKfx0Mhowvqhl9sbyq3ocB/dm5divBmyr\nCAp4\r\n=chND\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDidn/Opgn11OR6lqhNpD+/+bEocVmfd2JOmaTrL2MUoAIhAItZXfInKrm9Im8dt+G5r6PeQvu9aa292/TBdtjrPWc9" + } + ] + }, + "directories": {}, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_5.1.0_1611325727047_0.2908627011479632" + }, + "_hasShrinkwrap": false + }, + "5.2.0": { + "name": "ansi-styles", + "version": "5.2.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { "node": ">=10" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "ava": "^2.4.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.14.0", + "xo": "^0.37.1" + }, + "gitHead": "4d30b90085fb5a971d7cb0f4dca0920ff4dbc955", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@5.2.0", + "_nodeVersion": "12.20.1", + "_npmVersion": "6.14.10", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "shasum": "07449690ad45777d1924ac2abb2fc8895dba836b", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-5.2.0.tgz", + "fileCount": 5, + "unpackedSize": 13596, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZCGXCRA9TVsSAnZWagAAIY4QAJ2NcJU7iCjOGPSivrMO\nHSYzm0/3P/LFJMFFv30TB0yX91UxgfFBRV+01o0ksBdK+wzXxYgNF7dbSqGq\n2ulEdYkdIjzrH+E+yfOZ26iArGFlvYimSBDMNq3HS4V6rKU4ZIVXbCd/J2wc\nFCq4wmsyWSp05Ea74BP/iczmC1v2OGNfGM5qrqkpfbJ6/OtvL9dyfhbtBl90\nnhwmCN0OlCvRxkZllnnDyM1nUAx+1E3U270e0R+qUayC34+DWcjVsg13Bu9M\niHkN8pOrV5TCvBGSGyDFG1IvCzrV36r7eGttAs6lRXgW5dzUclmYjnTFbgm0\n9CdgJ0ovDvrbqfvAWyr4BIGuqzEKRtIwxnZlbpvx/1b6vT7+qKMaZW6R3ETf\nmI7ppshymh8Kefs4g5EPrNTp9S4qHPwigEjD1dEy+Rikl8ptmrhkwnk3KQ8c\nwRycjc+a3a+8fF1OW58yr2BOpZ+gcYyonbi/4OWjO0k0NvrfE0+RRrf2hO+o\n6ubsA5ttHeiDvEVxDNC6DJEVOKxd/QH6afDyT4Fuc9wy61wI2ukm36Vi/RS0\n82xqllSSkMvP9RvIvqLMtcZLV8z4zRauBMEnV69WHRNEpifL4QMqatfWHS6U\n14V3Njnql9MeFcZtUtcVd7OKkxaER54rlDBWMGkQkIBhOTA+IChBooqdl2M2\nMhG8\r\n=OR+b\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAND+m0Vl7hjZGBFTXuRx5O/TtwhyoDZvIQUhTS4uy1AAiBLOZwjRapi08CEyjcH210r2J7cetSsgdiuHGG1bY1XYw==" + } + ] + }, + "directories": {}, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_5.2.0_1617174934592_0.8102256934313619" + }, + "_hasShrinkwrap": false + }, + "6.0.0": { + "name": "ansi-styles", + "version": "6.0.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { "node": ">=12" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "ava": "^3.15.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.14.0", + "xo": "^0.38.2" + }, + "gitHead": "b566b5ba72df29dc2896db5b4f9bcd1e40789eb2", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@6.0.0", + "_nodeVersion": "14.16.1", + "_npmVersion": "6.14.10", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-4nUCKPhvbhgqc4a1S0w446veDod0i6krCOMF/bPBbBq9eP11BKztPS4Mp5yxUXhr1PFEe6mYcUSAv1jfoMUuOg==", + "shasum": "2dc5d239631857256fcc501cf052135f290e25b3", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-6.0.0.tgz", + "fileCount": 5, + "unpackedSize": 13494, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeSS7CRA9TVsSAnZWagAAuJMP/0tEVLWMX5qZbn8X7a4Q\nvKtHQLB8UzaNAqHF3xbdBOGUIIgQub3g+hInvAEZQVjWKBzYvq1MNiveNKWR\nsHMHAIVFQQznBsEFNKV0EflrYFgSwoXfkTVgJqBfnQKHNvelsRUpHDpPvGCu\nfSC5NN+bJCIOzZZAjqeOBntApG0RmCiinyLyJsa6X99tAaMssvWmYSgfztjQ\njwstpLdWTqu0/5qW5ibcj8Oiy4f6ywRKxLju3WB4QaABb75kstIIpRWCD3vw\naUFD+L6/jJPsJJRajpSYWiF6HYQ4rignq6yVdLeaNm8rOySQRh39Qd/3qCkQ\nvsjwuOZ5zuy5d+Ug71qqjhu8P70mhswf/cbhQigyRtCM0zgkgaCkN9BOC49D\nuT4wuzfCDuejezqg2H/ToGPwbqUtfm5p7Dmnd0CnSp0ypyvy4ph/8WFnZag9\nC+KCJCGgSSX7dvb1P9+9ayd8gY6BTE5Mdrcny9S8nQlM/XKuWJhxRI0lwGRW\nVdZdlIfcF8MyqKjl2V/EcsR1aCASMTFUm2Eaj51VGWSOCPqHwb3/epGcIc4F\ncY5y+/hBAAX80HA8md5pndff9RN2AO2x1U56I3mLx6ouKtTfTvalJYW6pjSY\n4ZcfQGyYFxbe0Ua+fYhuVgnQ2DZy5IlhyBJ8D5T0PlOogB81w1Rp9+hj1V+U\n1LxA\r\n=E3cP\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFY7x9WkaANBcYZGRYsDJOqWlY74Sa2YzsmucDlQRgh9AiBOe/B4LIsgUCeWV4FGK7bumheht1Y6J3U9z21PkvTzwQ==" + } + ] + }, + "directories": {}, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_6.0.0_1618551995229_0.7726601134349003" + }, + "_hasShrinkwrap": false + }, + "6.1.0": { + "name": "ansi-styles", + "version": "6.1.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { "node": ">=12" }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "devDependencies": { + "ava": "^3.15.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.14.0", + "xo": "^0.38.2" + }, + "gitHead": "cd0b0cb59337bfd7d3669b2d0fcde7ff661a83a6", + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "_id": "ansi-styles@6.1.0", + "_nodeVersion": "12.22.1", + "_npmVersion": "6.14.10", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "shasum": "87313c102b8118abd57371afab34618bf7350ed3", + "tarball": "http://localhost:4545/npm/registry/ansi-styles/ansi-styles-6.1.0.tgz", + "fileCount": 5, + "unpackedSize": 15535, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgf+daCRA9TVsSAnZWagAAQOIP/Anx6U+vOfkg1KDr5iZJ\nmkSxedAzNH3576oI9roh7wbQSQ/fQGN/jaY0npudzvsa/NLfWuCQCt00dtQ/\nAyKY5NLtfb5VejLgIF8AF1CtJOHA88TY+aRoA+hL+eUA1PkOY9Y+1lV9U1QO\nJaUVlLQr/FIzY21pSYo6+V0lLmPGgMIs/ULdjpr2X5dZ+7Ff2DzrsQtQV2k9\nAc0G2XQRyp/NTDHCHnfOSnK9zKuFhjY2sjbNn0Gp9r3T7hTcopKqPz6FhIKY\nAUo9rqswIvAYXDEAXCoGWzJoiRsDldxTkf+mb9RV9e2jAUsGAfvJLXntizp3\n7tvMEYINoHPzs4CvRqcYonYeY7FREhTWaaNTxQzy/Ae1mARAmlIl0vXuZifP\nfglSd6wrqcz4euaOc3YRkW9eT+9q4cK7JCjyssc4vdHBMn2Yd5+A4hTn51AB\n5I9QJ8Xc0nWy712korCpcR9cPXrwve50pD2AxEinp+hyQzpPzzKyfDQHwjpe\nVbTu8/aAhDK1s19qFmUY4VtUqS1Uu8NjXpaWOlpdD4BI+dh43tsmSz61RWfJ\nhDIC39htWlyhlak1mCBQIFlGTZPr7GkEeNbZLW8MCpnfgXp7Lcv3Konzm/C+\nrsQw6XBGf4O9Tp25Q0EFyl8uaNb3wOXgSCpUydBe2DFtJWpTHGIX8L9nuVUQ\n5e9Z\r\n=m2Tr\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCA/tHV/Ykpiby73wpS1NtBNs2fJbTeFyJQgDAmuDFbsQIgHtpoqyHPZTFeQ4S3cP52dKS24bMMNntxC5FqTsPsP1c=" + } + ] + }, + "directories": {}, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/ansi-styles_6.1.0_1618995033909_0.3859516923978603" + }, + "_hasShrinkwrap": false + } + }, + "readme": "# ansi-styles\n\n> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal\n\nYou probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.\n\n\n\n## Install\n\n```\n$ npm install ansi-styles\n```\n\n## Usage\n\n```js\nimport styles from 'ansi-styles';\n\nconsole.log(`${styles.green.open}Hello world!${styles.green.close}`);\n\n\n// Color conversion between 256/truecolor\n// NOTE: When converting from truecolor to 256 colors, the original color\n// may be degraded to fit the new color palette. This means terminals\n// that do not support 16 million colors will best-match the\n// original color.\nconsole.log(`${styles.color.ansi(styles.rgbToAnsi(199, 20, 250))}Hello World${styles.color.close}`)\nconsole.log(`${styles.color.ansi256(styles.rgbToAnsi256(199, 20, 250))}Hello World${styles.color.close}`)\nconsole.log(`${styles.color.ansi16m(...styles.hexToRgb('#abcdef'))}Hello World${styles.color.close}`)\n```\n\n## API\n\nEach style has an `open` and `close` property.\n\n## Styles\n\n### Modifiers\n\n- `reset`\n- `bold`\n- `dim`\n- `italic` *(Not widely supported)*\n- `underline`\n- `overline` *Supported on VTE-based terminals, the GNOME terminal, mintty, and Git Bash.*\n- `inverse`\n- `hidden`\n- `strikethrough` *(Not widely supported)*\n\n### Colors\n\n- `black`\n- `red`\n- `green`\n- `yellow`\n- `blue`\n- `magenta`\n- `cyan`\n- `white`\n- `blackBright` (alias: `gray`, `grey`)\n- `redBright`\n- `greenBright`\n- `yellowBright`\n- `blueBright`\n- `magentaBright`\n- `cyanBright`\n- `whiteBright`\n\n### Background colors\n\n- `bgBlack`\n- `bgRed`\n- `bgGreen`\n- `bgYellow`\n- `bgBlue`\n- `bgMagenta`\n- `bgCyan`\n- `bgWhite`\n- `bgBlackBright` (alias: `bgGray`, `bgGrey`)\n- `bgRedBright`\n- `bgGreenBright`\n- `bgYellowBright`\n- `bgBlueBright`\n- `bgMagentaBright`\n- `bgCyanBright`\n- `bgWhiteBright`\n\n## Advanced usage\n\nBy default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.\n\n- `styles.modifier`\n- `styles.color`\n- `styles.bgColor`\n\n###### Example\n\n```js\nimport styles from 'ansi-styles';\n\nconsole.log(styles.color.green.open);\n```\n\nRaw escape codes (i.e. without the CSI escape prefix `\\u001B[` and render mode postfix `m`) are available under `styles.codes`, which returns a `Map` with the open codes as keys and close codes as values.\n\n###### Example\n\n```js\nimport styles from 'ansi-styles';\n\nconsole.log(styles.codes.get(36));\n//=> 39\n```\n\n## 16 / 256 / 16 million (TrueColor) support\n\n`ansi-styles` allows converting between various color formats and ANSI escapes, with support for 16, 256 and [16 million colors](https://gist.github.com/XVilka/8346728).\n\nThe following color spaces are supported:\n\n- `rgb`\n- `hex`\n- `ansi256`\n- `ansi`\n\nTo use these, call the associated conversion function with the intended output, for example:\n\n```js\nimport styles from 'ansi-styles';\n\nstyles.color.ansi(styles.rgbToAnsi(100, 200, 15)); // RGB to 16 color ansi foreground code\nstyles.bgColor.ansi(styles.hexToAnsi('#C0FFEE')); // HEX to 16 color ansi foreground code\n\nstyles.color.ansi256(styles.rgbToAnsi256(100, 200, 15)); // RGB to 256 color ansi foreground code\nstyles.bgColor.ansi256(styles.hexToAnsi256('#C0FFEE')); // HEX to 256 color ansi foreground code\n\nstyles.color.ansi16m(100, 200, 15); // RGB to 16 million color foreground code\nstyles.bgColor.ansi16m(...styles.hexToRgb('#C0FFEE')); // Hex (RGB) to 16 million color foreground code\n```\n\n## Related\n\n- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal\n\n## Maintainers\n\n- [Sindre Sorhus](https://github.com/sindresorhus)\n- [Josh Junon](https://github.com/qix-)\n\n## For enterprise\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)\n", + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "qix", "email": "i.am.qix@gmail.com" } + ], + "time": { + "modified": "2022-06-13T03:05:27.416Z", + "created": "2013-07-31T23:00:29.145Z", + "0.1.0": "2013-07-31T23:00:32.552Z", + "0.1.1": "2013-08-03T00:31:59.821Z", + "0.1.2": "2013-08-03T01:38:52.766Z", + "0.2.0": "2013-08-03T16:40:58.340Z", + "1.0.0": "2013-12-08T00:00:09.315Z", + "1.1.0": "2014-06-03T23:35:17.884Z", + "2.0.0": "2014-11-23T11:52:58.607Z", + "2.0.1": "2015-02-22T09:21:36.085Z", + "2.1.0": "2015-07-01T13:26:31.005Z", + "2.2.0": "2016-02-21T12:27:55.984Z", + "2.2.1": "2016-03-28T20:35:18.267Z", + "3.0.0": "2017-01-17T09:16:34.807Z", + "3.1.0": "2017-06-12T22:42:00.220Z", + "3.2.0": "2017-07-23T11:25:48.038Z", + "3.2.1": "2018-03-02T09:40:00.702Z", + "4.0.0": "2019-05-31T07:09:54.329Z", + "4.1.0": "2019-08-21T23:35:47.551Z", + "4.2.0": "2019-11-12T11:20:05.018Z", + "4.2.1": "2020-01-01T18:15:19.134Z", + "4.3.0": "2020-10-04T19:18:25.986Z", + "5.0.0": "2020-12-01T03:42:08.629Z", + "5.1.0": "2021-01-22T14:28:47.169Z", + "5.2.0": "2021-03-31T07:15:34.766Z", + "6.0.0": "2021-04-16T05:46:35.357Z", + "6.1.0": "2021-04-21T08:50:34.094Z" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "users": { + "passy": true, + "tunnckocore": true, + "gliviu": true, + "operandom": true, + "scottfreecode": true, + "michalskuza": true, + "usex": true, + "houzhanfeng": true, + "danielheene": true, + "willwolffmyren": true, + "denmasgeo": true + }, + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "bugs": { "url": "https://github.com/chalk/ansi-styles/issues" }, + "license": "MIT", + "readmeFilename": "readme.md" +} diff --git a/cli/tests/testdata/npm/registry/assertion-error/assertion-error-1.1.0.tgz b/cli/tests/testdata/npm/registry/assertion-error/assertion-error-1.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e3a821f6a37f64c9bc5bfb3f2fe6f513ef47e269 GIT binary patch literal 2668 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 a{wq{L5947xjEC|4jei5aI$JXUDgXexg+L?# literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/assertion-error/registry.json b/cli/tests/testdata/npm/registry/assertion-error/registry.json new file mode 100644 index 0000000000..87b1237068 --- /dev/null +++ b/cli/tests/testdata/npm/registry/assertion-error/registry.json @@ -0,0 +1,318 @@ +{ + "_id": "assertion-error", + "_rev": "17-95a34e275de6ed2a7809e331289d8a38", + "name": "assertion-error", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "dist-tags": { "latest": "2.0.0" }, + "versions": { + "0.1.0": { + "name": "assertion-error", + "version": "0.1.0", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "keywords": [], + "repository": { + "type": "git", + "url": "git@github.com:qualiancy/assertion-error.git" + }, + "engines": { "node": "*" }, + "main": "./index", + "scripts": { "test": "make test" }, + "dependencies": {}, + "devDependencies": { "component": "*" }, + "_id": "assertion-error@0.1.0", + "dist": { + "shasum": "555cb007e89be44ba73e7b9600c3907dc381ce2b", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-0.1.0.tgz", + "integrity": "sha512-5GDYNFgUTLRv4GignYXrUUHcxAzLafgfWYWzWXTeBiimgLrxSW7HTNNAXnHyypP0mS34OOrQ6xpOwe5iePe48w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDSOgg+BYn+W1TNWZFSVXnGIW5/6LO+LwqfQJ048hUxcgIgfQxa0B3fNmKfc2QeVPGMRm9IldEcwByMoh+GNLsTog0=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.14", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" } + ], + "directories": {} + }, + "1.0.0": { + "name": "assertion-error", + "version": "1.0.0", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "keywords": ["test", "assertion", "assertion-error"], + "repository": { + "type": "git", + "url": "git@github.com:chaijs/assertion-error.git" + }, + "engines": { "node": "*" }, + "main": "./index", + "scripts": { "test": "make test" }, + "dependencies": {}, + "devDependencies": { "component": "*" }, + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "_id": "assertion-error@1.0.0", + "dist": { + "shasum": "c7f85438fdd466bc7ca16ab90c81513797a5d23b", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-1.0.0.tgz", + "integrity": "sha512-g/gZV+G476cnmtYI+Ko9d5khxSoCSoom/EaNmmCfwpOvBXEJ18qwFrxfP1/CsIqk2no1sAKKwxndV0tP7ROOFQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDnmhFogTTZa4E1MfbbZn2eDsEN2qxGw6nImAN7NjImFgIhAMbkTUU91blDDpuAzdP6jBBIGHukoDrHhkjD8RtJHQME" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.23", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" } + ], + "directories": {} + }, + "1.0.1": { + "name": "assertion-error", + "version": "1.0.1", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "keywords": ["test", "assertion", "assertion-error"], + "repository": { + "type": "git", + "url": "git@github.com:chaijs/assertion-error.git" + }, + "engines": { "node": "*" }, + "main": "./index", + "scripts": { "test": "make test" }, + "dependencies": {}, + "devDependencies": { "component": "*" }, + "gitHead": "db10d2fc753f00b3dad24956921056eaf1e03708", + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "homepage": "https://github.com/chaijs/assertion-error", + "_id": "assertion-error@1.0.1", + "_shasum": "35aaeec33097f11f42399ecadf33faccd27f5c4c", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" } + ], + "dist": { + "shasum": "35aaeec33097f11f42399ecadf33faccd27f5c4c", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-1.0.1.tgz", + "integrity": "sha512-vSfN0UZYL0hwYkKhFq48vEI7CUJkgELo+xtcdjM/X9o5NRY4GW8PLQUDxQ1KYaugkPpnws9LCxEGzMfYWzL/Ww==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD/H+TZ2RE5BBywaNop0yBuFVklnwE5RXhO0eARDgB4LwIgeTtsnwuVXY+wqeknKvvsN9xBvIzeeAA1gw18VVEvqMw=" + } + ] + }, + "directories": {} + }, + "1.0.2": { + "name": "assertion-error", + "version": "1.0.2", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "keywords": ["test", "assertion", "assertion-error"], + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/chaijs/assertion-error.git" + }, + "engines": { "node": "*" }, + "main": "./index", + "scripts": { "test": "make test" }, + "dependencies": {}, + "devDependencies": { "component": "*" }, + "gitHead": "b36f593951c1487fa33747c9911025734923f28c", + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "homepage": "https://github.com/chaijs/assertion-error#readme", + "_id": "assertion-error@1.0.2", + "_shasum": "13ca515d86206da0bac66e834dd397d87581094c", + "_from": ".", + "_npmVersion": "3.8.9", + "_nodeVersion": "5.7.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "13ca515d86206da0bac66e834dd397d87581094c", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-1.0.2.tgz", + "integrity": "sha512-wzQs0MF+xNG9ji/rooK2bLg8XVqP+dn/IYX6qgejMtmDNB8JRLL+BoBrd4furQNgPaWhJaQRXyMXGa48lzsGtQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCLcWfk28lkeQX/e39Gdc+vmgfvlluLHY0EUV215S9VfwIgWG+WCGpIZrvbJHJjx6GsOxS63ISwDqJjagoxWwPqATc=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/assertion-error-1.0.2.tgz_1465237527264_0.8082898685242981" + }, + "directories": {} + }, + "1.1.0": { + "name": "assertion-error", + "version": "1.1.0", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "types": "./index.d.ts", + "keywords": ["test", "assertion", "assertion-error"], + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/chaijs/assertion-error.git" + }, + "engines": { "node": "*" }, + "main": "./index", + "scripts": { "test": "make test" }, + "dependencies": {}, + "devDependencies": { "component": "*", "typescript": "^2.6.1" }, + "gitHead": "faa3f8cbbdba74d2760f9d2e95c008ba9ce4812e", + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "homepage": "https://github.com/chaijs/assertion-error#readme", + "_id": "assertion-error@1.1.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.8.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "shasum": "e60b6b0e8f301bd97e5375215bda406c85118c0b", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-1.1.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBLKjetp37+0lhhi9deyZvXmBZcF/3rW0uJJtY/162bGAiA/3giMIaJv7sRAruur386mr5e9OzyX7FBDJo6ugT1cxQ==" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/assertion-error-1.1.0.tgz_1515337170361_0.5846316555980593" + }, + "directories": {} + }, + "2.0.0": { + "name": "assertion-error", + "version": "2.0.0", + "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "license": "MIT", + "types": "./dist/mod.d.ts", + "keywords": ["test", "assertion", "assertion-error"], + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/chaijs/assertion-error.git" + }, + "engines": { "node": ">=12" }, + "type": "module", + "module": "./dist/mod.js", + "main": "./dist/mod.js", + "scripts": { + "build": "tsc", + "pretest": "npm run build", + "test": "NODE_ENV=test node ./test/index.js" + }, + "devDependencies": { "typescript": "^4.4.3" }, + "gitHead": "06761d175ab7d188c18c1c7ed1ea5ae4a6a4d52c", + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "homepage": "https://github.com/chaijs/assertion-error#readme", + "_id": "assertion-error@2.0.0", + "_nodeVersion": "16.8.0", + "_npmVersion": "7.21.0", + "dist": { + "integrity": "sha512-Q0en67fcMTcBp1xn4DTYasTSKD4KAo86UhA6lr+c6neaz2gelKi5ILIqLcYl9JGWkGGbooYLs2iGQv7v1e83AA==", + "shasum": "791a05c4b3c3f70652b51dcda070b9ef89da662c", + "tarball": "http://localhost:4545/npm/registry/assertion-error/assertion-error-2.0.0.tgz", + "fileCount": 5, + "unpackedSize": 5776, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2j2mCRA9TVsSAnZWagAAj3MP/jHlgRzlMC4+uXz+3raT\ntp7ow0G53y7WkQXSou8+deifgO/AKPbgX5osfckjobDllMBRd8KqMvMn6I4X\nIdywrmDkXn2nutVGTwFi616leeXUlnyht7Jst6zhIEjDukPQ/RBZ+qT8V8H3\nvbzrmpjXj1EZdEMHnKQMdPriFe8ueZBE/bzpDS5AW/seaI/BkEAfx97HesVd\nicHcoOvlLgt7SWGfBArUlZC6ufB8eOl/LFpBaFh7fXHjh/kBmDGGEz3eGXU9\nOhgMgpg5k9/shMb3kIf8hJ/31eWHf9vcU7QPv5U1+z3FaKt/hdCaWfrjpkAz\ne1UE0j+qwYOKWYYyrjFmIS4ZSUf4tzP+y1Rz91kZHKZqipvVARhELGRclrSh\nxINCWcqGmOiuqnh4y3F4gC/K1IGN7rth4Ha67u+yXTFOLwMY0eTVpvu/1OrN\n+sEbccNw+uWO7T+itkc4/DuwFdpCa+LRcOterYmxgSyVoCrwsD1/oeYh6tUN\nMhZXXEoN1+Gkc3rsDc3q53rz6mNSmW+otUUhOjrfLOE6fzl6m9pBLCFTFT6V\ndT60KPLlN4Kv7tEBol/AS4bDu320NpXo2IB/QtKLFHlmxXrKEYXvhVHOUpzh\nWDa2bNhBFKkFoiBG6Z8GTGRup4rQvVtbOwHOP0ygHvWuKOujFP5sZMqPP3kS\nbxPQ\r\n=vExu\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCb5vGpzCFi2x+1kbn4dHWMTFIn60/LpTEVxMDoTLNFOAIgO/CAtZzdsNwg94EdSSQlwPA2nyk+rmmGBz09JVL3dIA=" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/assertion-error_2.0.0_1633447251025_0.35381096573804993" + }, + "_hasShrinkwrap": false + } + }, + "readme": "

\n AssertionError and AssertionResult classes.\n

\n\n

\n \n \n \n \n \n \n \n

\n\n## What is AssertionError?\n\nAssertion Error is a module that contains two classes: `AssertionError`, which\nis an instance of an `Error`, and `AssertionResult` which is not an instance of\nError.\n\nThese can be useful for returning from a function - if the function \"succeeds\"\nreturn an `AssertionResult` and if the function fails return (or throw) an\n`AssertionError`.\n\nBoth `AssertionError` and `AssertionResult` implement the `Result` interface:\n\n```typescript\ninterface Result {\n name: 'AssertionError' | 'AssertionResult'\n ok: boolean\n toJSON(...args: unknown[]): Record\n}\n```\n\nSo if a function returns `AssertionResult | AssertionError` it is easy to check\n_which_ one is returned by checking either `.name` or `.ok`, or check `instanceof Error`.\n\n## Installation\n\n### Node.js\n\n`assertion-error` is available on [npm](http://npmjs.org).\n\n```\n$ npm install --save assertion-error\n```\n\n### Deno\n\n`assertion_error` is available on [Deno.land](https://deno.land/x/assertion_error)\n\n```typescript\nimport {AssertionError, AssertionResult} from 'https://deno.land/x/assertion_error@2.0.0/mod.ts'\n```\n", + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "time": { + "modified": "2022-06-13T03:33:52.316Z", + "created": "2013-04-07T22:59:41.018Z", + "0.1.0": "2013-04-07T22:59:42.826Z", + "1.0.0": "2013-06-08T20:41:17.202Z", + "1.0.1": "2015-03-05T23:45:54.576Z", + "1.0.2": "2016-06-06T18:25:29.009Z", + "1.1.0": "2018-01-07T14:59:31.257Z", + "2.0.0": "2021-10-05T15:20:51.185Z" + }, + "author": { + "name": "Jake Luer", + "email": "jake@qualiancy.com", + "url": "http://qualiancy.com" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/chaijs/assertion-error.git" + }, + "homepage": "https://github.com/chaijs/assertion-error#readme", + "keywords": ["test", "assertion", "assertion-error"], + "bugs": { "url": "https://github.com/chaijs/assertion-error/issues" }, + "license": "MIT", + "readmeFilename": "README.md" +} diff --git a/cli/tests/testdata/npm/registry/chai/chai-4.3.6.tgz b/cli/tests/testdata/npm/registry/chai/chai-4.3.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..5f1dd8f1d361204309923e64b77e226142dba385 GIT binary patch literal 140277 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

{V4-%`+tL2_AWLlB<4=fSta|YDdMSe-m~)S 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�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 literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/chai/registry.json b/cli/tests/testdata/npm/registry/chai/registry.json new file mode 100644 index 0000000000..863cddc8b5 --- /dev/null +++ b/cli/tests/testdata/npm/registry/chai/registry.json @@ -0,0 +1,4684 @@ +{ + "_id": "chai", + "_rev": "521-75f303c8b52cd90c8d4a7f63f8a8d5ff", + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "dist-tags": { "latest": "4.3.6", "canary": "4.0.0-canary.2" }, + "versions": { + "0.0.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "Assertion framework for node.js and the browser.", + "version": "0.0.1", + "repository": { + "type": "git", + "url": "git@github.com:logicalparadox/sherlock.git" + }, + "main": "index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": {}, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.0.1", + "_engineSupported": true, + "_npmVersion": "1.1.0-alpha-6", + "_nodeVersion": "v0.6.5", + "_defaultsLoaded": true, + "dist": { + "shasum": "a858cf9ecc09afb1651022371dbe5ae0bdde77db", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.0.1.tgz", + "integrity": "sha512-/PpEI23OzrHfP9iz8rr2yoRdd/htzHr5c5s0DFtkZRkEOTo5H7whwa0q9+leSscZi2amrakrP8ZwClCv+JfZmg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICBQqnR2FjWXC6sRjYpyASFwbxOjLbCZMd23fKKhOa6bAiEApfMLo5NeNZt20lwh2qdZCtgAuWzmGmZmfVnw5+2Sm8Y=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.0.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "Assertion framework for node.js and the browser.", + "version": "0.0.2", + "repository": { + "type": "git", + "url": "git@github.com:logicalparadox/sherlock.git" + }, + "main": "index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": {}, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.0.2", + "_engineSupported": true, + "_npmVersion": "1.1.0-alpha-6", + "_nodeVersion": "v0.6.5", + "_defaultsLoaded": true, + "dist": { + "shasum": "368ce03612b088606011f25a479ed8b4e0b1f2c8", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.0.2.tgz", + "integrity": "sha512-WTuc/QolyBjU1TZYgZjYfDAvBVX1Y16wKSkHVXk7mWAcuzfWobL9dwyS5ZId7CYCEuGzRNPVACQ35+1CW82Vbw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIA+DFS1qRyvfx114k1GzY7I3recISKPH7m+D+PRsF5F5AiEAwh2oZucJagAgwKn+cCO8Ru9fGj18Xczo6D3P5dODu4g=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion framework for node.js and the browser.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.0", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.0", + "_engineSupported": true, + "_npmVersion": "1.1.0-alpha-6", + "_nodeVersion": "v0.6.5", + "_defaultsLoaded": true, + "dist": { + "shasum": "1216fa4b0585fb56d0b7a1e6c02f1682f709b306", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.0.tgz", + "integrity": "sha512-h4ASoCHwe77pHhotcSHrlsVKIpYaoXm0Hjt9XJdgsBgGertvqAHmCDc8TtuZtK8pVPLFvsG70twTxSxK7xMADQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFWV1IkFOzorVpcmzWerL3DTQcAH0uPK9XoG32XONXwdAiA7BV6rvqGlZoPWi28VOajH2sYM0r/k6fowoHS9keKIYQ==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.1", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.5" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.1", + "_engineSupported": true, + "_npmVersion": "1.1.0-alpha-6", + "_nodeVersion": "v0.6.5", + "_defaultsLoaded": true, + "dist": { + "shasum": "951366f524d0b4be9d59d9fde5e152dd5a42ee39", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.1.tgz", + "integrity": "sha512-BqHXq0l/uyPFpui4KKgtxwjU7Q1Gtd9znEAi4XnMqpM3BJSnUTX9Na0i4m3UFPvhwShJHovX5+U6WRO9Mkg0QQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQD5NUrNkYuZhNZGqjOIncRFYV5Ylv/kU4utypxIBQ6nOgIgbaesxe1HnLd6Vjt/ouYXJUjhzxJMwHvDs0QLlHQnd8E=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.2", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.5" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.2", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-4", + "_nodeVersion": "v0.6.6", + "_defaultsLoaded": true, + "dist": { + "shasum": "d7998a8c05bd1f34d8c663ca38a8cd3287d5e3c3", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.2.tgz", + "integrity": "sha512-nmRvLrL9Pn6ZRyQW2JwEyKbJ9SghkpK4YosEWe+tMCJY03qCpV0+PH28VElm3EYe+aMa8opNtDCPXyCJLoqIWQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGm16Sf2yR7VFXi+v+HOZnMLyBbbx/38+KPeuyP5jaSWAiABtz8F/Q6y72NiYfBRt/ojwc58ksBwz6wGggCcRwoFGQ==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.3", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.5" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.3", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-4", + "_nodeVersion": "v0.6.6", + "_defaultsLoaded": true, + "dist": { + "shasum": "1cda1032af49de75aac92bd9e739c4877111ee10", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.3.tgz", + "integrity": "sha512-EwwXEzRmpqdahmTteSY5JRwjER9QaqFPC4WjXOJKcIm+FikZ1SUajyQV+HfH0hlZQmEm9dcDip494ssMZVYKBA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIECajJtP7UyPwBG88rTcaCJb9wuCXOe7110AjxrTpmiCAiEAzMsptbF9mvbSoiqMxoXDh8WfNu0+tUhNyeE74W4TiMc=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.4": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.4", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.5" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.4", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-4", + "_nodeVersion": "v0.6.6", + "_defaultsLoaded": true, + "dist": { + "shasum": "e19b494017f139bfdacd1c51c92a5acff2fd844d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.4.tgz", + "integrity": "sha512-lxCbLppU1038JGZt9iu0YJwcoRyx/VfpjyMcnOhNVAluI7xccOCSbzddRdx4Hhh3sh3uR7szqgV8esmVeYBBHg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCnwEAGwSLtG9fFrkhcOBuV7YziE7Y8m3trXnR+i7OCAQIgRZfuSl9pOIpXfih0PrcTKBonr03w1TxVYbo/gr/qsvg=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.5": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.5", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.5" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.5", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-4", + "_nodeVersion": "v0.6.6", + "_defaultsLoaded": true, + "dist": { + "shasum": "6906981636e139cf4229a03e558b2a8956276245", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.5.tgz", + "integrity": "sha512-p1FCxsT84/CCx9SXGn3AkpBLpTAAUCBfPx1sQDhgjAkTqyogx1lQnoSheFQ/+CcuKFHru52bJWgpiJPsft4TpA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD4LiczjEaisIwzKgsrd1maaTLsPS19sqkApOt0LvsNiAIhAOZai3SpVDJJKc8xyxTFgc1mpMZC+AZd5WJEn2iMAXZT" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.6": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.6", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.6", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-4", + "_nodeVersion": "v0.6.6", + "_defaultsLoaded": true, + "dist": { + "shasum": "bd6c9ad77c602d751f81d9febfc796aeb6b822b3", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.6.tgz", + "integrity": "sha512-TT9T71QCr6rB/Q1lRw/LzYamAteRhELvb8Ya42Z2ztj6ygiMgOiV0KPPfwmi3KU1iqF21DhZQb5YqyrWAFyjSw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIQDcaUzgobYPuy9AdwJUoBOxaaIw2mBSpQhTgHoaX7r+DwIfZQR/Y17JctsERRnjpOmY0sXBn+eOjEkb7a8fvO5/pw==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.1.7": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.1.7", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.1.7", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-10", + "_nodeVersion": "v0.6.8", + "_defaultsLoaded": true, + "dist": { + "shasum": "d7b79fefef46d8b32f5a3d179e84901e48be5960", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.1.7.tgz", + "integrity": "sha512-V/s0pXKKktPDmp0UCSKNosTnNlL3aNxwU6jG9YLU9TtJ6otyQIvJnhbfWYfwJxC8mWpZpnVd+gf0wezM5AXxTg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCBOsK42FZYLKwqhgkKPz33SiP4/mLdsnOJVomQ79B4wwIhAJ+kMWyGRKJ8xxY5iELR6IZDFtiziZ2EmI9t70/HrXvk" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.2.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.2.0", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.2.0", + "_engineSupported": true, + "_npmVersion": "1.1.0-beta-10", + "_nodeVersion": "v0.6.8", + "_defaultsLoaded": true, + "dist": { + "shasum": "41840eab17eee298bd6f3a9c0a5249e2dac71e71", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.2.0.tgz", + "integrity": "sha512-OLmVqdBriwQSbwixdea+bp8mIaWWA3dI7xkzGsI1Cnnc7aJmXXu1NVaN9q552UiDfe8K/O1Gc+vhDLmFzdvqBg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFQBGDdKiZ02z8yOs3ojmFZ+0b1ghoTOKmA3vpzSXKEwAiEAjAbxe+fXHoplGy3CE0l19uKnwhCuj9tbpfA3UxADXAo=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.2.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.2.1", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.2.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.9", + "_defaultsLoaded": true, + "dist": { + "shasum": "623d768ca2b9d2c4236dac8d374e3244a031ffef", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.2.1.tgz", + "integrity": "sha512-XePzOYHU+9TQOmg1CLeDJZMm8faTayGHQx6XpVL7XPtmH/lQrm9jbq4yuVIqj0wxxrVyN74Rxs6qxEdY7U558A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGdd0Ui9qa6iAyV/EDP91+yidDUwsLklr8diScmmOe9cAiBST18Zyw5censkyni7zDPfO02FnMS02ksuQmWKlXc7Aw==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.2.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.2.2", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.2.2", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.9", + "_defaultsLoaded": true, + "dist": { + "shasum": "079271fc5bed65a1fbc9d7e469c62a9c5fb12ce9", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.2.2.tgz", + "integrity": "sha512-gkVC42UgHnRf+oci+QzPoeaqPC68rUANtkVSK9qL+JDufNJgTm35hQcsEAtW1NwGwVfsd95hPiM1oJHSlmCUcg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC11VnVk4Ta286kkz2eNf3bT5/yPpthYvD5Z0B4yhLL0QIhAK3/bE6Tz8hvy8gG8+9v72BAQGFRwAJaV6f5URrDNLnp" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.2.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.2.3", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.2.3", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.9", + "_defaultsLoaded": true, + "dist": { + "shasum": "45bae892638b7c4c6089363cee499facb61f101b", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.2.3.tgz", + "integrity": "sha512-NzqQbn8aW9oBW4Zm/v1OfFKfW4iIRLzQPJHNkXQKj2ZpUJwa5RVlLzMwAU5eEoO+eep//dH1JV9dAHQQmFqzuw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDjQ1bnfY1dF8DDLKO7SWhOLCALdSF5sHCWcrigWWJTkAIhAK6kiHyL6LLuLBDCKTl4xwlQ2yaU42ndAK1C59FqHuUp" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.2.4": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.2.4", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.2.4", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.9", + "_defaultsLoaded": true, + "dist": { + "shasum": "487b27c075b7403d76981d54b3a7ab1c429d2fd1", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.2.4.tgz", + "integrity": "sha512-ero3/iybhdg9SAyCZFnzdHjpKfQQy75gn/cQddtcKrI/LHMNCJy+DoEh6vEFuKV4UzbqQWv5XF+ur7Dkmj6N1Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDBkpsPkif46aoOnHwKPbqYbuzhAgmgzXmMF9kqMQBFDAIgaky+BSk/IR8rFGSYJqUk9I/M6v27Ubdg2jtUQj1+gYI=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.3.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.3.0", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.3.0", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.10", + "_defaultsLoaded": true, + "dist": { + "shasum": "9390e411fa5b84cd7944638d12b68aacb0335397", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.3.0.tgz", + "integrity": "sha512-dtlaeUEs1DbcQebQZ1lSwlA/gS+Kl72+SMpq+8SvMdmLzfFFQaJIbV97+OFdDSKqAWbPeGMHYGyc31m2wU6bsQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDIWzHQUa7xZYMGURatNv40Q51cdV5unCyzmoTOhQmHQwIhAP6E5DoWPOkJlauYtroqXFv/btF9LjCcI0fZyVXLAnOE" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.3.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.3.1", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.0.6" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.3.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.10", + "_defaultsLoaded": true, + "dist": { + "shasum": "5a4051934d2db65ce17820e08053d64a508326c4", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.3.1.tgz", + "integrity": "sha512-IOfKYFJBuGkp3hF5Xx4iRHspmsWzEOCLkStNGWyw+K0FOBQiIzckS/x/XFGQfiQl239Z7uPjunicJiuVcbOf4w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCK01ijEricCo/NHfJuD0K9rrQiDJKkkgUnZK0IHE8IvwIgeSWwz5hazfFGL9dqLx5cpsqf3ZO9Uhx1ZlzwKAuKFfM=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.3.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.3.2", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.3.2", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.10", + "_defaultsLoaded": true, + "dist": { + "shasum": "d3c1e808cba2cac5099db822c4858c97e7d0edab", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.3.2.tgz", + "integrity": "sha512-gjN3uMj7bQxFWUjXl+Qx+pRf500Hh2zZRRIcfkpzhcfnh16dhFJH541HbXqcL7TXcBr/qgytqr608sdjNUCuDQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIG/oeoK8NAs/yJ4PwP3JXqg7G7Vxm2UdIx8mqeFbVvt5AiEAyF9QtiHPYeNAh3W76VKvw1EkzZSbfTy7ts4L31i4yks=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.3.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.3.3", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.3.3", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.10", + "_defaultsLoaded": true, + "dist": { + "shasum": "f497ba11bdda91f829d970ae516e5274baafdaf0", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.3.3.tgz", + "integrity": "sha512-IHJKjsMdvEju1/zl5EGl751VKvXNa34zjU4xNWeqGPWkUgZzIak2UOoBoI0XZjAgrgNC7ff7jZyfTvoZS2Jmig==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFSf+m8QoVrdC4ypgG9w3JALxmf9F5Am87ppi/ukh3YmAiAgoJ+0Yrv2QTLP0ZEVYJ3PylGLz/wjqQwosvIMZT6DPg==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.3.4": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.3.4", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.3.4", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.11", + "_defaultsLoaded": true, + "dist": { + "shasum": "ec653488a753bb4e9fabd016c6034e0c7ac665ba", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.3.4.tgz", + "integrity": "sha512-lIduGPf6Z7suVaAmDeSHGfL+1nvvdg0jgWo4sPap2uEIf8cbJqGzeE3Dj+1ehSr3pcQgyfxtuZblFt6TcEanGw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEPsruXlq0YvJA6K4HOVoyiRRl3VR4+oabvaZZSsLBqsAiBIj7nA65alPyJy9eUhEk2cAP07zzHZ5eJzpeen29I7qA==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.4.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.4.0", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.4.0", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.11", + "_defaultsLoaded": true, + "dist": { + "shasum": "87af908246300e03ab4b20ce2746a509267b8694", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.4.0.tgz", + "integrity": "sha512-DJLDCwY4edc7dan8M25yqo7pnNqebDIW/FAs1shbAor1+Kq+4ZK5XnAQ6fdOGra/WS/i2GNTyI8COuCpc+Ij6g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDYODZFfWRzo1ipJqhduEAr9VR51LD1fHkFJUv+t2FBEgIgVb13nPtgGFQGzrJp76wme8Jpr+AJkwIpOV4ySqRKmkI=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.4.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.4.1", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.4.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.11", + "_defaultsLoaded": true, + "dist": { + "shasum": "56d26f562e3bb26cd97b0b9dae848c0bf383e86c", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.4.1.tgz", + "integrity": "sha512-zy8XAVNsVVvKg0KU1b44XyK6CQ8/z8va0nziLZj1W4zhCSBxTu2SmmzrA4VOnK54Uo7MPxF3zex+ryVYZ72rpw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC32JTyVyojch7YGig54GXBbURr4pRCtMpdOjsWsw0DTwIgLbzNLZp9iQssmhdovDbCE1F4lgZuV1a2Y4dqOXOKihE=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.4.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.4.2", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.4.2", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.0-3", + "_nodeVersion": "v0.6.11", + "_defaultsLoaded": true, + "dist": { + "shasum": "d942b3c559ccf93a76e481b1bc44aaafa75cdc17", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.4.2.tgz", + "integrity": "sha512-7xZdytpnwVWfxJ2KbbfJQ6IGj/3qMpUjQtA+kZW8ZbJHc8gZETgTwJApqEuDXrV4udGWsvuPRcL99AqupkLABQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD+8n2ufBt6l3waoig63iIY3I//hw0s+UGTmSBC9FQGAgIhAI6nBahAxncg4Y//o1VpOLb5YwbUURvEsIigqcpG6nEM" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.5.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.5.0", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.5.0", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.4", + "_nodeVersion": "v0.6.12", + "_defaultsLoaded": true, + "dist": { + "shasum": "c3693f332d853a17c980a597143d5e6fe41d91c9", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.5.0.tgz", + "integrity": "sha512-m/RUAurTwOhMQf9MpMpjEgqJvRYgvrcS6PEklcDpRTazuU4Ow7cfrr6xPQ2z9l0T22XnkfVKh2GG/V0DNMg+mw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDuX359fhiUQRNWZPG+WyA6G1JIe89Hf8YRJNCLuzEQEgIgLPuznYQur2uoarM5vrQoR676DVKjmRvDsw91At8htfs=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.5.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.5.1", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.5.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.4", + "_nodeVersion": "v0.6.12", + "_defaultsLoaded": true, + "dist": { + "shasum": "6072d7188093490afe9d722162494bea76561bd6", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.5.1.tgz", + "integrity": "sha512-Sm9+lCLPrMUaVuql8qoy7DnjzyUurX1XRiHdkwnmS4UDKeQKUyXrjnyMCsnJtZH10yoT40C+AGJfvK3wycA60Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIF67l3FazGYjobzTDLewMmTKs35wB7CHq+GXUbtS9z3oAiEA9PUUZo0QktK/Rd07/Mo06LfLJ1pHC20H/j2Ntrh4OcE=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.5.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.5.2", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.5.2", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.9", + "_nodeVersion": "v0.6.13", + "_defaultsLoaded": true, + "dist": { + "shasum": "2e93a86c45043face8cc947a22a05ef93f936202", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.5.2.tgz", + "integrity": "sha512-0/Cux6NcDwjP2Z0evtDhUwy5Fb+TM/uK/O2fZDQpVm6DV6gpBX0AlkmPJJMAcgpA5hjJ1nuEm7fsqwbBxU6Inw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBZ4nB4eUA3VOlQL/OJnaBQZZjfexpmH1kj39xeSxxaKAiADMQNX4Dwy9hrMNf0YVmNGa8ueZD/nAGQHaEeNoDzR9w==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "0.5.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing"], + "version": "0.5.3", + "repository": { + "type": "git", + "url": "git://github.com/logicalparadox/chai.git" + }, + "bugs": { "url": "https://github.com/logicalparadox/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*", "codex": "0.2.x" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@0.5.3", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.16", + "_nodeVersion": "v0.6.15", + "_defaultsLoaded": true, + "dist": { + "shasum": "f191893b631e02216c12fc190a2ee56ef1bd360b", + "tarball": "http://localhost:4545/npm/registry/chai/chai-0.5.3.tgz", + "integrity": "sha512-rfJQEoc08fbJtcURiYtR34Q17UBOstTxUluQ9C/Xx4hVYOkajs7aRAdg/fIOz35HDk7R88rXDne0pJ5AwUksmg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCVmmYzp3Kp9rZWmDm5SnBX0qsKBdBSbKMh+jDaiV+1XwIgGGpaPh+DPal7kWgwvPB/T1F+/T34VHsM1qj49pv1bZc=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.0.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.0.0", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.0.0", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.21", + "_nodeVersion": "v0.6.17", + "_defaultsLoaded": true, + "dist": { + "shasum": "81a863ae54469ab7cd009f09405d60b86d9a19b9", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.0.0.tgz", + "integrity": "sha512-sbyP9aEUKcnH0uAqnYgzcszgIXenz+rYzbizalqkdZRpPf1iEHMpq29hJjgTlMvEvLcwWVLTMYiefUCp8WdMDQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCYmedzhjZ11tuGQIDkg3HkdcfMifsh/as8aZez76gHTgIhAPl27PQ/q2oUfrfcthARLvwp/M84EH/d1d82McCaqctn" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.0.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.0.1", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.0.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.21", + "_nodeVersion": "v0.6.18", + "_defaultsLoaded": true, + "dist": { + "shasum": "348759800d013d84cedab77754a597e9e0c87a5d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.0.1.tgz", + "integrity": "sha512-H852RSY4bO7S9Q+70aquHQLtIEXh/yXa0L4Riwi5lU0ifoJ+B7H7AFF1xga/6JvBmwLNMY1z/5h5wZHqiUt8uA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCID9bcUP2yWJwQdpeCkcovhJGujgm3aRyxN2fHneuNC8lAiArGxDz7Ft7+LIq5IezZKZC3jjDSZCNq5WwYQPp61hQCg==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.0.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.0.2", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.0.2", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.21", + "_nodeVersion": "v0.6.18", + "_defaultsLoaded": true, + "dist": { + "shasum": "70045831a1933cd770c12cf9af619babe0fbbe4b", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.0.2.tgz", + "integrity": "sha512-tQPAFBWfecoQbvGM0eBtW2yLwuZM/E0f7MFi3nRCIseFLvRjLdYnK9FjH3Y+FVFP412mk4o3+I2gaYGVSM2a/Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDGsux0rwFy5RP2BjTZWD5fkjr4sHIznUs29mxrYTNapwIhAN8c6WSwNOq6K1g5mj3BzYo0RdPYap0p2clUBisj4qti" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.0.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.0.3", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.0.3", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.21", + "_nodeVersion": "v0.6.18", + "_defaultsLoaded": true, + "dist": { + "shasum": "36662e56af0dd3c9044b4e4ae8a433f95e059c11", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.0.3.tgz", + "integrity": "sha512-EzMdTV+hPT6wxJSoiNe1xYLm2L/SYdtBaYEcAPXHzHdwGOokVAsgnTDWoqCVLS5vWKsPV92YFAcaL7RhwFK26Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDIS5tfonLQ5UwEHDlylltmbIf5osYiuUtfmMLulH5X+gIgK5/W+0sHTqIuObvZv6BmiqGjDZ7DUlripyOLdtzam8E=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.0.4": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.0.4", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.0.4", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.21", + "_nodeVersion": "v0.6.18", + "_defaultsLoaded": true, + "dist": { + "shasum": "1364225605a3ce8204a0818b6b5db7924bf05fa2", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.0.4.tgz", + "integrity": "sha512-3AHY7Xs/u820130IJty+CuRGi4KjiOQEBG61ilv3ULK+LQ7D0kC/rdZ/y6aXbHUbPWUS1ZvFijMRlygG+DSt7w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICsGpAKrDt/H3yysUg4rHFSTppmDpj2N2pwUhdyIcxQ8AiEAuNjeLvOjHsqk2dzvK8wyqFz1zLvncPZIllD9Cb2iGts=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.1.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.1.0", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.1.0", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.24", + "_nodeVersion": "v0.8.0", + "_defaultsLoaded": true, + "dist": { + "shasum": "d5e2dc5d7dd96b6b401bc66df523dd48cdf5c325", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.1.0.tgz", + "integrity": "sha512-zZL3BIn75/9+LTCq324EmD5WZjGyXWGtc/k7a+GW7lyT9TC7c2Pgaxa3yeMIVkszdKVFKqk2VaV0VrjYmG1iVw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBWPdFEud7PeIieHo7t0TF+KpMRePJXYv+Lbu3D7d6zTAiAXY+UZ8UMFp+xPUj/C/AfIzH43FcFJYrlaQrBHbGlTVQ==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.1.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.1.1", + "repository": { + "type": "git", + "url": "git://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_npmUser": { "name": "jakeluer", "email": "jake.luer@incatern.com" }, + "_id": "chai@1.1.1", + "optionalDependencies": {}, + "_engineSupported": true, + "_npmVersion": "1.1.24", + "_nodeVersion": "v0.8.1", + "_defaultsLoaded": true, + "dist": { + "shasum": "5f6cb181d64d6df77d8ddabb9f1b4be693946a97", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.1.1.tgz", + "integrity": "sha512-PKKjQAzR0sNSAbMiLEm4Kz0TDy9FKPPi7sHlZ6jTuUSQXLJhL8MVh97fTTGMeldrHt1w7OxSXuOopsSxyDeBPA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFwMusj4YZSYWxapbi6KdG7zeg+uykwsEkFTxIUlJqQlAiAXQO/nzUFt0P9OkAxTkqPCHJ2tuz+QbJjLRePEIMth/g==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.2.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.2.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_id": "chai@1.2.0", + "dist": { + "shasum": "7bf15ae137381b6e6db1e73b3831480e81457589", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.2.0.tgz", + "integrity": "sha512-A3epQNQAAzxmEWVUh6LUhrJsl6f5irEQGSVv3Ij/pI8lU8jHQBTl+e3GKWpYWHp32Pgp2EFdSisihnG12H3Tbg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAFvKa8zyEV/q2HSfEkd+byiuIp5q+7fHF61N8r6urCpAiEA+ffr9dIm5zoUexLXITJ377n7PwDz812V7uFjZjl1E1o=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.3.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.3.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "mocha" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_id": "chai@1.3.0", + "dist": { + "shasum": "6a597c6377c54e9dedc2ddb4641296fc05ff4fcc", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.3.0.tgz", + "integrity": "sha512-iAuEKsRk57Gav3NymoED+ecBW+kloFZni1urNTnGhU19wl//5lOVkbBT0iKNimBmFce8v3qWBz7+hYEGQgtPZA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDHzhjMpLNRR+5IiBUWUQF6eeUpqgmQdIusoyMlzfxiUAIgDBmW0Qncw5hwveYoTVeLMNCVlQyoZrK9F+TNK4QPC6o=" + } + ] + }, + "_npmVersion": "1.1.62", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.4.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.4.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "mocha" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_id": "chai@1.4.0", + "dist": { + "shasum": "6884a97b3f9e0ebac83ecc58fc8b1617dd661444", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.4.0.tgz", + "integrity": "sha512-WZDMVJWgbbpH0mi19EeKIQq2p3Qei/5ZDPiqw7fTPc/FVkuKPUTpt1VQhDw4AhsBroN54g2yHsaB15GMmXoDhQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCteQSU37LjWAu62yfeJzkYhbN3JqHM8TDGk+SpGoWOIgIgZx2XTouJfS/eQiwUEA6Fy4qGYoOb0e1zuGH9yvkF9lw=" + } + ] + }, + "_npmVersion": "1.1.63", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.4.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.4.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "mocha" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_id": "chai@1.4.1", + "dist": { + "shasum": "7a0b484008d583298f54183a5774bee635e88c9d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.4.1.tgz", + "integrity": "sha512-tVqs/RVig0bqS0mcR/iYT4/WHXgBje06+l2Vowhc2+zR8o47DPQgATMCEkKrA4qZDTD3PEDemWoNZYobmU+nxQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCwZmQ+g3oesY7FY3oATTwX0pbyFrzlGZaCSLb0uCZcyQIgC6utsXrIvzdBBw55dl95Z3WvqpcH6iTgAeIJ122KqDI=" + } + ] + }, + "_npmVersion": "1.1.69", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.4.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.4.2", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "mocha" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { "folio": "0.3.x", "mocha": "*" }, + "_id": "chai@1.4.2", + "dist": { + "shasum": "8bf8e93e3690171cf2632e7a113514bc3b3b076a", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.4.2.tgz", + "integrity": "sha512-hXU7KNl1nFfSxTMmVADlfnTV/GLxIVYHwC8+dVEWkToy7i5tsjnpCJahy9NJeAU+CFc/EvjZDs7v11EcuBTsZQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGplFHVct5cQ0GY9SxRMUjrhm5FrYByNPl7VruIIgz7FAiEAjdUgmQz4kQOzs6w3TDuPgJHNkeu/MK76TnXyUoDZ9WU=" + } + ] + }, + "_npmVersion": "1.1.69", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.5.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.5.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { + "component": "*", + "folio": "0.3.x", + "mocha": "*", + "mocha-cloud": "*", + "mocha-phantomjs": "*", + "connect": "2.7.x" + }, + "_id": "chai@1.5.0", + "dist": { + "shasum": "9afa2003cfcb732896f829568ee308a67cbeccf0", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.5.0.tgz", + "integrity": "sha512-MmczsQrJwRYBBBhpOvqVMPw27OOjj1Bg0NwT4NzLh5dwdfAQKoFx7NuB7DifbAHqCENncQl7QXu8fPof3am/4Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIFxOybjkvwvBh5lDSmwMJSkoCACc6LmXcdeQzpPRo7hTAiEAn8XBMDawrIz1aLGAFxl9EbYts1ynk0bZsGVvKx/uCzY=" + } + ] + }, + "_npmVersion": "1.2.0", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.6.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.6.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { + "component": "*", + "mocha": "*", + "mocha-cloud": "*", + "mocha-phantomjs": "*", + "connect": "2.7.x" + }, + "_id": "chai@1.6.0", + "dist": { + "shasum": "dbfca9d88710c436fcc78f9ddf8e795f6b5826ae", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.6.0.tgz", + "integrity": "sha512-N9JgkbAEM4T7y1wBE7qJgrs3QgaT7NNd5U9lBmqWXb0RvQuItBgGxVG18MNH18zS31/u9WHx2LAUlGyzvJkK2Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICNA0f+bLgx9GQWoMBNnEgahVO5+ZrkVn05tUktRuA6sAiEAr2yTfnEJDBuRGFPMEBQDawcbJayLohKR0Us9+eH/DaM=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.18", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.6.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.6.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": {}, + "devDependencies": { + "component": "*", + "mocha": "1.8.x", + "mocha-cloud": "*", + "mocha-phantomjs": "*", + "connect": "2.7.x" + }, + "_id": "chai@1.6.1", + "dist": { + "shasum": "ae400359111fba3eb538275b8be0e9145119b321", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.6.1.tgz", + "integrity": "sha512-JfkZUHyL/BSWoe66JjUGxtTwVfk5SVaA0yoN7IIwlTx0SoL5VgkWV2iLj2YyS2FbJBJ/i/T+gboLFdEuUIBJ0A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIAuLJsKo3yWOumsULUUkNmzSO43BHJcW9wjvVdVWEokbAiEAw77/HveW1BhdLbEzv0nxOH6EwBqYUZouypvOshLaW08=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.23", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.7.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.7.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0" }, + "devDependencies": { + "component": "*", + "mocha": "1.8.2", + "mocha-cloud": "*", + "mocha-phantomjs": "2.0.2", + "connect": "2.7.x" + }, + "_id": "chai@1.7.0", + "dist": { + "shasum": "8fd9104ae4876210ebf25f4ee38f96be6ed6adea", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.7.0.tgz", + "integrity": "sha512-q4eAxsxbDUi+rMvyH71C30EqsoguEHOfoqrmYlutjgFUTXZnZYunHp8fCufLs3ZZDu+RUhefeh6amCxFm16mLg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIGhdN3VvD2IzHap8feLNEvytTj799necG2Mh3E2bKz5+AiEArugySuQboNpek1v0zb+caOSwjvwhcj2dnDU2fYVtG6o=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.30", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.7.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.7.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0" }, + "devDependencies": { + "component": "*", + "mocha": "1.8.2", + "mocha-cloud": "*", + "mocha-phantomjs": "2.0.2", + "connect": "2.7.x" + }, + "_id": "chai@1.7.1", + "dist": { + "shasum": "dd581b599233d7de8e7f823711c8579bc74f38cf", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.7.1.tgz", + "integrity": "sha512-+/CkYqTqA9cd3drkIwZ+u/EHV83JvgATdtMY/ZQr3bwiNj5DM3Ecubf77urMXQdEmn3Q405HQiNDIZegjvRG9A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCCYP14+zV2RpKtUk0HQqdI0vij+anEX3PDH05geQBhggIhAI8K5wtYXQYwDEdKqb9EJnMjhxeHnG/sS6LXexakH21f" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.30", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.7.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.7.2", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0" }, + "devDependencies": { + "component": "*", + "coveralls": "2.0.16", + "mocha": "1.8.2", + "mocha-cloud": "*", + "mocha-lcov-reporter": "0.0.1", + "mocha-phantomjs": "2.0.2", + "connect": "2.7.x", + "jscoverage": "0.3.7" + }, + "_id": "chai@1.7.2", + "dist": { + "shasum": "ba07ebd4e1ac138a296cdf69077ce74b7f4a1317", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.7.2.tgz", + "integrity": "sha512-iTItmoMR+S+g8g0xU7db2mrr2LeLMJ6Y+YJwJEOUSaVTzm6qyTBfj5r+5x+XQhlXUfVn6WfFS4sXpEtMg6Qwaw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIB8pem/0wX+KUKXrBdT/I2BhrX0+idI+qa1O7BlVjy8UAiEAzqQ235gZnaLoqg/DgEdTC+RNEpyNkXIR1nVnNSRDmBI=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.30", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.8.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.8.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.2" }, + "devDependencies": { + "component": "*", + "coveralls": "2.0.16", + "jscoverage": "0.3.7", + "karma": "canary", + "karma-mocha": "*", + "karma-sauce-launcher": "git://github.com/embarkmobile/karma-sauce-launcher.git#feature-passfail", + "mocha": "1.8.2", + "mocha-lcov-reporter": "0.0.1" + }, + "_id": "chai@1.8.0", + "dist": { + "shasum": "1f7accbe91e2e71a08d8208b31bbbdc6862699ac", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.8.0.tgz", + "integrity": "sha512-x0UjmqOXzz1tLY46Jiumdlcq6pZ+u9zWp1422oRXzVWRiahMq7irQVmyb5/42q4YX89/K1raILWZ69Lryjaucw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICPoMpe2DGTcUSk71d5V62CerTRgkZCcLi6pO5z732hwAiEA28NGdcDnr5Oa+dLpbRv8CI3r56ns4PZWhcUDUs5F1yg=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.8", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.8.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.8.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "coveralls": "2.0.16", + "jscoverage": "0.3.7", + "karma": "canary", + "karma-mocha": "*", + "karma-sauce-launcher": "git://github.com/embarkmobile/karma-sauce-launcher.git#feature-passfail", + "mocha": "1.8.2", + "mocha-lcov-reporter": "0.0.1" + }, + "_id": "chai@1.8.1", + "dist": { + "shasum": "cc77866d5e7ebca2bd75144b1edc370a88785f72", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.8.1.tgz", + "integrity": "sha512-/pN2re53avlBUtKeC+mzMwvi70Wu+xCPtXwF4Aph1liB3OXjf/LHRMxcrNu+h4kFmhY/9pb24p30/O6ArjK2Kg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCRK//pltEm+9gDJv3yDT7uF5g4N6tFdmB/x/23WMXHpwIhALjS9aJ9xfB5kz8TZJzfM9SXIY2WS9Ua4Lon7WJf3Xbc" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.11", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.9.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.9.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.11.12", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.0", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.8.2", + "istanbul": "~0.1.44" + }, + "_id": "chai@1.9.0", + "dist": { + "shasum": "3ebe99f3bab9241ed3fcd576f8fe96cad9ed7413", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.9.0.tgz", + "integrity": "sha512-a79o1CsOBi+6Sb8athh4YryOXi+2VDUrkeRrs1DJ11YPfyqDxnTOtXlTck4hb+KWDboNbDZ63htinWG87F+mrg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCdaTwrSzTasj9SjeqiCDtRjlaimc3T6V7P8JbLjs+G1gIgAOLs/X96T4RpoEQ55ZJX79WzDGDHjnyYo3DSRqHdh9I=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.22", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" } + ], + "directories": {} + }, + "1.9.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.9.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.17.x", + "istanbul": "0.2.x" + }, + "_id": "chai@1.9.1", + "dist": { + "shasum": "3711bb6706e1568f34c0b36098bf8f19455c81ae", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.9.1.tgz", + "integrity": "sha512-2qKqOkqNwd88Ew129eoDL/CCXcaEqSbrSiM6h/+kJLkI5sQRitykJQ+JN7QsUqAJOjrDkyQmOXsfATJHCPs42Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEaWMOVA/VbfPaTWUMTbtr7Vp/GlGJvxNLDFhKlICMq1AiBiRBt75H3nxFNrafWqAujRWj9ZOpy6u87KHVHGkSrovA==" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.25", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "directories": {} + }, + "1.9.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.9.2", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "_id": "chai@1.9.2", + "_shasum": "3f1a20f82b0b9d7437577d24d6f12b1a69d3b590", + "_from": ".", + "_npmVersion": "1.4.9", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "3f1a20f82b0b9d7437577d24d6f12b1a69d3b590", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.9.2.tgz", + "integrity": "sha512-olRoaitftnzWHFEAza6MXR4w+FfZrOVyV7r7U/Z8ObJefCgL8IuWkAuASJjSXrpP9wvgoL8+1dB9RbMLc2FkNg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDTxDGSKkSLaR1IyRrxxoIpAwlURxlIQSRgv9vyax07jAIhAMngyOIJTWvFHxc9+ucLU7kbHKj3Q9QsYod8T6WIoyE6" + } + ] + }, + "directories": {} + }, + "1.10.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "1.10.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "c8b3208ce4237d4e0b16508174d616f155c984a2", + "_id": "chai@1.10.0", + "_shasum": "e4031cc87654461a75943e5a35ab46eaf39c1eb9", + "_from": ".", + "_npmVersion": "2.0.0", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "e4031cc87654461a75943e5a35ab46eaf39c1eb9", + "tarball": "http://localhost:4545/npm/registry/chai/chai-1.10.0.tgz", + "integrity": "sha512-E3L9M2SeQU1XagJkE9KJyTAXXHKJkJ1EsKkFp0Rl53lYa3mro2PVgYHNiCb2YRa2nUeyg7aqmI1EIcSBayNd5w==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAV9yjJ/am0eP8VVo7+aUvsdt1W4uRWCqgO5mydID4G3AiBkly/Gu0Fxz7m/jCHKHI/esrveiFdnFZsMbXYttOJMqw==" + } + ] + }, + "directories": {} + }, + "2.0.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.0.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "2147e1d49eb5caa27e0afb9e18208de2d8741f39", + "_id": "chai@2.0.0", + "_shasum": "9cec0eab7d782628f2df51226a41651869a9f894", + "_from": ".", + "_npmVersion": "2.3.0", + "_nodeVersion": "0.11.16", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "9cec0eab7d782628f2df51226a41651869a9f894", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.0.0.tgz", + "integrity": "sha512-tscgUV+es5m3o/wTwY0c/B4xj3zBHsbBeetSQe9mmsjRfVQYMF9+F0O0+CW1qPGMXv7Uf1tiID7s9DPc6GZRTg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCICQoi451utAKYQLhP9UncHImvnWvJwwz9Tc6yh+fSQR7AiEAirRn4fSEAFfuuT0qs9ncoFUxgwOKUUmpDuV+2WTHH00=" + } + ] + }, + "directories": {} + }, + "2.1.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.1.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "09e17b9e090c02d38cd5ee441881dd2691635124", + "_id": "chai@2.1.0", + "_shasum": "7c8753895b03eeef2bf23f0f9e45fefa43ee4fcc", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "7c8753895b03eeef2bf23f0f9e45fefa43ee4fcc", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.1.0.tgz", + "integrity": "sha512-a51X6DEd0X3XWQPrvyPZcvu4sXkETo8vvmX9ZLcdm8hjMcqSYP4xM8CheuiGh39cukiDpDe4zd/TcvEM4ZpYog==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDPekdfE16ReyiwBZ/MqE3TtKBPYKBdtbBdds8MGbFccwIgK5HTJk4kBhcZoNsaH2rgiufxfBUfCkEGEkDv9N7kPsM=" + } + ] + }, + "directories": {} + }, + "2.1.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.1.1", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "d7cafca0232756f767275bb00e66930a7823b027", + "_id": "chai@2.1.1", + "_shasum": "9c75e20d4dc73ee051650733938b46e7a9559058", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "9c75e20d4dc73ee051650733938b46e7a9559058", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.1.1.tgz", + "integrity": "sha512-32J8bV42RPXYhZoj0/6nvpl5I/yJ6TvONLW7n1Gam1lBBfR8NaAOqaQCqqZGjl2jQ354IbzQvdUisxNNdamZAg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICYIQAV+BQQ696+bFN/MwF6m7g/ezHTk4AzVL3U26baJAiA/YcNCIRycKd3Jm6dmGVN8jLsETFN06U8yWnt+zuUoQg==" + } + ] + }, + "directories": {} + }, + "2.1.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.1.2", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "7ca2a3bee515f721d5ceb771a371170cef6a4874", + "_id": "chai@2.1.2", + "_shasum": "01e7cac8950ce356d520afe78132505b1cd5440f", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "01e7cac8950ce356d520afe78132505b1cd5440f", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.1.2.tgz", + "integrity": "sha512-nNVWgMiYCP0dWu7YiReJSScrWvy7/QWBT6gmX3Ngua+e10fhbLHMohzCTI6d2p7Fm7TD6CH3JSZiUulAvLRfRg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEMRNI2M+K9ZuuTBMmjT4yKgtdYTwl7U1jBWFjNmvgUVAiAs9/UOgkymXceXPs4OdsdF2xP7ugvE4d7YSHl1gd+EQg==" + } + ] + }, + "directories": {} + }, + "2.2.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.2.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "57df3888f66c4b34923ce8576aa93855a0ec2f75", + "_id": "chai@2.2.0", + "_shasum": "d21135623bd393ad4702d94536eca482ad78d01d", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake.luer@incatern.com" } + ], + "dist": { + "shasum": "d21135623bd393ad4702d94536eca482ad78d01d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.2.0.tgz", + "integrity": "sha512-7G060uuwwpCZr1yUPVyRhbAv1K7H7RMB42f0/QfuxultB+XSeR/oriXvUJmNeYHAde6Z+qSQWi461eK3Bmvzyw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDkd3X01R5kLkvCMgTItIRxwV1T2DQAaVnu5Jb5r30BFAiEA/cEeVRkLp/0oQLG3DsQEPJt0gIrqs3Z44yr3N3zH8Xo=" + } + ] + }, + "directories": {} + }, + "2.3.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "2.3.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { "assertion-error": "1.0.0", "deep-eql": "0.1.3" }, + "devDependencies": { + "component": "*", + "karma": "0.12.x", + "karma-mocha": "*", + "karma-sauce-launcher": "0.2.x", + "karma-phantomjs-launcher": "0.1.1", + "karma-firefox-launcher": "^0.1.4", + "mocha": "1.21.x", + "istanbul": "0.2.x" + }, + "gitHead": "3de55026458ace296df354757361953ec1949859", + "_id": "chai@2.3.0", + "_shasum": "8a2f6a34748da801090fd73287b2aa739a4e909a", + "_from": ".", + "_npmVersion": "2.7.6", + "_nodeVersion": "0.10.36", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "8a2f6a34748da801090fd73287b2aa739a4e909a", + "tarball": "http://localhost:4545/npm/registry/chai/chai-2.3.0.tgz", + "integrity": "sha512-/HtcZZzZolyYgU8x3qClyPGxWS0/TKihLbIuQHam40hZwgyx/6sbm2iLfk8I43mBm2Dk8GoyVstgQLSxUwgShw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDYaO2b1Mvl9IDH4n1+rtttCPIWijucNdmVg14yR6VRbwIgAO56aehvV1zjsXGub7jEQu9Kx1FqU/aXgToOf0ckZrE=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "3.0.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.0.0", + "repository": { "type": "git", "url": "https://github.com/chaijs/chai" }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "084a419d81338b4559fb56a53ec48bb552f2be82", + "_id": "chai@3.0.0", + "_shasum": "71bfd1034fc8c2d8c5053875bb38f59b2a6f1928", + "_from": ".", + "_npmVersion": "1.4.28", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "dist": { + "shasum": "71bfd1034fc8c2d8c5053875bb38f59b2a6f1928", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.0.0.tgz", + "integrity": "sha512-h/7oAXvZAC4ENgCZgX0TqMSY628MEXZ5ZCCnuG/a5dCmUKmYPh9lUhHIqDrEaahpzvDEhdIGPFpeNkNsA60cAg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQC5x1p3+qRtT7e6zTJCXOU4CZi+AdhVjuglhYatCYVJigIhAM7N+t2HvxyZYc7plXTyE1uhv76gYRotZExpxvlRsegP" + } + ] + }, + "directories": {} + }, + "3.1.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.1.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "9633cb19bc1085aa18c346ac36cd6f223ce3eeb3", + "_id": "chai@3.1.0", + "_shasum": "ae50e546a4c2315c88034ac9986a4f14bf711721", + "_from": ".", + "_npmVersion": "2.12.1", + "_nodeVersion": "2.2.1", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "dist": { + "shasum": "ae50e546a4c2315c88034ac9986a4f14bf711721", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.1.0.tgz", + "integrity": "sha512-5OPEKgEvTe5PHhB5aoFAQxZpK0va1lIfPgFtx8iMD1wWCQYc4HiRXj7/dGx3J00V0yC1roSt1KodgxzQMdJwbg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIFVODtOEsIx/Q/ktIr6qY3TQVARN0RRW75TtnwFclcfLAiBLpPF4NLq92FtoyrGhgSnIn1eNqJCjobAVVM6JJYGWog==" + } + ] + }, + "directories": {} + }, + "3.2.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.2.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "4e18d2a49394f21f49eaea97f556d6a17ecbcc7e", + "_id": "chai@3.2.0", + "_shasum": "a91c06acc01057f4f4b67ed7785bd7ff4466b2fb", + "_from": ".", + "_npmVersion": "2.12.1", + "_nodeVersion": "2.2.1", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "a91c06acc01057f4f4b67ed7785bd7ff4466b2fb", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.2.0.tgz", + "integrity": "sha512-qwjMMh04wwassfJ9dWL1Lv+S757SYTh3S5B2PM53f9fsH0wlCLc64dWAv03SdEzFhieMrSu3oyYZNi8TnsiRrw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGyocO9dhAL15qxvT+lvG4FVDgKl6TdCml8Vyd0WKWSRAiBZzIJNepgU0WQMsKKjhQ/yFls4N7B02kohwm6mQByZoA==" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "3.3.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.3.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "df954ccacf77cc740f45730c04a37bccf7387456", + "_id": "chai@3.3.0", + "_shasum": "ffc291674da551e589077d6627384acabca2e02c", + "_from": ".", + "_npmVersion": "2.14.2", + "_nodeVersion": "2.2.1", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "ffc291674da551e589077d6627384acabca2e02c", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.3.0.tgz", + "integrity": "sha512-GRxKSa+oFlhTd/2XEEBnyhYZlLCa7ueexFZpDBVtkcpGFuwnB9/+RDiiSB2VjG3TpkgqYZUVfhI/KxLHMlYCyg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDOwlM51F7Eh3zznedg9+zCNKLmxaG0m9kmRwNuQ9o4BwIgOEoGohg+OATNfE92zwIRaTI6C8BK43K7Z30cgQjrGXI=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "3.4.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.4.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "71b2512a9919a1490cdbb80e6d4c924399a283fe", + "_id": "chai@3.4.0", + "_shasum": "fd268ede01c3e081891ab59d30628fb3b9df4786", + "_from": ".", + "_npmVersion": "3.3.8", + "_nodeVersion": "4.1.2", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "fd268ede01c3e081891ab59d30628fb3b9df4786", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.4.0.tgz", + "integrity": "sha512-c959X6Ydoah5nNc1BWkvB1nb8U3svL1f6UOH7zGZoc9ehqwnubtMPMLe7yKpJ5ZvsBn5czVtb+UTCisDZTHIZA==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDXwoM34kxfcsclZ+5gAr8Vu++KvpRY8O5Io4lDK9NpVQIgK2o+JCWDMoaumk2IW5r6xnEX8J0QEmMTdJwuTPgsoWY=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "3.4.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.4.1", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.12.0", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "5def52c217fa4fa90c0507dfe1d0000268908f1c", + "_id": "chai@3.4.1", + "_shasum": "330ae2f819124c26182036fa5e43a88ea4e1bd85", + "_from": ".", + "_npmVersion": "3.3.8", + "_nodeVersion": "4.1.2", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "330ae2f819124c26182036fa5e43a88ea4e1bd85", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.4.1.tgz", + "integrity": "sha512-tUC1XLrSp1x+CI/nOucYeQ8mRTpi8TXr6oR5trVZBOKK8Uo3/G4AXRLylEETej7ukH+ZPSwtW6iSfUe7l7Lgag==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDhNNlflL6FlDynpnq5258m/n3uenUYuMm+aLiwYbpMiwIhAOnZZgyyAKwqj0bPCFReiF+nl5sqqi8g+qBS4p6H5q/1" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "3.5.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "3.5.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">= 0.4.0" }, + "dependencies": { + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" + }, + "devDependencies": { + "browserify": "^10.2.1", + "bump-cli": "^1.1.3", + "karma": "^0.13.16", + "karma-mocha": "^0.1.10", + "karma-sauce-launcher": "^0.2.11", + "karma-phantomjs-launcher": "^0.2.0", + "karma-firefox-launcher": "^0.1.6", + "mocha": "^2.2.5", + "istanbul": "^0.3.14" + }, + "gitHead": "4ca0218391cf947c6cfac2d1a7424a63a4b4c232", + "_id": "chai@3.5.0", + "_shasum": "4d02637b067fe958bdbfdd3a40ec56fef7373247", + "_from": ".", + "_npmVersion": "3.3.12", + "_nodeVersion": "5.5.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "4d02637b067fe958bdbfdd3a40ec56fef7373247", + "tarball": "http://localhost:4545/npm/registry/chai/chai-3.5.0.tgz", + "integrity": "sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHY7HMw3T5OPEAqvW5IY6+9ehYbLuiZxcx0ZIX25F2pRAiEA1mq1W5yRiWS6PM0pl9M1NTpfKV8Jz8itPFv8pIZWeAU=" + } + ] + }, + "maintainers": [ + { "name": "jakeluer", "email": "jake@alogicalparadox.com" }, + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {} + }, + "4.0.0-canary.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.0.0-canary.1", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=0.10" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^1.0.3", + "get-func-name": "^1.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^13.0.1", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "43752b05df6fdcda89b8d6a42c05f0736bec8ec8", + "_id": "chai@4.0.0-canary.1", + "_shasum": "f4b5f24a4064795c4efac271bc85ce9f69c9f467", + "_from": ".", + "_npmVersion": "2.15.1", + "_nodeVersion": "0.12.17", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "f4b5f24a4064795c4efac271bc85ce9f69c9f467", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.0.0-canary.1.tgz", + "integrity": "sha512-Kd39N5tBKQXHCKim+4n2LAL5X1Z+jbdFQGiWk1Yg0o+Q/syBcf9uBteQfL1zatQgFyd71gIsQehLbet0VriXWQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEGdtIPs3J/NYT5xk7GHKXxNGyGgE3ch0fPOph4EM+5gAiEAtEGkA5l0uMmwV2vz1NbVzm0ZiTeN3iNJnAQttk/IYAc=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/chai-4.0.0-canary.1.tgz_1477347063850_0.18597974558360875" + }, + "directories": {} + }, + "4.0.0-canary.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.0.0-canary.2", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "browser": "./chai.js", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^13.0.1", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "850bd7e016606ce52292c0477320279a8b9cf294", + "_id": "chai@4.0.0-canary.2", + "_shasum": "a017f59d3ed2d64795c91a51b5034e41b873da87", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.8.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "a017f59d3ed2d64795c91a51b5034e41b873da87", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.0.0-canary.2.tgz", + "integrity": "sha512-tBhHOU0FDil7F5IXzWMGIRqDCeOtomI/YueXK/Epay6pSx7xZJzMOBGyCeIaRHY95iry8+arCNNIerRuW7ugOQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCzR+wyltN9Y0ixHzuXidN+MTQ3U9NhWuM2b9oGXKRRBAIhAPQKo5tNqc2WkCFkDJpsvRQuRPE/ADjDDYlRG1wZzJf4" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/chai-4.0.0-canary.2.tgz_1492450394517_0.7511835743207484" + }, + "directories": {} + }, + "4.0.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.0.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "browser": "./chai.js", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^13.0.1", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "ab1fbadcfe4339072976e468382b3d875fdafe5d", + "_id": "chai@4.0.0", + "_shasum": "f6c989e45a5707d40c54d97ddd7ca89b30a6a06a", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "f6c989e45a5707d40c54d97ddd7ca89b30a6a06a", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.0.0.tgz", + "integrity": "sha512-FQdXBx+UlDU1RljcWV3/ha2Mm+ooF9IQApHXZA1Az+XYItNtzYPR7e1Ga6WwjTkhCPrE6WhvaCU6b4ljGKbgoQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIH+XOGqdf4Zsjb0phZJYk4dovALtCsooEuCX4/wcu6VuAiBqXZTn/XYS3XwcAnYWSEttaPy39kM2H1J9As/Zw9eDHg==" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.0.0.tgz_1495794695702_0.8961308586876839" + }, + "directories": {} + }, + "4.0.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.0.1", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^13.0.1", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "b38b8d765972d624f075cf173806b43164430dbc", + "_id": "chai@4.0.1", + "_shasum": "9e41e808e17a7f10807721e2ac5a589d5bb09082", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.3", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "9e41e808e17a7f10807721e2ac5a589d5bb09082", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.0.1.tgz", + "integrity": "sha512-YpPiiMNoEijEENHxbl/2Me8+kfebLMerG2mi7FEKNiWuQQ8gBYC7OKqcp7HVqw93hsCb8X4Pf4Ip9zcZTmnx4A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAQwA84+9/ZrqNiXYwdzcfBVWVuGGpO/j85i61+Es/7sAiAOsPk4MkIxGcMhQfatV3gipMjc18pn+h0mtELxjEt8Lg==" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.0.1.tgz_1496265625036_0.6473847914021462" + }, + "directories": {} + }, + "4.0.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.0.2", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^13.0.1", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "616cf8bf883afa67f99a952901b4b44fcabc0cfe", + "_id": "chai@4.0.2", + "_shasum": "2f7327c4de6f385dd7787999e2ab02697a32b83b", + "_from": ".", + "_npmVersion": "4.2.0", + "_nodeVersion": "7.10.0", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "2f7327c4de6f385dd7787999e2ab02697a32b83b", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.0.2.tgz", + "integrity": "sha512-SSBITzu/g8nD3cP/GUKPYP9OBX92s4hvz+t6spQ2SjknieqUGKqR8etHQXV/9an9Ot+8iLrnFoBRcsIxefcHGw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIBgjCy7yuAlAL5DbKqjciRcWmlyfIenQFGIjfEvXNzYoAiEAl4qTNueiAKWSYzW4tL22pDuzTmglOFNWMT+bzlY1t2w=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.0.2.tgz_1496691226691_0.649338636547327" + }, + "directories": {} + }, + "4.1.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.1.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^14.4.0", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "df9073cb8eb2bb4dbb173dcaef29d4dda7ad76a2", + "_id": "chai@4.1.0", + "_shasum": "331a0391b55c3af8740ae9c3b7458bc1c3805e6d", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.4", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "331a0391b55c3af8740ae9c3b7458bc1c3805e6d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.1.0.tgz", + "integrity": "sha512-p7POs9utQIjw2WqC4J0993iRmr/rfgNVaJ6f4rd3k1XQRapM5v3lYXprYp+yxloEi+wasd8i2jLr/GE94mTIag==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC32aDFBhfdeu1R5e6LREYTF3uoFgjH3lXKpijU5CmvoQIgESAJ6eERia1vTSZ2OEC/K7KW3Y/3BAwLR3Pl7Xicgbk=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.1.0.tgz_1499818629025_0.3245607155840844" + }, + "directories": {} + }, + "4.1.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.1.1", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^2.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^14.4.0", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "02ddebd8f274ba94f9eb95c1c8c21176be6fe20c", + "_id": "chai@4.1.1", + "_shasum": "66e21279e6f3c6415ff8231878227900e2171b39", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.4", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "66e21279e6f3c6415ff8231878227900e2171b39", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.1.1.tgz", + "integrity": "sha512-wXqQM5Ck2MhK3D6tHXozIB7hd65uLsR1QgII0WQRfI2HK9Ny/dJlkaWZgtp5fI2AZ7vOiVCAK66AIAWz0mKy2Q==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQC2BiuSthzwv0d/TLIoRetZCAWvWE2m8D4Go/+Zvr+VbQIgOlBo/QK5GXn4tVrLqBhvh6yWrZomPRiFv6w7Q4RDw9U=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.1.1.tgz_1501918384597_0.915291927754879" + }, + "directories": {} + }, + "4.1.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.1.2", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" + }, + "devDependencies": { + "browserify": "^14.4.0", + "bump-cli": "^1.1.3", + "istanbul": "^0.4.3", + "karma": "^1.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.0.0", + "mocha": "^3.0.0" + }, + "gitHead": "529d395fa08091af2a02a8398b1144c51ed62178", + "_id": "chai@4.1.2", + "_shasum": "0f64584ba642f0f2ace2806279f4f06ca23ad73c", + "_from": ".", + "_npmVersion": "2.15.11", + "_nodeVersion": "4.8.4", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "shasum": "0f64584ba642f0f2ace2806279f4f06ca23ad73c", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.1.2.tgz", + "integrity": "sha512-YTHf80rJ8M5/cJoFKEV1y3PnexbGs0vSHjouRRU8gLM05Nc3Mqq9zor/P4SCqB/sgvKRLvya7wHLC1XQ9pTjgQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDNK1/2v97LFLZrMNO6ISN2g/8FRg3+1uNpFabi6y1WOgIgZzDNakkbKzduXIi7TdV3fQDy7T/1gBBRTMjoKFTttHc=" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai-4.1.2.tgz_1504215698412_0.9556753125507385" + }, + "directories": {} + }, + "4.2.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.2.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.0.0", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^2.0.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^5.0.0" + }, + "gitHead": "26c8a794ec6da695f004bdbd6362a466dc3d098f", + "_id": "chai@4.2.0", + "_npmVersion": "6.4.1", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + "dist": { + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "shasum": "760aa72cf20e3795e84b12877ce0e83737aa29e5", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.2.0.tgz", + "fileCount": 48, + "unpackedSize": 735419, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq3haCRA9TVsSAnZWagAAVJYP/2TkPegZgegrYa0qukFY\noJiSaGUU0hJYP5cAwfrYTRNzMKuZnwIj0uTV2uEtC4FIl4/kGeI0tHoeEa4s\nY1W97C7e+5l96JVmODkTo9a8Z5Fz3YEeUk+fpqFRFqZuvRUtw6htqzKyg4yQ\n26hysm/79vCtPqzzK7Kvc2JCt5zen+NOcxOKKJ6e8ptMIemdq5FxnqJ7Pbeq\nH40DJzZXiQD6+PSfJs27NaIU5HlGNzCxFwgn0ZFhRUBrx7qALWDja917LTH8\nyKKAcxhjPsslPzeOctwJm0ckwC7/7rAUBhGL0TsTe7kyvqjNhAPikA4x2mf/\nPqGmpj5zjMIP7f0nN7a2cCq9gROaurxjr0YG63KnhXm2bqX5b2sAf2+kOiNU\nAjxFWA04/AgjCdU6oVIgwosMITqJY9MvCzq/r7wKv5vNBKMqtcTag3Y2muIE\npK73z34WKbNvInyWJ8tAWiK2CYIhKxhmEkd/VrOYSfyzaQxRD96PmCrRx3he\nCfcKUSCOcfWMFcyqq8GJuALbAli0nFeI8RBcG+d28b42J3CnncmqlvgQtitY\n0y5vqmcEWhoRz3zDk6qukvhBwZgkEFl/vorxOCCpeON2rjweKVBN423frjbl\nULvQhznTMfqhj3UDF4AXGYm43yyY/Ozu9dYG+b1tOj2GUEdH6xf+xLodTa6p\nd+Ec\r\n=8N+I\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICiKHcqpvovYba+vLA8ms6KyuQmoKN0Wc5NxM4f6Yj62AiAMndUla4oO7SHLDXLCqavq1XB7CUMU42EuSd2RWWJxzw==" + } + ] + }, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.2.0_1537964121939_0.6568203770301109" + }, + "_hasShrinkwrap": false + }, + "4.3.0": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.0", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./": "./" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=8" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^2.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^1.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "39dd113f36fa747ae9b419ae30eb697891bf6709", + "_id": "chai@4.3.0", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", + "shasum": "5523a5faf7f819c8a92480d70a8cccbadacfc25f", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.0.tgz", + "fileCount": 50, + "unpackedSize": 741487, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG9M/CRA9TVsSAnZWagAAiOkP/j82xQut+L9ZqU9EeR6N\njlHHCfveKshFORD7ngbGmsphDHSW9DYy7cppleCA9Exrn0Kyd3P0pDJ+ohf3\ndXrhftqaimEmlX5OQahHIEpRaA5SL4gMeg3mxnGHEtClzqtGI1mhtv99j8eS\nrx9cFdb5pn3bQVL0sVIMO3rWwHrkwhYtX/319s+G9L5kw7wxF7AqMHG7FdGd\nB5GjTmH1Dg9DsYSY03SZsZ5ktqLoNIEP7T/6RhhnQ6TNssDTpm6A567ao6EO\nQ5O9sb0g1D52udjtZ1b1YHAHfRWqolHrFZy5B65q2f9u8Jy+O554J07ld0jw\n94ihMMAg8BnQFlGu3CanqJFY/ETmevoi1CwWZhUECbqe3woqsFOa+vwT8X6f\nTTJfakwOb/gEEsMHH/5ug59jFOIBQxhIjhjkF+de1+YdQ01XZs/u/cN5CWul\n/SfRBkqo4OKbc1xvYR7xZPHyyNmN+METn3o4nRnL3TBtJPCDK0LnYS22cl4P\nOW96vcLWa9WtFkEIbBqDxvlYWpo/20rUjJ9bobcVutgbG21+6xDwKWpgp0z5\nP4RPBPFSQ4n1wythy+E3YF+QGO3Y60K39K9Yxz2qlZffg/ARg2WZOvdgqyCW\nOrjit4ZlaCS6Vya55xKAmqQJCkEeDQWM8uYEVlHOfGXivNC3mlKVkdJjfLlp\n803I\r\n=DhFc\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIDo1OLNB+GCN/PKsEmoYYm1rChUyJClwLVasxemvmls5AiA8kOv92QZfeI2D8abUkHA+leWFCM+b9PqPd4ZwoBxHjg==" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.0_1612436287207_0.34154702724570685" + }, + "_hasShrinkwrap": false + }, + "4.3.1": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.1", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./": "./" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "8a246661566227db3d37019bb0bab3bbcdf45841", + "_id": "chai@4.3.1", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-JClPZFGRcSl7X8dYzlCJY7v+X1fBA+9Y339Y8EqhBVfp0QC1hTnaf7nMfR+XZ74clkBC64b0iEw2cWKHt3EVqA==", + "shasum": "6fc6af447610709818e5c45116207d60b8a49cfd", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.1.tgz", + "fileCount": 50, + "unpackedSize": 743273, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPoG8CRA9TVsSAnZWagAAoQIP/0pPLUSMvtOmgXxlgQ+3\nw0lbMWr3wfYfJHSprYFzrmm6tVbs4LcTHCHKx3yX45mQBKmDdSrk8c/enUZj\nMIMDriTZZAbTZcbL4qqjizP6tpkmW5eDeXEwxdPTESBEmbGkl4OuJ8/wK/4t\nFN0UF1/Wv/QoGGsOhb/CH13rYiZJo3zklLfOxKNgW9tDKZ8hYiZ08NOBJch4\nC5gbtud81rMIWRhAdDoulqVlaopS/3jmhmS+qCRsqRxMAd6jEVaxiscurbRG\nqI3++lcmAzp3I//lpmIjqsLyrJ+u3f+xEWMW1gHhyzhciIE4HyR6LHOG5dZB\nszOhwaKTRttAF63/jXK/yiQnX7bBvjlVB3trDao0ZL49PD89z1FXftlkw5oo\n7/8OKkEjmtIsmpLa9GtiaMOXZoIDCzj0ZpGP/62wwWKZnlgEQhHGh8hcuw/R\nAOwWvShp6a90s7maxopF8xaqBiKaPG1gVdDULyNfkq58kDlZDJW93AWSNBcL\naYjUulIzxiRGBOYQegMl6tZEf/vsrWMJLyz2pmkFvy3jR0kGboWcv7gyiLRy\ndxFJTUJIs+T2FwlHYit/y9Hy/nk19iPktIXg/t794x7iUx3UerHdcPuQIOT2\nyfKHvdoJJaX1E8wlx638Khgcw57Fm4qL/0+eTe1wLLTUK9r1s9474G5QXb1M\nlbmh\r\n=ToRb\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCGgJ+HhMj3XOJgjkUDhyo9ReORDAsFqJvJXVCwZRwo2wIgUZ5ek3uhOlNMCVCuEbQUZYaqfSMWGpfl0Zl0Ob+IIHw=" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.1_1614709177189_0.33012824645885286" + }, + "_hasShrinkwrap": false + }, + "4.3.2": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.2", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./": "./" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "3b9bc7f56dc0321e349ab145154052aae8056bdd", + "_id": "chai@4.3.2", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-6VMblLfXGtgkcXBasYWrpU+HHTDrs0VNTlBnxIoV2H78PLey9vCPN931WnnFwBrn7HuJODSN/9qTYH/13fJX6g==", + "shasum": "74ca69d542015b8efc213fe1cb51162990f2bf5b", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.2.tgz", + "fileCount": 50, + "unpackedSize": 743309, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP9L5CRA9TVsSAnZWagAABQcP/1fTvNpKOGYkjBKTceHI\nbAXU1DBdSMFPiNyEMNTpxtp482iSWR8qX7TZ+OkTGGpD9/ioHQn+Btq0JImk\nmBI3ctn1W5szIbVqkDMLhZ6H3quyVBg4FoCeEY1iTHwtXnGypoP3RVj748wJ\n3n1iWBYuDZYoHWE5PmjSYOW/lX0pR7Q6ZqWlmPR1RO0Nhx3Z7woS3+pBSoj8\nwRGsvAF7mpkVvUbOpbTEMyMW8nBNvnXZzhvWW87AVNkE5PFBZ0C60TQNSLK6\n3nXoBirE+Wa6ZtvSftI8t8uMFnZo+iMkocMjKPy3GylIgfEmvyEqmKitT5qm\no/oBAV7TCnVR962x1jJJzgcs3OUqHqjgXH28TaEpVTnU9DvPhV3PNdroHGzG\niKlh8RJVEU6kVJtp4qCNUuo9ytG5eVkBZC3UOUpJMEp5YIw5XnWi+4vrBJ7n\nJAaYBQj4q30pljLWBLz3WbxWk8tcpMTf37/bPK5GrrEqObgs41NYm/jretBJ\n+c/q/6CtUwzy8XMxcj4+ztYFhGjMN9or/VxkeBn3ZMY/beoo8qyKjEe6CUN4\n4bQMwvct9MkNcvMDUUfL7ig01iQDsZTYJzpGGaiRSOTzTQtqhJg/HehXMeHe\nPy2AapT6NwF01Vva2VTqouU9LGYdnDYtrVvZ9Loq+iMJXPRDPBDaIBXbTCEm\nKDgu\r\n=4hcR\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEolWFPJcuF7HOSJOkRq9aBTct5bnjslqwzVoU5GQhSIAiA2daQMIGkIDKTxNz+kFNA9mus+53eIlBtWYomh5WCIEQ==" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.2_1614795513310_0.6125462539766466" + }, + "_hasShrinkwrap": false + }, + "4.3.3": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.3", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./": "./" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "dc858a0353bb0eccca0de8185c140d4a1c1c6006", + "_id": "chai@4.3.3", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-MPSLOZwxxnA0DhLE84klnGPojWFK5KuhP7/j5dTsxpr2S3XlkqJP5WbyYl1gCTWvG2Z5N+HD4F472WsbEZL6Pw==", + "shasum": "f2b2ad9736999d07a7ff95cf1e7086c43a76f72d", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.3.tgz", + "fileCount": 50, + "unpackedSize": 743350, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP9PTCRA9TVsSAnZWagAAx2oP/3APIWS9up8luXq1Sp8E\nUTtZ8KZtGG0r1kYeNXP8Xl9OQ+EOKJAPYl8P+SRzc97WdS1yerTYhTalGaix\nPqXYWRcGusvk1k8SNGQDf670i4jljMf+rXfyCqsLkEkzaEU/tyjuVMpTgyj4\nsGno0mP6XfFeA5Y8cCueKi85gVQiU8wUB/FjPeV5qUw1OeNTpuU38qCnNmXF\n/yxyVgEIOJAmROLIJOGXjx6+R6IVOX95tXRZXBcshKkR2IfWmYC3b2DiXVXX\njdg6cBJfEdxf0KEc3a9V0T4DAJtYewCLZuOP4z9GB33PzLcnDu7ggYCy8GuJ\nmhpP/JCZkCvkcoWOx5eei65BS309XG0AjGAZmKcnBGV2p8QqUd7JDgU9e1Ee\nOrDgul4EcD2oukapEdjUpd1lCVnQ3L6M7Twpl2Y8aLN8FKjDKseAqOtN2y8i\nPgztVcY40I7SUptKjoLG+vcjaJ8p7SNrVMXk6pkM/lj0ZVNHppccnArjvcov\nbPbdoPyRXd3B45LHU3uy/fFOc/iMinhbKcFUFAtYBJLrdG8nuRB/yXrC0ClO\n4cPjySbZlswDPDF0Gzdb10okbKBqIPpMyKGJMrvQbLFD3NBxYh3IbXGAw+T6\nSN/GaeGjUcjn/dISkoJoJ9Vy1WW2i1q8qo3VxhaxYeILR+cUiMvDZccwL6Wr\nRxD6\r\n=UYFv\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIEvtBZ3gRRISYtzxmfC1c/UL+j7vTO5VzciNNzr3r00IAiEAyKGFj4YecS3LZVqh9IwXickXNxm9GVnpKoDpc/BVaCE=" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.3_1614795730672_0.8598770755412406" + }, + "_hasShrinkwrap": false + }, + "4.3.4": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.4", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./": "./" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "ab41ed86cc154e1df125b16e74abaa0d6f6ade82", + "_id": "chai@4.3.4", + "_nodeVersion": "14.9.0", + "_npmVersion": "6.14.8", + "dist": { + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "shasum": "b55e655b31e1eac7099be4c08c21964fce2e6c49", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.4.tgz", + "fileCount": 50, + "unpackedSize": 743510, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgS5vlCRA9TVsSAnZWagAAPRcQAJJEkkw8MSTZ41dLnRgi\nNB9LQxV+nohdCBuV9IBn47Q004/9Mi6/+gCM5PlMvcgxc4tRAbWeXIRLx09k\nHY8m/qgaq5a6DQrN6GxyUjgQUI6JxDRjK5Cn+3+FQAKrLq+31Wh6pqKUjDk7\nXlyFcartzLpU+vjdSYkafeoZSzKGEl+WGy/Yzn2/bj/q1KSkt8oLaZfm21n/\nO7rEAaIjugUrQZfl0Ck3SvD9ChilRyY0zFT9K3hVZr7xxBE5GsaIongQZOfJ\nFfaVREmRkr2F5Y8Upe1MQ3Od+Z4dum0tWtoEYhRrtVa7kmUM4H0ixbrF0VbN\n+xXxB/bA/+jcJJ5PDfpx/zl4/JTV1h2rs9TWLrRXdm1nCflBybWfSY5HJYXX\nTVt4Z+hg0yXe1Bq/MVJm2mQsAOUt/gRN6N/RCh3HEw3GC0BDnNOxu5zSfcw5\nc4NYsG0J3dctdyTqSXImjKfIorskQvoE5z4m0at5FfNzZVnnwEEL4a+6EOsV\nANByJhTXWNIFiFGAk8ZHivYiuB/cOJgkp8JfAOMJlcE06mKjB4BQtlDhCDPR\nvzQDQC9/avlByNh0wdLYN5ENC1I73QxIl71a3Qr/yVTVHOI3ZUjNtubUx35e\n4MjfkUiwPGykKNmg8n9OhlybORxydWrAKCRnCzrOpp/tLpYiF7LRjlwkUXpY\nNSrc\r\n=MuEB\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBSzZ2rWU3i+X1HDER1qYsvULmZd/YQQ+ozOoJt2RpV/AiANC333DwlMGNCdT+RrwgKrozlXA8ZA1QszSCRXin7PFQ==" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.4_1615567844714_0.20594158906561932" + }, + "_hasShrinkwrap": false + }, + "4.3.5": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.5", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./*": "./*" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "99e36a83bbd79cc970c2c30e81c6cf89cca89660", + "_id": "chai@4.3.5", + "_nodeVersion": "17.4.0", + "_npmVersion": "8.3.1", + "dist": { + "integrity": "sha512-0gKhNDL29PUlmwz1CG42p/OaBf1v0YD3oH4//YMS1niT7rLH9tC+lqTgk+SvdbhMLd7ToTtxA61orNBmpSO/DA==", + "shasum": "784cf398a30cd45b8980181ba1a8c866c225b5df", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.5.tgz", + "fileCount": 50, + "unpackedSize": 765385, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8A1HCRA9TVsSAnZWagAAh08QAI29nIF83qbemwEvUU2n\nD0VSXyxI0RV2a4znP9oGQ8heBa9aQx0scAfSAj+wqUcDDwbBFcxvbaQkhGuT\nvffsATIqyz6jRfCsF83sp0HvVyQdQiJ/HmwszBW08mFi2osvTBcqB/JR75p/\niOqbv97tZGwF/lgYYVRjFAe0oIzsiz6yiH1p4MsjAK0T19bAYUc0OVMH9SKD\nLumIfDuNKF5mgab+iyz4JpRy8KH+hnF6u7IvXr6rubcWggu3atXza7c9fAuD\nCv3CsJ2XUAnHM/ncuvcbYtHDCuXg/smMhd2rYdr70rWrU1NmmrnQ7YWipLlo\nzOTkQUmUIYrW+A41AcOSgz7DASWn12sPW156kMFhrfLWaWLqtb/9rPFkC3Un\nMNpMsStlZgHLeSn1gj04gWvCeMJwLuNUeiNDm2KqcG29/uDQc6ACY3zbAI96\nSM7OcHuA9S5KQ4TJBmNdZHZpGHtaRaue1V4QzFIjulF3/CmQ8F3HcNV8hWNC\nuSg2beo35zXrBOD+Z4xYe2EEfExyypkVEdL4kM0aDuTzcYLkFTLCi1s7S5q3\nqvzOjJh2xqSNS29brU+QNXCLiVA0qLZyx+kBhQURegUEco/BrGlxmlWKDbhb\nD6p0IMGiWp4d07VaK0P+s7J1HReTRsvxlteGj5QK5JDVz2nlxsFZfso0vRfT\nUi64\r\n=Zzvn\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIDMKo+Gr/o1ZO2BBeURIFAY3O3iDOCpUUCb28Ij/FiohAiEA/VyluMXk54Gmx6rErcuR4OrjNKA7PwFkHwSrVdMQKKA=" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.5_1643121991294_0.7076648559743657" + }, + "_hasShrinkwrap": false + }, + "4.3.6": { + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "name": "chai", + "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "homepage": "http://chaijs.com", + "license": "MIT", + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "version": "4.3.6", + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "main": "./index", + "exports": { + ".": { "require": "./index.js", "import": "./index.mjs" }, + "./*": "./*" + }, + "scripts": { "test": "make test" }, + "engines": { "node": ">=4" }, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "devDependencies": { + "browserify": "^16.2.3", + "bump-cli": "^1.1.3", + "codecov": "^3.0.0", + "istanbul": "^0.4.3", + "karma": "^6.1.1", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.0.0", + "karma-mocha": "^2.0.1", + "karma-sauce-launcher": "^1.2.0", + "mocha": "^7.1.2" + }, + "gitHead": "529b8b527ba99454471ac67d6aebca9d96cb5dd9", + "_id": "chai@4.3.6", + "_nodeVersion": "17.4.0", + "_npmVersion": "8.3.1", + "dist": { + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "shasum": "ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c", + "tarball": "http://localhost:4545/npm/registry/chai/chai-4.3.6.tgz", + "fileCount": 50, + "unpackedSize": 750564, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8UhgCRA9TVsSAnZWagAAv+YP/12t4uBk4xuCAA7pkDcj\nkJm0/jTdaEsIF0pyI4IDDzix91lwXhZCO5fNtlI8CYZ3NwOhtu5hROuOCAlp\ni/knLqRAilVcLpT6xNxOHtxPhaA8fMRMMyrtw029iH2nHevW3kt2kbzG3gNi\nWXO0E8EFmMURiAHKqucb9aV+Qbzh/d8Dmm67JoFPKY0bJktcbeSRB8qyNhTQ\nmTcKKpL4ZEboZ9ofpiICSLyEzmSU+3Hv53WlomWMG6nUz1+JsEZ2bXABQ6WJ\niqr+LkM2ipKgeq7ZNe1dTnY6h+1TpSXPidt6R2qtkdWavr0UuYNUp85eo0/C\n6HgtYcuYm2UysKrXJkzqpEl1FTzxo8atuVFubWphpvuPShkXpxj7Bi670Z8h\nuqpU2DX6CEZlBLhX6zF2Ly/DPDHDaKj9GMafg5g8zTOTXphnWOJ5vYmvqF7e\nTM9qwsxv1kPbZYYdmGUF1ADBDjy3vwG/+8py8j7TMLIa7LiMeR4mCUF4wLvU\nbSpxTYfAeHX7CQDTej1fD3LkwAzyBhHHEpJY2yRRwll/9FaNwb9JM8YcxpRO\nH+BsL9Mji/atpoK2WxEX/oqep17sGEA8yafHs9UiIqTo1fvunttqUwyYD+Lx\nd84syQ873+mg/tDuhx5L2AjmbANrQJAAjngMUBNOG9/NZz0sYQ9kSChqb9aK\nT/4b\r\n=ckEl\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDDsAllykGfti9wvQhGkKpJ7jdFVZ99oozpeX8CutT2MQIhAO3f06HA/ygzzZLliUMSLrxEdzCnQmxGZH5TQMVZVGfj" + } + ] + }, + "_npmUser": { "name": "chai", "email": "chaijs@keithcirkel.co.uk" }, + "directories": {}, + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chai_4.3.6_1643202656757_0.2797039481196104" + }, + "_hasShrinkwrap": false + } + }, + "readme": "

\n \n \"ChaiJS\"\n \n
\n chai\n

\n\n

\n Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.\n

\n\n

\n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n

\n\nFor more information or to download plugins, view the [documentation](http://chaijs.com).\n\n## What is Chai?\n\nChai is an _assertion library_, similar to Node's built-in `assert`. It makes testing much easier by giving you lots of assertions you can run against your code.\n\n## Installation\n\n### Node.js\n\n`chai` is available on [npm](http://npmjs.org). To install it, type:\n\n $ npm install --save-dev chai\n\n### Browsers\n\nYou can also use it within the browser; install via npm and use the `chai.js` file found within the download. For example:\n\n```html\n\n```\n\n## Usage\n\nImport the library in your code, and then pick one of the styles you'd like to use - either `assert`, `expect` or `should`:\n\n```js\nvar chai = require('chai'); \nvar assert = chai.assert; // Using Assert style\nvar expect = chai.expect; // Using Expect style\nvar should = chai.should(); // Using Should style\n```\n\n### Pre-Native Modules Usage (_registers the chai testing style globally_)\n\n```js\nrequire('chai/register-assert'); // Using Assert style\nrequire('chai/register-expect'); // Using Expect style\nrequire('chai/register-should'); // Using Should style\n```\n\n### Pre-Native Modules Usage (_as local variables_)\n\n```js\nconst { assert } = require('chai'); // Using Assert style\nconst { expect } = require('chai'); // Using Expect style\nconst { should } = require('chai'); // Using Should style\nshould(); // Modifies `Object.prototype`\n\nconst { expect, use } = require('chai'); // Creates local variables `expect` and `use`; useful for plugin use\n```\n\n### Native Modules Usage (_registers the chai testing style globally_)\n\n```js\nimport 'chai/register-assert'; // Using Assert style\nimport 'chai/register-expect'; // Using Expect style\nimport 'chai/register-should'; // Using Should style\n```\n\n### Native Modules Usage (_local import only_)\n\n```js\nimport { assert } from 'chai'; // Using Assert style\nimport { expect } from 'chai'; // Using Expect style\nimport { should } from 'chai'; // Using Should style\nshould(); // Modifies `Object.prototype`\n```\n\n### Usage with Mocha\n\n```bash\nmocha spec.js -r chai/register-assert # Using Assert style\nmocha spec.js -r chai/register-expect # Using Expect style\nmocha spec.js -r chai/register-should # Using Should style\n```\n\n[Read more about these styles in our docs](http://chaijs.com/guide/styles/).\n\n## Plugins\n\nChai offers a robust Plugin architecture for extending Chai's assertions and interfaces.\n\n- Need a plugin? View the [official plugin list](http://chaijs.com/plugins).\n- Want to build a plugin? Read the [plugin api documentation](http://chaijs.com/guide/plugins/).\n- Have a plugin and want it listed? Simply add the following keywords to your package.json:\n - `chai-plugin`\n - `browser` if your plugin works in the browser as well as Node.js\n - `browser-only` if your plugin does not work with Node.js\n\n### Related Projects\n\n- [chaijs / chai-docs](https://github.com/chaijs/chai-docs): The chaijs.com website source code.\n- [chaijs / assertion-error](https://github.com/chaijs/assertion-error): Custom `Error` constructor thrown upon an assertion failing.\n- [chaijs / deep-eql](https://github.com/chaijs/deep-eql): Improved deep equality testing for Node.js and the browser.\n- [chaijs / type-detect](https://github.com/chaijs/type-detect): Improved typeof detection for Node.js and the browser.\n- [chaijs / check-error](https://github.com/chaijs/check-error): Error comparison and information related utility for Node.js and the browser.\n- [chaijs / loupe](https://github.com/chaijs/loupe): Inspect utility for Node.js and browsers.\n- [chaijs / pathval](https://github.com/chaijs/pathval): Object value retrieval given a string path.\n- [chaijs / get-func-name](https://github.com/chaijs/get-func-name): Utility for getting a function's name for node and the browser.\n\n### Contributing\n\nThank you very much for considering to contribute!\n\nPlease make sure you follow our [Code Of Conduct](https://github.com/chaijs/chai/blob/master/CODE_OF_CONDUCT.md) and we also strongly recommend reading our [Contributing Guide](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md).\n\nHere are a few issues other contributors frequently ran into when opening pull requests:\n\n- Please do not commit changes to the `chai.js` build. We do it once per release.\n- Before pushing your commits, please make sure you [rebase](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md#pull-requests) them.\n\n### Contributors\n\nPlease see the full\n[Contributors Graph](https://github.com/chaijs/chai/graphs/contributors) for our\nlist of contributors.\n\n### Core Contributors\n\nFeel free to reach out to any of the core contributors with your questions or\nconcerns. We will do our best to respond in a timely manner.\n\n[![Jake Luer](https://avatars3.githubusercontent.com/u/58988?v=3&s=50)](https://github.com/logicalparadox)\n[![Veselin Todorov](https://avatars3.githubusercontent.com/u/330048?v=3&s=50)](https://github.com/vesln)\n[![Keith Cirkel](https://avatars3.githubusercontent.com/u/118266?v=3&s=50)](https://github.com/keithamus)\n[![Lucas Fernandes da Costa](https://avatars3.githubusercontent.com/u/6868147?v=3&s=50)](https://github.com/lucasfcosta)\n[![Grant Snodgrass](https://avatars3.githubusercontent.com/u/17260989?v=3&s=50)](https://github.com/meeber)\n", + "maintainers": [ + { "name": "chaijs", "email": "chaijs@keithcirkel.co.uk" }, + { "name": "chai", "email": "chaijs@keithcirkel.co.uk" } + ], + "time": { + "modified": "2022-06-13T05:50:44.765Z", + "created": "2011-12-07T06:53:41.352Z", + "0.0.1": "2011-12-07T06:53:41.900Z", + "0.0.2": "2011-12-07T17:00:00.424Z", + "0.1.0": "2011-12-15T13:08:30.039Z", + "0.1.1": "2011-12-16T11:59:55.093Z", + "0.1.2": "2011-12-18T12:39:07.896Z", + "0.1.3": "2011-12-18T14:07:58.584Z", + "0.1.4": "2011-12-26T18:19:32.070Z", + "0.1.5": "2012-01-02T05:52:02.087Z", + "0.1.6": "2012-01-02T06:14:32.954Z", + "0.1.7": "2012-01-25T21:38:50.993Z", + "0.2.0": "2012-01-27T00:18:10.762Z", + "0.2.1": "2012-01-30T01:27:23.446Z", + "0.2.2": "2012-02-02T02:58:10.166Z", + "0.2.3": "2012-02-02T03:04:58.003Z", + "0.2.4": "2012-02-02T05:56:12.690Z", + "0.3.0": "2012-02-07T22:00:09.627Z", + "0.3.1": "2012-02-07T22:35:07.180Z", + "0.3.2": "2012-02-10T16:39:01.206Z", + "0.3.3": "2012-02-12T23:07:21.594Z", + "0.3.4": "2012-02-23T05:09:36.234Z", + "0.4.0": "2012-02-25T17:19:57.585Z", + "0.4.1": "2012-02-26T18:09:19.479Z", + "0.4.2": "2012-02-28T18:00:19.749Z", + "0.5.0": "2012-03-07T18:05:54.280Z", + "0.5.1": "2012-03-14T21:02:11.159Z", + "0.5.2": "2012-03-21T11:16:47.421Z", + "0.5.3": "2012-04-21T23:05:07.666Z", + "1.0.0": "2012-05-15T18:36:40.803Z", + "1.0.1": "2012-05-18T18:26:57.249Z", + "1.0.2": "2012-05-27T03:39:38.781Z", + "1.0.3": "2012-05-27T22:19:56.587Z", + "1.0.4": "2012-06-03T23:29:47.478Z", + "1.1.0": "2012-06-26T18:32:58.510Z", + "1.1.1": "2012-07-09T16:49:29.326Z", + "1.2.0": "2012-08-07T05:08:26.130Z", + "1.3.0": "2012-10-01T21:32:46.812Z", + "1.4.0": "2012-11-29T08:26:31.063Z", + "1.4.1": "2012-12-21T17:55:54.552Z", + "1.4.2": "2012-12-21T20:15:17.977Z", + "1.5.0": "2013-02-04T01:47:40.289Z", + "1.6.0": "2013-04-30T00:16:06.350Z", + "1.6.1": "2013-06-05T20:48:19.927Z", + "1.7.0": "2013-06-17T20:07:08.283Z", + "1.7.1": "2013-06-24T18:52:23.112Z", + "1.7.2": "2013-06-27T18:16:00.676Z", + "1.8.0": "2013-09-18T19:05:09.714Z", + "1.8.1": "2013-10-10T10:47:56.478Z", + "1.9.0": "2014-01-29T23:39:50.699Z", + "1.9.1": "2014-03-19T16:22:17.031Z", + "1.9.2": "2014-09-29T23:25:14.568Z", + "1.10.0": "2014-11-10T14:06:22.387Z", + "2.0.0": "2015-02-11T17:37:17.897Z", + "2.1.0": "2015-02-23T21:46:00.053Z", + "2.1.1": "2015-03-04T20:29:32.671Z", + "2.1.2": "2015-03-15T21:45:04.461Z", + "2.2.0": "2015-03-27T11:19:56.615Z", + "2.3.0": "2015-04-26T16:25:25.613Z", + "3.0.0": "2015-06-03T23:30:35.867Z", + "3.1.0": "2015-07-16T21:42:30.681Z", + "3.2.0": "2015-07-19T17:05:37.829Z", + "3.3.0": "2015-09-21T08:59:50.508Z", + "3.4.0": "2015-10-21T11:28:04.494Z", + "3.4.1": "2015-11-07T23:24:54.150Z", + "3.5.0": "2016-01-28T12:05:41.615Z", + "4.0.0-canary.1": "2016-10-24T22:11:05.481Z", + "4.0.0-canary.2": "2017-04-17T17:33:16.519Z", + "4.0.0": "2017-05-26T10:31:36.905Z", + "4.0.1": "2017-05-31T21:20:26.265Z", + "4.0.2": "2017-06-05T19:33:48.117Z", + "4.1.0": "2017-07-12T00:17:10.329Z", + "4.1.1": "2017-08-05T07:33:06.266Z", + "4.1.2": "2017-08-31T21:41:39.965Z", + "4.2.0": "2018-09-26T12:15:22.143Z", + "4.3.0": "2021-02-04T10:58:07.504Z", + "4.3.1": "2021-03-02T18:19:37.502Z", + "4.3.2": "2021-03-03T18:18:33.492Z", + "4.3.3": "2021-03-03T18:22:10.884Z", + "4.3.4": "2021-03-12T16:50:44.874Z", + "4.3.5": "2022-01-25T14:46:31.511Z", + "4.3.6": "2022-01-26T13:10:56.920Z" + }, + "author": { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/chaijs/chai.git" + }, + "users": { + "pwnall": true, + "fgribreau": true, + "jakeluer": true, + "graemef": true, + "m42am": true, + "vesln": true, + "zaphod1984": true, + "blalor": true, + "codylindley": true, + "tmaximini": true, + "kubakubula": true, + "mpinteractiv": true, + "poeticninja": true, + "hypergeometric": true, + "fiveisprime": true, + "blakeembrey": true, + "greelgorke": true, + "darryl.west": true, + "evkline": true, + "runningtalus": true, + "gdbtek": true, + "juriwiens": true, + "jbdoumenjou": true, + "dizlexik": true, + "maschs": true, + "henrytseng": true, + "yvesm": true, + "maratyszcza": true, + "bausmeier": true, + "t1st3": true, + "jits": true, + "bkimminich": true, + "rsalesc": true, + "krisbarrett": true, + "sergiodxa": true, + "oncletom": true, + "byossarian": true, + "sasquatch": true, + "dgarlitt": true, + "mihaiv": true, + "heckj": true, + "citguy": true, + "dimitriwalters": true, + "italoacasas": true, + "nickl": true, + "mahoutsuk.ai": true, + "kenlimmj": true, + "wangnan0610": true, + "stevenvachon": true, + "mastayoda": true, + "evan2x": true, + "pnevares": true, + "sahilsk": true, + "pensierinmusica": true, + "dnunez24": true, + "ctd1500": true, + "kevbaker": true, + "koulmomo": true, + "simplyianm": true, + "paeblits": true, + "lifecube": true, + "tfentonz": true, + "rsp": true, + "mr_eaze": true, + "jonatasnona": true, + "tomrw": true, + "subchen": true, + "tzsiga": true, + "irnnr": true, + "jmelanson-balihoo": true, + "gerst20051": true, + "clholzin": true, + "brentlintner": true, + "samhwang1990": true, + "jack546": true, + "jason0518": true, + "isik": true, + "dbck": true, + "battlemidget": true, + "markthethomas": true, + "tunght13488": true, + "ericmash": true, + "sixertoy": true, + "feedm3": true, + "ash0080": true, + "lgvo": true, + "jalcine": true, + "starver": true, + "demoive": true, + "sopepos": true, + "ridermansb": true, + "mjurincic": true, + "lherediawoodward": true, + "bpatel": true, + "chrisyipw": true, + "abhisekp": true, + "jerkovicl": true, + "joelwallis": true, + "markstos": true, + "zhoutk": true, + "kparkov": true, + "panlw": true, + "phajej": true, + "mkoc": true, + "liushoukai": true, + "alectic": true, + "xeoneux": true, + "brad-christie": true, + "ftornik": true, + "vwal": true, + "nalindak": true, + "cascadejs": true, + "antanst": true, + "jclo": true, + "monkeymonk": true, + "bedican": true, + "0x4c3p": true, + "saravntbe": true, + "corintho": true, + "rainbow494": true, + "arttse": true, + "oka-hide": true, + "makay": true, + "demiurgosoft": true, + "jrnail23": true, + "cfleschhut": true, + "rbartoli": true, + "pdedkov": true, + "adrien.d": true, + "xunnamius": true, + "jokja": true, + "leodutra": true, + "timdp": true, + "ismaelvsqz": true, + "hyteer": true, + "yrocq": true, + "shanemileham": true, + "highlanderkev": true, + "joris-van-der-wel": true, + "anaumidis": true, + "shipengyan": true, + "nexume": true, + "apehead": true, + "floriannagel": true, + "mikemimik": true, + "djamseed": true, + "ristostevcev": true, + "sebastiendaniel": true, + "figroc": true, + "reamd": true, + "erikvold": true, + "taodong_wu": true, + "loselovegirl": true, + "superpaintman": true, + "koskokos": true, + "guidoschmidt": true, + "nomemires": true, + "spanser": true, + "dac2205": true, + "456wyc": true, + "shanewholloway": true, + "runjinz": true, + "emarcs": true, + "qmmr": true, + "menoncello": true, + "clarenceho": true, + "pwn": true, + "barwin": true, + "freebird": true, + "princetoad": true, + "leejefon": true, + "mrbgit": true, + "eliaslfox": true, + "asm2hex": true, + "ajduke": true, + "arielfr": true, + "slavqa": true, + "phgyorgygulyas": true, + "drewigg": true, + "monjer": true, + "luismoramedina": true, + "mark24code": true, + "schwartzman": true, + "james3299": true, + "angrykoala": true, + "fsgdez": true, + "backnight": true, + "mluberry": true, + "evegreen": true, + "razr9": true, + "kwhitley": true, + "ramzesucr": true, + "abuelwafa": true, + "pris54": true, + "jtrh": true, + "mhaidarh": true, + "yuguo": true, + "aaronforce1": true, + "knoja4": true, + "quafoo": true, + "gilson004": true, + "nohomey": true, + "rickyrattlesnake": true, + "fenrir": true, + "jhal81": true, + "ivan.marquez": true, + "arnemahl": true, + "langri-sha": true, + "klimnikita": true, + "hitalos": true, + "largepuma": true, + "vmleon": true, + "lonjoy": true, + "miroklarin": true, + "seangenabe": true, + "jamesbedont": true, + "boopathisakthivel.in": true, + "13lank.null": true, + "bebeskin": true, + "charlietango592": true, + "sgvinci": true, + "suemcnab": true, + "mskjp": true, + "drdanryan": true, + "rocket0191": true, + "junos": true, + "goatandsheep": true, + "blackrocky": true, + "asaupup": true, + "augiethornton": true, + "1two3code": true, + "gpuente": true, + "dankle": true, + "tsxuehu": true, + "heartnett": true, + "poslinskinet": true, + "damonoverboe": true, + "rubiadias": true, + "landy2014": true, + "ricardogobbosouza": true, + "pddivine": true, + "danyadsmith": true, + "bertof": true, + "cedx": true, + "rks31": true, + "aquafadas": true, + "grabantot": true, + "kulyk404": true, + "lassevolkmann": true, + "alek-s": true, + "oldfish": true, + "shuoshubao": true, + "arthur.meyer": true, + "rochejul": true, + "rdca84": true, + "sternelee": true, + "rvyshnevskyi": true, + "d-band": true, + "paulkolesnyk": true, + "daniel-lewis-bsc-hons": true, + "cooboor": true, + "dwqs": true, + "cranndarach": true, + "whats": true, + "iamninad": true, + "nuwaio": true, + "andrew.oxenburgh": true, + "tztz": true, + "grin_zhou": true, + "tjfwalker": true, + "guiyuzhao": true, + "tonyetro": true, + "buzuli": true, + "schacker": true, + "sbskl": true, + "arniu": true, + "leor": true, + "piotro83": true, + "rubenjose75": true, + "danday74": true, + "yinfxs": true, + "agplan": true, + "renishskills": true, + "stanleyfok": true, + "mdedirudianto": true, + "ashco": true, + "shroudedcode": true, + "alexdreptu": true, + "jameskrill": true, + "tstam": true, + "lqweb": true, + "midascreed": true, + "losymear": true, + "avivharuzi": true, + "mgthomas99": true, + "instriker": true, + "lefthandhacker": true, + "vijkris99": true, + "naokikimura": true, + "amiziara": true, + "morogasper": true, + "cxftj": true, + "karzanosman984": true, + "jiangxtx": true, + "rioli": true, + "mestar": true, + "hugovila": true, + "mrosata": true, + "juanf03": true, + "jhillacre": true, + "bcowgi11": true, + "peveylun": true + }, + "readmeFilename": "README.md", + "homepage": "http://chaijs.com", + "keywords": ["test", "assertion", "assert", "testing", "chai"], + "contributors": [ + { "name": "Jake Luer", "email": "jake@alogicalparadox.com" }, + { + "name": "Domenic Denicola", + "email": "domenic@domenicdenicola.com", + "url": "http://domenicdenicola.com" + }, + { "name": "Veselin Todorov", "email": "hi@vesln.com" }, + { "name": "John Firebaugh", "email": "john.firebaugh@gmail.com" } + ], + "bugs": { "url": "https://github.com/chaijs/chai/issues" }, + "license": "MIT" +} diff --git a/cli/tests/testdata/npm/registry/chalk/chalk-4.1.2.tgz b/cli/tests/testdata/npm/registry/chalk/chalk-4.1.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..8d34872c06b2087ebf15e0bd6bf8d97132a04b69 GIT binary patch literal 11577 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 literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/chalk/chalk-5.0.1.tgz b/cli/tests/testdata/npm/registry/chalk/chalk-5.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..01e179059b89edb7570dde3823559d58ab093931 GIT binary patch literal 13294 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 literal 0 HcmV?d00001 diff --git a/cli/tests/testdata/npm/registry/chalk/registry.json b/cli/tests/testdata/npm/registry/chalk/registry.json new file mode 100644 index 0000000000..4549d1f5b0 --- /dev/null +++ b/cli/tests/testdata/npm/registry/chalk/registry.json @@ -0,0 +1,3744 @@ +{ + "_id": "chalk", + "_rev": "1184-02c377bc820f688de364ff0c69b7f25f", + "name": "chalk", + "description": "Terminal string styling done right", + "dist-tags": { "latest": "5.0.1", "next": "3.0.0-beta.2" }, + "versions": { + "0.1.0": { + "name": "chalk", + "version": "0.1.0", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["chalk.js"], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { "test": "mocha" }, + "dependencies": { "has-color": "~0.1.0", "ansi-styles": "~0.1.0" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "chalk@0.1.0", + "dist": { + "shasum": "69afbee2ffab5e0db239450767a6125cbea50fa2", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.1.0.tgz", + "integrity": "sha512-E1+My+HBCBHA6fBUZlbPnrOMrGKnc3QAXGEvCk/lpEG/ZKowZFg01dXt6RCYJMvTWYgxHWTyZQ6qkCrVPKJ2YQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICcizJ0CViMVIGAdOi/w9z8s5d3Zn23t9fMlbuGpzGENAiB4IAPyJ4DSwN/KaA6WIkJE7cqo3iZiTLD1ClLbpbCEiQ==" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.1.1": { + "name": "chalk", + "version": "0.1.1", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["chalk.js"], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { "test": "mocha" }, + "dependencies": { "has-color": "~0.1.0", "ansi-styles": "~0.1.0" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "chalk@0.1.1", + "dist": { + "shasum": "fe6d90ae2c270424720c87ed92d36490b7d36ea0", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.1.1.tgz", + "integrity": "sha512-NJbznmWlxmS5Co0rrLJYO0U3QW6IzWw2EuojeOFn4e8nD1CYR5Ie60CEEmHrF8DXtfd83pdF0xYWVCXbRysrDQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDyRcBiBgR63thSUFHx+SV7hi4FtDRy5WNaeEfCEr6c6wIhAJbSSa3GwYNrT0RVe6AVJcvtXcjsOVg7yTdLVbxlzfK7" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.2.0": { + "name": "chalk", + "version": "0.2.0", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["chalk.js"], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { "test": "mocha" }, + "dependencies": { "has-color": "~0.1.0", "ansi-styles": "~0.2.0" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "chalk@0.2.0", + "dist": { + "shasum": "47270e80edce0e219911af65479d17db525ff5db", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.2.0.tgz", + "integrity": "sha512-CHq4xplBE+jhsJKGmh8AegFpEsC84kQNPMeL2mjrD5ojPc1LqNV1q5opCBU7BcRxWbpX+S8s+q4LFaqjP1rZmg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDfcM6X1OG63W5oEByNa/SCZJWAU3mNjL4zY35I5yHbGwIgNPIUWRFZl6a3ByWBLR4cXyn2WHnYru0PY39fougSJzQ=" + } + ] + }, + "_from": ".", + "_npmVersion": "1.2.32", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.2.1": { + "name": "chalk", + "version": "0.2.1", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["chalk.js"], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { "test": "mocha" }, + "dependencies": { "has-color": "~0.1.0", "ansi-styles": "~0.2.0" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "chalk@0.2.1", + "dist": { + "shasum": "7613e1575145b21386483f7f485aa5ffa8cbd10c", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.2.1.tgz", + "integrity": "sha512-nmVapomwGksziCuynboy7I+dtW4ytIdqXPlrfY/ySx8l8EqFRGHyA04q6NMNpOri8XliGUGwXyfScVl48zFHbw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBda89bi2LZLymi7dToSY9rMAFRCXyg6fqyF15yoQO0tAiAT1ZyRicgVCJku8vgl5CUqx27uRUEnRK1GZ2kowTHh4g==" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.8", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.3.0": { + "name": "chalk", + "version": "0.3.0", + "description": "Terminal string styling done right", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "homepage": "https://github.com/sindresorhus/chalk", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "license": "MIT", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "files": ["chalk.js"], + "main": "chalk", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk.git" + }, + "scripts": { "test": "mocha" }, + "dependencies": { "has-color": "~0.1.0", "ansi-styles": "~0.2.0" }, + "devDependencies": { "mocha": "~1.12.0" }, + "engines": { "node": ">=0.8.0" }, + "_id": "chalk@0.3.0", + "dist": { + "shasum": "1c98437737f1199ebcc1d4c48fd41b9f9c8e8f23", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.3.0.tgz", + "integrity": "sha512-OcfgS16PHpCu2Q4TNMtk0aZNx8PyeNiiB+6AgGH91fhT9hJ3v6pIIJ3lxlaOEDHlTm8t3wDe6bDGamvtIokQTg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQD/TMCMMPNIkr1dvG6kRR/CWZZJtqKGoMdimY4IY6MEsgIhAJ1HbZkkcygfBmN1N4nqpYpBdAbRlLQOQoHfhOmBxYT1" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.10", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.4.0": { + "name": "chalk", + "version": "0.4.0", + "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk" + }, + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "http://sindresorhus.com" + }, + "engines": { "node": ">=0.8.0" }, + "scripts": { "test": "mocha" }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "has-color": "~0.1.0", + "ansi-styles": "~1.0.0", + "strip-ansi": "~0.1.0" + }, + "devDependencies": { "mocha": "~1.x" }, + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "homepage": "https://github.com/sindresorhus/chalk", + "_id": "chalk@0.4.0", + "dist": { + "shasum": "5199a3ddcd0c1efe23bc08c1b027b06176e0c64f", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.4.0.tgz", + "integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIBe296G5Ckfk2TKZTU3bGX1WzY2zO0oXe5yCT2EecEajAiABeRfWovOVYu9t02fFT3Pnrbreb2qwOUoA6c16yVmoUA==" + } + ] + }, + "_from": ".", + "_npmVersion": "1.3.17", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "directories": {} + }, + "0.5.0": { + "name": "chalk", + "version": "0.5.0", + "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha", "bench": "matcha benchmark.js" }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" + }, + "devDependencies": { "matcha": "^0.5.0", "mocha": "*" }, + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "homepage": "https://github.com/sindresorhus/chalk", + "_id": "chalk@0.5.0", + "_shasum": "375dfccbc21c0a60a8b61bc5b78f3dc2a55c212f", + "_from": ".", + "_npmVersion": "1.4.9", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "shasum": "375dfccbc21c0a60a8b61bc5b78f3dc2a55c212f", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.5.0.tgz", + "integrity": "sha512-rTCcbF0wrwC+kKzA/3SpBc6PrcOx/+PRQVtS3PEDw5tGzqycpB48dRS8ByxFDd8Ij5E1RtafZ34R1X9VLI/vUQ==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIEGqQOniqI9HsAKeDEvFr1KDB3AZGGcdwYu4q0ylIHtUAiA65kQmXrb1YvhBtaJjhFQBrt7C9MIZfOOBOrg8SOziBA==" + } + ] + }, + "directories": {} + }, + "0.5.1": { + "name": "chalk", + "version": "0.5.1", + "description": "Terminal string styling done right. Created because the `colors` module does some really horrible things.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/sindresorhus/chalk" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha", "bench": "matcha benchmark.js" }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" + }, + "devDependencies": { "matcha": "^0.5.0", "mocha": "*" }, + "gitHead": "994758f01293f1fdcf63282e9917cb9f2cfbdaac", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "homepage": "https://github.com/sindresorhus/chalk", + "_id": "chalk@0.5.1", + "_shasum": "663b3a648b68b55d04690d49167aa837858f2174", + "_from": ".", + "_npmVersion": "1.4.14", + "_npmUser": { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + "dist": { + "shasum": "663b3a648b68b55d04690d49167aa837858f2174", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-0.5.1.tgz", + "integrity": "sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHm4uVj8/eT3R7g1Q6tzTAMZ2pdqmG9OumNXatGp4ykfAiEAqiq/PLZqnD8UaVvvHh3ElJAhsquDcnDKTEjLo6bZyNY=" + } + ] + }, + "directories": {} + }, + "1.0.0": { + "name": "chalk", + "version": "1.0.0", + "description": "Terminal string styling done right. Much color.", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/sindresorhus/chalk" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { "test": "mocha", "bench": "matcha benchmark.js" }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "ansi", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^2.0.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^1.0.3", + "strip-ansi": "^2.0.1", + "supports-color": "^1.3.0" + }, + "devDependencies": { "matcha": "^0.6.0", "mocha": "*" }, + "gitHead": "8864d3563313ed15574a38dd5c9d5966080c46ce", + "bugs": { "url": "https://github.com/sindresorhus/chalk/issues" }, + "homepage": "https://github.com/sindresorhus/chalk", + "_id": "chalk@1.0.0", + "_shasum": "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc", + "_from": ".", + "_npmVersion": "2.5.1", + "_nodeVersion": "0.12.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "shasum": "b3cf4ed0ff5397c99c75b8f679db2f52831f96dc", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-1.0.0.tgz", + "integrity": "sha512-1TE3hpADga5iWinlcCpyhC7fTl9uQumLD8i2jJoJeVg7UbveY5jj7F6uCq8w0hQpSeLhaPn5QFe8e56toMVP1A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIA2fHIK4HaMM5vT8+vgIZDSYl2yR1wBMDpQnyK2mEp73AiBv9R+hCSU6L2lKmjPk37XVGjJaJPMWSPFUT6HNBGXJJg==" + } + ] + }, + "directories": {} + }, + "1.1.0": { + "name": "chalk", + "version": "1.1.0", + "description": "Terminal string styling done right. Much color.", + "license": "MIT", + "repository": { "type": "git", "url": "https://github.com/chalk/chalk" }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + { "name": "unicorn", "email": "sindresorhus+unicorn@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { + "test": "mocha", + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^2.1.0", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3" + }, + "gitHead": "e9bb6e6000b1c5d4508afabfdc85dd70f582f515", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk", + "_id": "chalk@1.1.0", + "_shasum": "09b453cec497a75520e4a60ae48214a8700e0921", + "_from": ".", + "_npmVersion": "2.10.1", + "_nodeVersion": "0.12.4", + "_npmUser": { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + "dist": { + "shasum": "09b453cec497a75520e4a60ae48214a8700e0921", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-1.1.0.tgz", + "integrity": "sha512-pn7bzDYUIrL0KRp/KK5B+sej6uYtzQ5hYOdLU+L3MVWHCgoYi4aUYdh2/R2rsdURIoOK/ptZi5FDtLdjvKYQ7g==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDvFUAscqbO0W1o8ynaLsS3H/qRFyNIcBpeciwTE0L2eAIhAJLC4kNijQLiP53FxwjKtIk/yb2Mz5bSJkvQcbmO38Lh" + } + ] + }, + "directories": {} + }, + "1.1.1": { + "name": "chalk", + "version": "1.1.1", + "description": "Terminal string styling done right. Much color.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "maintainers": [ + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "jbnicolai", "email": "jappelman@xebia.com" }, + { "name": "unicorn", "email": "sindresorhus+unicorn@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { + "test": "xo && mocha", + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^2.1.0", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "8b554e254e89c85c1fd04dcc444beeb15824e1a5", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@1.1.1", + "_shasum": "509afb67066e7499f7eb3535c77445772ae2d019", + "_from": ".", + "_npmVersion": "2.13.5", + "_nodeVersion": "0.12.7", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "shasum": "509afb67066e7499f7eb3535c77445772ae2d019", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-1.1.1.tgz", + "integrity": "sha512-W10W+QfIxJlTm3VRtg8eafwUBkDfUPFvRvPv4jCD9vF4+HzlAyXJ7P3Y5yw/r+gJ1TzFEU6oFqMgp1dIVpYr0A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDJnOp0QV+THZBj97NAJIJ/7FOfH1ApR+V17cduIWef4QIgKx6kVG0zABWS4/A8EyL/AV5PuxB8aCmy9tNSXcFiXa8=" + } + ] + }, + "directories": {} + }, + "1.1.2": { + "name": "chalk", + "version": "1.1.2", + "description": "Terminal string styling done right. Much color.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "maintainers": [ + { "name": "qix", "email": "i.am.qix@gmail.com" }, + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "unicorn", "email": "sindresorhus+unicorn@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { + "test": "xo && mocha", + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "supports-color": "^3.1.2" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^5.2.0", + "require-uncached": "^1.0.2", + "resolve-from": "^2.0.0", + "semver": "^5.1.0", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "a838948dcbf2674dd28adfbb78e791900ae741e9", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@1.1.2", + "_shasum": "53e9f9e7742f7edf23065c29c0219175a7869155", + "_from": ".", + "_npmVersion": "2.14.2", + "_nodeVersion": "0.10.32", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "shasum": "53e9f9e7742f7edf23065c29c0219175a7869155", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-1.1.2.tgz", + "integrity": "sha512-QBKX51aavmpKcCkgrJXhjS5b3rCgH2Wn99BYqUV2H1FjTP7Mm4KTcskSxuKrfhQKt69mBn9jH4Kb2xnchvEaOw==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDR73JAj03sZJRAoJDQVm+RirI4Iry8ZuCvjsoI7cTA4wIhAOjIHdQPS2bXbYZucSmdnq17cnoYJ4fHFrpbk9slQEst" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/chalk-1.1.2.tgz_1459207923607_0.6091341155115515" + }, + "deprecated": "chalk@1.1.2 introduces breaking changes. Please use 1.1.3 or above.", + "directories": {} + }, + "1.1.3": { + "name": "chalk", + "version": "1.1.3", + "description": "Terminal string styling done right. Much color.", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "maintainers": [ + { "name": "qix", "email": "i.am.qix@gmail.com" }, + { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + { "name": "unicorn", "email": "sindresorhus+unicorn@gmail.com" } + ], + "engines": { "node": ">=0.10.0" }, + "scripts": { + "test": "xo && mocha", + "bench": "matcha benchmark.js", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "matcha": "^0.6.0", + "mocha": "*", + "nyc": "^3.0.0", + "require-uncached": "^1.0.2", + "resolve-from": "^1.0.0", + "semver": "^4.3.3", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "0d8d8c204eb87a4038219131ad4d8369c9f59d24", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@1.1.3", + "_shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98", + "_from": ".", + "_npmVersion": "2.14.2", + "_nodeVersion": "0.10.32", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCYydQMZbUiHhEF1lG6Vvl8dFiZehECOS8naCRKiBaDWAIhAMB+3sTOs5gMFmQyiUE6HzXaIsahGhReBUr4OYaI+iCX" + } + ] + }, + "_npmOperationalInternal": { + "host": "packages-12-west.internal.npmjs.com", + "tmp": "tmp/chalk-1.1.3.tgz_1459210604109_0.3892582862172276" + }, + "directories": {} + }, + "2.0.0": { + "name": "chalk", + "version": "2.0.0", + "description": "Terminal string styling done right. Much color", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && nyc mocha", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "mocha": "*", + "nyc": "^11.0.2", + "resolve-from": "^3.0.0", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "3fca6150e23439e783409f5c8f948f767c2ddc5a", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.0.0", + "_npmVersion": "5.0.0", + "_nodeVersion": "8.0.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-7jy/5E6bVCRhLlvznnsbVPjsARuVC9HDkBjUKVaOmUrhsp6P3ExUUcW09htM7/qieRH+D2lHVpNbuYh7GjVJ0g==", + "shasum": "c25c5b823fedff921aa5d83da3ecb5392e84e533", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.0.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHTAVf6u8jvZCfxvAN3anX5/E4q4xlYfkCEkZENhrWYbAiBLQg/CjJ1n1peDolmlJB8V892hSsvTW1L1zOl0qA1IHA==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.0.0.tgz_1498780161964_0.21432337583974004" + }, + "directories": {} + }, + "2.0.1": { + "name": "chalk", + "version": "2.0.1", + "description": "Terminal string styling done right. Much color", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && nyc mocha", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "coveralls": "^2.11.2", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "mocha": "*", + "nyc": "^11.0.2", + "resolve-from": "^3.0.0", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "5827081719944a2f903b52a88baeec1ec8581f82", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.0.1", + "_npmVersion": "5.0.0", + "_nodeVersion": "8.0.0", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", + "shasum": "dbec49436d2ae15f536114e76d14656cdbc0f44d", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.0.1.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCICfJZUefrwq1SvzsgOv2Q/7HhKkcNRqOTzI/P/PsGm7dAiAVHrhAfBt0v3Bjqycj4E95pSguOX6OdYQeIElUAHjbvA==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.0.1.tgz_1498793206623_0.8611406192649156" + }, + "deprecated": "Please upgrade to Chalk 2.1.0 - template literals in this version (2.0.1) are quite buggy.", + "directories": {} + }, + "2.1.0": { + "name": "chalk", + "version": "2.1.0", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^2.11.2", + "execa": "^0.7.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^3.0.0", + "xo": "*" + }, + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "38f641a222d7ee0e607e4e5209d3931d2af1e409", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.1.0", + "_npmVersion": "5.3.0", + "_nodeVersion": "8.2.1", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "shasum": "ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.1.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIAR2pBNunhcCtIpoVtR8CzUr4fkHHazxHsUmYiEOl3SyAiAj1UgZ9m1qQjHPwS0lWc7+x71FyiJ9BnT8LKzU8hZpaA==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.1.0.tgz_1502078203099_0.6595528507605195" + }, + "directories": {} + }, + "2.2.0": { + "name": "chalk", + "version": "2.2.0", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js", "types/index.d.ts"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.8.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "d86db88e778fa856f4d6f5f68c588750ca06b822", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.2.0", + "_npmVersion": "5.4.2", + "_nodeVersion": "8.7.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", + "shasum": "477b3bf2f9b8fd5ca9e429747e37f724ee7af240", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.2.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCJ26ChsXMgEr8DGfcdGhwoECmCJIQc8C/WtfNNghWXpwIhALxt4sAYIddaWoA+laUzI/bv5TtudGNeOLEa+lB3iTKA" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.2.0.tgz_1508296541817_0.8590951061341912" + }, + "directories": {} + }, + "2.2.2": { + "name": "chalk", + "version": "2.2.2", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js", "types/index.d.ts"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.8.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "e1177ec3628f6d0d37489c1e1accd2c389a376a8", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.2.2", + "_npmVersion": "5.3.0", + "_nodeVersion": "8.2.1", + "_npmUser": { "name": "qix", "email": "i.am.qix@gmail.com" }, + "dist": { + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", + "shasum": "4403f5cf18f35c05f51fbdf152bf588f956cf7cb", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.2.2.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQDfa8X3hU20LXJII/tFJYOtrI+If9MXC6lVP2kVo2TeagIhAJTH6/ofItVCqYxnT7cTqmAxRF8XTpQFWlvUr/dLjfi+" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.2.2.tgz_1508815246099_0.3707860491704196" + }, + "directories": {} + }, + "2.3.0": { + "name": "chalk", + "version": "2.3.0", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js", "types/index.d.ts"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.8.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "14e0aa97727019b22f0a003fdc631aeec5e2e24c", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.3.0", + "_npmVersion": "5.4.2", + "_nodeVersion": "8.7.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "shasum": "b5ea48efc9c1793dccc9b4767c93914d3f2d52ba", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.3.0.tgz", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEYCIQCmt7XnAO8uN79Qxpb8HhB5EzqXR5F9Xz+dizDO68VggQIhAPCzW1TPRUP1vXrzImjrGiRQFFXTq6uWu8l+3dlLRyJm" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk-2.3.0.tgz_1508818375657_0.9021007190458477" + }, + "directories": {} + }, + "2.3.1": { + "name": "chalk", + "version": "2.3.1", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js", "types/index.d.ts"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.2.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.2.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "ae8a03f2c5c49896adeb3dd4ec5350e4ab9449a2", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.3.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "shasum": "523fe2678aec7b04e8041909292fe8b17059b796", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.3.1.tgz", + "fileCount": 6, + "unpackedSize": 24721, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQDq923pbuma8n5CHp1BmZnEpfSBznm9pjEsnO89V1Fd1QIgPAoDos2IHJA/kzqVf2mD25YwAbgXJ4YOKduTvo92f94=" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk_2.3.1_1518355108425_0.3816906865374552" + }, + "_hasShrinkwrap": false + }, + "2.3.2": { + "name": "chalk", + "version": "2.3.2", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": ["index.js", "templates.js", "types/index.d.ts"], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"] }, + "gitHead": "84f27d4bd86f7f482a32652ae536cd996ad204bd", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.3.2", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.9.4", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "shasum": "250dc96b07491bfd601e648d66ddf5f60c7a5c65", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.3.2.tgz", + "fileCount": 6, + "unpackedSize": 24713, + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIGrPWo1zy8RefMcSH+1wPT00s3HsqCjGvfnnE3kKN0BMAiA90/5NkYnkzLmda2udxxQfLxRPdxx1Gf9nafuAeaTxrA==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk_2.3.2_1520012630405_0.9222977073145247" + }, + "_hasShrinkwrap": false + }, + "2.4.0": { + "name": "chalk", + "version": "2.4.0", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"], "ignores": ["test/_flow.js"] }, + "gitHead": "af8b3657e96a0a6ca5190fb0d0a1345797148320", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.4.0", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.10.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "shasum": "a060a297a6b57e15b61ca63ce84995daa0fe6e52", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.4.0.tgz", + "fileCount": 7, + "unpackedSize": 27005, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1Xf3CRA9TVsSAnZWagAA1DcP/2EhxWse6mGwicTqM2U5\nQl2Xol74cFmd6b4nCGZnGycgatfJtyhb1YoH/vL3uNqGFrQGBwAr4GoZxhGd\n7kL0xKWnfhGHFeUe//fSCklj4Aff700RteXornlDFxbK5jVELyYcXfG5xJ5i\ncAIuPb9YYXltdaSfvVcg49qIPcjRfZm5Wz8WxTaUAyD5Ag4lpWKVTgWZsU+c\nEKRQHu+UmpX2OsudafT6GL3ak7GE2+ysH1b0HcYVuf1Wdf39un+E0MXDs58C\nTLCZSASN99/KCEpjh8aa4YdXVU3x0rdf50KdKDBUMF3b6HnSfWqOS+OWZRFZ\nC0jvk58j4vmXCVb2puQI8HIuZXBlNeS59GaN3hB3rz7JMgrQC/LXycOU1x+5\nuKEKupRkkVsSRyAEUdHqx6dwkcm+TVGPnXjUMdYREL9VkyY9eB7lBYTEzH9I\nZN9H3JXrjo/dGVmFL6q+L7lCxLFsl1p+UCMxubUE9XV6C/QN4mQmiwIAwn04\nhJH1RFIFTHszVEUnAJMZ6SqRRJes5iSedAMyiUYi+1S86uQenyUqtIJbHsNO\n7+G3Jnfdw9e1+YMvk53PSJcdtt5ayOx7ezc0HLS5HD9g3bXhMbbxTupHOSAv\nVCiEoaKAmjJK7nbStTqrX3xjz85K+lNHZdKkIzPWX5TkEg8KMSGK3LxfXG8B\n+CuC\r\n=orOi\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEQCIHWaTr0kn5hhbrdU9rauwwyPdBW6TxZnI4Lc23AJQgTCAiBJcOQo3Y7yHbfSuuL++TjazCour+dgSoT3qw/rRcCHgg==" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk_2.4.0_1523939317754_0.3039215958746819" + }, + "_hasShrinkwrap": false + }, + "2.4.1": { + "name": "chalk", + "version": "2.4.1", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": [ + "index.js", + "templates.js", + "types/index.d.ts", + "index.js.flow" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"], "ignores": ["test/_flow.js"] }, + "gitHead": "48ba5b0b9beadcabd9fc406ac4d9337d8fa6b36d", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.4.1", + "_npmVersion": "5.6.0", + "_nodeVersion": "8.11.1", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "shasum": "18c49ab16a037b6eb0152cc83e3471338215b66e", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.4.1.tgz", + "fileCount": 7, + "unpackedSize": 26917, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4WCICRA9TVsSAnZWagAAhgwP/2M/ItinhR06BFhLMh91\nK/ru5t71NzSzoEvI2nh4W57Wk9cU1NOYi1cI17nUvICHCL4Vq9mjvU0hajTw\ncAYtM0Lwl+G4Hk4JtuiZITYj93QY3yLSJ8zkj95JznFbH0Zd9KkZrkoGukcG\nFY9at0cfNyhBmwi5sEDAFktcw7wThQ6Wy3iIttQ0N1M6Lf1XILg9Xyq6Id/W\nlz3TbkCt6AZCS1icmDPIiLdVQuD9SfpusIDsHm5/6FJPShwmQjUlM6Kdy7lx\n6M8uhcIknpxjfPTA6/aSBC4qgXnDhuPPi9xF657/81Mswz4Tb71KOf6UqLPi\n3zk1D5PF71ujWs3wmPll9TAVGnWuNzE+X/7GVIB4qCrib3SgvRzMhL0Wo95v\nzxTpNoD23hKYwofUyV3cTFh47YwkVoPtOStRAgdE87rx+v3VjbWSThQJc3V8\nHOsIeTjpQMwAr/d2DnasHKlps/q+gnGKqhBhcf11tAKn9C7PsAQ2l6+E4Erc\nfPKqDRC6TVG7ABdwOtyNonHhrJ2JLgYj8d4mHdtsMTtFsUTOQR/+Rx0V8HJS\n9gBLmPr3yc/yEedYW68wP5tPK2SfvFTzgMBw5v0+tgIxOjUunGxDUV4a1Bpp\npCBLN7iS77FLMiMonfcD2z/SsoB+Hb+7q5eT/gua3BIUNNZEdmgw9queXw+q\n7DFE\r\n=LSlF\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIQCTy37ycwX7bqoO0WDu7AVubgfxDHR/7neyxoLzwx8dIwIgJxP4QEC0TbUnC9iBA3w36fy7kAAd1tHPSQZtkZ1yOrA=" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" }, + { "email": "sindresorhus+unicorn@gmail.com", "name": "unicorn" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk_2.4.1_1524719751701_0.7780175911150953" + }, + "_hasShrinkwrap": false + }, + "2.4.2": { + "name": "chalk", + "version": "2.4.2", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "engines": { "node": ">=4" }, + "scripts": { + "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava", + "bench": "matcha benchmark.js", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "devDependencies": { + "ava": "*", + "coveralls": "^3.0.0", + "execa": "^0.9.0", + "flow-bin": "^0.68.0", + "import-fresh": "^2.0.0", + "matcha": "^0.7.0", + "nyc": "^11.0.2", + "resolve-from": "^4.0.0", + "typescript": "^2.5.3", + "xo": "*" + }, + "types": "types/index.d.ts", + "xo": { "envs": ["node", "mocha"], "ignores": ["test/_flow.js"] }, + "gitHead": "9776a2ae5b5b1712ccf16416b55f47e575a81fb9", + "bugs": { "url": "https://github.com/chalk/chalk/issues" }, + "homepage": "https://github.com/chalk/chalk#readme", + "_id": "chalk@2.4.2", + "_npmVersion": "6.5.0", + "_nodeVersion": "10.13.0", + "_npmUser": { "name": "sindresorhus", "email": "sindresorhus@gmail.com" }, + "dist": { + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "shasum": "cd42541677a54333cf541a49108c1432b44c9424", + "tarball": "http://localhost:4545/npm/registry/chalk/chalk-2.4.2.tgz", + "fileCount": 7, + "unpackedSize": 26924, + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMNEwCRA9TVsSAnZWagAAmpUQAJgCZygaBX9qniyJ7YVF\nOXq9BNycBSnHyRd5YnaoO6HB7ejh/M4CYYGPqdSQ0OXEk1teNm7iPhGhocbW\n0eEcg0gsnVTgkUKx5p3o841VKydwy72FDgO9WJjKm2QC/mwuYHB9kI7zkq3h\nkakWBNGlKxbKNYX+7x04BXx1H8Fn1CSE//133uQnUWzM6NSXrUwpiZTzwtXi\nOybESujfKq6x6DxlYsTTScThCUodQQTslxIrdeS8PZxQL1RqCwnJSMHi81nI\nPR5BNVbAEYOsZuw88mNEtc6sHellN3ZFVlZwFDu4ZDskgoMiXZVv7Qp6AXbN\nCdsz1ej/OBFdwUfjS17igoHY3sO3+7o3IuFFaCXM4lkSE2zu79M2A7H0GL0R\nUcyfM1OC/nRcLgeEytIDBSOAgeN4tstswdyagFQ36jymeKUyz+q50ziBchey\nZnxPMGYDMKTx+me3TGpf3SbjiSstyZm8GLWPhRLbkjIDajFcFnq2HZXUu/LR\npdFJIWqnJihr9dxxiPSxddqZspb/Jo2mD2+ILNxROZB5+nzmlLnV/PsnnbxM\nPRN0iYDQt6NtXce/GOFMasLwtwidfHx8B4ybmObU3btbmg7V7Og++xpVg+h1\nQfACtop8sZyVN3l65vhonCmioqpSLQPeEkMvwGN6/7wi01BRi5VI4DdEtIet\nHcNL\r\n=DerQ\r\n-----END PGP SIGNATURE-----\r\n", + "signatures": [ + { + "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA", + "sig": "MEUCIHxDV26xkYTdx1T+EBh6zvEaa602qK7hNWXvOTB1yr5UAiEAqSxYcAo+BSotxMY2GjH1e25JFKt2I+5D19gPFGbdghE=" + } + ] + }, + "maintainers": [ + { "email": "i.am.qix@gmail.com", "name": "qix" }, + { "email": "sindresorhus@gmail.com", "name": "sindresorhus" } + ], + "directories": {}, + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/chalk_2.4.2_1546703152138_0.5501232329596948" + }, + "_hasShrinkwrap": false + }, + "3.0.0-beta.1": { + "name": "chalk", + "version": "3.0.0-beta.1", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "main": "source", + "engines": { "node": ">=8" }, + "scripts": { + "test": "xo && nyc ava && tsd", + "bench": "matcha benchmark.js" + }, + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.5", + "execa": "^2.0.3", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^14.1.1", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.25.3" + }, + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off" + } + }, + "readme": "

\n\t
\n\t
\n\t\"Chalk\"\n\t
\n\t
\n\t
\n

\n\n> Terminal string styling done right\n\n[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg)\n\n\n\n**This readme reflects the next major version that is currently in development. You probably want [the v2 readme](https://www.npmjs.com/package/chalk).**\n\n\n## Highlights\n\n- Expressive API\n- Highly performant\n- Ability to nest styles\n- [256/Truecolor color support](#256-and-truecolor-color-support)\n- Auto-detects color support\n- Doesn't extend `String.prototype`\n- Clean and focused\n- Actively maintained\n- [Used by ~46,000 packages](https://www.npmjs.com/browse/depended/chalk) as of October 1, 2019\n\n\n## Install\n\n```console\n$ npm install chalk\n```\n\n\n## Usage\n\n```js\nconst chalk = require('chalk');\n\nconsole.log(chalk.blue('Hello world!'));\n```\n\nChalk comes with an easy to use composable API where you just chain and nest the styles you want.\n\n```js\nconst chalk = require('chalk');\nconst log = console.log;\n\n// Combine styled and normal strings\nlog(chalk.blue('Hello') + ' World' + chalk.red('!'));\n\n// Compose multiple styles using the chainable API\nlog(chalk.blue.bgRed.bold('Hello world!'));\n\n// Pass in multiple arguments\nlog(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz'));\n\n// Nest styles\nlog(chalk.red('Hello', chalk.underline.bgBlue('world') + '!'));\n\n// Nest styles of the same type even (color, underline, background)\nlog(chalk.green(\n\t'I am a green line ' +\n\tchalk.blue.underline.bold('with a blue substring') +\n\t' that becomes green again!'\n));\n\n// ES2015 template literal\nlog(`\nCPU: ${chalk.red('90%')}\nRAM: ${chalk.green('40%')}\nDISK: ${chalk.yellow('70%')}\n`);\n\n// ES2015 tagged template literal\nlog(chalk`\nCPU: {red ${cpu.totalPercent}%}\nRAM: {green ${ram.used / ram.total * 100}%}\nDISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}\n`);\n\n// Use RGB colors in terminal emulators that support it.\nlog(chalk.keyword('orange')('Yay for orange colored text!'));\nlog(chalk.rgb(123, 45, 67).underline('Underlined reddish color'));\nlog(chalk.hex('#DEADED').bold('Bold gray!'));\n```\n\nEasily define your own themes:\n\n```js\nconst chalk = require('chalk');\n\nconst error = chalk.bold.red;\nconst warning = chalk.keyword('orange');\n\nconsole.log(error('Error!'));\nconsole.log(warning('Warning!'));\n```\n\nTake advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args):\n\n```js\nconst name = 'Sindre';\nconsole.log(chalk.green('Hello %s'), name);\n//=> 'Hello Sindre'\n```\n\n\n## API\n\n### chalk.`