tpmjs/packages/tools/official/schema-infer
Ajax Davis 5c9f1a1d0a chore: update dependencies with compatibility fixes
- Update all packages to latest versions via pnpm update --latest
- Downgrade Prisma 7 to 6 (v7 requires schema migration)
- Downgrade Tailwind CSS 4 to 3 (v4 requires PostCSS migration)
- Downgrade Storybook 10 to 8 (addons not available in v10)
- Pin cheerio to 1.0.0-rc.12 via pnpm override (type exports changed)
- Fix AI SDK tool definitions: parameters -> inputSchema
- Fix cheerio types in extract-meta and table-extract tools
- Add explicit type annotations to tool execute functions
- Migrate biome config to v2.3.11 schema

All type-checks, tests, and builds pass.
2026-01-09 22:49:41 +10:00
..
src feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
CHANGELOG.md chore: version packages 2025-12-31 23:54:47 +10:00
package.json chore: update dependencies with compatibility fixes 2026-01-09 22:49:41 +10:00
README.md feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsconfig.json feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00
tsup.config.ts feat: add 100+ official TPMJS tools 2025-12-31 22:55:56 +10:00

@tpmjs/tools-schema-infer

Infer JSON Schema from sample data.

Installation

npm install @tpmjs/tools-schema-infer

Usage

import { schemaInferTool } from '@tpmjs/tools-schema-infer';

const samples = [
  { name: 'Alice', age: 25, email: 'alice@example.com' },
  { name: 'Bob', age: 30, email: 'bob@example.com' }
];

const result = await schemaInferTool.execute({ samples });

console.log(result.schema);
// => {
//   $schema: "http://json-schema.org/draft-04/schema#",
//   type: "object",
//   properties: {
//     name: { type: "string" },
//     age: { type: "number" },
//     email: { type: "string" }
//   }
// }

console.log(result.sampleCount);
// => 2

console.log(result.properties);
// => ["name", "age", "email"]

Options

// Mark all fields as required
const result = await schemaInferTool.execute({
  samples: [{ name: 'Alice', age: 25 }],
  options: { required: true }
});

// Disallow additional properties
const result = await schemaInferTool.execute({
  samples: [{ name: 'Alice' }],
  options: { additionalProperties: false }
});

Features

  • Automatic type detection: Infers types from sample values
  • Multiple samples: Combine multiple samples for comprehensive schemas
  • Required fields: Optionally mark all properties as required
  • Nested objects: Handles nested object structures
  • Arrays: Detects array types and item schemas
  • JSON Schema standard: Generates standard JSON Schema Draft-04

Use Cases

  • Generate schemas from API responses
  • Create validation schemas from sample data
  • Document data structures automatically
  • Bootstrap TypeScript types from JSON examples

License

MIT