From 109a22c836e56ae84cad8d6b1218326e6f00a646 Mon Sep 17 00:00:00 2001 From: GitHub workflow <2769109+epoberezkin@users.noreply.github.com> Date: Wed, 10 Jul 2024 15:40:40 +0000 Subject: [PATCH] updated by ajv workflow https://github.com/ajv-validator/ajv/actions/runs/9870343451 --- 404.html | 8 +- api.html | 8 +- assets/css/0.styles.188c37f9.css | 1 + assets/img/contributors.2b607286.jpg | Bin 0 -> 247972 bytes assets/js/21.e4651fe0.js | 1 + assets/js/33.c57c9c0d.js | 1 + assets/js/34.62473079.js | 1 + assets/js/36.571a7479.js | 1 + assets/js/37.32b2077c.js | 1 + assets/js/44.b97aefc1.js | 1 + assets/js/57.17ca7491.js | 1 + assets/js/60.1e8b6431.js | 1 + assets/js/app.7a8db2c1.js | 16 + code_of_conduct/index.html | 6 +- codegen.html | 6 +- coercion.html | 6 +- components.html | 6 +- contributing/index.html | 6 +- faq.html | 6 +- guide/async-validation.html | 6 +- guide/combining-schemas.html | 6 +- guide/environments.html | 6 +- guide/formats.html | 6 +- guide/getting-started.html | 6 +- guide/managing-schemas.html | 6 +- guide/modifying-data.html | 6 +- guide/schema-language.html | 6 +- guide/typescript.html | 6 +- guide/user-keywords.html | 6 +- guide/why-ajv.html | 6 +- index.html | 398 +++++++++--------- json-schema.html | 6 +- json-type-definition.html | 6 +- keywords.html | 6 +- license.html | 6 +- ...08-14-mozilla-grant-openjs-foundation.html | 6 +- news/2020-12-15-ajv-version-7-released.html | 6 +- ...-07-ajv-supports-json-type-definition.html | 6 +- news/2021-03-27-ajv-version-8-released.html | 6 +- news/2021-04-24-ajv-online-event.html | 6 +- news/2021-05-24-ajv-online-event-video.html | 6 +- ...1-07-22-ajv-microsoft-foss-fund-award.html | 6 +- news/index.html | 6 +- options.html | 6 +- packages/ajv-cli.html | 6 +- packages/ajv-errors.html | 6 +- packages/ajv-formats.html | 6 +- packages/ajv-i18n.html | 6 +- packages/ajv-keywords.html | 6 +- packages/index.html | 6 +- security.html | 6 +- standalone.html | 6 +- strict-mode.html | 6 +- testimonials.html | 6 +- v6-to-v8-migration.html | 6 +- 55 files changed, 356 insertions(+), 329 deletions(-) create mode 100644 assets/css/0.styles.188c37f9.css create mode 100644 assets/img/contributors.2b607286.jpg create mode 100644 assets/js/21.e4651fe0.js create mode 100644 assets/js/33.c57c9c0d.js create mode 100644 assets/js/34.62473079.js create mode 100644 assets/js/36.571a7479.js create mode 100644 assets/js/37.32b2077c.js create mode 100644 assets/js/44.b97aefc1.js create mode 100644 assets/js/57.17ca7491.js create mode 100644 assets/js/60.1e8b6431.js create mode 100644 assets/js/app.7a8db2c1.js diff --git a/404.html b/404.html index f7a2fe4e5..9ca7eac0a 100644 --- a/404.html +++ b/404.html @@ -18,13 +18,13 @@ - - + + -

404

That's a Four-Oh-Four.
+ - + diff --git a/api.html b/api.html index f9901a997..a5f59f988 100644 --- a/api.html +++ b/api.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/assets/css/0.styles.188c37f9.css b/assets/css/0.styles.188c37f9.css new file mode 100644 index 000000000..a51a99e77 --- /dev/null +++ b/assets/css/0.styles.188c37f9.css @@ -0,0 +1 @@ +code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#545252;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#07aab4}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#292828}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#292828}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:480px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#292828}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#07aab4}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:480px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}img+span>.icon.outbound{display:none}body{font-family:Raleway;font-weight:400}strong{font-weight:550}h1,h2,h3,h4,h5,h6{font-family:IstokWeb;font-weight:400}.custom-block.tip{border-color:#23c8d2;background-color:#f7f7f3;color:#292828}.custom-block.tip .custom-block-title{color:#292828}.custom-block.warning{border-color:#f1f440;background-color:#f7f7f3;color:#292828}.custom-block.warning .custom-block-title{color:#292828}.custom-block.danger{border-color:#f5775b;background-color:#f7f7f3;color:#292828}.custom-block.danger .custom-block-title{color:#292828}.sidebar nav.nav-links div.nav-item{display:none}span.badge{font-family:Raleway;font-weight:500}.theme-code-group .token.string{color:#7ec699}.theme-code-group button.theme-code-group__nav-tab.theme-code-group__nav-tab-active{border-color:#7ec699}.navbar span.site-name{font-family:IstokWeb;font-weight:500;font-size:1.6em}p.sidebar-heading{font-weight:500;font-size:1em}a.sidebar-link.active{font-weight:500!important}@font-face{font-family:Raleway;src:url(/fonts/Raleway-VariableFont_wght.ttf)}@font-face{font-family:IstokWeb;src:url(/fonts/IstokWeb-Regular.ttf);font-weight:400}#nprogress{pointer-events:none}#nprogress .bar{background:#07aab4;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #07aab4,0 0 5px #07aab4;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#07aab4 transparent transparent #07aab4;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.algolia-search-wrapper>span{vertical-align:middle}.algolia-search-wrapper .algolia-autocomplete{line-height:normal}.algolia-search-wrapper .algolia-autocomplete .ds-dropdown-menu{background-color:#fff;border:1px solid #999;border-radius:4px;font-size:16px;margin:6px 0 0;padding:4px;text-align:left}.algolia-search-wrapper .algolia-autocomplete .ds-dropdown-menu:before{border-color:#999}.algolia-search-wrapper .algolia-autocomplete .ds-dropdown-menu [class*=ds-dataset-]{border:none;padding:0}.algolia-search-wrapper .algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0}.algolia-search-wrapper .algolia-autocomplete .ds-dropdown-menu .ds-suggestion{border-bottom:1px solid #eaecef}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#2c815b}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion{border-color:#eaecef;padding:0}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--category-header{padding:5px 10px;margin-top:0;background:#07aab4;color:#fff;font-weight:600}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background:hsla(0,0%,100%,.6)}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--wrapper{padding:0}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--title{font-weight:600;margin-bottom:0;color:#292828}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{vertical-align:top;padding:5px 7px 5px 5px;border-color:#eaecef;background:#f1f3f5}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{display:none}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column-text{color:#555}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-footer{border-color:#eaecef}.algolia-search-wrapper .algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--content{background-color:#e7edf3!important;color:#292828}@media (min-width:719px){.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{float:none;width:150px;min-width:150px;display:table-cell}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{float:none;display:table-cell;width:100%;vertical-align:top}.algolia-search-wrapper .algolia-autocomplete .algolia-docsearch-suggestion .ds-dropdown-menu{min-width:515px!important}}@media (max-width:719px){.algolia-search-wrapper .ds-dropdown-menu{min-width:calc(100vw - 4rem)!important;max-width:calc(100vw - 4rem)!important}.algolia-search-wrapper .algolia-docsearch-suggestion--wrapper{padding:5px 7px 5px 5px!important}.algolia-search-wrapper .algolia-docsearch-suggestion--subcategory-column{padding:0!important;background:#fff!important}.algolia-search-wrapper .algolia-docsearch-suggestion--subcategory-column-text:after{content:" > ";font-size:10px;line-height:14.4px;display:inline-block;width:5px;margin:-3px 3px 0;vertical-align:middle}}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#807d7d}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#07aab4;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #0699a2}.home .hero .action-button:hover{background-color:#08c7d3}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3f3d3d}.home .feature p{color:#5f5d5d}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#5f5d5d}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:480px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#5f5d5d;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#07aab4}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#757272}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#07aab4}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:480px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.badge[data-v-6eb0829b]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-6eb0829b],.badge.tip[data-v-6eb0829b]{background-color:#23c8d2}.badge.error[data-v-6eb0829b]{background-color:#f5775b}.badge.warn[data-v-6eb0829b],.badge.warning[data-v-6eb0829b],.badge.yellow[data-v-6eb0829b]{background-color:#e9c400}.badge+.badge[data-v-6eb0829b]{margin-left:5px}.theme-code-block[data-v-311ec9b4]{display:none}.theme-code-block__active[data-v-311ec9b4]{display:block}.theme-code-block>pre[data-v-311ec9b4]{background-color:orange}.theme-code-group__nav[data-v-5cad0a2e]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-5cad0a2e]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-5cad0a2e]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-5cad0a2e]{border-bottom:1px solid #42b983}.pre-blank[data-v-5cad0a2e]{color:#42b983}a.button[data-v-439d4a3b]{display:block;width:114px;height:38px;line-height:38px;background-color:#23c8d2;border-radius:6px;color:#fff;text-align:center;font-weight:600}.column[data-v-71066fea]{margin-bottom:22px}@media only screen and (min-width:719px){.column.left[data-v-71066fea]{width:33%;margin-right:5%}.column.right[data-v-71066fea]{width:62%}}@media only screen and (min-width:719px){.columns[data-v-6d930324]{display:flex}}.contributor[data-v-074475b8]{width:3.26em;height:3.26em;border-radius:50%;text-indent:-9999px;display:inline-block;background:no-repeat url(/assets/img/contributors.2b607286.jpg);background-size:auto 102%;margin:0 .67em .67em 0;border:2px solid var(--second)}@media only screen and (min-width:414px){.contributor[data-v-074475b8]{width:3.625em;height:3.625em;margin:0 .8em .8em 0}}div[data-v-20681dd8]{height:200px;box-sizing:border-box;padding:28px;border-radius:8px;position:relative;color:#fff;margin-bottom:25px}@media only screen and (min-width:480px){div[data-v-20681dd8]{height:160px}}@media only screen and (min-width:719px){div[data-v-20681dd8]{width:31.25%;height:225px;margin-right:3%;margin-bottom:0}}div h3[data-v-20681dd8]{margin:0}@media only screen and (min-width:959px){div h3[data-v-20681dd8]{font-size:1.75em}}div h3 .header-anchor[data-v-20681dd8]{display:none}@media only screen and (min-width:959px){div p[data-v-20681dd8]{font-size:1.25em}}div.less-code[data-v-20681dd8]{background-color:#23c8d2}div.fast-secure[data-v-20681dd8]{background-color:#409cff}div.multi-spec[data-v-20681dd8]{background-color:#f5775b}@media only screen and (min-width:719px){div[data-v-20681dd8]:last-child{margin-right:0}}a[data-v-20681dd8]{position:absolute;bottom:24px;right:24px;color:#fff}.features[data-v-30c230c6]{padding:60px 0}@media only screen and (min-width:719px){.features[data-v-30c230c6]{display:flex}}@media only screen and (min-width:719px){div[data-v-f7c18a96]{width:25%}}p a[data-v-f7c18a96]{color:#292828;font-weight:400}p a[data-v-f7c18a96]:hover{text-decoration:underline}@media only screen and (max-width:719px){p[data-v-f7c18a96]{margin:0;line-height:30px}}.column img[data-v-f7c18a96]{display:block;margin:0 auto}.column.ajv img[data-v-f7c18a96]{margin:0;width:100px}@media only screen and (max-width:719px){.column.ajv img[data-v-f7c18a96]{margin-bottom:34px}}.column.links a[data-v-f7c18a96]{color:#292828;font-weight:400}@media only screen and (max-width:719px){.column.sponsors a[data-v-f7c18a96]:first-child{display:block;margin-top:80px}}.column.sponsors img[data-v-f7c18a96]{width:140px;padding:0 20px 15px}.footer-columns[data-v-de1d7950]{padding:20px 0 60px;border-bottom:1px solid #c4c4c4}@media only screen and (min-width:719px){.footer-columns[data-v-de1d7950]{display:flex}}span[data-v-3ac601d9]{vertical-align:-8px;padding-left:20px}@media only screen and (max-width:719px){span[data-v-3ac601d9]{vertical-align:-21px}}.hero-section[data-v-37c67372]{width:100%;padding:3.6rem 0 50px;overflow:hidden;background:linear-gradient(304.33deg,hsla(0,0%,92.9%,.31) -7.48%,#c6e1ff 30.07%,hsla(0,0%,92.9%,.26) 82.76%)}.hero-section .section-content[data-v-37c67372]{position:relative;max-width:1000px;padding:0 50px;margin:0 auto}@media only screen and (max-width:719px){.hero-section .section-content[data-v-37c67372]{padding:0 40px}}@media only screen and (max-width:480px){.hero-section .section-content[data-v-37c67372]{padding:0 30px}}.hero-section .section-content .section-content-wrapper[data-v-37c67372]{position:relative;z-index:2}.hero-section .hero-image[data-v-37c67372]{position:absolute;z-index:1;width:658px;top:-400px;left:-25px}@media only screen and (min-width:480px){.hero-section .hero-image[data-v-37c67372]{width:823px;top:-500px;left:50px}}@media only screen and (min-width:719px){.hero-section .hero-image[data-v-37c67372]{top:-430px;left:330px}}@media only screen and (min-width:959px){.hero-section .hero-image[data-v-37c67372]{width:1097px;top:-575px;left:425px}}.hero-section .header-anchor[data-v-37c67372]{display:none}.hero-section h1[data-v-37c67372]{font-size:2em;margin-top:200px}.hero-section h2[data-v-37c67372]{border-bottom:none}@media only screen and (min-width:480px){.hero-section h1[data-v-37c67372]{font-size:3em}.hero-section h2[data-v-37c67372]{font-size:1.75em}}@media only screen and (min-width:719px){.hero-section h1[data-v-37c67372],.hero-section h2[data-v-37c67372]{margin-left:48px}}@media only screen and (min-width:959px){.hero-section h1[data-v-37c67372]{font-size:4em}.hero-section h2[data-v-37c67372]{font-size:2.25em}.hero-section h1[data-v-37c67372],.hero-section h2[data-v-37c67372]{margin-left:64px}}.homepage[data-v-07ee638e]{padding:0;box-sizing:content-box}.post[data-v-a228e400]{display:flex;border-bottom:1px solid #eaecef}.post[data-v-a228e400]:last-child{border-bottom:none}.post a.read-more[data-v-a228e400]{float:right;margin:28px 0}p.subscribe[data-v-a228e400]{margin-top:2em}p.subscribe a.all-news[data-v-a228e400]{display:block;margin-top:1rem}@media only screen and (min-width:480px){p.subscribe a.all-news[data-v-a228e400]{display:inline-block;float:right;margin-top:0}}.home-section[data-v-aed41194]{width:100%;padding:3.6rem 0 50px}.home-section .section-content[data-v-aed41194]{max-width:1000px;padding:0 50px;margin:0 auto}@media only screen and (max-width:719px){.home-section .section-content[data-v-aed41194]{padding:0 40px}}@media only screen and (max-width:480px){.home-section .section-content[data-v-aed41194]{padding:0 30px}}.home-section[data-v-aed41194] .theme-code-group button{position:relative;outline:none;z-index:1}.home-section.contributors[data-v-aed41194],.home-section.footer[data-v-aed41194],.home-section.testimonials[data-v-aed41194]{background:linear-gradient(295.26deg,hsla(0,0%,91%,.8) 26.65%,hsla(0,0%,100%,.04) 83.48%)}.home-section.footer p[data-v-aed41194]{padding:20px 0 0;text-align:center;color:#292828}.home-section.footer p a[data-v-aed41194]{color:#292828;font-weight:400}.home-section.footer p a[data-v-aed41194]:hover{text-decoration:underline}.post-meta>div[data-v-f7ce3066]{display:inline-flex}.pub-date[data-v-f7ce3066]{color:grey}.projects p[data-v-7ef3dfe8]{max-width:1100px;padding:0}.projects img[data-v-7ef3dfe8]{display:inline-block;max-width:240px;height:40px;line-height:40px;vertical-align:middle}@media only screen and (max-width:719px){.projects img[data-v-7ef3dfe8]{max-width:160px;height:30px;line-height:30px}}.projects a[data-v-7ef3dfe8]{display:inline-block;height:40px;line-height:40px;vertical-align:middle;margin:0 36px 30px 0;font-size:28px;font-weight:500;color:#292828}@media only screen and (max-width:719px){.projects a[data-v-7ef3dfe8]{margin:0 24px 20px 0;height:30px;line-height:30px;font-size:20px}}.projects a[data-v-7ef3dfe8]:hover{text-decoration:none}.projects a span[data-v-7ef3dfe8]{display:none}form[data-v-410e8fc2]{display:inline-block}label[data-v-410e8fc2]{display:block;margin-bottom:1rem}@media only screen and (min-width:719px){label[data-v-410e8fc2]{display:inline-block;margin-bottom:0}}button[data-v-410e8fc2],input[data-v-410e8fc2]{font-family:Raleway;font-size:16px;border:0 solid;outline:none}input[data-v-410e8fc2]{border:1px solid #cfd4db;height:2rem;width:180px;border-radius:2rem;padding:0 .5rem;margin:0 .5rem 0 0}input[data-v-410e8fc2]:focus{border-color:#07aab4}@media only screen and (min-width:719px){input[data-v-410e8fc2]{width:200px;margin:0 1rem}}button[data-v-410e8fc2]{width:114px;height:36px;line-height:36px;padding-top:0;background-color:#23c8d2;border-radius:6px;color:#fff;text-align:center;font-weight:600;display:block;margin-top:1em}@media only screen and (min-width:414px){button[data-v-410e8fc2]{display:inline-block;margin-top:0}}.sponsors[data-v-c1b00a8c]{max-width:800px;margin:0 auto}.sponsors h2[data-v-c1b00a8c]{margin-left:0;text-decoration:none}.sponsors h2 a.header-anchor[data-v-c1b00a8c]{width:auto;margin-right:0}.sponsors p[data-v-c1b00a8c]{font-size:24px}.sponsors.bronze img[data-v-c1b00a8c],.sponsors.gold img[data-v-c1b00a8c],.sponsors.platinum img[data-v-c1b00a8c]{width:100%}.sponsors.bronze a[data-v-c1b00a8c],.sponsors.gold a[data-v-c1b00a8c],.sponsors.platinum a[data-v-c1b00a8c]{margin-bottom:10px;display:inline-block}@media only screen and (min-width:480px){.sponsors.bronze a[data-v-c1b00a8c],.sponsors.gold a[data-v-c1b00a8c],.sponsors.platinum a[data-v-c1b00a8c]{margin-bottom:0}}.sponsors.bronze a[data-v-c1b00a8c]:last-child,.sponsors.gold a[data-v-c1b00a8c]:last-child,.sponsors.platinum a[data-v-c1b00a8c]:last-child{margin-right:0}.sponsors.platinum a[data-v-c1b00a8c]{width:100%;display:block}@media only screen and (min-width:480px){.sponsors.platinum a[data-v-c1b00a8c]{display:inline-block;width:45%;margin-right:8%}}.sponsors.gold a[data-v-c1b00a8c]{width:45%;margin-right:4%}@media only screen and (min-width:480px){.sponsors.gold a[data-v-c1b00a8c]{width:31%;margin-right:2%}}.sponsors.bronze a[data-v-c1b00a8c]{width:45%;margin-right:4%}@media only screen and (min-width:480px){.sponsors.bronze a[data-v-c1b00a8c]{width:22%;margin-right:3%}}div.testimonial-content[data-v-2c05e654]{background-position:50%;overflow:hidden;width:280px;background-repeat:no-repeat}div.testimonial-content.blue[data-v-2c05e654]{background-image:url(/assets/img/testimonials-blue.868231a8.svg)}div.testimonial-content.green[data-v-2c05e654]{background-image:url(/assets/img/testimonials-green.6fdaa89c.svg)}div.testimonial-content p[data-v-2c05e654]{margin:.9em 0;font-size:15px}@media only screen and (max-width:374px){div.testimonial-content.blue[data-v-2c05e654],div.testimonial-content.green[data-v-2c05e654]{background-image:none;padding:0}div.testimonial-content.blue p[data-v-2c05e654],div.testimonial-content.green p[data-v-2c05e654]{font-size:15px}}@media only screen and (max-width:500px){div.testimonial-content[data-v-2c05e654]{width:100%;background-size:350px 156px;padding:0 calc(50% - 100px);box-sizing:border-box}div.testimonial-content p[data-v-2c05e654]{font-size:12px}}@media only screen and (min-width:500px){div.testimonial-content[data-v-2c05e654]{height:212px;padding:0 75px;margin:40px auto 0}}@media only screen and (min-width:959px){div.testimonial-content[data-v-2c05e654]{padding:0 calc(25% - 140px)}}.header-anchor[data-v-2c05e654]{display:none}.testimonials[data-v-729b0721]{padding:20px 0}@media only screen and (min-width:959px){.testimonials[data-v-729b0721]{display:flex}}.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-moz-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""}.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid~.searchbox__reset{display:block;animation-name:sbx-reset-in;animation-duration:.15s}@keyframes sbx-reset-in{0%{transform:translate3d(-20%,0,0);opacity:0}to{transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0!important;right:inherit!important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple,.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,.05)}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border:1px solid #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,.1);padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363d}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#a4a7ae;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:1px solid #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content:before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1:before{background-image:url('data:image/svg+xml;utf8,');content:"";width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none!important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458ee1;font-size:.9em;font-weight:400}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title:before{content:"#";font-weight:700;color:#458ee1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:700;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:134px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 012.966 2.966V20.5a2.967 2.967 0 01-2.966 2.964H78.988a2.967 2.967 0 01-2.966-2.964V3.897A2.961 2.961 0 0178.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 00-1.574-.199 5.7 5.7 0 00-.897.069 2.699 2.699 0 00-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 01-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 01-1.471-.636 3.085 3.085 0 01-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 011.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 011.82-.185 8.404 8.404 0 011.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 00-.384-.73 1.784 1.784 0 00-.724-.493 3.164 3.164 0 00-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 00-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 012.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 00-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 00-.814.24 1.46 1.46 0 00-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 01.233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 01-1.471-.635 3.085 3.085 0 01-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 012.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 00-.109-.875 1.873 1.873 0 00-.384-.731 1.784 1.784 0 00-.724-.492 3.165 3.165 0 00-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 00-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 012.073-.177zm-8.034-1.271a1.626 1.626 0 01-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 01-1.128 1.906 4.986 4.986 0 01-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 01-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 01-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 011.15-1.892 5.133 5.133 0 011.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 011.753 1.216 5.644 5.644 0 011.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 00-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 01-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 01-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 012.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 00-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 01-.582-.271 13.67 13.67 0 01-.55-.287 4.275 4.275 0 01-.567-.351 6.92 6.92 0 01-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 01-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 00-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 00-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 00-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 01-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 00-.978-.977h-2.28a.978.978 0 00-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 011.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 00-1.382 0l-.465.465a.973.973 0 000 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 00-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 01-4.49-4.482 4.488 4.488 0 014.49-4.482 4.488 4.488 0 014.489 4.482 4.484 4.484 0 01-4.49 4.482m0-10.85a6.363 6.363 0 100 12.729 6.37 6.37 0 006.372-6.368 6.358 6.358 0 00-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#292828}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#07aab4}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:1rem 1.5rem .45rem 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#07aab4}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #07aab4;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#07aab4}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#292828}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #08c1cd}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#292828;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:480px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#5f5d5d;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#5f5d5d}.page-edit .last-updated .time{font-weight:400;color:#767676}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:480px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page,.page[data-v-22624a70]{padding-bottom:2rem;display:block}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#292828;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#07aab4;border-left-color:#07aab4}.sidebar-heading.clickable:hover{color:#07aab4}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#292828;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#07aab4}a.sidebar-link.active{font-weight:600;color:#07aab4;border-left-color:#07aab4}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}} \ No newline at end of file diff --git a/assets/img/contributors.2b607286.jpg b/assets/img/contributors.2b607286.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc713bdc62d10b8b26770564159542ae9e16f0b7 GIT binary patch literal 247972 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

X`8Gd}_pUj~-FepN!jz$R*Hfkv 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

Kmn3+dHqk1^BTdhZDsZ6)KGC$*q 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%0De^Aj!%AoCy76=U{)5C2)j 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

E4DVJA+>X+uFt) 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 literal 0 HcmV?d00001 diff --git a/assets/js/21.e4651fe0.js b/assets/js/21.e4651fe0.js new file mode 100644 index 000000000..1beac97b8 --- /dev/null +++ b/assets/js/21.e4651fe0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{282:function(a,e,n){},347:function(a,e){a.exports=["epoberezkin","spaced4ndy","erikbrinkman","jasoniangreen","dependabot[bot]","PBug90","blakeembrey","sambauers","gajus","meirotstein","Tyharo1","igor-savin-ht","b4h0-c4t","willfarrell","boenrobot","yume-chan","GrahamLea","franciscomorais","asaid-0","domoritz","imbstack","pithu","realityking","efebarlas","brendo","pcwiek","rehanvdm","farrago","SoAsEr","kroky","Delagen","YChebotaev","bhvngt","t7yang","teq0","wuweiss","zekth","egfx-notifications","awlayton","HotelDon","donaldpipowitch","mummybot","G-Rath","HolgerJeromin","monkeywithacupcake","ktrueda","lucassaid","marshall007","mattpolzin","MichaelDeBoey","Nonemoticoner","dzuremar","papb","philsturgeon","carlo-quinonez","radekmie","merlindorin","Romakita","rbuckton","ryanmeador","mighty1231","simon04","SirLich","krenor","stuartpb","TIBCOeddie","bearmini","mxsgx","m00s","mbroadst","MattiAstedrone","MikeRalphson","tyok","MrJithil","mychaelgo","natflow","nwoltman","blottn","nimerritt","nicksrandall","Noam3kCH","eventlistener","Opticsponge","orgads","jonganc","jsdevel","oldmud0","ossdev07","pskfyi","qwertyforce","rek","sahilda","schokotets","superfaz","tridium","vlbee","aladdin-add","wyfo","duxing","anchnk","ChALkeR","not-an-aardvark","thernstig","TommyDew42","koba04","isTravis","cvlab","vargaeric","villasv","aristov","billytrend","byr-gdp","cjancsar","dfeufel","ehmicky","fpicalausa","franrolando","fridays","delavara","smithc10","caub","dalcib","dannyb648","dancasey","rotu","FunkyDck","darcyparker","daveisfera","dsanders11","Delapouite","dimitropoulos","keyten","thetric","rubiagatra","forivall","ahmdsolmn","alexanderjsx","Alexsey","avanelli","anslzo","asprouse","andyscott","vixalien","kulakowka","wetneb","vendeza","benasher44","bradjones1","eventualbuddha","cbrwflo","cpillsbury","ChuntaoLu","jonasfj","jonathanGB","jboavida","justinpowers","kapouer","lehni","platinumazure","kpping","laurens","johanlelan","leonardovillela","LinusU","alazyzombie","jsbrain","Eomm","VIEWVIEWVIEW","mduu","ecwyne","EtaiG","gj","rgeerts","garrows","gurgunday","hadrien-toma","seriousme","hans-kinnek","handrews","is2ei","idangozlan","ivansieder","P0lip","JamesJansson","mrjgreen","jrr"]},348:function(a,e,n){"use strict";n(282)},379:function(a,e,n){"use strict";n.r(e);var r=n(347),o=n.n(r),i={data:()=>({contributors:o.a})},t=(n(348),n(14)),s=Object(t.a)(i,(function(){var a=this,e=a._self._c;return e("div",a._l(a.contributors,(function(n,r){return e("a",{staticClass:"contributor",style:"background-position: "+100*r/(a.contributors.length-1)+"% 0",attrs:{href:"https://github.com/"+n}},[a._v("\n "+a._s(n)+"\n ")])})),0)}),[],!1,null,"074475b8",null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/33.c57c9c0d.js b/assets/js/33.c57c9c0d.js new file mode 100644 index 000000000..e7d8b2fec --- /dev/null +++ b/assets/js/33.c57c9c0d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{291:function(t,s,n){},359:function(t,s,n){"use strict";n(291)},384:function(t,s,n){"use strict";n.r(s);var i={props:{section:{type:String}}},c=(n(359),n(14)),e=Object(c.a)(i,(function(){var t=this._self._c;return t("div",{staticClass:"home-section",class:this.section},[t("div",{staticClass:"section-content"},[this._t("default")],2)])}),[],!1,null,"aed41194",null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/34.62473079.js b/assets/js/34.62473079.js new file mode 100644 index 000000000..06d5427e8 --- /dev/null +++ b/assets/js/34.62473079.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{290:function(t,s,e){},358:function(t,s,e){"use strict";e(290)},383:function(t,s,e){"use strict";e.r(s);var r={computed:{posts(){return this.$site.pages.filter(t=>t.path.startsWith("/news/")&&!t.frontmatter.newsIndex).sort((t,s)=>new Date(s.frontmatter.date)-new Date(t.frontmatter.date)).slice(0,3)}}},a=(e(358),e(14)),n=Object(a.a)(r,(function(){var t=this,s=t._self._c;return s("div",[t._l(t.posts,(function(e,r){return s("div",{staticClass:"post"},[s("Columns",[s("Column",{attrs:{side:"left"}},[s("h3",[t._v(t._s(e.frontmatter.title))]),t._v(" "),s("NewsPostMeta",{attrs:{date:e.frontmatter.date}})],1),t._v(" "),s("Column",{attrs:{side:"right"}},[s("div",{domProps:{innerHTML:t._s(e.excerpt)}}),t._v(" "),!1!==e.frontmatter.more?s("Button",{attrs:{link:e.path,cssClass:"read-more"}},[t._v("Read more")]):t._e()],1)],1)],1)})),t._v(" "),s("p",{staticClass:"subscribe"},[s("Subscribe"),t._v(" "),s("a",{staticClass:"all-news",attrs:{href:"/news/"}},[t._v("All news")])],1)],2)}),[],!1,null,"a228e400",null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/36.571a7479.js b/assets/js/36.571a7479.js new file mode 100644 index 000000000..fbbb002b7 --- /dev/null +++ b/assets/js/36.571a7479.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{296:function(s,t,n){},366:function(s,t,n){"use strict";n(296)},388:function(s,t,n){"use strict";n.r(t);var e={props:{level:{type:String}}},c=(n(366),n(14)),i=Object(c.a)(e,(function(){return(0,this._self._c)("div",{staticClass:"sponsors",class:this.level},[this._t("default")],2)}),[],!1,null,"c1b00a8c",null);t.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/37.32b2077c.js b/assets/js/37.32b2077c.js new file mode 100644 index 000000000..5a880e981 --- /dev/null +++ b/assets/js/37.32b2077c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{295:function(t,i,s){},365:function(t,i,s){"use strict";s(295)},440:function(t,i,s){"use strict";s.r(i);s(365);var a=s(14),e=Object(a.a)({},(function(){this._self._c;return this._m(0)}),[function(){var t=this._self._c;return t("form",{attrs:{action:"https://ajv.us1.list-manage.com/subscribe/post?u=4343a2a251fa30892c2360003&id=304f51cbc3",method:"post",target:"_blank",novalidate:""}},[t("label",{attrs:{for:"subscription-email"}},[this._v("Subscribe to Ajv news")]),this._v(" "),t("input",{attrs:{id:"subscription-email",name:"EMAIL",placeholder:"Your email"}}),this._v(" "),t("div",{staticStyle:{position:"absolute",left:"-5000px"},attrs:{"aria-hidden":"true"}},[t("input",{attrs:{type:"text",name:"b_4343a2a251fa30892c2360003_304f51cbc3",tabindex:"-1",value:""}})]),this._v(" "),t("button",{attrs:{type:"submit"}},[this._v("Submit")])])}],!1,null,"410e8fc2",null);i.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/44.b97aefc1.js b/assets/js/44.b97aefc1.js new file mode 100644 index 000000000..25c59e1f8 --- /dev/null +++ b/assets/js/44.b97aefc1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{392:function(t,a,e){"use strict";e.r(a);var s=e(14),r=Object(s.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"api-reference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api-reference"}},[t._v("#")]),t._v(" API Reference")]),t._v(" "),a("p"),a("div",{staticClass:"table-of-contents"},[a("ul",[a("li",[a("a",{attrs:{href:"#ajv-constructor-and-methods"}},[t._v("Ajv constructor and methods")]),a("ul",[a("li",[a("a",{attrs:{href:"#new-ajv-options-object"}},[t._v("new Ajv(options: object)")])]),a("li",[a("a",{attrs:{href:"#ajv-compile-schema-object-data-any-boolean-promise-any"}},[t._v("ajv.compile(schema: object): (data: any) => boolean | Promise < any >")])]),a("li",[a("a",{attrs:{href:"#ajv-compileserializer-schema-object-data-any-string"}},[t._v("ajv.compileSerializer(schema: object): (data: any) => string "),a("Badge",{attrs:{text:"NEW"}})],1)]),a("li",[a("a",{attrs:{href:"#ajv-compileparser-schema-object-json-string-any"}},[t._v("ajv.compileParser(schema: object): (json: string) => any "),a("Badge",{attrs:{text:"NEW"}})],1)]),a("li",[a("a",{attrs:{href:"#ajv-compileasync-schema-object-meta-boolean-promise-function"}},[t._v("ajv.compileAsync(schema: object, meta?: boolean): Promise < Function >")])]),a("li",[a("a",{attrs:{href:"#ajv-validate-schemaorref-object-string-data-any-boolean"}},[t._v("ajv.validate(schemaOrRef: object | string, data: any): boolean")])]),a("li",[a("a",{attrs:{href:"#ajv-addschema-schema-object-object-key-string-ajv"}},[t._v("ajv.addSchema(schema: object | object[], key?: string): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-addmetaschema-schema-object-object-key-string-ajv"}},[t._v("ajv.addMetaSchema(schema: object | object[], key?: string): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-validateschema-schema-object-boolean"}},[t._v("ajv.validateSchema(schema: object): boolean")])]),a("li",[a("a",{attrs:{href:"#ajv-getschema-key-string-undefined-data-any-boolean-promise-any"}},[t._v("ajv.getSchema(key: string): undefined | ((data: any) => boolean | Promise < any >)")])]),a("li",[a("a",{attrs:{href:"#ajv-removeschema-schemaorref-object-string-regexp-ajv"}},[t._v("ajv.removeSchema(schemaOrRef: object | string | RegExp): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-addformat-name-string-format-format-ajv"}},[t._v("ajv.addFormat(name: string, format: Format): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-addkeyword-definition-string-object-ajv"}},[t._v("ajv.addKeyword(definition: string | object): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-getkeyword-keyword-string-object-boolean"}},[t._v("ajv.getKeyword(keyword: string): object | boolean")])]),a("li",[a("a",{attrs:{href:"#ajv-removekeyword-keyword-string-ajv"}},[t._v("ajv.removeKeyword(keyword: string): Ajv")])]),a("li",[a("a",{attrs:{href:"#ajv-errorstext-errors-object-options-object-string"}},[t._v("ajv.errorsText(errors?: object[], options?: object): string")])])])]),a("li",[a("a",{attrs:{href:"#validation-errors"}},[t._v("Validation errors")]),a("ul",[a("li",[a("a",{attrs:{href:"#error-objects"}},[t._v("Error objects")])]),a("li",[a("a",{attrs:{href:"#error-parameters"}},[t._v("Error parameters")])]),a("li",[a("a",{attrs:{href:"#errors-i18n"}},[t._v("Errors i18n")])]),a("li",[a("a",{attrs:{href:"#error-logging"}},[t._v("Error logging")])])])])])]),a("p"),t._v(" "),a("h2",{attrs:{id:"ajv-constructor-and-methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-constructor-and-methods"}},[t._v("#")]),t._v(" Ajv constructor and methods")]),t._v(" "),a("h3",{attrs:{id:"new-ajv-options-object"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#new-ajv-options-object"}},[t._v("#")]),t._v(" new Ajv(options: object)")]),t._v(" "),a("p",[t._v("Create Ajv instance:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("See "),a("a",{attrs:{href:"./options"}},[t._v("Options")])]),t._v(" "),a("h3",{attrs:{id:"ajv-compile-schema-object-data-any-boolean-promise-any"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-compile-schema-object-data-any-boolean-promise-any"}},[t._v("#")]),t._v(" ajv.compile(schema: object): (data: any) => boolean | Promise < any >")]),t._v(" "),a("p",[t._v("Generate validating function and cache the compiled schema for future use.")]),t._v(" "),a("p",[t._v("Validating function returns a boolean value (or promise for async schemas that must have "),a("code",[t._v("$async: true")]),t._v(" property - see "),a("RouterLink",{attrs:{to:"/guide/async-validation.html"}},[t._v("Asynchronous validation")]),t._v("). This function has properties "),a("code",[t._v("errors")]),t._v(" and "),a("code",[t._v("schema")]),t._v(". Errors encountered during the last validation are assigned to "),a("code",[t._v("errors")]),t._v(" property (it is assigned "),a("code",[t._v("null")]),t._v(" if there was no errors). "),a("code",[t._v("schema")]),t._v(" property contains the reference to the original schema.")],1),t._v(" "),a("p",[t._v("The schema passed to this method will be validated against meta-schema unless "),a("code",[t._v("validateSchema")]),t._v(" option is false. If schema is invalid, an error will be thrown. See "),a("a",{attrs:{href:"#options"}},[t._v("options")]),t._v(".")]),t._v(" "),a("p",[t._v("In typescript returned validation function can be a type guard if you pass type parameter:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Foo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" FooSchema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" JSONSchemaType"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n properties"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n required"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n additionalProperties"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token generic-function"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token generic class-name"}},[a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("Foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("FooSchema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// type of validate extends `(data: any) => data is Foo`")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data is Foo here")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("foo"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("validate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("errors"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("See more advanced example in "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv/blob/master/spec/types/json-schema.spec.ts",target:"_blank",rel:"noopener noreferrer"}},[t._v("the test"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[a("a",{attrs:{name:"jtd-serialize"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-compileserializer-schema-object-data-any-string"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-compileserializer-schema-object-data-any-string"}},[t._v("#")]),t._v(" ajv.compileSerializer(schema: object): (data: any) => string "),a("Badge",{attrs:{text:"NEW"}})],1),t._v(" "),a("p",[t._v("Generate serializing function based on the "),a("RouterLink",{attrs:{to:"/json-type-definition.html"}},[t._v("JTD schema")]),t._v(" (caches the schema) - only in JTD instance of Ajv (see example below).")],1),t._v(" "),a("p",[t._v("Serializers compiled from JTD schemas can be more than 10 times faster than using "),a("code",[t._v("JSON.stringify")]),t._v(", because they do not traverse all the data, only the properties that are defined in the schema.")]),t._v(" "),a("p",[t._v("Properties not defined in the schema will not be included in serialized JSON, unless the schema has "),a("code",[t._v("additionalProperties: true")]),t._v(" flag. It can also be beneficial from the application security point of view, as it prevents leaking accidentally/temporarily added additional properties to the API responses.")]),t._v(" "),a("p",[t._v("If you use JTD with typescript, the type for the schema can be derived from the data type, and generated serializer would only accept correct data type in this case:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("JTDSchemaType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ajv/dist/jtd"')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyData")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v("\n bar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mySchema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" JTDSchemaType"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("MyData"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n properties"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n foo"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"int32"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// any JTD number type would be accepted here")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n optionalProperties"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n bar"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" serializeMyData "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compileSerializer")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mySchema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// serializeMyData has type (x: MyData) => string")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// it prevents you from accidentally passing the wrong type")]),t._v("\n")])])]),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Compiled serializers do NOT validate data!")]),t._v(" "),a("p",[t._v("It is assumed that the data is valid according to the schema.")])]),t._v(" "),a("p",[a("a",{attrs:{name:"jtd-parse"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-compileparser-schema-object-json-string-any"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-compileparser-schema-object-json-string-any"}},[t._v("#")]),t._v(" ajv.compileParser(schema: object): (json: string) => any "),a("Badge",{attrs:{text:"NEW"}})],1),t._v(" "),a("p",[t._v("Generate parsing function based on the "),a("RouterLink",{attrs:{to:"/json-type-definition.html"}},[t._v("JTD schema")]),t._v(" (caches the schema) - only in JTD instance of Ajv (see example below).")],1),t._v(" "),a("p",[t._v("Parsers compiled from JTD schemas have comparable performance to "),a("code",[t._v("JSON.parse")]),a("sup",[t._v("*")]),t._v(" in case JSON string is valid according to the schema (and they do not just parse JSON - they ensure that parsed JSON is valid according to the schema as they parse), but they can be many times faster in case the string is invalid - for example, if schema expects an object, and JSON string is array the parser would fail on the first character.")]),t._v(" "),a("p",[t._v("Parsing will fail if there are properties not defined in the schema, unless the schema has "),a("code",[t._v("additionalProperties: true")]),t._v(" flag.")]),t._v(" "),a("p",[t._v("If you use JTD with typescript, the type for the schema can be derived from the data type, and generated parser will return correct data type (see definitions example in the "),a("a",{attrs:{href:"#jtd-serialize"}},[t._v("serialize")]),t._v(" section):")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" parseMyData "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compileParser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mySchema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// parseMyData has type (s: string) => MyData | undefined")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// it returns correct data type in case parsing is successful and undefined if not")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validData "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parseMyData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'{\"foo\":1}'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// {foo: 1} - success")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" invalidData "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parseMyData")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'{\"x\":1}'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// undefined - failure")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("parseMyData"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("position"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 4")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("parseMyData"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// property x not allowed")]),t._v("\n")])])]),a("p",[a("sup",[t._v("*")]),t._v(" As long as empty schema "),a("code",[t._v("{}")]),t._v(" is not used - there is a possibility to improve performance in this case. Also, the performance of parsing "),a("code",[t._v("discriminator")]),t._v(" schemas depends on the position of discriminator tag in the schema - the best parsing performance will be achieved if the tag is the first property - this is how compiled JTD serializers generate JSON in case of discriminator schemas.")]),t._v(" "),a("p",[a("a",{attrs:{name:"api-compileAsync"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-compileasync-schema-object-meta-boolean-promise-function"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-compileasync-schema-object-meta-boolean-promise-function"}},[t._v("#")]),t._v(" ajv.compileAsync(schema: object, meta?: boolean): Promise < Function >")]),t._v(" "),a("p",[t._v("Asynchronous version of "),a("code",[t._v("compile")]),t._v(" method that loads missing remote schemas using asynchronous function in "),a("code",[t._v("options.loadSchema")]),t._v(". This function returns a Promise that resolves to a validation function. An optional callback passed to "),a("code",[t._v("compileAsync")]),t._v(" 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:")]),t._v(" "),a("ul",[a("li",[t._v("missing schema can't be loaded ("),a("code",[t._v("loadSchema")]),t._v(" returns a Promise that rejects).")]),t._v(" "),a("li",[t._v("a schema containing a missing reference is loaded, but the reference cannot be resolved.")]),t._v(" "),a("li",[t._v("schema (or some loaded/referenced schema) is invalid.")])]),t._v(" "),a("p",[t._v("The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded.")]),t._v(" "),a("p",[t._v("You can asynchronously compile meta-schema by passing "),a("code",[t._v("true")]),t._v(" as the second parameter.")]),t._v(" "),a("p",[t._v("Similarly to "),a("code",[t._v("compile")]),t._v(", it can return type guard in typescript.")]),t._v(" "),a("p",[t._v("See example in "),a("RouterLink",{attrs:{to:"/guide/managing-schemas.html#asynchronous-schema-loading"}},[t._v("Asynchronous schema loading")]),t._v(".")],1),t._v(" "),a("h3",{attrs:{id:"ajv-validate-schemaorref-object-string-data-any-boolean"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-validate-schemaorref-object-string-data-any-boolean"}},[t._v("#")]),t._v(" ajv.validate(schemaOrRef: object | string, data: any): boolean")]),t._v(" "),a("p",[t._v("Validate data using passed schema (it will be compiled and cached).")]),t._v(" "),a("p",[t._v("Instead of the schema you can use the key that was previously passed to "),a("code",[t._v("addSchema")]),t._v(", the schema id if it was present in the schema or any previously resolved reference.")]),t._v(" "),a("p",[t._v("Validation errors will be available in the "),a("code",[t._v("errors")]),t._v(" property of Ajv instance ("),a("code",[t._v("null")]),t._v(" if there were no errors).")]),t._v(" "),a("p",[t._v("In typescript this method can act as a type guard (similarly to function returned by "),a("code",[t._v("compile")]),t._v(" method - see example there).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Save errors property")]),t._v(" "),a("p",[t._v("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.")])]),t._v(" "),a("p",[t._v("If the schema is asynchronous (has "),a("code",[t._v("$async")]),t._v(" keyword on the top level) this method returns a Promise. See "),a("RouterLink",{attrs:{to:"/guide/async-validation.html"}},[t._v("Asynchronous validation")]),t._v(".")],1),t._v(" "),a("p",[a("a",{attrs:{id:"add-schema"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-addschema-schema-object-object-key-string-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-addschema-schema-object-object-key-string-ajv"}},[t._v("#")]),t._v(" ajv.addSchema(schema: object | object[], key?: string): Ajv")]),t._v(" "),a("p",[t._v("Add 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.")]),t._v(" "),a("p",[t._v("Array of schemas can be passed (schemas should have ids), the second parameter will be ignored.")]),t._v(" "),a("p",[t._v("Key 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.")]),t._v(" "),a("p",[t._v("Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data.")]),t._v(" "),a("p",[t._v("Although "),a("code",[t._v("addSchema")]),t._v(" does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time.")]),t._v(" "),a("p",[t._v("By 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 "),a("code",[t._v("validateSchema")]),t._v(" option.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Method chaining")]),t._v(" "),a("p",[t._v("Ajv returns its instance for chaining from all methods prefixed "),a("code",[t._v("add*")]),t._v(" and "),a("code",[t._v("remove*")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addSchema")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addFormat")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("name"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" regex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSchema")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("uri"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"ajv-addmetaschema-schema-object-object-key-string-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-addmetaschema-schema-object-object-key-string-ajv"}},[t._v("#")]),t._v(" ajv.addMetaSchema(schema: object | object[], key?: string): Ajv")]),t._v(" "),a("p",[t._v("Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of "),a("code",[t._v("addSchema")]),t._v(" because there may be instance options that would compile a meta schema incorrectly (at the moment it is "),a("code",[t._v("removeAdditional")]),t._v(" option).")]),t._v(" "),a("p",[t._v("There is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option "),a("code",[t._v("meta")]),t._v(" is set to "),a("code",[t._v("false")]),t._v(". You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See "),a("code",[t._v("validateSchema")]),t._v(".")]),t._v(" "),a("p",[a("a",{attrs:{name:"api-validateschema"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-validateschema-schema-object-boolean"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-validateschema-schema-object-boolean"}},[t._v("#")]),t._v(" ajv.validateSchema(schema: object): boolean")]),t._v(" "),a("p",[t._v("Validates schema. This method should be used to validate schemas rather than "),a("code",[t._v("validate")]),t._v(" due to the inconsistency of "),a("code",[t._v("uri")]),t._v(" format in JSON Schema standard.")]),t._v(" "),a("p",[t._v("By default this method is called automatically when the schema is added, so you rarely need to use it directly.")]),t._v(" "),a("p",[t._v("If schema doesn't have "),a("code",[t._v("$schema")]),t._v(" property, it is validated against draft 6 meta-schema (option "),a("code",[t._v("meta")]),t._v(" should not be false).")]),t._v(" "),a("p",[t._v("If schema has "),a("code",[t._v("$schema")]),t._v(" property, then the schema with this id (that should be previously added) is used to validate passed schema.")]),t._v(" "),a("p",[t._v("Errors will be available at "),a("code",[t._v("ajv.errors")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"ajv-getschema-key-string-undefined-data-any-boolean-promise-any"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-getschema-key-string-undefined-data-any-boolean-promise-any"}},[t._v("#")]),t._v(" ajv.getSchema(key: string): undefined | ((data: any) => boolean | Promise < any >)")]),t._v(" "),a("p",[t._v("Retrieve compiled schema previously added with "),a("code",[t._v("addSchema")]),t._v(" by the key passed to "),a("code",[t._v("addSchema")]),t._v(" or by its full reference (id). The returned validating function has "),a("code",[t._v("schema")]),t._v(" property with the reference to the original schema.")]),t._v(" "),a("h3",{attrs:{id:"ajv-removeschema-schemaorref-object-string-regexp-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-removeschema-schemaorref-object-string-regexp-ajv"}},[t._v("#")]),t._v(" ajv.removeSchema(schemaOrRef: object | string | RegExp): Ajv")]),t._v(" "),a("p",[t._v("Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references.")]),t._v(" "),a("p",[t._v("Schema can be removed using:")]),t._v(" "),a("ul",[a("li",[t._v("key passed to "),a("code",[t._v("addSchema")])]),t._v(" "),a("li",[t._v("it's full reference (id)")]),t._v(" "),a("li",[t._v("RegExp that should match schema id or key (meta-schemas won't be removed)")]),t._v(" "),a("li",[t._v("actual schema object (that will be optionally serialized) to remove schema from cache")])]),t._v(" "),a("p",[t._v("If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared.")]),t._v(" "),a("p",[a("a",{attrs:{name:"api-addformat"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-addformat-name-string-format-format-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-addformat-name-string-format-format-ajv"}},[t._v("#")]),t._v(" ajv.addFormat(name: string, format: Format): Ajv")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Format")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// to ignore this format (and pass validation)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// will be converted to RegExp")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" RegExp\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// format definition (see below and in types)")]),t._v("\n")])])]),a("p",[t._v("Add format to validate strings or numbers.")]),t._v(" "),a("p",[t._v("If object is passed it should have properties "),a("code",[t._v("validate")]),t._v(", "),a("code",[t._v("compare")]),t._v(" and "),a("code",[t._v("async")]),t._v(":")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FormatDefinition")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// actual type definition is more precise - see types.ts")]),t._v("\n validate"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" RegExp "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Promise")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n compare"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data1"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" data2"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// an optional function that accepts two strings")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// and compares them according to the format meaning.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This function is used with keywords `formatMaximum`/`formatMinimum`")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package).")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// It should return `1` if the first value is bigger than the second value,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `-1` if it is smaller and `0` if it is equal.")]),t._v("\n async"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// if `validate` is an asynchronous function")]),t._v("\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// "string" is default. If data type is different, the validation will pass.')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Formats can be also added via "),a("code",[t._v("formats")]),t._v(" option.")]),t._v(" "),a("p",[a("a",{attrs:{name:"api-addkeyword"}})]),t._v(" "),a("h3",{attrs:{id:"ajv-addkeyword-definition-string-object-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-addkeyword-definition-string-object-ajv"}},[t._v("#")]),t._v(" ajv.addKeyword(definition: string | object): Ajv")]),t._v(" "),a("p",[t._v("Add validation keyword to Ajv instance.")]),t._v(" "),a("p",[t._v("Keyword 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.")]),t._v(" "),a("p",[t._v("Keyword must start with an ASCII letter, "),a("code",[t._v("_")]),t._v(" or "),a("code",[t._v("$")]),t._v(", and may continue with ASCII letters, numbers, "),a("code",[t._v("_")]),t._v(", "),a("code",[t._v("$")]),t._v(", "),a("code",[t._v("-")]),t._v(", or "),a("code",[t._v(":")]),t._v(".\nIt is recommended to use an application-specific prefix for keywords to avoid current and future name collisions.")]),t._v(" "),a("p",[t._v("Example Keywords:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v('"xyz-example"')]),t._v(": valid, and uses prefix for the xyz project to avoid name collisions.")]),t._v(" "),a("li",[a("code",[t._v('"example"')]),t._v(": valid, but not recommended as it may collide with future versions of JSON Schema etc.")]),t._v(" "),a("li",[a("code",[t._v('"3-example"')]),t._v(": invalid as numbers are not allowed to be the first character in a keyword")])]),t._v(" "),a("p",[t._v("Keyword definition is an object with the following properties:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("KeywordDefinition")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// actual type definition is more precise - see types.ts")]),t._v("\n keyword"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword name")]),t._v("\n type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// JSON data type(s) the keyword applies to. Default - all types.")]),t._v("\n schemaType"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the required schema JSON type")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("code")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// function to generate code, used for all pre-defined keywords")]),t._v("\n validate"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// validating function")]),t._v("\n compile"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// compiling function")]),t._v("\n macro"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// macro function")]),t._v("\n error"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// error definition object - see types.ts")]),t._v("\n schema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// used with "validate" keyword to not pass schema to function')]),t._v("\n metaSchema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// meta-schema for keyword schema")]),t._v("\n dependencies"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// properties that must be present in the parent schema -")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// it will be checked during schema compilation")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword names to reserve that this keyword implements")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("modifying")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// MUST be passed if keyword modifies data")]),t._v("\n valid"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// to pre-define validation result, validation function result will be ignored -")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this option MUST NOT be used with `macro` keywords.")]),t._v("\n $data"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// to support [\\$data reference](./guide/combining-schemas.md#data-reference) as the value of keyword.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The reference will be resolved at validation time. If the keyword has meta-schema,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// it would be extended to allow $data and it will be used to validate the resolved value.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Supporting $data reference requires that keyword has `code` or `validate` function")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (the latter can be used in addition to `compile` or `macro`).")]),t._v("\n $dataError"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// error definition object for invalid \\$data schema - see types.ts")]),t._v("\n async"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// if the validation function is asynchronous")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (whether it is returned from `compile` or passed in `validate` property).")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// It should return a promise that resolves with a value `true` or `false`.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// This option is ignored in case of "macro" and "code" keywords.')]),t._v("\n errors"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"full"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// whether keyword returns errors.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If this property is not passed Ajv will determine")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// if the errors were set in case of failed validation.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("If only the property "),a("code",[t._v("keyword")]),t._v(" is provided in the definition object, you can also pass the keyword name as the argument.")]),t._v(" "),a("p",[a("code",[t._v("compile")]),t._v(", "),a("code",[t._v("macro")]),t._v(" and "),a("code",[t._v("code")]),t._v(" are mutually exclusive, only one should be used at a time. "),a("code",[t._v("validate")]),t._v(" can be used separately or in addition to "),a("code",[t._v("compile")]),t._v(" or "),a("code",[t._v("macro")]),t._v(" to support "),a("RouterLink",{attrs:{to:"/guide/combining-schemas.html#data-reference"}},[t._v("$data reference")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Keyword is validated only for applicable data types")]),t._v(" "),a("p",[t._v("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 "),a("code",[t._v("type")]),t._v(" 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.")])]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/keywords.html"}},[t._v("User defined keywords")]),t._v(" for more details.")],1),t._v(" "),a("h3",{attrs:{id:"ajv-getkeyword-keyword-string-object-boolean"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-getkeyword-keyword-string-object-boolean"}},[t._v("#")]),t._v(" ajv.getKeyword(keyword: string): object | boolean")]),t._v(" "),a("p",[t._v("Returns keyword definition, "),a("code",[t._v("false")]),t._v(" if the keyword is unknown.")]),t._v(" "),a("h3",{attrs:{id:"ajv-removekeyword-keyword-string-ajv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-removekeyword-keyword-string-ajv"}},[t._v("#")]),t._v(" ajv.removeKeyword(keyword: string): Ajv")]),t._v(" "),a("p",[t._v("Removes added or pre-defined keyword so you can redefine them.")]),t._v(" "),a("p",[t._v("While 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.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Compiled schemas and removed keywords")]),t._v(" "),a("p",[t._v("The schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use "),a("code",[t._v("removeSchema")]),t._v(" method and compile them again.")])]),t._v(" "),a("h3",{attrs:{id:"ajv-errorstext-errors-object-options-object-string"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ajv-errorstext-errors-object-options-object-string"}},[t._v("#")]),t._v(" ajv.errorsText(errors?: object[], options?: object): string")]),t._v(" "),a("p",[t._v("Returns the text with all errors in a String.")]),t._v(" "),a("p",[t._v("Options can have properties "),a("code",[t._v("separator")]),t._v(' (string used to separate errors, ", " by default) and '),a("code",[t._v("dataVar")]),t._v(' (the variable name that instancePath is prefixed with, "data" by default).')]),t._v(" "),a("h2",{attrs:{id:"validation-errors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#validation-errors"}},[t._v("#")]),t._v(" Validation errors")]),t._v(" "),a("p",[t._v("In case of validation failure, Ajv assigns the array of errors to "),a("code",[t._v("errors")]),t._v(" property of validation function (or to "),a("code",[t._v("errors")]),t._v(" property of Ajv instance when "),a("code",[t._v("validate")]),t._v(" or "),a("code",[t._v("validateSchema")]),t._v(" methods were called). In case of "),a("RouterLink",{attrs:{to:"/guide/async-validation.html"}},[t._v("asynchronous validation")]),t._v(", the returned promise is rejected with exception "),a("code",[t._v("Ajv.ValidationError")]),t._v(" that has "),a("code",[t._v("errors")]),t._v(" property.")],1),t._v(" "),a("h3",{attrs:{id:"error-objects"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#error-objects"}},[t._v("#")]),t._v(" Error objects")]),t._v(" "),a("p",[t._v("Each reported error is an object with the following properties:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorObject")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n keyword"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// validation keyword.")]),t._v("\n instancePath"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// JSON Pointer to the location in the data instance (e.g., `"/prop/1/subProp"`).')]),t._v("\n schemaPath"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// JSON Pointer to the location of the failing keyword in the schema")]),t._v("\n params"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// type is defined by keyword value, see below")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params property is the object with the additional information about error")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// it can be used to generate error messages")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package).")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// See below for parameters set by all keywords.")]),t._v("\n propertyName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// set for errors in `propertyNames` keyword schema.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `instancePath` still points to the object in this case.")]),t._v("\n message"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the error message (can be excluded with option `messages: false`).")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Options below are added with `verbose` option:")]),t._v("\n schema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the value of the failing keyword in the schema.")]),t._v("\n parentSchema"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the schema containing the keyword.")]),t._v("\n data"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the data validated by the keyword.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("For "),a("RouterLink",{attrs:{to:"/json-type-definition.html"}},[t._v("JTD")]),t._v(" schemas "),a("code",[t._v("instancePath")]),t._v(" and "),a("code",[t._v("schemaPath")]),t._v(" depend on the nature of the failure - the errors are consistent with "),a("a",{attrs:{href:"https://datatracker.ietf.org/doc/rfc8927/",target:"_blank",rel:"noopener noreferrer"}},[t._v("RFC8927"),a("OutboundLink")],1),t._v(".")],1),t._v(" "),a("h3",{attrs:{id:"error-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#error-parameters"}},[t._v("#")]),t._v(" Error parameters")]),t._v(" "),a("p",[t._v("Properties of "),a("code",[t._v("params")]),t._v(" object in errors depend on the keyword that failed validation.")]),t._v(" "),a("p",[t._v("In typescript, the ErrorObject is a discriminated union that allows to determine the type of error parameters based on the value of keyword:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token generic-function"}},[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token generic class-name"}},[a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("MyData"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data is MyData here")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// DefinedError is a type for all pre-defined keywords errors,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// validate.errors has type ErrorObject[] - to allow user-defined keywords with any error parameters.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Users can extend DefinedError to include the keywords errors they defined.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" err "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("of")]),t._v(" validate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("errors "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" DefinedError"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("switch")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("keyword"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("case")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"maximum"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("limit"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("break")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("case")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pattern"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("err"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pattern"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("break")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Also see an example in "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv/blob/master/spec/types/error-parameters.spec.ts",target:"_blank",rel:"noopener noreferrer"}},[t._v("this test"),a("OutboundLink")],1)]),t._v(" "),a("ul",[a("li",[a("code",[t._v("maxItems")]),t._v(", "),a("code",[t._v("minItems")]),t._v(", "),a("code",[t._v("maxLength")]),t._v(", "),a("code",[t._v("minLength")]),t._v(", "),a("code",[t._v("maxProperties")]),t._v(", "),a("code",[t._v("minProperties")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("limit"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword value")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("additionalItems")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// when `items` is an array of schemas and `additionalItems` is false:")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("limit"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the maximum number of allowed items")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("additionalProperties")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("additionalProperty"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the property not defined in `properties` and `patternProperties` keywords")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("dependencies")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n property"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// dependent property,")]),t._v("\n missingProperty"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// required missing dependency - only the first one is reported")]),t._v("\n deps"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// required dependencies, comma separated list as a string (TODO change to string[])")]),t._v("\n depsCount"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the number of required dependencies")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("format")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("format"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword value")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("maximum")]),t._v(", "),a("code",[t._v("minimum")]),t._v(", "),a("code",[t._v("exclusiveMaximum")]),t._v(", "),a("code",[t._v("exclusiveMinimum")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n limit"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword value")]),t._v("\n comparison"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"<="')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('">="')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"<"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('">"')]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// operation to compare the data to the limit,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// with data on the left and the limit on the right")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("multipleOf")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("multipleOf"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("number")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword value")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("pattern")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("pattern"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// keyword value")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("required")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("missingProperty"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// required property that is missing")]),t._v("\n")])])]),a("ul",[a("li",[a("code",[t._v("propertyNames")]),t._v(":")])]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ErrorParams")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("propertyName"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// invalid property name")]),t._v("\n")])])]),a("p",[t._v("User-defined keywords can define other keyword parameters.")]),t._v(" "),a("h3",{attrs:{id:"errors-i18n"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#errors-i18n"}},[t._v("#")]),t._v(" Errors i18n")]),t._v(" "),a("p",[t._v("You can use "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv-i18n",target:"_blank",rel:"noopener noreferrer"}},[t._v("ajv-i18n"),a("OutboundLink")],1),t._v(" package to generate errors in other languages.")]),t._v(" "),a("h3",{attrs:{id:"error-logging"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#error-logging"}},[t._v("#")]),t._v(" Error logging")]),t._v(" "),a("p",[t._v("A logger instance can be passed via "),a("code",[t._v("logger")]),t._v(" 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.")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("Required Methods")]),t._v(": "),a("code",[t._v("log")]),t._v(", "),a("code",[t._v("warn")]),t._v(", "),a("code",[t._v("error")])])]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" otherLogger "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("OtherLogger")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("logger")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("bind")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("warn")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("warn")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n otherLogger"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("logWarn")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apply")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("otherLogger"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" arguments"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n otherLogger"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("logError")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apply")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("otherLogger"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" arguments"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("error")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apply")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" arguments"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h5",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" Options")]),t._v(" "),a("p",[t._v("This section is moved to "),a("RouterLink",{attrs:{to:"/options.html"}},[t._v("Initialization options")]),t._v(" page")],1)])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/57.17ca7491.js b/assets/js/57.17ca7491.js new file mode 100644 index 000000000..8896cd266 --- /dev/null +++ b/assets/js/57.17ca7491.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{407:function(t,a,s){"use strict";s.r(a);var e=s(14),r=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"modifying-data-during-validation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#modifying-data-during-validation"}},[t._v("#")]),t._v(" Modifying data during validation")]),t._v(" "),a("p"),a("div",{staticClass:"table-of-contents"},[a("ul",[a("li",[a("a",{attrs:{href:"#general-considerations"}},[t._v("General considerations")])]),a("li",[a("a",{attrs:{href:"#removing-additional-properties"}},[t._v("Removing additional properties")])]),a("li",[a("a",{attrs:{href:"#assigning-defaults"}},[t._v("Assigning defaults")])]),a("li",[a("a",{attrs:{href:"#coercing-data-types"}},[t._v("Coercing data types")])])])]),a("p"),t._v(" "),a("h2",{attrs:{id:"general-considerations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general-considerations"}},[t._v("#")]),t._v(" General considerations")]),t._v(" "),a("p",[t._v("Ajv has several options that allow to modify data during validation:")]),t._v(" "),a("ul",[a("li",[t._v("removeAdditional - to remove properties not defined in the schema object.")]),t._v(" "),a("li",[t._v("useDefaults - to assign defaults from the schema to the validated data properties.")]),t._v(" "),a("li",[t._v("coerceTypes - to change data type, when possible, to match the type(s) in the schema.")])]),t._v(" "),a("p",[t._v("You can also define keywords that modify data.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("NOT possible to modify root data")]),t._v(" "),a("p",[t._v("It is not possible to modify the root data instance passed to the validation function, only data properties can be modified. This is related to how JavaScript passes parameters, and not a limitation of Ajv.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Non-portable functionality")]),t._v(" "),a("p",[t._v("This functionality is non-standard - this is likely to be unsupported in other JSON Schema validator implementations.")])]),t._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[t._v("Unexpected results when modifying data")]),t._v(" "),a("p",[t._v("While pure schema validation produces the results independent of the keywords and subschema order, enabling any feature that may modify the data makes validation impure and its results are likely to depend on the order of evaluation of keywords and subschemas.")]),t._v(" "),a("p",[t._v("The order of evaluation of subschemas in keywords like "),a("code",[t._v("allOf")]),t._v(" is always the same as the order of subschemas in the array.")]),t._v(" "),a("p",[t._v("On another hand, the order of evaluation of keywords, while consistent between validations and not dependent on how schema object is created, is neither documented nor guaranteed, so it can change in the future major versions (and, in rare cases, it can change in minor version - e.g. when there is bug that needs to be fixed).")]),t._v(" "),a("p",[t._v("It is strongly recommended to always put user-defined keywords that can mutate data in separate subschemas inside "),a("code",[t._v("allOf")]),t._v(" keyword to make the order of evaluation unambiguous. The exceptions to this recommendation are pre-defined "),a("code",[t._v("default")]),t._v(" and "),a("code",[t._v("type")]),t._v(" keywords - they must remain in the same schema as other keywords.")])]),t._v(" "),a("h2",{attrs:{id:"removing-additional-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removing-additional-properties"}},[t._v("#")]),t._v(" Removing additional properties")]),t._v(" "),a("p",[t._v("With "),a("RouterLink",{attrs:{to:"/guide/api.html#options"}},[t._v("option "),a("code",[t._v("removeAdditional")])]),t._v(" (added by "),a("a",{attrs:{href:"https://github.com/andyscott",target:"_blank",rel:"noopener noreferrer"}},[t._v("andyscott"),a("OutboundLink")],1),t._v(") you can filter data during the validation.")],1),t._v(" "),a("p",[t._v("This option modifies original data.")]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("removeAdditional")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("baz")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additional1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// will be removed; `additionalProperties` == false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("baz")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"abc"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additional2")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// will NOT be removed; `additionalProperties` != false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// { "foo": 0, "bar": { "baz": "abc", "additional2": 2 }')]),t._v("\n")])])]),a("p",[t._v("If "),a("code",[t._v("removeAdditional")]),t._v(" option in the example above were "),a("code",[t._v('"all"')]),t._v(" then both "),a("code",[t._v("additional1")]),t._v(" and "),a("code",[t._v("additional2")]),t._v(" properties would have been removed.")]),t._v(" "),a("p",[t._v("If the option were "),a("code",[t._v('"failing"')]),t._v(" then property "),a("code",[t._v("additional1")]),t._v(" would have been removed regardless of its value and property "),a("code",[t._v("additional2")]),t._v(" would have been removed only if its value were failing the schema in the inner "),a("code",[t._v("additionalProperties")]),t._v(" (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Unexpected results when using removeAdditional with anyOf/oneOf")]),t._v(" "),a("p",[t._v("If you use "),a("code",[t._v("removeAdditional")]),t._v(" option with "),a("code",[t._v("additionalProperties")]),t._v(" keyword inside "),a("code",[t._v("anyOf")]),t._v("/"),a("code",[t._v("oneOf")]),t._v(" keywords your validation can fail with this schema. To make it work as you expect, you have to use discriminated union with "),a("RouterLink",{attrs:{to:"/json-schema.html#discriminator"}},[t._v("discriminator")]),t._v(" keyword (requires "),a("code",[t._v("discriminator")]),t._v(" option).")],1)]),t._v(" "),a("p",[t._v("For example, with this non-discriminated union you will have unexpected results:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("oneOf")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v('The 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.')]),t._v(" "),a("p",[t._v("With the option "),a("code",[t._v("removeAdditional: true")]),t._v(" the validation will pass for the object "),a("code",[t._v('{ "foo": "abc"}')]),t._v(" but will fail for the object "),a("code",[t._v('{"bar": 1}')]),t._v(". It happens because while the first subschema in "),a("code",[t._v("oneOf")]),t._v(" is validated, the property "),a("code",[t._v("bar")]),t._v(" is removed because it is an additional property according to the standard (because it is not included in "),a("code",[t._v("properties")]),t._v(" keyword in the same schema).")]),t._v(" "),a("p",[t._v("While this behaviour is unexpected (issues "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv/issues/129",target:"_blank",rel:"noopener noreferrer"}},[t._v("#129"),a("OutboundLink")],1),t._v(", "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv/issues/134",target:"_blank",rel:"noopener noreferrer"}},[t._v("#134"),a("OutboundLink")],1),t._v("), 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:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("oneOf")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("The schema above is also more efficient - it will compile into a faster function.")]),t._v(" "),a("p",[t._v("For discriminated unions you could schemas with "),a("RouterLink",{attrs:{to:"/json-schema.html#discriminator"}},[t._v("discriminator")]),t._v(" keyword (it requires "),a("code",[t._v("discriminator: true")]),t._v(" option):")],1),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("discriminator")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("propertyName")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tag"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tag"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("oneOf")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tag")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tag")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"integer"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("additionalProperties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("With this schema, only one subschema in "),a("code",[t._v("oneOf")]),t._v(" will be evaluated, so "),a("code",[t._v("removeAdditional")]),t._v(" option will work as expected.")]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/json-schema.html#discriminator"}},[t._v("discriminator")]),t._v(" keyword.")],1),t._v(" "),a("h2",{attrs:{id:"assigning-defaults"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#assigning-defaults"}},[t._v("#")]),t._v(" Assigning defaults")]),t._v(" "),a("p",[t._v("With "),a("RouterLink",{attrs:{to:"/guide/options.html#options"}},[t._v("option "),a("code",[t._v("useDefaults")])]),t._v(" Ajv will assign values from "),a("code",[t._v("default")]),t._v(" keyword in the schemas of "),a("code",[t._v("properties")]),t._v(" and "),a("code",[t._v("items")]),t._v(" (when it is the array of schemas) to the missing properties and items.")],1),t._v(" "),a("p",[t._v("With the option value "),a("code",[t._v('"empty"')]),t._v(" properties and items equal to "),a("code",[t._v("null")]),t._v(" or "),a("code",[t._v('""')]),t._v(" (empty string) will be considered missing and assigned defaults.")]),t._v(" "),a("p",[t._v("This option modifies original data.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Defaults are deep-cloned")]),t._v(" "),a("p",[t._v("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.")])]),t._v(" "),a("p",[t._v("Example 1 ("),a("code",[t._v("default")]),t._v(" in "),a("code",[t._v("properties")]),t._v("):")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("useDefaults")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"baz"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// { "foo": 1, "bar": "baz" }')]),t._v("\n")])])]),a("p",[t._v("Example 2 ("),a("code",[t._v("default")]),t._v(" in "),a("code",[t._v("items")]),t._v("):")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"array"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("items")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"string"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// [ 1, "foo" ]')]),t._v("\n")])])]),a("p",[t._v("With "),a("code",[t._v("useDefaults")]),t._v(" option "),a("code",[t._v("default")]),t._v(" keywords throws exception during schema compilation when used in:")]),t._v(" "),a("ul",[a("li",[t._v("not in "),a("code",[t._v("properties")]),t._v(" or "),a("code",[t._v("items")]),t._v(" subschemas")]),t._v(" "),a("li",[t._v("in schemas inside "),a("code",[t._v("anyOf")]),t._v(", "),a("code",[t._v("oneOf")]),t._v(" and "),a("code",[t._v("not")]),t._v(" (see "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv/issues/42",target:"_blank",rel:"noopener noreferrer"}},[t._v("#42"),a("OutboundLink")],1),t._v(")")]),t._v(" "),a("li",[t._v("in "),a("code",[t._v("if")]),t._v(" schema")]),t._v(" "),a("li",[t._v("in schemas generated by user-defined "),a("em",[t._v("macro")]),t._v(" keywords")])]),t._v(" "),a("p",[t._v("The strict mode option can change the behaviour for these unsupported defaults ("),a("code",[t._v("strict: false")]),t._v(" to ignore them, "),a("code",[t._v('"log"')]),t._v(" to log a warning).")]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/strict-mode.html"}},[t._v("Strict mode")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Default with discriminator keyword")]),t._v(" "),a("p",[t._v("Defaults will be assigned in schemas inside "),a("code",[t._v("oneOf")]),t._v(" in case "),a("RouterLink",{attrs:{to:"/json-schema.html#discriminator"}},[t._v("discriminator")]),t._v(" keyword is used.")],1)]),t._v(" "),a("h2",{attrs:{id:"coercing-data-types"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#coercing-data-types"}},[t._v("#")]),t._v(" Coercing data types")]),t._v(" "),a("p",[t._v("When you are validating user inputs all your data properties are usually strings. The option "),a("code",[t._v("coerceTypes")]),t._v(" allows you to have your data types coerced to the types specified in your schema "),a("code",[t._v("type")]),t._v(" keywords, both to pass the validation and to use the correctly typed data afterwards.")]),t._v(" "),a("p",[t._v("This option modifies original data.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("Type coercion with scalar values")]),t._v(" "),a("p",[t._v("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.")])]),t._v(" "),a("p",[t._v("Example 1:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("coerceTypes")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"object"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"boolean"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("required")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"foo"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"bar"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"false"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// { "foo": 1, "bar": false }')]),t._v("\n")])])]),a("p",[t._v("Example 2 (array coercions):")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ajv "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Ajv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("coerceTypes")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"array"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("properties")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"array"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("items")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"boolean"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"1"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"false"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// { "foo": [1], "bar": false }')]),t._v("\n")])])]),a("p",[t._v('The 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).')]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/coercion.html"}},[t._v("Type coercion rules")]),t._v(" for details.")],1)])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/60.1e8b6431.js b/assets/js/60.1e8b6431.js new file mode 100644 index 000000000..b0134631c --- /dev/null +++ b/assets/js/60.1e8b6431.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{406:function(t,a,s){"use strict";s.r(a);var e=s(14),n=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"user-defined-keywords"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#user-defined-keywords"}},[t._v("#")]),t._v(" User-defined keywords")]),t._v(" "),a("p",[t._v("You can extend keyword available in Ajv by defining your own keywords.")]),t._v(" "),a("p",[t._v("The advantages of defining keywords are:")]),t._v(" "),a("ul",[a("li",[t._v("allow creating validation scenarios that cannot be expressed using pre-defined keywords")]),t._v(" "),a("li",[t._v("simplify your schemas")]),t._v(" "),a("li",[t._v("help bringing a bigger part of the validation logic to your schemas")]),t._v(" "),a("li",[t._v("make your schemas more expressive, less verbose and closer to your application domain")]),t._v(" "),a("li",[t._v("implement data processors that modify your data ("),a("code",[t._v("modifying")]),t._v(" option MUST be used in keyword definition) and/or create side effects while the data is being validated")])]),t._v(" "),a("p",[t._v("If a keyword is used only for side-effects and its validation result is pre-defined, use option "),a("code",[t._v("valid: true/false")]),t._v(" in keyword definition to simplify both generated code (no error handling in case of "),a("code",[t._v("valid: true")]),t._v(") and your keyword functions (no need to return any validation result).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("User-defined keywords make schemas non-portable")]),t._v(" "),a("p",[t._v("When extending JSON Schema standard with additional keywords, you have several potential concerns to be aware of:")]),t._v(" "),a("ul",[a("li",[t._v("portability of your schemas - they would only work with JavaScript or TypeScript applications where you can use Ajv.")]),t._v(" "),a("li",[t._v("additional documentation required to maintain your schemas.")])])]),t._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[t._v("Avoid using non-standard keywords with JTD schemas")]),t._v(" "),a("p",[t._v("While it is possible to define additional keywords for JSON Type Definition schemas (these keywords can only be used in "),a("code",[t._v("metadata")]),t._v(" member of the schema), it is strongly recommended not to do it - JTD is specifically designed for cross-platform APIs.")])]),t._v(" "),a("p",[t._v("You can define keywords with "),a("RouterLink",{attrs:{to:"/guide/api.html#api-addkeyword"}},[t._v("addKeyword")]),t._v(" method. Keywords are defined on the "),a("code",[t._v("ajv")]),t._v(" instance level - new instances will not have previously defined keywords.")],1),t._v(" "),a("p",[t._v("Ajv allows defining keywords with:")]),t._v(" "),a("ul",[a("li",[t._v("code generation function (used by all pre-defined keywords)")]),t._v(" "),a("li",[t._v("validation function")]),t._v(" "),a("li",[t._v("compilation function")]),t._v(" "),a("li",[t._v("macro function")])]),t._v(" "),a("p",[t._v("Example. "),a("code",[t._v("range")]),t._v(" and "),a("code",[t._v("exclusiveRange")]),t._v(" keywords using compiled schema:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addKeyword")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("keyword")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"range"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"number"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("schemaType")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"array"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("implements")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"exclusiveRange"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" parentSchema")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n parentSchema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exclusiveRange "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("max")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">=")]),t._v(" min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" schema "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("exclusiveRange")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" validate "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ajv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("schema"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.01")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3.99")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// true")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// false")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("validate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// false")]),t._v("\n")])])]),a("p",[t._v("Several keywords (typeof, instanceof, range and propertyNames) are defined in "),a("a",{attrs:{href:"https://github.com/ajv-validator/ajv-keywords",target:"_blank",rel:"noopener noreferrer"}},[t._v("ajv-keywords"),a("OutboundLink")],1),t._v(" package - they can be used for your schemas and as a starting point for your own keywords.")]),t._v(" "),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/keywords.html"}},[t._v("User-defined keywords")]),t._v(" reference for more details.")],1)])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.7a8db2c1.js b/assets/js/app.7a8db2c1.js new file mode 100644 index 000000000..ff3a41f5b --- /dev/null +++ b/assets/js/app.7a8db2c1.js @@ -0,0 +1,16 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var r,a,s=t[0],l=t[1],c=t[2],f=0,p=[];f

'};function o(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var l=n.render(!t),c=l.querySelector(r.barSelector),u=r.speed,f=r.easing;return l.offsetWidth,a((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,function(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,o}(e,u,f)),1===e?(s(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){s(l,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,a=t.querySelector(r.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+i)in n)return r;return t}(n))}function r(e,t,r){t=n(t),e.style[t]=r}return function(e,t){var n,o,i=arguments;if(2==i.length)for(n in t)void 0!==(o=t[n])&&t.hasOwnProperty(n)&&r(e,n,o);else r(e,i[1],i[2])}}();function l(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function u(e,t){var n,r=f(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){"use strict";var r=n(0),o=n(45).f,i=n(12),a=n(90),s=n(33),l=n(60),c=n(118);e.exports=function(e,t){var n,u,f,p,d,v=e.target,h=e.global,m=e.stat;if(n=h?r:m?r[v]||s(v,{}):r[v]&&r[v].prototype)for(u in t){if(p=t[u],f=e.dontCallGetSet?(d=o(n,u))&&d.value:n[u],!c(h?u:v+(m?".":"#")+u,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;l(p,f)}(e.sham||f&&f.sham)&&i(p,"sham",!0),a(n,u,p,e)}}},function(e,t,n){"use strict";var r=n(25),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(e,t,n){"use strict";var r=n(3);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(46),o=n(28);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(47),o=TypeError;e.exports=function(e){if(r(e))throw new o("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(0),o=n(1),i=function(e){return o(e)?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e]):r[e]&&r[e][t]}},function(e,t,n){"use strict";var r=n(1),o=n(100),i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not a function")}},function(e,t,n){"use strict";var r=n(0),o=n(54),i=n(8),a=n(56),s=n(52),l=n(51),c=r.Symbol,u=o("wks"),f=l?c.for||c:c&&c.withoutSetter||a;e.exports=function(e){return i(u,e)||(u[e]=s&&i(c,e)?c[e]:f("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var r=n(55),o=n(0),i=n(33),a=e.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.37.1",mode:r?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(e,t,n){"use strict";var r=n(0),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},function(e,t,n){"use strict";var r=n(28),o=Object;e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var r=n(115);e.exports=function(e){return r(e.length)}},function(e,t,n){var r=n(142),o=n(10),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},function(e,t,n){var r=n(9)(n(7),"Map");e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(162),o=n(169),i=n(171),a=n(172),s=n(173);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){var r=n(4),o=n(43),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t,n){var r=n(11),o=n(10);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";var r=n(5),o=n(24),i=n(96),a=n(26),s=n(27),l=n(48),c=n(8),u=n(57),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=l(t),u)try{return f(e,t)}catch(e){}if(c(e,t))return a(!o(i.f,e,t),e[t])}},function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(16),a=Object,s=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"===i(e)?s(e,""):a(e)}:a},function(e,t,n){"use strict";e.exports=function(e){return null==e}},function(e,t,n){"use strict";var r=n(97),o=n(49);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},function(e,t,n){"use strict";var r=n(29),o=n(1),i=n(50),a=n(51),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&i(t.prototype,s(e))}},function(e,t,n){"use strict";var r=n(2);e.exports=r({}.isPrototypeOf)},function(e,t,n){"use strict";var r=n(52);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var r=n(53),o=n(3),i=n(0).String;e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(e,t,n){"use strict";var r,o,i=n(0),a=n(98),s=i.process,l=i.Deno,c=s&&s.versions||l&&l.version,u=c&&c.v8;u&&(o=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},function(e,t,n){"use strict";var r=n(32);e.exports=function(e,t){return r[e]||(r[e]=t||{})}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r=n(2),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},function(e,t,n){"use strict";var r=n(5),o=n(3),i=n(102);e.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(6),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i(o(e)+" is not an object")}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(8),o=n(109),i=n(45),a=n(15);e.exports=function(e,t,n){for(var s=o(t),l=a.f,c=i.f,u=0;uu))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var v=-1,h=!0,m=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++v-1&&e%1==0&&e]/;e.exports=function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},function(e,t,n){"use strict";var r=n(24),o=n(6),i=n(49),a=n(99),s=n(101),l=n(31),c=TypeError,u=l("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var n,l=a(e,u);if(l){if(void 0===t&&(t="default"),n=r(l,e,t),!o(n)||i(n))return n;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},function(e,t,n){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},function(e,t,n){"use strict";var r=n(30),o=n(47);e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},function(e,t,n){"use strict";var r=String;e.exports=function(e){try{return r(e)}catch(e){return"Object"}}},function(e,t,n){"use strict";var r=n(24),o=n(1),i=n(6),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&o(n=e.toString)&&!i(s=r(n,e)))return s;if(o(n=e.valueOf)&&!i(s=r(n,e)))return s;if("string"!==t&&o(n=e.toString)&&!i(s=r(n,e)))return s;throw new a("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(0),o=n(6),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";var r=n(5),o=n(3);e.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(e,t,n){"use strict";var r=n(5),o=n(8),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),l=s&&"something"===function(){}.name,c=s&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:l,CONFIGURABLE:c}},function(e,t,n){"use strict";var r=n(2),o=n(1),i=n(32),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},function(e,t,n){"use strict";var r,o,i,a=n(107),s=n(0),l=n(6),c=n(12),u=n(8),f=n(32),p=n(108),d=n(59),v=s.TypeError,h=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new h);m.get=m.get,m.has=m.has,m.set=m.set,r=function(e,t){if(m.has(e))throw new v("Object already initialized");return t.facade=e,m.set(e,t),t},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var g=p("state");d[g]=!0,r=function(e,t){if(u(e,g))throw new v("Object already initialized");return t.facade=e,c(e,g,t),t},o=function(e){return u(e,g)?e[g]:{}},i=function(e){return u(e,g)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw new v("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var r=n(0),o=n(1),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},function(e,t,n){"use strict";var r=n(54),o=n(56),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){"use strict";var r=n(29),o=n(2),i=n(110),a=n(117),s=n(58),l=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?l(t,n(e)):t}},function(e,t,n){"use strict";var r=n(111),o=n(116).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(2),o=n(8),i=n(27),a=n(112).indexOf,s=n(59),l=r([].push);e.exports=function(e,t){var n,r=i(e),c=0,u=[];for(n in r)!o(s,n)&&o(r,n)&&l(u,n);for(;t.length>c;)o(r,n=t[c++])&&(~a(u,n)||l(u,n));return u}},function(e,t,n){"use strict";var r=n(27),o=n(113),i=n(35),a=function(e){return function(t,n,a){var s=r(t),l=i(s);if(0===l)return!e&&-1;var c,u=o(a,l);if(e&&n!=n){for(;l>u;)if((c=s[u++])!=c)return!0}else for(;l>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var r=n(61),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},function(e,t,n){"use strict";var r=Math.ceil,o=Math.floor;e.exports=Math.trunc||function(e){var t=+e;return(t>0?o:r)(t)}},function(e,t,n){"use strict";var r=n(61),o=Math.min;e.exports=function(e){var t=r(e);return t>0?o(t,9007199254740991):0}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var r=n(3),o=n(1),i=/#|\.prototype\./,a=function(e,t){var n=l[s(e)];return n===u||n!==c&&(o(t)?r(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},l=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var r=n(30),o=n(34),i=n(46),a=n(35),s=TypeError,l="Reduce of empty array with no initial value",c=function(e){return function(t,n,c,u){var f=o(t),p=i(f),d=a(f);if(r(n),0===d&&c<2)throw new s(l);var v=e?d-1:0,h=e?-1:1;if(c<2)for(;;){if(v in p){u=p[v],v+=h;break}if(v+=h,e?v<0:d<=v)throw new s(l)}for(;e?v>=0:d>v;v+=h)v in p&&(u=n(u,p[v],v,f));return u}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},function(e,t,n){"use strict";var r=n(0),o=n(16);e.exports="process"===o(r.process)},function(e,t,n){"use strict";var r=n(23),o=n(0),i=n(123),a=n(124),s=o.WebAssembly,l=7!==new Error("e",{cause:7}).cause,c=function(e,t){var n={};n[e]=a(e,t,l),r({global:!0,constructor:!0,arity:1,forced:l},n)},u=function(e,t){if(s&&s[e]){var n={};n[e]=a("WebAssembly."+e,t,l),r({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:l},n)}};c("Error",(function(e){return function(t){return i(e,this,arguments)}})),c("EvalError",(function(e){return function(t){return i(e,this,arguments)}})),c("RangeError",(function(e){return function(t){return i(e,this,arguments)}})),c("ReferenceError",(function(e){return function(t){return i(e,this,arguments)}})),c("SyntaxError",(function(e){return function(t){return i(e,this,arguments)}})),c("TypeError",(function(e){return function(t){return i(e,this,arguments)}})),c("URIError",(function(e){return function(t){return i(e,this,arguments)}})),u("CompileError",(function(e){return function(t){return i(e,this,arguments)}})),u("LinkError",(function(e){return function(t){return i(e,this,arguments)}})),u("RuntimeError",(function(e){return function(t){return i(e,this,arguments)}}))},function(e,t,n){"use strict";var r=n(25),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},function(e,t,n){"use strict";var r=n(29),o=n(8),i=n(12),a=n(50),s=n(62),l=n(60),c=n(128),u=n(129),f=n(130),p=n(133),d=n(134),v=n(5),h=n(55);e.exports=function(e,t,n,m){var g=m?2:1,y=e.split("."),b=y[y.length-1],_=r.apply(null,y);if(_){var w=_.prototype;if(!h&&o(w,"cause")&&delete w.cause,!n)return _;var x=r("Error"),j=t((function(e,t){var n=f(m?t:e,void 0),r=m?new _(e):new _;return void 0!==n&&i(r,"message",n),d(r,j,r.stack,2),this&&a(w,this)&&u(r,this,j),arguments.length>g&&p(r,arguments[g]),r}));if(j.prototype=w,"Error"!==b?s?s(j,x):l(j,x,{name:!0}):v&&"stackTraceLimit"in _&&(c(j,_,"stackTraceLimit"),c(j,_,"prepareStackTrace")),l(j,_),!h)try{w.name!==b&&i(w,"name",b),w.constructor=j}catch(e){}return j}}},function(e,t,n){"use strict";var r=n(2),o=n(30);e.exports=function(e,t,n){try{return r(o(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(e){}}},function(e,t,n){"use strict";var r=n(127),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw new i("Can't set "+o(e)+" as a prototype")}},function(e,t,n){"use strict";var r=n(6);e.exports=function(e){return r(e)||null===e}},function(e,t,n){"use strict";var r=n(15).f;e.exports=function(e,t,n){n in e||r(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},function(e,t,n){"use strict";var r=n(1),o=n(6),i=n(62);e.exports=function(e,t,n){var a,s;return i&&r(a=t.constructor)&&a!==n&&o(s=a.prototype)&&s!==n.prototype&&i(e,s),e}},function(e,t,n){"use strict";var r=n(91);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},function(e,t,n){"use strict";var r=n(132),o=n(1),i=n(16),a=n(31)("toStringTag"),s=Object,l="Arguments"===i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=s(e),a))?n:l?i(t):"Object"===(r=i(t))&&o(t.callee)?"Arguments":r}},function(e,t,n){"use strict";var r={};r[n(31)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,t,n){"use strict";var r=n(6),o=n(12);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},function(e,t,n){"use strict";var r=n(12),o=n(135),i=n(136),a=Error.captureStackTrace;e.exports=function(e,t,n,s){i&&(a?a(e,t):r(e,"stack",o(n,s)))}},function(e,t,n){"use strict";var r=n(2),o=Error,i=r("".replace),a=String(new o("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!o.prepareStackTrace)for(;t--;)e=i(e,s,"");return e}},function(e,t,n){"use strict";var r=n(3),o=n(26);e.exports=!r((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},function(e,t,n){"use strict";var r=n(5),o=n(138),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(o(e)&&!a(e,"length").writable)throw new i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},function(e,t,n){"use strict";var r=n(16);e.exports=Array.isArray||function(e){return"Array"===r(e)}},function(e,t,n){"use strict";var r=TypeError;e.exports=function(e){if(e>9007199254740991)throw r("Maximum allowed index exceeded");return e}},function(e,t,n){var r=n(63),o=n(141);e.exports=function e(t,n,i,a,s){var l=-1,c=t.length;for(i||(i=o),s||(s=[]);++l0&&i(u)?n>1?e(u,n-1,i,a,s):r(s,u):a||(s[s.length]=u)}return s}},function(e,t,n){var r=n(13),o=n(36),i=n(4),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},function(e,t,n){var r=n(11),o=n(10);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},function(e,t,n){var r=n(13),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r=n(146),o=n(202),i=n(44),a=n(4),s=n(212);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?o(e[0],e[1]):r(e):s(e)}},function(e,t,n){var r=n(147),o=n(201),i=n(81);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},function(e,t,n){var r=n(65),o=n(69);e.exports=function(e,t,n,i){var a=n.length,s=a,l=!i;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a-1}},function(e,t,n){var r=n(18);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(17);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(17),o=n(37),i=n(39);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(67),o=n(159),i=n(38),a=n(68),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,f=c.hasOwnProperty,p=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?p:s).test(a(e))}},function(e,t,n){var r,o=n(160),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(7)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var r=n(163),o=n(17),i=n(37);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(164),o=n(165),i=n(166),a=n(167),s=n(168);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(71),o=n(224),i=n(229),a=n(72),s=n(230),l=n(40);e.exports=function(e,t,n){var c=-1,u=o,f=e.length,p=!0,d=[],v=d;if(n)p=!1,u=i;else if(f>=200){var h=t?null:s(e);if(h)return l(h);p=!1,u=a,v=new r}else v=t?[]:d;e:for(;++c-1}},function(e,t,n){var r=n(226),o=n(227),i=n(228);e.exports=function(e,t,n){return t==t?i(e,t,n):r(e,o,n)}},function(e,t){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i=0&&Math.floor(t)===t&&isFinite(e)}function h(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function m(e){return null==e?"":Array.isArray(e)||p(e)&&e.toString===f?JSON.stringify(e,g,2):String(e)}function g(e,t){return t&&t.__v_isRef?t.value:t}function y(e){var t=parseFloat(e);return isNaN(t)?e:t}function b(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o-1)return e.splice(r,1)}}var x=Object.prototype.hasOwnProperty;function j(e,t){return x.call(e,t)}function k(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var S=/-(\w)/g,O=k((function(e){return e.replace(S,(function(e,t){return t?t.toUpperCase():""}))})),C=k((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),P=/\B([A-Z])/g,$=k((function(e){return e.replace(P,"-$1").toLowerCase()}));var E=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function A(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function T(e,t){for(var n in t)e[n]=t[n];return e}function L(e){for(var t={},n=0;n0,Y=Z&&Z.indexOf("edge/")>0;Z&&Z.indexOf("android");var ee=Z&&/iphone|ipad|ipod|ios/.test(Z);Z&&/chrome\/\d+/.test(Z),Z&&/phantomjs/.test(Z);var te,ne=Z&&Z.match(/firefox\/(\d+)/),re={}.watch,oe=!1;if(G)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){oe=!0}}),window.addEventListener("test-passive",null,ie)}catch(e){}var ae=function(){return void 0===te&&(te=!G&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),te},se=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function le(e){return"function"==typeof e&&/native code/.test(e.toString())}var ce,ue="undefined"!=typeof Symbol&&le(Symbol)&&"undefined"!=typeof Reflect&&le(Reflect.ownKeys);ce="undefined"!=typeof Set&&le(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var fe=null;function pe(e){void 0===e&&(e=null),e||fe&&fe._scope.off(),fe=e,e&&e._scope.on()}var de=function(){function e(e,t,n,r,o,i,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),ve=function(e){void 0===e&&(e="");var t=new de;return t.text=e,t.isComment=!0,t};function he(e){return new de(void 0,void 0,void 0,String(e))}function me(e){var t=new de(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}"function"==typeof SuppressedError&&SuppressedError;var ge=0,ye=[],be=function(){function e(){this._pending=!1,this.id=ge++,this.subs=[]}return e.prototype.addSub=function(e){this.subs.push(e)},e.prototype.removeSub=function(e){this.subs[this.subs.indexOf(e)]=null,this._pending||(this._pending=!0,ye.push(this))},e.prototype.depend=function(t){e.target&&e.target.addDep(this)},e.prototype.notify=function(e){var t=this.subs.filter((function(e){return e}));for(var n=0,r=t.length;n0&&(Ze((c=e(c,"".concat(n||"","_").concat(r)))[0])&&Ze(f)&&(p[u]=he(f.text+c[0].text),c.shift()),p.push.apply(p,c)):l(c)?Ze(f)?p[u]=he(f.text+c):""!==c&&p.push(he(c)):Ze(c)&&Ze(f)?p[u]=he(f.text+c.text):(s(t._isVList)&&a(c.tag)&&i(c.key)&&a(n)&&(c.key="__vlist".concat(n,"_").concat(r,"__")),p.push(c)));return p}(e):void 0}function Ze(e){return a(e)&&a(e.text)&&!1===e.isComment}function Xe(e,t){var n,r,i,s,l=null;if(o(e)||"string"==typeof e)for(l=new Array(e.length),n=0,r=e.length;n0,s=t?!!t.$stable:!a,l=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&o&&o!==r&&l===o.$key&&!a&&!o.$hasNormal)return o;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=mt(e,n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=gt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),H(i,"$stable",s),H(i,"$key",l),H(i,"$hasNormal",a),i}function mt(e,t,n,r){var i=function(){var t=fe;pe(e);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Ge(n))&&n[0];return pe(t),n&&(!i||1===n.length&&i.isComment&&!vt(i))?void 0:n};return r.proxy&&Object.defineProperty(t,n,{get:i,enumerable:!0,configurable:!0}),i}function gt(e,t){return function(){return e[t]}}function yt(e){return{get attrs(){if(!e._attrsProxy){var t=e._attrsProxy={};H(t,"_v_attr_proxy",!0),bt(t,e.$attrs,r,e,"$attrs")}return e._attrsProxy},get listeners(){e._listenersProxy||bt(e._listenersProxy={},e.$listeners,r,e,"$listeners");return e._listenersProxy},get slots(){return function(e){e._slotsProxy||wt(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(e)},emit:E(e.$emit,e),expose:function(t){t&&Object.keys(t).forEach((function(n){return Ue(e,t,n)}))}}}function bt(e,t,n,r,o){var i=!1;for(var a in t)a in e?t[a]!==n[a]&&(i=!0):(i=!0,_t(e,a,r,o));for(var a in e)a in t||(i=!0,delete e[a]);return i}function _t(e,t,n,r){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){return n[r][t]}})}function wt(e,t){for(var n in t)e[n]=t[n];for(var n in e)n in t||delete e[n]}var xt=null;function jt(e,t){return(e.__esModule||ue&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?t.extend(e):e}function kt(e){if(o(e))for(var t=0;tdocument.createEvent("Event").timeStamp&&(cn=function(){return un.now()})}var fn=function(e,t){if(e.post){if(!t.post)return 1}else if(t.post)return-1;return e.id-t.id};function pn(){var e,t;for(ln=cn(),an=!0,tn.sort(fn),sn=0;snsn&&tn[n].id>e.id;)n--;tn.splice(n+1,0,e)}else tn.push(e);on||(on=!0,Ft(pn))}}function vn(e,t){if(e){for(var n=Object.create(null),r=ue?Reflect.ownKeys(e):Object.keys(e),o=0;o-1)if(i&&!j(o,"default"))a=!1;else if(""===a||a===$(e)){var l=Nn(String,o.type);(l<0||s-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Xn(e,t){var n=e.cache,r=e.keys,o=e._vnode,i=e.$vnode;for(var a in n){var s=n[a];if(s){var l=s.name;l&&!t(l)&&Qn(n,a,r,o)}}i.componentOptions.children=void 0}function Qn(e,t,n,r){var o=e[t];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[t]=null,w(n,t)}Kn.prototype._init=function(e){var t=this;t._uid=Vn++,t._isVue=!0,t.__v_skip=!0,t._scope=new Je(!0),t._scope.parent=void 0,t._scope._vm=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=En(Hn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Gt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,o=n&&n.context;e.$slots=pt(t._renderChildren,o),e.$scopedSlots=n?ht(e.$parent,n.data.scopedSlots,e.$slots):r,e._c=function(t,n,r,o){return St(e,t,n,r,o,!1)},e.$createElement=function(t,n,r,o){return St(e,t,n,r,o,!0)};var i=n&&n.data;Te(e,"$attrs",i&&i.attrs||r,null,!0),Te(e,"$listeners",t._parentListeners||r,null,!0)}(t),en(t,"beforeCreate",void 0,!1),function(e){var t=vn(e.$options.inject,e);t&&(Pe(!1),Object.keys(t).forEach((function(n){Te(e,n,t[n])})),Pe(!0))}(t),Fn(t),function(e){var t=e.$options.provide;if(t){var n=c(t)?t.call(e):t;if(!u(n))return;for(var r=Be(e),o=ue?Reflect.ownKeys(n):Object.keys(n),i=0;i1?A(n):n;for(var r=A(arguments,1),o='event handler for "'.concat(e,'"'),i=0,a=n.length;iparseInt(this.max)&&Qn(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Qn(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){Xn(e,(function(e){return Zn(t,e)}))})),this.$watch("exclude",(function(t){Xn(e,(function(e){return!Zn(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=kt(e),n=t&&t.componentOptions;if(n){var r=Gn(n),o=this.include,i=this.exclude;if(o&&(!r||!Zn(o,r))||i&&r&&Zn(i,r))return t;var a=this.cache,s=this.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):t.key;a[l]?(t.componentInstance=a[l].componentInstance,w(s,l),s.push(l)):(this.vnodeToCache=t,this.keyToCache=l),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return B}};Object.defineProperty(e,"config",t),e.util={warn:jn,extend:T,mergeOptions:En,defineReactive:Te},e.set=Le,e.delete=Re,e.nextTick=Ft,e.observable=function(e){return Ae(e),e},e.options=Object.create(null),z.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,T(e.options.components,er),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=A(arguments,1);return n.unshift(this),c(e.install)?e.install.apply(e,n):c(e)&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=En(this.options,e),this}}(e),Wn(e),function(e){z.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&p(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&c(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Kn),Object.defineProperty(Kn.prototype,"$isServer",{get:ae}),Object.defineProperty(Kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Kn,"FunctionalRenderContext",{value:hn}),Kn.version="2.7.16";var tr=b("style,class"),nr=b("input,textarea,option,select,progress"),rr=b("contenteditable,draggable,spellcheck"),or=b("events,caret,typing,plaintext-only"),ir=b("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ar="http://www.w3.org/1999/xlink",sr=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},lr=function(e){return sr(e)?e.slice(6,e.length):""},cr=function(e){return null==e||!1===e};function ur(e){for(var t=e.data,n=e,r=e;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=fr(r.data,t));for(;a(n=n.parent);)n&&n.data&&(t=fr(t,n.data));return function(e,t){if(a(e)||a(t))return pr(e,dr(t));return""}(t.staticClass,t.class)}function fr(e,t){return{staticClass:pr(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function pr(e,t){return e?t?e+" "+t:e:t||""}function dr(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,o=e.length;r-1?Ir(e,t,n):ir(t)?cr(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):rr(t)?e.setAttribute(t,function(e,t){return cr(t)||"false"===t?"false":"contenteditable"===e&&or(t)?t:"true"}(t,n)):sr(t)?cr(n)?e.removeAttributeNS(ar,lr(t)):e.setAttributeNS(ar,t,n):Ir(e,t,n)}function Ir(e,t,n){if(cr(n))e.removeAttribute(t);else{if(X&&!Q&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var Dr={create:Mr,update:Mr};function Fr(e,t){var n=t.elm,r=t.data,o=e.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=ur(t),l=n._transitionClasses;a(l)&&(s=pr(s,dr(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ur,zr={create:Fr,update:Fr};function Jr(e,t,n){var r=Ur;return function o(){var i=t.apply(null,arguments);null!==i&&Vr(e,o,n,r)}}var Br=At&&!(ne&&Number(ne[1])<=53);function qr(e,t,n,r){if(Br){var o=ln,i=t;t=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=o||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}Ur.addEventListener(e,t,oe?{capture:n,passive:r}:n)}function Vr(e,t,n,r){(r||Ur).removeEventListener(e,t._wrapper||t,n)}function Hr(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Ur=t.elm||e.elm,function(e){if(a(e.__r)){var t=X?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),He(n,r,qr,Vr,Jr,t.context),Ur=void 0}}var Kr,Wr={create:Hr,update:Hr,destroy:function(e){return Hr(e,kr)}};function Gr(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,r,o=t.elm,l=e.data.domProps||{},c=t.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=t.data.domProps=T({},c)),l)n in c||(o[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===l[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var u=i(r)?"":String(r);Zr(o,u)&&(o.value=u)}else if("innerHTML"===n&&mr(o.tagName)&&i(o.innerHTML)){(Kr=Kr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Kr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==l[n])try{o[n]=r}catch(e){}}}}function Zr(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(a(r)){if(r.number)return y(n)!==y(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Xr={create:Gr,update:Gr},Qr=k((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function Yr(e){var t=eo(e.style);return e.staticStyle?T(e.staticStyle,t):t}function eo(e){return Array.isArray(e)?L(e):"string"==typeof e?Qr(e):e}var to,no=/^--/,ro=/\s*!important$/,oo=function(e,t,n){if(no.test(t))e.style.setProperty(t,n);else if(ro.test(n))e.style.setProperty($(t),n.replace(ro,""),"important");else{var r=ao(t);if(Array.isArray(n))for(var o=0,i=n.length;o-1?t.split(co).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function fo(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(co).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function po(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&T(t,vo(e.name||"v")),T(t,e),t}return"string"==typeof e?vo(e):void 0}}var vo=k((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),ho=G&&!Q,mo="transition",go="transitionend",yo="animation",bo="animationend";ho&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",go="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yo="WebkitAnimation",bo="webkitAnimationEnd"));var _o=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function wo(e){_o((function(){_o(e)}))}function xo(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),uo(e,t))}function jo(e,t){e._transitionClasses&&w(e._transitionClasses,t),fo(e,t)}function ko(e,t,n){var r=Oo(e,t),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?go:bo,l=0,c=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++l>=a&&c()};setTimeout((function(){l0&&(n="transition",u=a,f=i.length):"animation"===t?c>0&&(n="animation",u=c,f=l.length):f=(n=(u=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:l.length:0,{type:n,timeout:u,propCount:f,hasTransform:"transition"===n&&So.test(r[mo+"Property"])}}function Co(e,t){for(;e.length1}function Lo(e,t){!0!==t.data.show&&$o(t)}var Ro=function(e){var t,n,r={},c=e.modules,u=e.nodeOps;for(t=0;tv?_(e,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&x(t,f,v)}(f,h,g,n,c):a(g)?(a(e.text)&&u.setTextContent(f,""),_(f,null,g,0,g.length-1,n)):a(h)?x(h,0,h.length-1):a(e.text)&&u.setTextContent(f,""):e.text!==t.text&&u.setTextContent(f,t.text),a(v)&&a(d=v.hook)&&a(d=d.postpatch)&&d(e,t)}}}function O(e,t,n){if(s(n)&&a(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(I(Fo(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));o||(e.selectedIndex=-1)}}function Do(e,t){return t.every((function(t){return!I(t,e)}))}function Fo(e){return"_value"in e?e._value:e.value}function Uo(e){e.target.composing=!0}function zo(e){e.target.composing&&(e.target.composing=!1,Jo(e.target,"input"))}function Jo(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Bo(e){return!e.componentInstance||e.data&&e.data.transition?e:Bo(e.componentInstance._vnode)}var qo={model:Mo,show:{bind:function(e,t,n){var r=t.value,o=(n=Bo(n)).data&&n.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&o?(n.data.show=!0,$o(n,(function(){e.style.display=i}))):e.style.display=r?i:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Bo(n)).data&&n.data.transition?(n.data.show=!0,r?$o(n,(function(){e.style.display=e.__vOriginalDisplay})):Eo(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,o){o||(e.style.display=e.__vOriginalDisplay)}}},Vo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ho(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Ho(kt(t.children)):e}function Ko(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var o=n._parentListeners;for(var r in o)t[O(r)]=o[r];return t}function Wo(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Go=function(e){return e.tag||vt(e)},Zo=function(e){return"show"===e.name},Xo={name:"transition",props:Vo,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Go)).length){0;var r=this.mode;0;var o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var i=Ho(o);if(!i)return o;if(this._leaving)return Wo(e,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:l(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Ko(this),c=this._vnode,u=Ho(c);if(i.data.directives&&i.data.directives.some(Zo)&&(i.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(i,u)&&!vt(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=T({},s);if("out-in"===r)return this._leaving=!0,Ke(f,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),Wo(e,o);if("in-out"===r){if(vt(i))return c;var p,d=function(){p()};Ke(s,"afterEnter",d),Ke(s,"enterCancelled",d),Ke(f,"delayLeave",(function(e){p=e}))}}return o}}},Qo=T({tag:String,moveClass:String},Vo);function Yo(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ei(e){e.data.newPos=e.elm.getBoundingClientRect()}function ti(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,o=t.top-n.top;if(r||o){e.data.moved=!0;var i=e.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Qo.mode;var ni={Transition:Xo,TransitionGroup:{props:Qo,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var o=Xt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,o(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Ko(this),s=0;s-1?yr[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:yr[e]=/HTMLUnknownElement/.test(t.toString())},T(Kn.options.directives,qo),T(Kn.options.components,ni),Kn.prototype.__patch__=G?Ro:R,Kn.prototype.$mount=function(e,t){return function(e,t,n){var r;e.$el=t,e.$options.render||(e.$options.render=ve),en(e,"beforeMount"),r=function(){e._update(e._render(),n)},new Vt(e,r,R,{before:function(){e._isMounted&&!e._isDestroyed&&en(e,"beforeUpdate")}},!0),n=!1;var o=e._preWatchers;if(o)for(var i=0;i=0&&(t=e.slice(r),e=e.slice(0,r));var o=e.indexOf("?");return o>=0&&(n=e.slice(o+1),e=e.slice(0,o)),{path:e,query:n,hash:t}}(o.path||""),c=t&&t.path||"/",u=l.path?ji(l.path,c,n||o.append):c,f=function(e,t,n){void 0===t&&(t={});var r,o=n||ui;try{r=o(e||"")}catch(e){r={}}for(var i in t){var a=t[i];r[i]=Array.isArray(a)?a.map(ci):ci(a)}return r}(l.query,o.query,r&&r.options.parseQuery),p=o.hash||l.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}var qi,Vi=function(){},Hi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,l={},c=n.options.linkActiveClass,u=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==u?"router-link-exact-active":u,d=null==this.activeClass?f:this.activeClass,v=null==this.exactActiveClass?p:this.exactActiveClass,h=a.redirectedFrom?di(null,Bi(a.redirectedFrom),null,n):a;l[v]=yi(r,h,this.exactPath),l[d]=this.exact||this.exactPath?l[v]:function(e,t){return 0===e.path.replace(pi,"/").indexOf(t.path.replace(pi,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(r,h);var m=l[v]?this.ariaCurrentValue:null,g=function(e){Ki(e)&&(t.replace?n.replace(i,Vi):n.push(i,Vi))},y={click:Ki};Array.isArray(this.event)?this.event.forEach((function(e){y[e]=g})):y[this.event]=g;var b={class:l},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:l[d],isExactActive:l[v]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?e():e("span",{},_)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var w=function e(t){var n;if(t)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=Ji(u.path,s.params),l(u,s,a)}if(s.path){s.params={};for(var d=0;d-1}function ka(e,t){return ja(e)&&e._isRouter&&(null==t||e.type===t)}function Sa(e,t,n){var r=function(o){o>=e.length?n():e[o]?t(e[o],(function(){r(o+1)})):r(o+1)};r(0)}function Oa(e){return function(t,n,r){var o=!1,i=0,a=null;Ca(e,(function(e,t,n,s){if("function"==typeof e&&void 0===e.cid){o=!0,i++;var l,c=Ea((function(t){var o;((o=t).__esModule||$a&&"Module"===o[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:qi.extend(t),n.components[s]=t,--i<=0&&r()})),u=Ea((function(e){var t="Failed to resolve async component "+s+": "+e;a||(a=ja(e)?e:new Error(t),r(a))}));try{l=e(c,u)}catch(e){u(e)}if(l)if("function"==typeof l.then)l.then(c,u);else{var f=l.component;f&&"function"==typeof f.then&&f.then(c,u)}}})),o||r()}}function Ca(e,t){return Pa(e.map((function(e){return Object.keys(e.components).map((function(n){return t(e.components[n],e.instances[n],e,n)}))})))}function Pa(e){return Array.prototype.concat.apply([],e)}var $a="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ea(e){var t=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!t)return t=!0,e.apply(this,n)}}var Aa=function(e,t){this.router=e,this.base=function(e){if(!e)if(Wi){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=hi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ta(e,t,n,r){var o=Ca(e,(function(e,r,o,i){var a=function(e,t){"function"!=typeof e&&(e=qi.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return n(e,r,o,i)})):n(a,r,o,i)}));return Pa(r?o.reverse():o)}function La(e,t){if(t)return function(){return e.apply(t,arguments)}}Aa.prototype.listen=function(e){this.cb=e},Aa.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Aa.prototype.onError=function(e){this.errorCbs.push(e)},Aa.prototype.transitionTo=function(e,t,n){var r,o=this;try{r=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),t&&t(r),o.ensureURL(),o.router.afterHooks.forEach((function(e){e&&e(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(e){e(r)})))}),(function(e){n&&n(e),e&&!o.ready&&(ka(e,ya.redirected)&&i===hi||(o.ready=!0,o.readyErrorCbs.forEach((function(t){t(e)}))))}))},Aa.prototype.confirmTransition=function(e,t,n){var r=this,o=this.current;this.pending=e;var i,a,s=function(e){!ka(e)&&ja(e)&&(r.errorCbs.length?r.errorCbs.forEach((function(t){t(e)})):console.error(e)),n&&n(e)},l=e.matched.length-1,c=o.matched.length-1;if(yi(e,o)&&l===c&&e.matched[l]===o.matched[c])return this.ensureURL(),e.hash&&aa(this.router,o,e,!1),s(((a=wa(i=o,e,ya.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var u=function(e,t){var n,r=Math.max(e.length,t.length);for(n=0;n0)){var t=this.router,n=t.options.scrollBehavior,r=ha&&n;r&&this.listeners.push(ia());var o=function(){var n=e.current,o=Ma(e.base);e.current===hi&&o===e._startLocation||e.transitionTo(o,(function(e){r&&aa(t,e,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ma(ki(r.base+e.fullPath)),aa(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){ga(ki(r.base+e.fullPath)),aa(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.ensureURL=function(e){if(Ma(this.base)!==this.current.fullPath){var t=ki(this.base+this.current.fullPath);e?ma(t):ga(t)}},t.prototype.getCurrentLocation=function(){return Ma(this.base)},t}(Aa);function Ma(e){var t=window.location.pathname,n=t.toLowerCase(),r=e.toLowerCase();return!e||n!==r&&0!==n.indexOf(ki(r+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Na=function(e){function t(t,n,r){e.call(this,t,n),r&&function(e){var t=Ma(e);if(!/^\/#/.test(t))return window.location.replace(ki(e+"/#"+t)),!0}(this.base)||Ia()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,n=ha&&t;n&&this.listeners.push(ia());var r=function(){var t=e.current;Ia()&&e.transitionTo(Da(),(function(r){n&&aa(e.router,r,t,!0),ha||za(r.fullPath)}))},o=ha?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},t.prototype.push=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){Ua(e.fullPath),aa(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this,o=this.current;this.transitionTo(e,(function(e){za(e.fullPath),aa(r.router,e,o,!1),t&&t(e)}),n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Da()!==t&&(e?Ua(t):za(t))},t.prototype.getCurrentLocation=function(){return Da()},t}(Aa);function Ia(){var e=Da();return"/"===e.charAt(0)||(za("/"+e),!1)}function Da(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Fa(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Ua(e){ha?ma(Fa(e)):window.location.hash=e}function za(e){ha?ga(Fa(e)):window.location.replace(Fa(e))}var Ja=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index+1).concat(e),r.index++,t&&t(e)}),n)},t.prototype.replace=function(e,t,n){var r=this;this.transitionTo(e,(function(e){r.stack=r.stack.slice(0,r.index).concat(e),t&&t(e)}),n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var e=t.current;t.index=n,t.updateRoute(r),t.router.afterHooks.forEach((function(t){t&&t(r,e)}))}),(function(e){ka(e,ya.duplicated)&&(t.index=n)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Aa),Ba=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Xi(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ha&&!1!==e.fallback,this.fallback&&(t="hash"),Wi||(t="abstract"),this.mode=t,t){case"history":this.history=new Ra(this,e.base);break;case"hash":this.history=new Na(this,e.base,this.fallback);break;case"abstract":this.history=new Ja(this,e.base);break;default:0}},qa={currentRoute:{configurable:!0}};Ba.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},qa.currentRoute.get=function(){return this.history&&this.history.current},Ba.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=t.apps.indexOf(e);n>-1&&t.apps.splice(n,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ra||n instanceof Na){var r=function(e){n.setupListeners(),function(e){var r=n.current,o=t.options.scrollBehavior;ha&&o&&"fullPath"in e&&aa(t,e,r,!1)}(e)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},Ba.prototype.beforeEach=function(e){return Ha(this.beforeHooks,e)},Ba.prototype.beforeResolve=function(e){return Ha(this.resolveHooks,e)},Ba.prototype.afterEach=function(e){return Ha(this.afterHooks,e)},Ba.prototype.onReady=function(e,t){this.history.onReady(e,t)},Ba.prototype.onError=function(e){this.history.onError(e)},Ba.prototype.push=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.push(e,t,n)}));this.history.push(e,t,n)},Ba.prototype.replace=function(e,t,n){var r=this;if(!t&&!n&&"undefined"!=typeof Promise)return new Promise((function(t,n){r.history.replace(e,t,n)}));this.history.replace(e,t,n)},Ba.prototype.go=function(e){this.history.go(e)},Ba.prototype.back=function(){this.go(-1)},Ba.prototype.forward=function(){this.go(1)},Ba.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},Ba.prototype.resolve=function(e,t,n){var r=Bi(e,t=t||this.history.current,n,this),o=this.match(r,t),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(e,t,n){var r="hash"===n?"#"+t:t;return e?ki(e+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},Ba.prototype.getRoutes=function(){return this.matcher.getRoutes()},Ba.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},Ba.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Ba.prototype,qa);var Va=Ba;function Ha(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}Ba.install=function e(t){if(!e.installed||qi!==t){e.installed=!0,qi=t;var n=function(e){return void 0!==e},r=function(e,t){var r=e.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(e,t)};t.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",wi),t.component("RouterLink",Hi);var o=t.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Ba.version="3.6.5",Ba.isNavigationFailure=ka,Ba.NavigationFailureType=ya,Ba.START_LOCATION=hi,Wi&&window.Vue&&window.Vue.use(Ba);n(95);n(122),n(88);var Ka={"components/AlgoliaSearchBox":()=>Promise.all([n.e(0),n.e(15)]).then(n.bind(null,372)),"components/DropdownLink":()=>Promise.all([n.e(0),n.e(16)]).then(n.bind(null,254)),"components/DropdownTransition":()=>Promise.all([n.e(0),n.e(40)]).then(n.bind(null,241)),"components/Home":()=>Promise.all([n.e(0),n.e(19)]).then(n.bind(null,299)),"components/NavLink":()=>n.e(42).then(n.bind(null,240)),"components/NavLinks":()=>Promise.all([n.e(0),n.e(13)]).then(n.bind(null,265)),"components/Navbar":()=>Promise.all([n.e(0),n.e(1)]).then(n.bind(null,369)),"components/Page":()=>Promise.all([n.e(0),n.e(12)]).then(n.bind(null,300)),"components/PageEdit":()=>Promise.all([n.e(0),n.e(20)]).then(n.bind(null,255)),"components/PageNav":()=>Promise.all([n.e(0),n.e(17)]).then(n.bind(null,267)),"components/Sidebar":()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,301)),"components/SidebarButton":()=>Promise.all([n.e(0),n.e(41)]).then(n.bind(null,302)),"components/SidebarGroup":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,266)),"components/SidebarLink":()=>Promise.all([n.e(0),n.e(24)]).then(n.bind(null,256)),"components/SidebarLinks":()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,253)),"global-components/Badge":()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,390)),"global-components/CodeBlock":()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,373)),"global-components/CodeGroup":()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,374)),"layouts/404":()=>n.e(7).then(n.bind(null,375)),"layouts/Layout":()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,376)),NotFound:()=>n.e(7).then(n.bind(null,375)),Layout:()=>Promise.all([n.e(0),n.e(1),n.e(2)]).then(n.bind(null,376))},Wa={"v-2216e8dc":()=>n.e(10).then(n.bind(null,391)),"v-0b4d4089":()=>n.e(44).then(n.bind(null,392)),"v-094b9dee":()=>n.e(45).then(n.bind(null,393)),"v-7eb94829":()=>n.e(46).then(n.bind(null,394)),"v-29ebca8e":()=>n.e(47).then(n.bind(null,395)),"v-51aaf849":()=>n.e(48).then(n.bind(null,396)),"v-126ea6be":()=>n.e(49).then(n.bind(null,397)),"v-003ee409":()=>n.e(50).then(n.bind(null,398)),"v-4d7f1c8a":()=>n.e(51).then(n.bind(null,399)),"v-83a41dee":()=>n.e(52).then(n.bind(null,400)),"v-49301ee2":()=>n.e(53).then(n.bind(null,401)),"v-d1f646ae":()=>n.e(54).then(n.bind(null,402)),"v-464fd629":()=>n.e(55).then(n.bind(null,403)),"v-7cca31fe":()=>n.e(56).then(n.bind(null,404)),"v-76cafeae":()=>n.e(58).then(n.bind(null,405)),"v-62aa1369":()=>n.e(60).then(n.bind(null,406)),"v-b5351e9e":()=>n.e(57).then(n.bind(null,407)),"v-3ad539ae":()=>n.e(61).then(n.bind(null,408)),"v-f3391bf6":()=>n.e(59).then(n.bind(null,409)),"v-5e92fa09":()=>n.e(62).then(n.bind(null,410)),"v-48953121":()=>n.e(64).then(n.bind(null,411)),"v-8de1af1a":()=>n.e(63).then(n.bind(null,412)),"v-1f38ca2e":()=>n.e(65).then(n.bind(null,413)),"v-1dfe032e":()=>n.e(66).then(n.bind(null,414)),"v-67c77489":()=>n.e(68).then(n.bind(null,415)),"v-27531941":()=>n.e(67).then(n.bind(null,416)),"v-c918a5fa":()=>n.e(69).then(n.bind(null,417)),"v-5a94ae89":()=>n.e(70).then(n.bind(null,418)),"v-959a2c2e":()=>n.e(72).then(n.bind(null,419)),"v-2abeb1ab":()=>n.e(71).then(n.bind(null,420)),"v-506a67bc":()=>n.e(73).then(n.bind(null,421)),"v-7bf93309":()=>n.e(74).then(n.bind(null,422)),"v-07fb5e62":()=>n.e(75).then(n.bind(null,423)),"v-19f2c039":()=>n.e(76).then(n.bind(null,424)),"v-b99d2c2e":()=>n.e(77).then(n.bind(null,425)),"v-6731dec1":()=>n.e(78).then(n.bind(null,426)),"v-7f55ccc9":()=>n.e(79).then(n.bind(null,427)),"v-bf7e876e":()=>n.e(80).then(n.bind(null,428)),"v-bb53a316":()=>n.e(81).then(n.bind(null,429)),"v-74774829":()=>n.e(83).then(n.bind(null,430)),"v-20f55eeb":()=>n.e(82).then(n.bind(null,431)),"v-90fdf4e6":()=>n.e(84).then(n.bind(null,432)),"v-114a7465":()=>n.e(85).then(n.bind(null,433))};function Ga(e){const t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}const Za=/-(\w)/g,Xa=Ga(e=>e.replace(Za,(e,t)=>t?t.toUpperCase():"")),Qa=/\B([A-Z])/g,Ya=Ga(e=>e.replace(Qa,"-$1").toLowerCase()),es=Ga(e=>e.charAt(0).toUpperCase()+e.slice(1));function ts(e,t){if(!t)return;if(e(t))return e(t);return t.includes("-")?e(es(Xa(t))):e(es(t))||e(Ya(t))}const ns=Object.assign({},Ka,Wa),rs=e=>ns[e],os=e=>Wa[e],is=e=>Ka[e],as=e=>Kn.component(e);function ss(e){return ts(os,e)}function ls(e){return ts(is,e)}function cs(e){return ts(rs,e)}function us(e){return ts(as,e)}function fs(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!us(e)&&cs(e)){const t=await cs(e)();Kn.component(e,t.default)}}))}function ps(e,t){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=t)}var ds=n(86),vs=n.n(ds),hs=n(87),ms=n.n(hs),gs={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,t])=>t),this.$ssrContext){const t=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=t)?e.map(e=>{let t="{t+=` ${n}="${ms()(e[n])}"`}),t+">"}).join("\n "):"",this.$ssrContext.canonicalLink=bs(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=_s(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return vs()([{name:"description",content:this.$description}],e,this.siteMeta,ws)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",bs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),ys()}};function ys(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function bs(e=""){return e?``:""}function _s(e,t){if(t&&[...t].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const t=document.createElement("meta");return Object.keys(e).forEach(n=>{t.setAttribute(n,e[n])}),document.head.appendChild(t),t})}function ws(e){for(const t of["name","property","itemprop"])if(e.hasOwnProperty(t))return e[t]+t;return JSON.stringify(e)}var xs=n(22),js=n.n(xs),ks=[gs,{mounted(){js.a.configure({showSpinner:!1}),this.$router.beforeEach((e,t,n)=>{e.path===t.path||Kn.component(e.name)||js.a.start(),n()}),this.$router.afterEach(()=>{js.a.done(),this.isSidebarOpen=!1})}}],Ss={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return ps("layout",e),Kn.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Os=n(14),Cs=Object(Os.a)(Ss,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,t,n){switch(t){case"components":e[t]||(e[t]={}),Object.assign(e[t],n);break;case"mixins":e[t]||(e[t]=[]),e[t].push(...n);break;default:throw new Error("Unknown option name.")}}(Cs,"mixins",ks);const Ps=[{name:"v-2216e8dc",path:"/",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-2216e8dc").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-0b4d4089",path:"/api.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-0b4d4089").then(n)}},{name:"v-094b9dee",path:"/code_of_conduct/",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-094b9dee").then(n)}},{path:"/code_of_conduct/index.html",redirect:"/code_of_conduct/"},{path:"/code_of_conduct.html",redirect:"/code_of_conduct/"},{name:"v-7eb94829",path:"/codegen.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-7eb94829").then(n)}},{name:"v-29ebca8e",path:"/coercion.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-29ebca8e").then(n)}},{name:"v-51aaf849",path:"/components.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-51aaf849").then(n)}},{name:"v-126ea6be",path:"/contributing/",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-126ea6be").then(n)}},{path:"/contributing/index.html",redirect:"/contributing/"},{path:"/contributing.html",redirect:"/contributing/"},{name:"v-003ee409",path:"/faq.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-003ee409").then(n)}},{name:"v-4d7f1c8a",path:"/guide/async-validation.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-4d7f1c8a").then(n)}},{name:"v-83a41dee",path:"/guide/combining-schemas.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-83a41dee").then(n)}},{name:"v-49301ee2",path:"/guide/environments.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-49301ee2").then(n)}},{name:"v-d1f646ae",path:"/guide/formats.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-d1f646ae").then(n)}},{name:"v-464fd629",path:"/guide/getting-started.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-464fd629").then(n)}},{name:"v-7cca31fe",path:"/guide/managing-schemas.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-7cca31fe").then(n)}},{name:"v-76cafeae",path:"/guide/schema-language.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-76cafeae").then(n)}},{name:"v-62aa1369",path:"/guide/user-keywords.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-62aa1369").then(n)}},{name:"v-b5351e9e",path:"/guide/modifying-data.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-b5351e9e").then(n)}},{name:"v-3ad539ae",path:"/guide/why-ajv.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-3ad539ae").then(n)}},{name:"v-f3391bf6",path:"/guide/typescript.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-f3391bf6").then(n)}},{name:"v-5e92fa09",path:"/json-schema.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-5e92fa09").then(n)}},{name:"v-48953121",path:"/keywords.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-48953121").then(n)}},{name:"v-8de1af1a",path:"/json-type-definition.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-8de1af1a").then(n)}},{name:"v-1f38ca2e",path:"/license.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-1f38ca2e").then(n)}},{name:"v-1dfe032e",path:"/news/2020-08-14-mozilla-grant-openjs-foundation.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-1dfe032e").then(n)}},{name:"v-67c77489",path:"/news/2021-03-07-ajv-supports-json-type-definition.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-67c77489").then(n)}},{name:"v-27531941",path:"/news/2020-12-15-ajv-version-7-released.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-27531941").then(n)}},{name:"v-c918a5fa",path:"/news/2021-03-27-ajv-version-8-released.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-c918a5fa").then(n)}},{name:"v-5a94ae89",path:"/news/2021-04-24-ajv-online-event.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-5a94ae89").then(n)}},{name:"v-959a2c2e",path:"/news/2021-07-22-ajv-microsoft-foss-fund-award.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-959a2c2e").then(n)}},{name:"v-2abeb1ab",path:"/news/2021-05-24-ajv-online-event-video.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-2abeb1ab").then(n)}},{name:"v-506a67bc",path:"/news/",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-506a67bc").then(n)}},{path:"/news/index.html",redirect:"/news/"},{name:"v-7bf93309",path:"/options.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-7bf93309").then(n)}},{name:"v-07fb5e62",path:"/packages/",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-07fb5e62").then(n)}},{path:"/packages/index.html",redirect:"/packages/"},{name:"v-19f2c039",path:"/packages/ajv-cli.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-19f2c039").then(n)}},{name:"v-b99d2c2e",path:"/packages/ajv-errors.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-b99d2c2e").then(n)}},{name:"v-6731dec1",path:"/packages/ajv-formats.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-6731dec1").then(n)}},{name:"v-7f55ccc9",path:"/packages/ajv-i18n.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-7f55ccc9").then(n)}},{name:"v-bf7e876e",path:"/packages/ajv-keywords.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-bf7e876e").then(n)}},{name:"v-bb53a316",path:"/security.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-bb53a316").then(n)}},{name:"v-74774829",path:"/strict-mode.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-74774829").then(n)}},{name:"v-20f55eeb",path:"/standalone.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-20f55eeb").then(n)}},{name:"v-90fdf4e6",path:"/testimonials.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-90fdf4e6").then(n)}},{name:"v-114a7465",path:"/v6-to-v8-migration.html",component:Cs,beforeEnter:(e,t,n)=>{fs("Layout","v-114a7465").then(n)}},{path:"*",component:Cs}],$s={title:"Ajv JSON schema validator",description:"The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927)",base:"/",headTags:[["link",{rel:"icon",href:"/favicon.ico"}],["meta",{charset:"utf-8"}],["meta",{property:"og:title",content:"Ajv JSON schema validator"}],["meta",{property:"og:description",content:"The fastest JSON schema Validator. Supports JSON Schema draft-04/06/07/2019-09/2020-12 and JSON Type Definition (RFC8927)"}],["meta",{property:"og:image",content:"https://ajv.js.org/img/ajv.png"}],["meta",{itemprop:"image",content:"https://ajv.js.org/img/ajv.png"}],["meta",{name:"twitter:card",content:"summary"}],["meta",{name:"twitter:title",content:"Ajv JSON schema validator"}],["meta",{name:"twitter:image:src",content:"https://ajv.js.org/img/ajv.png"}],["meta",{name:"apple-mobile-web-app-capable",content:"yes"}],["link",{rel:"apple-touch-icon",href:"/img/apple-touch-icon.png"}]],pages:[{frontmatter:{homepage:!0,sidebar:!1},regularPath:"/",relativePath:"README.md",key:"v-2216e8dc",path:"/",headers:[{level:2,title:"Security and reliability for JavaScript applications",slug:"security-and-reliability-for-javascript-applications"},{level:3,title:"Write less code",slug:"write-less-code"},{level:3,title:"Super fast & secure",slug:"super-fast-secure"},{level:3,title:"Multi-standard",slug:"multi-standard"},{level:2,title:"Ajv sponsors",slug:"ajv-sponsors"},{level:2,title:"What users say",slug:"what-users-say"},{level:2,title:"News",slug:"news"},{level:2,title:"Who uses Ajv",slug:"who-uses-ajv"},{level:2,title:"Contributors",slug:"contributors"}]},{title:"API Reference",frontmatter:{},regularPath:"/api.html",relativePath:"api.md",key:"v-0b4d4089",path:"/api.html",headers:[{level:2,title:"Ajv constructor and methods",slug:"ajv-constructor-and-methods"},{level:3,title:"new Ajv(options: object)",slug:"new-ajv-options-object"},{level:3,title:"ajv.compile(schema: object): (data: any) => boolean | Promise",slug:"ajv-compile-schema-object-data-any-boolean-promise-any"},{level:3,title:"ajv.compileSerializer(schema: object): (data: any) => string",slug:"ajv-compileserializer-schema-object-data-any-string"},{level:3,title:"ajv.compileParser(schema: object): (json: string) => any",slug:"ajv-compileparser-schema-object-json-string-any"},{level:3,title:"ajv.compileAsync(schema: object, meta?: boolean): Promise",slug:"ajv-compileasync-schema-object-meta-boolean-promise-function"},{level:3,title:"ajv.validate(schemaOrRef: object | string, data: any): boolean",slug:"ajv-validate-schemaorref-object-string-data-any-boolean"},{level:3,title:"ajv.addSchema(schema: object | object[], key?: string): Ajv",slug:"ajv-addschema-schema-object-object-key-string-ajv"},{level:3,title:"ajv.addMetaSchema(schema: object | object[], key?: string): Ajv",slug:"ajv-addmetaschema-schema-object-object-key-string-ajv"},{level:3,title:"ajv.validateSchema(schema: object): boolean",slug:"ajv-validateschema-schema-object-boolean"},{level:3,title:"ajv.getSchema(key: string): undefined | ((data: any) => boolean | Promise )",slug:"ajv-getschema-key-string-undefined-data-any-boolean-promise-any"},{level:3,title:"ajv.removeSchema(schemaOrRef: object | string | RegExp): Ajv",slug:"ajv-removeschema-schemaorref-object-string-regexp-ajv"},{level:3,title:"ajv.addFormat(name: string, format: Format): Ajv",slug:"ajv-addformat-name-string-format-format-ajv"},{level:3,title:"ajv.addKeyword(definition: string | object): Ajv",slug:"ajv-addkeyword-definition-string-object-ajv"},{level:3,title:"ajv.getKeyword(keyword: string): object | boolean",slug:"ajv-getkeyword-keyword-string-object-boolean"},{level:3,title:"ajv.removeKeyword(keyword: string): Ajv",slug:"ajv-removekeyword-keyword-string-ajv"},{level:3,title:"ajv.errorsText(errors?: object[], options?: object): string",slug:"ajv-errorstext-errors-object-options-object-string"},{level:2,title:"Validation errors",slug:"validation-errors"},{level:3,title:"Error objects",slug:"error-objects"},{level:3,title:"Error parameters",slug:"error-parameters"},{level:3,title:"Errors i18n",slug:"errors-i18n"},{level:3,title:"Error logging",slug:"error-logging"}]},{title:"Contributor Covenant Code of Conduct",frontmatter:{permalink:"/code_of_conduct"},regularPath:"/code_of_conduct.html",relativePath:"code_of_conduct.md",key:"v-094b9dee",path:"/code_of_conduct/",headers:[{level:3,title:"Our Pledge",slug:"our-pledge"},{level:3,title:"Our Standards",slug:"our-standards"},{level:3,title:"Our Responsibilities",slug:"our-responsibilities"},{level:3,title:"Scope",slug:"scope"},{level:3,title:"Enforcement",slug:"enforcement"},{level:3,title:"Attribution",slug:"attribution"}]},{title:"Code generation design",frontmatter:{},regularPath:"/codegen.html",relativePath:"codegen.md",key:"v-7eb94829",path:"/codegen.html",headers:[{level:2,title:"Safe code generation",slug:"safe-code-generation"},{level:2,title:"Code optimization",slug:"code-optimization"},{level:2,title:"User-defined keywords",slug:"user-defined-keywords"}]},{title:"Type coercion rules",frontmatter:{},regularPath:"/coercion.html",relativePath:"coercion.md",key:"v-29ebca8e",path:"/coercion.html",headers:[{level:2,title:"Coercion from string values",slug:"coercion-from-string-values"},{level:2,title:"Coercion from number values",slug:"coercion-from-number-values"},{level:2,title:"Coercion from boolean values",slug:"coercion-from-boolean-values"},{level:2,title:"Coercion from null",slug:"coercion-from-null"},{level:2,title:"Coercion to and from array",slug:"coercion-to-and-from-array"}]},{title:"Code components",frontmatter:{},regularPath:"/components.html",relativePath:"components.md",key:"v-51aaf849",path:"/components.html",headers:[{level:2,title:"Ajv classes",slug:"ajv-classes"},{level:2,title:"Schema compilation",slug:"schema-compilation"},{level:2,title:"Other components",slug:"other-components"}]},{title:"Contributing guide",frontmatter:{permalink:"/contributing"},regularPath:"/contributing.html",relativePath:"contributing.md",key:"v-126ea6be",path:"/contributing/",headers:[{level:2,title:"Documentation",slug:"documentation"},{level:2,title:"Issues",slug:"issues"},{level:3,title:"Bug reports",slug:"bug-reports"},{level:3,title:"Security vulnerabilities",slug:"security-vulnerabilities"},{level:3,title:"Change proposals",slug:"change-proposals"},{level:3,title:"Browser and compatibility issues",slug:"browser-and-compatibility-issues"},{level:3,title:"Installation and dependency issues",slug:"installation-and-dependency-issues"},{level:3,title:"Using JSON Schema standard",slug:"using-json-schema-standard"},{level:3,title:"Ajv usage questions",slug:"ajv-usage-questions"},{level:2,title:"Code",slug:"code"},{level:3,title:"How we make decisions",slug:"how-we-make-decisions"},{level:3,title:"Development",slug:"development"},{level:3,title:"Pull requests",slug:"pull-requests"},{level:3,title:"Contributions license",slug:"contributions-license"}]},{title:"Frequently Asked Questions",frontmatter:{},regularPath:"/faq.html",relativePath:"faq.md",key:"v-003ee409",path:"/faq.html",headers:[{level:2,title:"Using JSON schema",slug:"using-json-schema"},{level:2,title:"Ajv API for returning validation errors",slug:"ajv-api-for-returning-validation-errors"},{level:2,title:"Additional properties inside compound keywords anyOf, oneOf, etc.",slug:"additional-properties-inside-compound-keywords-anyof-oneof-etc"},{level:2,title:"Generating schemas with resolved references ($ref)",slug:"generating-schemas-with-resolved-references-ref"}]},{title:"Asynchronous validation",frontmatter:{},regularPath:"/guide/async-validation.html",relativePath:"guide/async-validation.md",key:"v-4d7f1c8a",path:"/guide/async-validation.html",headers:[{level:3,title:"Using transpilers",slug:"using-transpilers"}]},{title:"Combining schemas",frontmatter:{},regularPath:"/guide/combining-schemas.html",relativePath:"guide/combining-schemas.md",key:"v-83a41dee",path:"/guide/combining-schemas.html",headers:[{level:2,title:"Combining schemas with $ref",slug:"combining-schemas-with-ref"},{level:2,title:"Extending recursive schemas",slug:"extending-recursive-schemas"},{level:2,title:"$data reference",slug:"data-reference"},{level:2,title:"$merge and $patch keywords",slug:"merge-and-patch-keywords"}]},{title:"Execution environments",frontmatter:{},regularPath:"/guide/environments.html",relativePath:"guide/environments.md",key:"v-49301ee2",path:"/guide/environments.html",headers:[{level:2,title:"Server-side Node.js",slug:"server-side-node-js"},{level:2,title:"Short-lived environments",slug:"short-lived-environments"},{level:2,title:"Browsers",slug:"browsers"},{level:2,title:"ES5 environments",slug:"es5-environments"},{level:2,title:"CJS vs ESM exports",slug:"cjs-vs-esm-exports"},{level:2,title:"Other JavaScript environments",slug:"other-javascript-environments"},{level:2,title:"Command line interface",slug:"command-line-interface"}]},{title:"Format validation",frontmatter:{},regularPath:"/guide/formats.html",relativePath:"guide/formats.md",key:"v-d1f646ae",path:"/guide/formats.html",headers:[{level:2,title:"String formats",slug:"string-formats"},{level:2,title:"User-defined formats",slug:"user-defined-formats"},{level:2,title:"Formats and standalone validation code",slug:"formats-and-standalone-validation-code"}]},{title:"Getting started",frontmatter:{},regularPath:"/guide/getting-started.html",relativePath:"guide/getting-started.md",key:"v-464fd629",path:"/guide/getting-started.html",headers:[{level:2,title:"Install",slug:"install"},{level:2,title:"Basic data validation",slug:"basic-data-validation"},{level:2,title:"Parsing and serializing JSON",slug:"parsing-and-serializing-json"}]},{title:"Managing schemas",frontmatter:{},regularPath:"/guide/managing-schemas.html",relativePath:"guide/managing-schemas.md",key:"v-7cca31fe",path:"/guide/managing-schemas.html",headers:[{level:2,title:"Re-using validation functions",slug:"re-using-validation-functions"},{level:2,title:"Standalone validation code",slug:"standalone-validation-code"},{level:2,title:"Compiling during initialization",slug:"compiling-during-initialization"},{level:2,title:"Using Ajv instance cache",slug:"using-ajv-instance-cache"},{level:3,title:"Cache key: schema vs key vs $id",slug:"cache-key-schema-vs-key-vs-id"},{level:3,title:"Pre-adding all schemas vs adding on demand",slug:"pre-adding-all-schemas-vs-adding-on-demand"},{level:3,title:"Asynchronous schema loading",slug:"asynchronous-schema-loading"},{level:2,title:"Caching schemas in your code",slug:"caching-schemas-in-your-code"}]},{title:"Choosing schema language",frontmatter:{tags:["JTD"]},regularPath:"/guide/schema-language.html",relativePath:"guide/schema-language.md",key:"v-76cafeae",path:"/guide/schema-language.html",headers:[{level:2,title:"JSON Type Definition",slug:"json-type-definition"},{level:2,title:"JSON Schema",slug:"json-schema"},{level:3,title:"draft-04",slug:"draft-04"},{level:3,title:"draft-07 (and draft-06)",slug:"draft-07-and-draft-06"},{level:3,title:"draft 2019-09 (and draft-2020-12)",slug:"draft-2019-09-and-draft-2020-12"},{level:2,title:"Comparison",slug:"comparison"},{level:3,title:"JSON Schema",slug:"json-schema-2"},{level:3,title:"JSON Type Definition",slug:"json-type-definition-2"}]},{title:"User-defined keywords",frontmatter:{},regularPath:"/guide/user-keywords.html",relativePath:"guide/user-keywords.md",key:"v-62aa1369",path:"/guide/user-keywords.html"},{title:"Modifying data during validation",frontmatter:{},regularPath:"/guide/modifying-data.html",relativePath:"guide/modifying-data.md",key:"v-b5351e9e",path:"/guide/modifying-data.html",headers:[{level:2,title:"General considerations",slug:"general-considerations"},{level:2,title:"Removing additional properties",slug:"removing-additional-properties"},{level:2,title:"Assigning defaults",slug:"assigning-defaults"},{level:2,title:"Coercing data types",slug:"coercing-data-types"}]},{title:"Why use AJV",frontmatter:{},regularPath:"/guide/why-ajv.html",relativePath:"guide/why-ajv.md",key:"v-3ad539ae",path:"/guide/why-ajv.html",headers:[{level:2,title:"Write less code",slug:"write-less-code"},{level:2,title:"Super fast & secure",slug:"super-fast-secure"},{level:2,title:"Multi-standard",slug:"multi-standard"}]},{title:"Using with TypeScript",frontmatter:{},regularPath:"/guide/typescript.html",relativePath:"guide/typescript.md",key:"v-f3391bf6",path:"/guide/typescript.html",headers:[{level:2,title:"Additional functionality",slug:"additional-functionality"},{level:2,title:"Utility types for schemas",slug:"utility-types-for-schemas"},{level:2,title:"Utility type for JTD data type",slug:"utility-type-for-jtd-data-type"},{level:2,title:"Type-safe error handling",slug:"type-safe-error-handling"},{level:2,title:"Type-safe parsers and serializers",slug:"type-safe-parsers-and-serializers"},{level:2,title:"Type-safe unions",slug:"type-safe-unions"}]},{title:"JSON Schema",frontmatter:{},regularPath:"/json-schema.html",relativePath:"json-schema.md",key:"v-5e92fa09",path:"/json-schema.html",headers:[{level:2,title:"JSON Schema versions",slug:"json-schema-versions"},{level:3,title:"draft-07",slug:"draft-07"},{level:3,title:"draft-2019-09",slug:"draft-2019-09"},{level:3,title:"draft-2020-12",slug:"draft-2020-12"},{level:3,title:"draft-06",slug:"draft-06"},{level:3,title:"draft-04",slug:"draft-04"},{level:2,title:"OpenAPI support",slug:"openapi-support"},{level:2,title:"JSON data type",slug:"json-data-type"},{level:3,title:"type",slug:"type"},{level:3,title:"nullable",slug:"nullable"},{level:2,title:"Keywords for numbers",slug:"keywords-for-numbers"},{level:3,title:"maximum / minimum and exclusiveMaximum / exclusiveMinimum",slug:"maximum-minimum-and-exclusivemaximum-exclusiveminimum"},{level:3,title:"multipleOf",slug:"multipleof"},{level:2,title:"Keywords for strings",slug:"keywords-for-strings"},{level:3,title:"maxLength / minLength",slug:"maxlength-minlength"},{level:3,title:"pattern",slug:"pattern"},{level:3,title:"format",slug:"format"},{level:2,title:"Keywords for arrays",slug:"keywords-for-arrays"},{level:3,title:"maxItems / minItems",slug:"maxitems-minitems"},{level:3,title:"uniqueItems",slug:"uniqueitems"},{level:3,title:"items",slug:"items"},{level:3,title:"prefixItems",slug:"prefixitems"},{level:3,title:"additionalItems",slug:"additionalitems"},{level:3,title:"contains",slug:"contains"},{level:3,title:"maxContains / minContains",slug:"maxcontains-mincontains"},{level:3,title:"unevaluatedItems",slug:"unevaluateditems"},{level:2,title:"Keywords for objects",slug:"keywords-for-objects"},{level:3,title:"maxProperties / minProperties",slug:"maxproperties-minproperties"},{level:3,title:"required",slug:"required"},{level:3,title:"properties",slug:"properties"},{level:3,title:"patternProperties",slug:"patternproperties"},{level:3,title:"additionalProperties",slug:"additionalproperties"},{level:3,title:"dependencies",slug:"dependencies"},{level:3,title:"dependentRequired",slug:"dependentrequired"},{level:3,title:"dependentSchemas",slug:"dependentschemas"},{level:3,title:"propertyNames",slug:"propertynames"},{level:3,title:"unevaluatedProperties",slug:"unevaluatedproperties"},{level:3,title:"discriminator",slug:"discriminator"},{level:2,title:"Keywords for all types",slug:"keywords-for-all-types"},{level:3,title:"enum",slug:"enum"},{level:3,title:"const",slug:"const"},{level:2,title:"Compound keywords",slug:"compound-keywords"},{level:3,title:"not",slug:"not"},{level:3,title:"oneOf",slug:"oneof"},{level:3,title:"anyOf",slug:"anyof"},{level:3,title:"allOf",slug:"allof"},{level:3,title:"if/then/else",slug:"if-then-else"},{level:2,title:"Metadata keywords",slug:"metadata-keywords"}]},{title:"User defined keywords",frontmatter:{},regularPath:"/keywords.html",relativePath:"keywords.md",key:"v-48953121",path:"/keywords.html",headers:[{level:2,title:"Common attributes of keyword definitions",slug:"common-attributes-of-keyword-definitions"},{level:3,title:"Define keyword with code generation function",slug:"define-keyword-with-code-generation-function"},{level:3,title:'Define keyword with "validate" function',slug:"define-keyword-with-validate-function"},{level:3,title:'Define keyword with "compile" function',slug:"define-keyword-with-compile-function"},{level:3,title:'Define keyword with "macro" function',slug:"define-keyword-with-macro-function"},{level:2,title:"Schema compilation context",slug:"schema-compilation-context"},{level:2,title:"Validation time variables",slug:"validation-time-variables"},{level:2,title:"Reporting errors",slug:"reporting-errors"}]},{title:"JSON Type Definition",frontmatter:{},regularPath:"/json-type-definition.html",relativePath:"json-type-definition.md",key:"v-8de1af1a",path:"/json-type-definition.html",headers:[{level:2,title:"JTD schema forms",slug:"jtd-schema-forms"},{level:3,title:"Type form",slug:"type-form"},{level:3,title:"Enum form",slug:"enum-form"},{level:3,title:"Elements form",slug:"elements-form"},{level:3,title:"Properties form",slug:"properties-form"},{level:3,title:"Discriminator form",slug:"discriminator-form"},{level:3,title:"Values form",slug:"values-form"},{level:3,title:"Ref form",slug:"ref-form"},{level:3,title:"Empty form",slug:"empty-form"},{level:2,title:"JTDSchemaType",slug:"jtdschematype"},{level:3,title:"Most Schemas",slug:"most-schemas"},{level:3,title:"Ref Schemas",slug:"ref-schemas"},{level:3,title:"Notable Omissions",slug:"notable-omissions"},{level:2,title:"Extending JTD",slug:"extending-jtd"},{level:3,title:"Metadata schema member",slug:"metadata-schema-member"},{level:3,title:"Union keyword",slug:"union-keyword"},{level:3,title:"User-defined keywords",slug:"user-defined-keywords"},{level:2,title:"Validation errors",slug:"validation-errors"}]},{frontmatter:{},regularPath:"/license.html",relativePath:"license.md",key:"v-1f38ca2e",path:"/license.html"},{title:"Mozilla MOSS grant and OpenJS Foundation",frontmatter:{news:!0,title:"Mozilla MOSS grant and OpenJS Foundation",date:"2020-08-14T00:00:00.000Z"},regularPath:"/news/2020-08-14-mozilla-grant-openjs-foundation.html",relativePath:"news/2020-08-14-mozilla-grant-openjs-foundation.md",key:"v-1dfe032e",path:"/news/2020-08-14-mozilla-grant-openjs-foundation.html",excerpt:'\n

Ajv has been awarded a grant from Mozilla’s Open Source Support (MOSS) program in the “Foundational Technology” track! It will sponsor the development of Ajv support of JSON Schema version 2019-09 and of JSON Type Definition (RFC8927).

\n

Ajv also joined OpenJS Foundation – having this support will help ensure the longevity and stability of Ajv for all its users.

\n'},{title:"Ajv supports JSON Type Definition",frontmatter:{news:!0,title:"Ajv supports JSON Type Definition",date:"2021-03-07T00:00:00.000Z"},regularPath:"/news/2021-03-07-ajv-supports-json-type-definition.html",relativePath:"news/2021-03-07-ajv-supports-json-type-definition.md",key:"v-67c77489",path:"/news/2021-03-07-ajv-supports-json-type-definition.html",excerpt:'

JSON Type Definition (JTD) is a new specification for defining JSON structures that is very simple to use, comparing with JSON Schema, less error prone, and it is published as RFC8927.

\n

See Choosing schema language for a detailed comparison between JSON Schema and JSON Type definition and informal specification.

\n'},{title:"Ajv version 7 is released!",frontmatter:{news:!0,title:"Ajv version 7 is released!",date:"2020-12-15T00:00:00.000Z"},regularPath:"/news/2020-12-15-ajv-version-7-released.html",relativePath:"news/2020-12-15-ajv-version-7-released.md",key:"v-27531941",path:"/news/2020-12-15-ajv-version-7-released.html",excerpt:'

Ajv version 7 has these new features:

\n\n'},{title:"Ajv version 8 is released!",frontmatter:{news:!0,title:"Ajv version 8 is released!",date:"2021-03-27T00:00:00.000Z"},regularPath:"/news/2021-03-27-ajv-version-8-released.html",relativePath:"news/2021-03-27-ajv-version-8-released.md",key:"v-c918a5fa",path:"/news/2021-03-27-ajv-version-8-released.html",excerpt:'

Ajv version 8 has these new features:

\n\n'},{title:"Ajv online event - May 20, 10am PT / 6pm UK",frontmatter:{news:!0,title:"Ajv online event - May 20, 10am PT / 6pm UK",date:"2021-04-24T00:00:00.000Z",more:!1},regularPath:"/news/2021-04-24-ajv-online-event.html",relativePath:"news/2021-04-24-ajv-online-event.md",key:"v-5a94ae89",path:"/news/2021-04-24-ajv-online-event.html",excerpt:'

We will talk about:

\n
    \n
  • new features of Ajv version 8.
  • \n
  • the improvements sponsored by Mozilla\'s MOSS grant.
  • \n
  • how Ajv is used in JavaScript applications.
  • \n
\n

Speakers:

\n
    \n
  • Evgeny Poberezkin, the creator of Ajv.
  • \n
  • Mehan Jayasuriya, Program Officer at Mozilla Foundation, leading the MOSS and other programs investing in the open source and community ecosystems.
  • \n
  • Matteo Collina, Technical Director at NearForm and Node.js Technical Steering Committee member, creator of Fastify web framework.
  • \n
  • Kin Lane, Chief Evangelist at Postman. Studying the tech, business & politics of APIs since 2010. Presidential Innovation Fellow during the Obama administration.
  • \n
  • Ulysse Carion, the creator of JSON Type Definition specification.
  • \n
\n

Gajus Kuizinas will host the event.

\n

Please register here.

\n'},{title:"Microsoft FOSS award",frontmatter:{news:!0,title:"Microsoft FOSS award",date:"2021-07-22T00:00:00.000Z",more:!1},regularPath:"/news/2021-07-22-ajv-microsoft-foss-fund-award.html",relativePath:"news/2021-07-22-ajv-microsoft-foss-fund-award.md",key:"v-959a2c2e",path:"/news/2021-07-22-ajv-microsoft-foss-fund-award.html",excerpt:'

Ajv was awarded a sponsorship from Microsoft FOSS fund - huge thanks to Microsoft and the engineers who voted to support Ajv development.

\n

This award will contribute to a long term maintenance of Ajv.

\n'},{title:"Ajv online event video uploaded",frontmatter:{news:!0,title:"Ajv online event video uploaded",date:"2021-05-24T00:00:00.000Z",more:!1},regularPath:"/news/2021-05-24-ajv-online-event-video.html",relativePath:"news/2021-05-24-ajv-online-event-video.md",key:"v-2abeb1ab",path:"/news/2021-05-24-ajv-online-event-video.html",excerpt:'

Huge thanks to everybody who joined, and to the speakers! The video of the event is available on YouTube.

\n'},{title:"Ajv News",frontmatter:{newsIndex:!0,editLink:!1},regularPath:"/news/",relativePath:"news/README.md",key:"v-506a67bc",path:"/news/"},{title:"Ajv options",frontmatter:{},regularPath:"/options.html",relativePath:"options.md",key:"v-7bf93309",path:"/options.html",headers:[{level:2,title:"Usage",slug:"usage"},{level:2,title:"Option defaults",slug:"option-defaults"},{level:2,title:"Strict mode options",slug:"strict-mode-options"},{level:3,title:"strict",slug:"strict"},{level:3,title:"strictSchema",slug:"strictschema"},{level:3,title:"strictNumbers",slug:"strictnumbers"},{level:3,title:"strictTypes",slug:"stricttypes"},{level:3,title:"strictTuples",slug:"stricttuples"},{level:3,title:"strictRequired",slug:"strictrequired"},{level:3,title:"allowUnionTypes",slug:"allowuniontypes"},{level:3,title:"allowMatchingProperties",slug:"allowmatchingproperties"},{level:3,title:"validateFormats",slug:"validateformats"},{level:2,title:"Validation and reporting options",slug:"validation-and-reporting-options"},{level:3,title:"$data",slug:"data"},{level:3,title:"allErrors",slug:"allerrors"},{level:3,title:"verbose",slug:"verbose"},{level:3,title:"discriminator",slug:"discriminator"},{level:3,title:"unicodeRegExp",slug:"unicoderegexp"},{level:3,title:"timestamp",slug:"timestamp"},{level:3,title:"parseDate",slug:"parsedate"},{level:3,title:"allowDate",slug:"allowdate"},{level:3,title:"int32range",slug:"int32range"},{level:3,title:"$comment",slug:"comment"},{level:3,title:"formats",slug:"formats"},{level:3,title:"keywords",slug:"keywords"},{level:3,title:"schemas",slug:"schemas"},{level:3,title:"logger",slug:"logger"},{level:3,title:"loadSchema",slug:"loadschema"},{level:2,title:"Options to modify validated data",slug:"options-to-modify-validated-data"},{level:3,title:"removeAdditional",slug:"removeadditional"},{level:3,title:"useDefaults",slug:"usedefaults"},{level:3,title:"coerceTypes",slug:"coercetypes"},{level:2,title:"Advanced options",slug:"advanced-options"},{level:3,title:"meta",slug:"meta"},{level:3,title:"validateSchema",slug:"validateschema"},{level:3,title:"addUsedSchema",slug:"addusedschema"},{level:3,title:"inlineRefs",slug:"inlinerefs"},{level:3,title:"passContext",slug:"passcontext"},{level:3,title:"loopRequired",slug:"looprequired"},{level:3,title:"loopEnum",slug:"loopenum"},{level:3,title:"ownProperties",slug:"ownproperties"},{level:3,title:"multipleOfPrecision",slug:"multipleofprecision"},{level:3,title:"messages",slug:"messages"},{level:3,title:"uriResolver",slug:"uriresolver"},{level:3,title:"code",slug:"code"}]},{title:"Extending Ajv",frontmatter:{},regularPath:"/packages/",relativePath:"packages/README.md",key:"v-07fb5e62",path:"/packages/",headers:[{level:2,title:"Plugins",slug:"plugins"},{level:2,title:"Related packages",slug:"related-packages"}]},{frontmatter:{editLink:"https://github.com/ajv-validator/ajv-cli/edit/master/README.md"},regularPath:"/packages/ajv-cli.html",relativePath:"packages/ajv-cli.md",key:"v-19f2c039",path:"/packages/ajv-cli.html",headers:[{level:2,title:"Contents",slug:"contents"},{level:2,title:"Installation",slug:"installation"},{level:2,title:"JSON schema language and version",slug:"json-schema-language-and-version"},{level:2,title:"Commands",slug:"commands"},{level:3,title:"Help command",slug:"help-command"},{level:3,title:"Validate data",slug:"validate-data"},{level:3,title:"Compile schemas",slug:"compile-schemas"},{level:3,title:"Migrate schemas",slug:"migrate-schemas"},{level:3,title:"Test validation result",slug:"test-validation-result"},{level:2,title:"Ajv options",slug:"ajv-options"},{level:2,title:"Version History",slug:"version-history"},{level:2,title:"Licence",slug:"licence"}]},{frontmatter:{editLink:"https://github.com/ajv-validator/ajv-errors/edit/master/README.md"},regularPath:"/packages/ajv-errors.html",relativePath:"packages/ajv-errors.md",key:"v-b99d2c2e",path:"/packages/ajv-errors.html",headers:[{level:2,title:"Contents",slug:"contents"},{level:2,title:"Install",slug:"install"},{level:2,title:"Usage",slug:"usage"},{level:3,title:"Single message",slug:"single-message"},{level:3,title:"Messages for keywords",slug:"messages-for-keywords"},{level:3,title:"Messages for properties and items",slug:"messages-for-properties-and-items"},{level:3,title:"Default message",slug:"default-message"},{level:2,title:"Templates",slug:"templates"},{level:2,title:"Options",slug:"options"},{level:2,title:"Supporters",slug:"supporters"},{level:2,title:"Enterprise support",slug:"enterprise-support"},{level:2,title:"Security contact",slug:"security-contact"},{level:2,title:"License",slug:"license"}]},{frontmatter:{editLink:"https://github.com/ajv-validator/ajv-formats/edit/master/README.md"},regularPath:"/packages/ajv-formats.html",relativePath:"packages/ajv-formats.md",key:"v-6731dec1",path:"/packages/ajv-formats.html",headers:[{level:2,title:"Usage",slug:"usage"},{level:2,title:"Formats",slug:"formats"},{level:2,title:"Keywords to compare values: formatMaximum / formatMinimum and formatExclusiveMaximum / formatExclusiveMinimum",slug:"keywords-to-compare-values-formatmaximum-formatminimum-and-formatexclusivemaximum-formatexclusiveminimum"},{level:2,title:"Options",slug:"options"},{level:2,title:"Tests",slug:"tests"},{level:2,title:"License",slug:"license"}]},{frontmatter:{editLink:"https://github.com/ajv-validator/ajv-i18n/edit/master/README.md"},regularPath:"/packages/ajv-i18n.html",relativePath:"packages/ajv-i18n.md",key:"v-7f55ccc9",path:"/packages/ajv-i18n.html",headers:[{level:2,title:"Supported locales",slug:"supported-locales"},{level:2,title:"Install",slug:"install"},{level:2,title:"Usage",slug:"usage"},{level:2,title:"Tests",slug:"tests"},{level:2,title:"Contributing",slug:"contributing"},{level:2,title:"Contributors of locales",slug:"contributors-of-locales"},{level:2,title:"Enterprise support",slug:"enterprise-support"},{level:2,title:"Security contact",slug:"security-contact"},{level:2,title:"License",slug:"license"}]},{frontmatter:{editLink:"https://github.com/ajv-validator/ajv-keywords/edit/master/README.md"},regularPath:"/packages/ajv-keywords.html",relativePath:"packages/ajv-keywords.md",key:"v-bf7e876e",path:"/packages/ajv-keywords.html",headers:[{level:2,title:"Contents",slug:"contents"},{level:2,title:"Install",slug:"install"},{level:2,title:"Usage",slug:"usage"},{level:2,title:"Keywords",slug:"keywords"},{level:3,title:"Types",slug:"types"},{level:3,title:"Keywords for numbers",slug:"keywords-for-numbers"},{level:3,title:"Keywords for strings",slug:"keywords-for-strings"},{level:3,title:"Keywords for arrays",slug:"keywords-for-arrays"},{level:3,title:"Keywords for objects",slug:"keywords-for-objects"},{level:3,title:"Keywords for all types",slug:"keywords-for-all-types"},{level:2,title:"Security contact",slug:"security-contact"},{level:2,title:"Open-source software support",slug:"open-source-software-support"},{level:2,title:"License",slug:"license"}]},{title:"Security considerations",frontmatter:{},regularPath:"/security.html",relativePath:"security.md",key:"v-bb53a316",path:"/security.html",headers:[{level:2,title:"Security contact",slug:"security-contact"},{level:2,title:"Untrusted schemas",slug:"untrusted-schemas"},{level:2,title:"Circular references in JavaScript objects",slug:"circular-references-in-javascript-objects"},{level:2,title:"Security risks of trusted schemas",slug:"security-risks-of-trusted-schemas"},{level:2,title:"ReDoS attack",slug:"redos-attack"},{level:2,title:"Content Security Policy",slug:"content-security-policy"}]},{title:"Strict mode",frontmatter:{},regularPath:"/strict-mode.html",relativePath:"strict-mode.md",key:"v-74774829",path:"/strict-mode.html",headers:[{level:2,title:"JSON Type Definition schemas",slug:"json-type-definition-schemas"},{level:2,title:"JSON Schema schemas",slug:"json-schema-schemas"},{level:3,title:"Prohibit ignored keywords",slug:"prohibit-ignored-keywords"},{level:3,title:"Prevent unexpected validation",slug:"prevent-unexpected-validation"},{level:3,title:"Strict types",slug:"strict-types"},{level:3,title:"Strict number validation",slug:"strict-number-validation"}]},{title:"Standalone validation code",frontmatter:{},regularPath:"/standalone.html",relativePath:"standalone.md",key:"v-20f55eeb",path:"/standalone.html",headers:[{level:2,title:"Two-step process",slug:"two-step-process"},{level:3,title:"Generating function(s) using CLI",slug:"generating-function-s-using-cli"},{level:3,title:"Generating using the JS library",slug:"generating-using-the-js-library"},{level:2,title:"Using the validation function(s)",slug:"using-the-validation-function-s"},{level:3,title:"Validating a single schemas using the JS library - ES6 and CJS",slug:"validating-a-single-schemas-using-the-js-library-es6-and-cjs"},{level:3,title:"Validating multiple schemas using the JS library - ES6 and CJS",slug:"validating-multiple-schemas-using-the-js-library-es6-and-cjs"},{level:3,title:"Validating multiple schemas using the JS library - ES6 and ESM",slug:"validating-multiple-schemas-using-the-js-library-es6-and-esm"},{level:3,title:"Requirement at runtime",slug:"requirement-at-runtime"},{level:2,title:"Configuration and limitations",slug:"configuration-and-limitations"}]},{title:"What users say",frontmatter:{},regularPath:"/testimonials.html",relativePath:"testimonials.md",key:"v-90fdf4e6",path:"/testimonials.html"},{title:"Changes from Ajv v6.12.6 to v8.0.0",frontmatter:{},regularPath:"/v6-to-v8-migration.html",relativePath:"v6-to-v8-migration.md",key:"v-114a7465",path:"/v6-to-v8-migration.html",headers:[{level:2,title:"New features",slug:"new-features"},{level:2,title:"Better TypeScript support",slug:"better-typescript-support"},{level:2,title:"Potential migration difficulties",slug:"potential-migration-difficulties"},{level:2,title:"API changes",slug:"api-changes"},{level:3,title:"Added options",slug:"added-options"},{level:3,title:"Changed options",slug:"changed-options"},{level:3,title:"Removed options",slug:"removed-options"}]}],themeConfig:{logo:"/img/ajv.svg",nav:[{text:"Home",link:"/"},{text:"Guide",items:[{link:"/guide/why-ajv",text:"Why use Ajv"},{link:"/guide/getting-started",text:"Getting started"},{link:"/guide/typescript",text:"Using with TypeScript"},{link:"/guide/schema-language",text:"Choosing schema language"},{link:"/guide/managing-schemas",text:"Managing schemas"},{link:"/guide/combining-schemas",text:"Combining schemas"},{link:"/guide/formats",text:"Format validation"},{link:"/guide/modifying-data",text:"Modifying data"},{link:"/guide/user-keywords",text:"User-defined keywords"},{link:"/guide/async-validation",text:"Asynchronous validation"},{link:"/guide/environments",text:"Execution environments"}]},{text:"Reference",items:[{link:"/api",text:"API Reference"},{link:"/options",text:"Ajv options"},{link:"/json-schema",text:"JSON Schema"},{link:"/json-type-definition",text:"JSON Type Definition"},{link:"/strict-mode",text:"Strict mode"},{link:"/standalone",text:"Standalone validation code"},{link:"/keywords",text:"User defined keywords"},{link:"/coercion",text:"Type coercion rules"}]},{text:"Learn more",items:[{text:"Extending Ajv",items:[{link:"/packages/",text:"Extending Ajv"},{link:"/packages/ajv-cli",text:"ajv-cli"},{link:"/packages/ajv-errors",text:"ajv-errors"},{link:"/packages/ajv-formats",text:"ajv-formats"},{link:"/packages/ajv-i18n",text:"ajv-i18n"},{link:"/packages/ajv-keywords",text:"ajv-keywords"}]},{text:"Contributors",items:[{link:"/contributing",text:"Contributing guide"},{link:"/codegen",text:"Code generation design"},{link:"/components",text:"Code components"},{link:"/code_of_conduct",text:"Code of Conduct"}]},{text:"Information",items:[{link:"/news/",text:"News"},{link:"/faq",text:"FAQ"},{link:"/security",text:"Security"},{link:"/v6-to-v8-migration",text:"Migrate from v6"},{link:"/testimonials",text:"What users say"},{link:"/license",text:"License"}]}]}],sidebar:[{title:"Guide",children:["/guide/why-ajv","/guide/getting-started","/guide/typescript","/guide/schema-language","/guide/managing-schemas","/guide/combining-schemas","/guide/formats","/guide/modifying-data","/guide/user-keywords","/guide/async-validation","/guide/environments"]},{title:"Reference",children:["/api","/options","/json-schema","/json-type-definition","/strict-mode","/standalone","/keywords","/coercion"]},{title:"Extending Ajv",children:[["/packages/","Extending Ajv"],["/packages/ajv-formats","ajv-formats"],["/packages/ajv-keywords","ajv-keywords"],["/packages/ajv-errors","ajv-errors"],["/packages/ajv-i18n","ajv-i18n"],["/packages/ajv-cli","ajv-cli"]]},{title:"Contributors",children:["/contributing","/codegen","/components",["/code_of_conduct","Code of conduct"]]},{title:"Information",children:["/news/","/faq","/security",["/v6-to-v8-migration","Migrate from v6 to v8"],"/testimonials",["/license","License"]]}],repo:"ajv-validator/ajv",docsDir:"docs",editLinks:!0,activeHeaderLinks:!1}};n(233);Kn.component("Button",()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,377))),Kn.component("Column",()=>Promise.all([n.e(0),n.e(26)]).then(n.bind(null,378))),Kn.component("Columns",()=>Promise.all([n.e(0),n.e(27)]).then(n.bind(null,434))),Kn.component("Contributors",()=>Promise.all([n.e(0),n.e(21)]).then(n.bind(null,379))),Kn.component("Feature",()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,380))),Kn.component("Features",()=>Promise.all([n.e(0),n.e(28)]).then(n.bind(null,435))),Kn.component("FooterColumn",()=>Promise.all([n.e(0),n.e(29)]).then(n.bind(null,381))),Kn.component("FooterColumns",()=>Promise.all([n.e(0),n.e(30)]).then(n.bind(null,436))),Kn.component("GitHub",()=>Promise.all([n.e(0),n.e(31)]).then(n.bind(null,382))),Kn.component("HeroSection",()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,437))),Kn.component("HomePage",()=>Promise.all([n.e(0),n.e(32)]).then(n.bind(null,438))),Kn.component("NewsHome",()=>Promise.all([n.e(0),n.e(34)]).then(n.bind(null,383))),Kn.component("HomeSection",()=>Promise.all([n.e(0),n.e(33)]).then(n.bind(null,384))),Kn.component("NewsIndex",()=>n.e(43).then(n.bind(null,385))),Kn.component("NewsPost",()=>Promise.all([n.e(0),n.e(14)]).then(n.bind(null,386))),Kn.component("NewsPostMeta",()=>Promise.all([n.e(0),n.e(18)]).then(n.bind(null,387))),Kn.component("Projects",()=>Promise.all([n.e(0),n.e(35)]).then(n.bind(null,439))),Kn.component("Subscribe",()=>Promise.all([n.e(0),n.e(37)]).then(n.bind(null,440))),Kn.component("Sponsors",()=>Promise.all([n.e(0),n.e(36)]).then(n.bind(null,388))),Kn.component("Testimonial",()=>Promise.all([n.e(0),n.e(38)]).then(n.bind(null,389))),Kn.component("Testimonials",()=>Promise.all([n.e(0),n.e(39)]).then(n.bind(null,441))),Kn.component("Badge",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,390))),Kn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(6)]).then(n.bind(null,374))),Kn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,373)));n(234);var Es=[{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],As=[];class Ts extends class{constructor(){this.store=new Kn({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,t){Kn.set(this.store.state,e,t)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(Ts.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:ls,getAsyncComponent:cs,getVueComponent:us});var Ls={install(e){const t=new Ts;e.$vuepress=t,e.prototype.$vuepress=t}};function Rs(e,t){const n=t.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var Ms={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const t=this.pageKey||this.$parent.$page.key;return ps("pageKey",t),Kn.component(t)||Kn.component(t,ss(t)),Kn.component(t)?e(t):e("")}},Ns={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:t,slots:n})=>e("div",{class:["content__"+t.slotKey]},n()[t.slotKey])},Is={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Ds=(n(235),n(236),Object(Os.a)(Is,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Fs={functional:!0,render(e,{parent:t,children:n}){if(t._isMounted)return n;t.$once("hook:mounted",()=>{t.$forceUpdate()})}};Kn.config.productionTip=!1,Kn.use(Va),Kn.use(Ls),Kn.mixin(function(e,t,n=Kn){!function(e){e.locales&&Object.keys(e.locales).forEach(t=>{e.locales[t].path=t});Object.freeze(e)}(t),n.$vuepress.$set("siteData",t);const r=new(e(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((e,t)=>(t.startsWith("$")&&(e[t]=o[t].get),e),i),{computed:i}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let t,n;for(const r in e)"/"===r?n=e[r]:0===this.$page.path.indexOf(r)&&(t=e[r]);return t||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:t}=this.$page.frontmatter;if("string"==typeof t)return t;const n=this.$siteTitle,r=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const e=function(e){if(e){const t=e.filter(e=>"description"===e.name)[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,t){for(let n=0;nn||(e.hash?!Kn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((t,n,r)=>{if(Rs(e,t.path))r();else if(/(\/|\.html)$/.test(t.path))if(/\/$/.test(t.path)){const n=t.path.replace(/\/$/,"")+".html";Rs(e,n)?r(n):r()}else r();else{const n=t.path+"/",o=t.path+".html";Rs(e,o)?r(o):Rs(e,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Es.filter(e=>"function"==typeof e).map(t=>t({Vue:Kn,options:r,router:n,siteData:$s,isServer:e})))}catch(e){console.error(e)}return{app:new Kn(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},As.map(t=>e(t)))])})),router:n}}(!1).then(({app:e,router:t})=>{t.onReady(()=>{e.$mount("#app")})})}]); \ No newline at end of file diff --git a/code_of_conduct/index.html b/code_of_conduct/index.html index 5c7e67d71..d33ca08bb 100644 --- a/code_of_conduct/index.html +++ b/code_of_conduct/index.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/codegen.html b/codegen.html index efbaca874..61430be28 100644 --- a/codegen.html +++ b/codegen.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/coercion.html b/coercion.html index 059ac5c2f..2c62201cc 100644 --- a/coercion.html +++ b/coercion.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/components.html b/components.html index 008605d01..3828842a0 100644 --- a/components.html +++ b/components.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/contributing/index.html b/contributing/index.html index 63244ebce..9cff0bb6f 100644 --- a/contributing/index.html +++ b/contributing/index.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/faq.html b/faq.html index 0c0e40102..42477eaa4 100644 --- a/faq.html +++ b/faq.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/async-validation.html b/guide/async-validation.html index 7b37a6004..31d62de1b 100644 --- a/guide/async-validation.html +++ b/guide/async-validation.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/combining-schemas.html b/guide/combining-schemas.html index 5f391c4cb..3f6df74d0 100644 --- a/guide/combining-schemas.html +++ b/guide/combining-schemas.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/environments.html b/guide/environments.html index 0472a6ac1..0bcbd8e64 100644 --- a/guide/environments.html +++ b/guide/environments.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/formats.html b/guide/formats.html index 394c47165..79a9d9248 100644 --- a/guide/formats.html +++ b/guide/formats.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/getting-started.html b/guide/getting-started.html index 8a6d28655..7831e60de 100644 --- a/guide/getting-started.html +++ b/guide/getting-started.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/managing-schemas.html b/guide/managing-schemas.html index b16733d46..f4c3eb48b 100644 --- a/guide/managing-schemas.html +++ b/guide/managing-schemas.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/modifying-data.html b/guide/modifying-data.html index b3e46c91b..c3a202d5c 100644 --- a/guide/modifying-data.html +++ b/guide/modifying-data.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/schema-language.html b/guide/schema-language.html index 525659d2b..4107b175c 100644 --- a/guide/schema-language.html +++ b/guide/schema-language.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/typescript.html b/guide/typescript.html index 2c3d47ca1..d0ed64c80 100644 --- a/guide/typescript.html +++ b/guide/typescript.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/user-keywords.html b/guide/user-keywords.html index 42e88de96..56ae541d7 100644 --- a/guide/user-keywords.html +++ b/guide/user-keywords.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/guide/why-ajv.html b/guide/why-ajv.html index 2a68cdef3..e6dd95fd6 100644 --- a/guide/why-ajv.html +++ b/guide/why-ajv.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/index.html b/index.html index 08a552d87..f17ecf03d 100644 --- a/index.html +++ b/index.html @@ -18,8 +18,8 @@ - - + +
All news

# Contributors

Ajv is free to use and open-source that many developers contributed to. Join us!

epoberezkin - + spaced4ndy - + erikbrinkman - + jasoniangreen - + dependabot[bot] - + PBug90 - + blakeembrey - + sambauers - + gajus - + meirotstein - + Tyharo1 - + igor-savin-ht - + b4h0-c4t - + willfarrell - + boenrobot - + yume-chan - + GrahamLea - + franciscomorais - + asaid-0 - + domoritz - + imbstack - + pithu - + realityking - + efebarlas - - awlayton - + + brendo + pcwiek - + rehanvdm - + farrago - + SoAsEr - + kroky - + Delagen - + YChebotaev - + bhvngt - + t7yang - + teq0 - + wuweiss - + zekth - + egfx-notifications - - brendo - + + awlayton + HotelDon - + donaldpipowitch - + mummybot - + G-Rath - + HolgerJeromin - - Nonemoticoner - - MichaelDeBoey - - mattpolzin - + monkeywithacupcake - + ktrueda - - marshall007 - + lucassaid - - smithc10 - + + marshall007 + + mattpolzin + + MichaelDeBoey + + Nonemoticoner + + dzuremar + papb - + philsturgeon - + carlo-quinonez - + radekmie - + merlindorin - + Romakita - + rbuckton - + ryanmeador - + mighty1231 - + simon04 - + SirLich - + krenor - + stuartpb - + TIBCOeddie - + bearmini - + mxsgx - + m00s - + mbroadst - + MattiAstedrone - + MikeRalphson - + tyok - + MrJithil - + mychaelgo - + natflow - + nwoltman - + blottn - + nimerritt - + nicksrandall - + Noam3kCH - + eventlistener - + Opticsponge - + orgads - + jonganc - + jsdevel - + oldmud0 - + ossdev07 - + pskfyi - + qwertyforce - + rek - + sahilda - + schokotets - + superfaz - + tridium - + vlbee - + aladdin-add - + wyfo - + duxing - + anchnk - + ChALkeR - + not-an-aardvark - + thernstig - + TommyDew42 - + koba04 - + isTravis - + cvlab - + vargaeric - + villasv - + aristov - + billytrend - + byr-gdp - + cjancsar - + dfeufel - + ehmicky - + fpicalausa - + franrolando - + fridays - + + delavara + + smithc10 + caub - + dalcib - + dannyb648 - + dancasey - + rotu - + FunkyDck - + darcyparker - + daveisfera - + dsanders11 - + Delapouite - + dimitropoulos - + keyten - + thetric - + rubiagatra - + forivall - - ecwyne - + ahmdsolmn - + + alexanderjsx + Alexsey - + avanelli - + anslzo - + asprouse - + andyscott - + vixalien - + kulakowka - + wetneb - + vendeza - + benasher44 - + bradjones1 - + eventualbuddha - + cbrwflo - + cpillsbury - + ChuntaoLu - - delavara - + + jonasfj + jonathanGB - + jboavida - + justinpowers - + kapouer - + lehni - + platinumazure - + kpping - + laurens - + johanlelan - + leonardovillela - + LinusU - + alazyzombie - + jsbrain - + Eomm - + VIEWVIEWVIEW - + mduu - - dzuremar - + + ecwyne + EtaiG - + gj - + rgeerts - + garrows - + gurgunday - + hadrien-toma - + seriousme - + hans-kinnek - + handrews - + is2ei - + idangozlan - + ivansieder - + P0lip - + JamesJansson - + mrjgreen - + jrr - - jonasfj
- + diff --git a/json-schema.html b/json-schema.html index 31429e4dd..69d4cf829 100644 --- a/json-schema.html +++ b/json-schema.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/json-type-definition.html b/json-type-definition.html index ab0b07710..fdcf9e347 100644 --- a/json-type-definition.html +++ b/json-type-definition.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/keywords.html b/keywords.html index f7f1bc8f1..7f7750d6e 100644 --- a/keywords.html +++ b/keywords.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/license.html b/license.html index d9a964adc..f20a71a09 100644 --- a/license.html +++ b/license.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2020-08-14-mozilla-grant-openjs-foundation.html b/news/2020-08-14-mozilla-grant-openjs-foundation.html index cb1f44e21..b72cfa7ad 100644 --- a/news/2020-08-14-mozilla-grant-openjs-foundation.html +++ b/news/2020-08-14-mozilla-grant-openjs-foundation.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2020-12-15-ajv-version-7-released.html b/news/2020-12-15-ajv-version-7-released.html index cff00a50d..9f222ea5b 100644 --- a/news/2020-12-15-ajv-version-7-released.html +++ b/news/2020-12-15-ajv-version-7-released.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2021-03-07-ajv-supports-json-type-definition.html b/news/2021-03-07-ajv-supports-json-type-definition.html index 7318544ba..cb4720b88 100644 --- a/news/2021-03-07-ajv-supports-json-type-definition.html +++ b/news/2021-03-07-ajv-supports-json-type-definition.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2021-03-27-ajv-version-8-released.html b/news/2021-03-27-ajv-version-8-released.html index 285b0e1c3..1ce9e9b16 100644 --- a/news/2021-03-27-ajv-version-8-released.html +++ b/news/2021-03-27-ajv-version-8-released.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2021-04-24-ajv-online-event.html b/news/2021-04-24-ajv-online-event.html index 0184b21aa..04318368f 100644 --- a/news/2021-04-24-ajv-online-event.html +++ b/news/2021-04-24-ajv-online-event.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/2021-05-24-ajv-online-event-video.html b/news/2021-05-24-ajv-online-event-video.html index 841c28e80..dadfa89fd 100644 --- a/news/2021-05-24-ajv-online-event-video.html +++ b/news/2021-05-24-ajv-online-event-video.html @@ -18,8 +18,8 @@ - - + + - + diff --git a/news/2021-07-22-ajv-microsoft-foss-fund-award.html b/news/2021-07-22-ajv-microsoft-foss-fund-award.html index 010d75801..4e888718c 100644 --- a/news/2021-07-22-ajv-microsoft-foss-fund-award.html +++ b/news/2021-07-22-ajv-microsoft-foss-fund-award.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/news/index.html b/news/index.html index 71ff735d2..6e8c9c66e 100644 --- a/news/index.html +++ b/news/index.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/options.html b/options.html index f765be6e6..a1f93fb87 100644 --- a/options.html +++ b/options.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/ajv-cli.html b/packages/ajv-cli.html index 0be14cfb0..10b1eadae 100644 --- a/packages/ajv-cli.html +++ b/packages/ajv-cli.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/ajv-errors.html b/packages/ajv-errors.html index 561156ef2..c71bef7e5 100644 --- a/packages/ajv-errors.html +++ b/packages/ajv-errors.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/ajv-formats.html b/packages/ajv-formats.html index d0b676620..473f1c136 100644 --- a/packages/ajv-formats.html +++ b/packages/ajv-formats.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/ajv-i18n.html b/packages/ajv-i18n.html index fdd24a70d..fe61ee899 100644 --- a/packages/ajv-i18n.html +++ b/packages/ajv-i18n.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/ajv-keywords.html b/packages/ajv-keywords.html index 577f382c0..6edf995ab 100644 --- a/packages/ajv-keywords.html +++ b/packages/ajv-keywords.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/packages/index.html b/packages/index.html index a64827851..309a27d7d 100644 --- a/packages/index.html +++ b/packages/index.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/security.html b/security.html index 388eab73f..0106c1a44 100644 --- a/security.html +++ b/security.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/standalone.html b/standalone.html index 7fce1bd9c..2c80e15fb 100644 --- a/standalone.html +++ b/standalone.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/strict-mode.html b/strict-mode.html index 64ebf16b3..f34b78be1 100644 --- a/strict-mode.html +++ b/strict-mode.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/testimonials.html b/testimonials.html index 3f97127ac..c6581082b 100644 --- a/testimonials.html +++ b/testimonials.html @@ -18,8 +18,8 @@ - - + +
- + diff --git a/v6-to-v8-migration.html b/v6-to-v8-migration.html index d8b6d741e..7958048d6 100644 --- a/v6-to-v8-migration.html +++ b/v6-to-v8-migration.html @@ -18,8 +18,8 @@ - - + +