拼多多砍价小程序源码流量主系列

作者:聚福 发表于:2025-02-17
<img align="right" alt="Ajv logo" width="160" src=https://download.csdn.net/download/m0_61505785/"https://ajv.js.org/images/ajv_logo.png"> # Ajv: Another JSON Schema Validator The fastest JSON Schema validator for Node.js and browser. Supports draft-04/06/07. [![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv) [![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv) [![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.0) [![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv) [![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master) [![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) [![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin) ## Ajv v7 beta is released [Ajv version 7.0.0-beta.0](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes: - to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](https://download.csdn.net/download/m0_61505785/docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements. - to make code injection from untrusted schemas impossible, [code generation](https://download.csdn.net/download/m0_61505785/docs/codegen.md) is fully re-written to be safe. - to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. - schemas are compiled to ES6 code (ES5 code generation is supported with an option). - to improve reliability and maintainability the code is migrated to TypeScript. **Please note**: - the support for JSON-Schema draft-04 is removed - if you have schemas using "id" attributes you have to replace them with "$id" (or continue using version 6 that will be supported until 02/28/2021). - all formats are separated to ajv-formats package - they have to be explicitely added if you use them. See [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details. To install the new version: ```bash npm install ajv@beta ``` See [Getting started with v7](https://github.com/ajv-validator/ajv/tree/v7-beta#usage) for code example. ## Mozilla MOSS grant and OpenJS Foundation [<img src=https://download.csdn.net/download/m0_61505785/"https://www.poberezkin.com/images/mozilla.png" width="240" height="68">](https://www.mozilla.org/en-US/moss/) &nbsp;&nbsp;&nbsp; [<img src=https://download.csdn.net/download/m0_61505785/"https://www.poberezkin.com/images/openjs.png" width="220" height="68">](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/) Ajv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04). Ajv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users. This [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details. I am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a "maintainer" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community. ## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin) Since I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant! Your continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released. Please sponsor Ajv via: - [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it) - [Ajv Open Collective️](https://opencollective.com/ajv) Thank you. #### Open Collective sponsors <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/individuals.svg?width=890"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/0/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/0/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/1/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/1/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/2/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/2/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/3/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/3/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/4/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/4/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/5/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/5/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/6/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/6/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/7/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/7/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/8/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/8/avatar.svg"></a> <a href=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/9/website"><img src=https://download.csdn.net/download/m0_61505785/"https://opencollective.com/ajv/organization/9/avatar.svg"></a> ## Using version 6 [JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published. [Ajv version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes). __Please note__: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance: ```javascript ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json')); ``` To use Ajv with draft-04 schemas in addition to explicitly adding meta-schema you also need to use option schemaId: ```javascript var ajv = new Ajv({schemaId: 'id'}); // If you want to use both draft-04 and draft-06/07 schemas: // var ajv = new Ajv({schemaId: 'auto'}); ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); ``` ## Contents - [Performance](#performance) - [Features](#features) - [Getting started](#getting-started) - [Frequently Asked Questions](https://github.com/ajv-validator/ajv/blob/master/FAQ.md) - [Using in browser](#using-in-browser) - [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) - [Command line interface](#command-line-interface) - Validation - [Keywords](#validation-keywords) - [Annotation keywords](#annotation-keywords) - [Formats](#formats) - [Combining schemas with $ref](#ref) - [$data reference](#data-reference) - NEW: [$merge and $patch keywords](#merge-and-patch-keywords) - [Defining custom keywords](#defining-custom-keywords) - [Asynchronous schema compilation](#asynchronous-schema-compilation) - [Asynchronous validation](#asynchronous-validation) - [Security considerations](#security-considerations) - [Security contact](#security-contact) - [Untrusted schemas](#untrusted-schemas) - [Circular references in objects](#circular-references-in-javascript-objects) - [Trusted schemas](#security-risks-of-trusted-schemas) - [ReDoS attack](#redos-attack) - Modifying data during validation - [Filtering

版权声明

本文系作者发表,未经许可,不得转载