├── .github ├── images │ ├── logo.svg │ └── suretype-typeconv.svg └── workflows │ ├── branches.yml │ └── master.yml ├── .gitignore ├── .yarn ├── plugins │ └── @yarnpkg │ │ └── plugin-interactive-tools.cjs └── releases │ └── yarn-3.2.4.cjs ├── .yarnrc.yml ├── README.md ├── babel.config.cjs ├── benchmark └── index.ts ├── examples └── example1.ts ├── jest.config.js ├── lib ├── __snapshots__ │ ├── extract-json-schema.test.ts.snap │ └── index-nodejs.test.ts.snap ├── ajv-errors-browser.ts ├── ajv-errors-nodejs.ts ├── ajv-errors.ts ├── annotations.ts ├── api │ ├── index.test.ts │ └── index.ts ├── errors.test.ts ├── errors.ts ├── extract-json-schema.test.ts ├── extract-json-schema.ts ├── index-browser.ts ├── index-core.test.ts ├── index-core.ts ├── index-nodejs.test.ts ├── index-nodejs.ts ├── json-schema-browser.ts ├── json-schema-nodejs.ts ├── json-schema.ts ├── options.ts ├── tree-traverser.ts ├── types.ts ├── utils.test.ts ├── utils.ts ├── validation-error.ts ├── validation.ts └── validators │ ├── all-of │ ├── validator.test.ts │ └── validator.ts │ ├── any │ ├── validator.test.ts │ └── validator.ts │ ├── array-types.ts │ ├── array │ ├── validator.test.ts │ └── validator.ts │ ├── base │ ├── validator.test.ts │ └── validator.ts │ ├── boolean │ ├── validator.test.ts │ └── validator.ts │ ├── core │ ├── validator.test.ts │ └── validator.ts │ ├── functional.ts │ ├── if │ ├── validator.test.ts │ └── validator.ts │ ├── null │ ├── validator.test.ts │ └── validator.ts │ ├── number │ ├── validator.test.ts │ └── validator.ts │ ├── object-types.ts │ ├── object │ ├── validator.test.ts │ └── validator.ts │ ├── or │ ├── validator.test.ts │ └── validator.ts │ ├── raw │ ├── validator.test.ts │ └── validator.ts │ ├── recursive │ ├── validator.test.ts │ └── validator.ts │ ├── required │ ├── validator.test.ts │ └── validator.ts │ ├── string │ ├── types.ts │ ├── validator.test.ts │ └── validator.ts │ ├── tuple │ ├── validator.test.ts │ └── validator.ts │ ├── types.ts │ └── value │ ├── validator.test.ts │ └── validator.ts ├── package.json ├── tsconfig.json ├── tsconfig.prod.json ├── webpack ├── package.json ├── src │ └── index.ts ├── test │ └── browser.js ├── tsconfig.json └── webpack.config.js └── yarn.lock /.github/images/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.github/images/logo.svg -------------------------------------------------------------------------------- /.github/images/suretype-typeconv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.github/images/suretype-typeconv.svg -------------------------------------------------------------------------------- /.github/workflows/branches.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.github/workflows/branches.yml -------------------------------------------------------------------------------- /.github/workflows/master.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.github/workflows/master.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.gitignore -------------------------------------------------------------------------------- /.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs -------------------------------------------------------------------------------- /.yarn/releases/yarn-3.2.4.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.yarn/releases/yarn-3.2.4.cjs -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/.yarnrc.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/README.md -------------------------------------------------------------------------------- /babel.config.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/babel.config.cjs -------------------------------------------------------------------------------- /benchmark/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/benchmark/index.ts -------------------------------------------------------------------------------- /examples/example1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/examples/example1.ts -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/jest.config.js -------------------------------------------------------------------------------- /lib/__snapshots__/extract-json-schema.test.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/__snapshots__/extract-json-schema.test.ts.snap -------------------------------------------------------------------------------- /lib/__snapshots__/index-nodejs.test.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/__snapshots__/index-nodejs.test.ts.snap -------------------------------------------------------------------------------- /lib/ajv-errors-browser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/ajv-errors-browser.ts -------------------------------------------------------------------------------- /lib/ajv-errors-nodejs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/ajv-errors-nodejs.ts -------------------------------------------------------------------------------- /lib/ajv-errors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/ajv-errors.ts -------------------------------------------------------------------------------- /lib/annotations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/annotations.ts -------------------------------------------------------------------------------- /lib/api/index.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/api/index.test.ts -------------------------------------------------------------------------------- /lib/api/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/api/index.ts -------------------------------------------------------------------------------- /lib/errors.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/errors.test.ts -------------------------------------------------------------------------------- /lib/errors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/errors.ts -------------------------------------------------------------------------------- /lib/extract-json-schema.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/extract-json-schema.test.ts -------------------------------------------------------------------------------- /lib/extract-json-schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/extract-json-schema.ts -------------------------------------------------------------------------------- /lib/index-browser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/index-browser.ts -------------------------------------------------------------------------------- /lib/index-core.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/index-core.test.ts -------------------------------------------------------------------------------- /lib/index-core.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/index-core.ts -------------------------------------------------------------------------------- /lib/index-nodejs.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/index-nodejs.test.ts -------------------------------------------------------------------------------- /lib/index-nodejs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/index-nodejs.ts -------------------------------------------------------------------------------- /lib/json-schema-browser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/json-schema-browser.ts -------------------------------------------------------------------------------- /lib/json-schema-nodejs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/json-schema-nodejs.ts -------------------------------------------------------------------------------- /lib/json-schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/json-schema.ts -------------------------------------------------------------------------------- /lib/options.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/options.ts -------------------------------------------------------------------------------- /lib/tree-traverser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/tree-traverser.ts -------------------------------------------------------------------------------- /lib/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/types.ts -------------------------------------------------------------------------------- /lib/utils.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/utils.test.ts -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/utils.ts -------------------------------------------------------------------------------- /lib/validation-error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validation-error.ts -------------------------------------------------------------------------------- /lib/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validation.ts -------------------------------------------------------------------------------- /lib/validators/all-of/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/all-of/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/all-of/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/all-of/validator.ts -------------------------------------------------------------------------------- /lib/validators/any/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/any/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/any/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/any/validator.ts -------------------------------------------------------------------------------- /lib/validators/array-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/array-types.ts -------------------------------------------------------------------------------- /lib/validators/array/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/array/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/array/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/array/validator.ts -------------------------------------------------------------------------------- /lib/validators/base/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/base/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/base/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/base/validator.ts -------------------------------------------------------------------------------- /lib/validators/boolean/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/boolean/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/boolean/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/boolean/validator.ts -------------------------------------------------------------------------------- /lib/validators/core/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/core/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/core/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/core/validator.ts -------------------------------------------------------------------------------- /lib/validators/functional.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/functional.ts -------------------------------------------------------------------------------- /lib/validators/if/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/if/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/if/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/if/validator.ts -------------------------------------------------------------------------------- /lib/validators/null/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/null/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/null/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/null/validator.ts -------------------------------------------------------------------------------- /lib/validators/number/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/number/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/number/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/number/validator.ts -------------------------------------------------------------------------------- /lib/validators/object-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/object-types.ts -------------------------------------------------------------------------------- /lib/validators/object/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/object/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/object/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/object/validator.ts -------------------------------------------------------------------------------- /lib/validators/or/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/or/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/or/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/or/validator.ts -------------------------------------------------------------------------------- /lib/validators/raw/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/raw/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/raw/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/raw/validator.ts -------------------------------------------------------------------------------- /lib/validators/recursive/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/recursive/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/recursive/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/recursive/validator.ts -------------------------------------------------------------------------------- /lib/validators/required/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/required/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/required/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/required/validator.ts -------------------------------------------------------------------------------- /lib/validators/string/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/string/types.ts -------------------------------------------------------------------------------- /lib/validators/string/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/string/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/string/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/string/validator.ts -------------------------------------------------------------------------------- /lib/validators/tuple/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/tuple/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/tuple/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/tuple/validator.ts -------------------------------------------------------------------------------- /lib/validators/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/types.ts -------------------------------------------------------------------------------- /lib/validators/value/validator.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/value/validator.test.ts -------------------------------------------------------------------------------- /lib/validators/value/validator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/lib/validators/value/validator.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/package.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.prod.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/tsconfig.prod.json -------------------------------------------------------------------------------- /webpack/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/webpack/package.json -------------------------------------------------------------------------------- /webpack/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/webpack/src/index.ts -------------------------------------------------------------------------------- /webpack/test/browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/webpack/test/browser.js -------------------------------------------------------------------------------- /webpack/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/webpack/tsconfig.json -------------------------------------------------------------------------------- /webpack/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/webpack/webpack.config.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grantila/suretype/HEAD/yarn.lock --------------------------------------------------------------------------------