@apollo-deploy/signal-schemas 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/definitions/common.d.ts +72 -0
- package/dist/definitions/common.d.ts.map +1 -0
- package/dist/definitions/common.js +95 -0
- package/dist/definitions/common.js.map +1 -0
- package/dist/definitions/deliverability/deliverability.schema.d.ts +98 -0
- package/dist/definitions/deliverability/deliverability.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/deliverability.schema.js +77 -0
- package/dist/definitions/deliverability/domain.schema.d.ts +23 -0
- package/dist/definitions/deliverability/domain.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/domain.schema.js +12 -0
- package/dist/definitions/deliverability/domain.schema.js.map +1 -0
- package/dist/definitions/deliverability/index.d.ts +4 -0
- package/dist/definitions/deliverability/index.d.ts.map +1 -0
- package/dist/definitions/deliverability/index.js +4 -0
- package/dist/definitions/deliverability/index.js.map +1 -0
- package/dist/definitions/deliverability/request.schema.d.ts +27 -0
- package/dist/definitions/deliverability/request.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/request.schema.js +17 -0
- package/dist/definitions/deliverability/request.schema.js.map +1 -0
- package/dist/definitions/deliverability/response.schema.d.ts +72 -0
- package/dist/definitions/deliverability/response.schema.d.ts.map +1 -0
- package/dist/definitions/deliverability/response.schema.js +37 -0
- package/dist/definitions/deliverability/response.schema.js.map +1 -0
- package/dist/definitions/deliverability/schemas.d.ts +91 -0
- package/dist/definitions/deliverability/schemas.d.ts.map +1 -0
- package/dist/definitions/deliverability/schemas.js +67 -0
- package/dist/definitions/domains/domain.schema.d.ts +160 -0
- package/dist/definitions/domains/domain.schema.d.ts.map +1 -0
- package/dist/definitions/domains/domain.schema.js +36 -0
- package/dist/definitions/domains/domain.schema.js.map +1 -0
- package/dist/definitions/domains/domains.schema.d.ts +668 -0
- package/dist/definitions/domains/domains.schema.d.ts.map +1 -0
- package/dist/definitions/domains/domains.schema.js +113 -0
- package/dist/definitions/domains/index.d.ts +4 -0
- package/dist/definitions/domains/index.d.ts.map +1 -0
- package/dist/definitions/domains/index.js +4 -0
- package/dist/definitions/domains/index.js.map +1 -0
- package/dist/definitions/domains/request.schema.d.ts +26 -0
- package/dist/definitions/domains/request.schema.d.ts.map +1 -0
- package/dist/definitions/domains/request.schema.js +21 -0
- package/dist/definitions/domains/request.schema.js.map +1 -0
- package/dist/definitions/domains/response.schema.d.ts +491 -0
- package/dist/definitions/domains/response.schema.d.ts.map +1 -0
- package/dist/definitions/domains/response.schema.js +24 -0
- package/dist/definitions/domains/response.schema.js.map +1 -0
- package/dist/definitions/domains/schemas.d.ts +545 -0
- package/dist/definitions/domains/schemas.d.ts.map +1 -0
- package/dist/definitions/domains/schemas.js +110 -0
- package/dist/definitions/emails/domain.schema.d.ts +20 -0
- package/dist/definitions/emails/domain.schema.d.ts.map +1 -0
- package/dist/definitions/emails/domain.schema.js +11 -0
- package/dist/definitions/emails/domain.schema.js.map +1 -0
- package/dist/definitions/emails/emails.schema.d.ts +230 -0
- package/dist/definitions/emails/emails.schema.d.ts.map +1 -0
- package/dist/definitions/emails/emails.schema.js +176 -0
- package/dist/definitions/emails/index.d.ts +4 -0
- package/dist/definitions/emails/index.d.ts.map +1 -0
- package/dist/definitions/emails/index.js +4 -0
- package/dist/definitions/emails/index.js.map +1 -0
- package/dist/definitions/emails/request.schema.d.ts +96 -0
- package/dist/definitions/emails/request.schema.d.ts.map +1 -0
- package/dist/definitions/emails/request.schema.js +65 -0
- package/dist/definitions/emails/request.schema.js.map +1 -0
- package/dist/definitions/emails/response.schema.d.ts +141 -0
- package/dist/definitions/emails/response.schema.d.ts.map +1 -0
- package/dist/definitions/emails/response.schema.js +54 -0
- package/dist/definitions/emails/response.schema.js.map +1 -0
- package/dist/definitions/emails/schemas.d.ts +284 -0
- package/dist/definitions/emails/schemas.d.ts.map +1 -0
- package/dist/definitions/emails/schemas.js +227 -0
- package/dist/definitions/health/domain.schema.d.ts +11 -0
- package/dist/definitions/health/domain.schema.d.ts.map +1 -0
- package/dist/definitions/health/domain.schema.js +8 -0
- package/dist/definitions/health/domain.schema.js.map +1 -0
- package/dist/definitions/health/health.schema.d.ts +27 -0
- package/dist/definitions/health/health.schema.d.ts.map +1 -0
- package/dist/definitions/health/health.schema.js +23 -0
- package/dist/definitions/health/index.d.ts +3 -0
- package/dist/definitions/health/index.d.ts.map +1 -0
- package/dist/definitions/health/index.js +3 -0
- package/dist/definitions/health/index.js.map +1 -0
- package/dist/definitions/health/request.schema.d.ts +8 -0
- package/dist/definitions/health/request.schema.d.ts.map +1 -0
- package/dist/definitions/health/request.schema.js +8 -0
- package/dist/definitions/health/request.schema.js.map +1 -0
- package/dist/definitions/health/response.schema.d.ts +26 -0
- package/dist/definitions/health/response.schema.d.ts.map +1 -0
- package/dist/definitions/health/response.schema.js +16 -0
- package/dist/definitions/health/response.schema.js.map +1 -0
- package/dist/definitions/health/schemas.d.ts +30 -0
- package/dist/definitions/health/schemas.d.ts.map +1 -0
- package/dist/definitions/health/schemas.js +23 -0
- package/dist/definitions/index.d.ts +25 -0
- package/dist/definitions/index.d.ts.map +1 -0
- package/dist/definitions/index.js +25 -0
- package/dist/definitions/index.js.map +1 -0
- package/dist/definitions/projects/domain.schema.d.ts +42 -0
- package/dist/definitions/projects/domain.schema.d.ts.map +1 -0
- package/dist/definitions/projects/domain.schema.js +46 -0
- package/dist/definitions/projects/domain.schema.js.map +1 -0
- package/dist/definitions/projects/index.d.ts +4 -0
- package/dist/definitions/projects/index.d.ts.map +1 -0
- package/dist/definitions/projects/index.js +4 -0
- package/dist/definitions/projects/index.js.map +1 -0
- package/dist/definitions/projects/projects.schema.d.ts +8 -0
- package/dist/definitions/projects/projects.schema.d.ts.map +1 -0
- package/dist/definitions/projects/projects.schema.js +23 -0
- package/dist/definitions/projects/request.schema.d.ts +41 -0
- package/dist/definitions/projects/request.schema.d.ts.map +1 -0
- package/dist/definitions/projects/request.schema.js +43 -0
- package/dist/definitions/projects/request.schema.js.map +1 -0
- package/dist/definitions/projects/response.schema.d.ts +79 -0
- package/dist/definitions/projects/response.schema.d.ts.map +1 -0
- package/dist/definitions/projects/response.schema.js +43 -0
- package/dist/definitions/projects/response.schema.js.map +1 -0
- package/dist/definitions/projects/schemas.d.ts +114 -0
- package/dist/definitions/projects/schemas.d.ts.map +1 -0
- package/dist/definitions/projects/schemas.js +87 -0
- package/dist/definitions/signal-email/domain.schema.d.ts +135 -0
- package/dist/definitions/signal-email/domain.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/domain.schema.js +130 -0
- package/dist/definitions/signal-email/domain.schema.js.map +1 -0
- package/dist/definitions/signal-email/index.d.ts +23 -0
- package/dist/definitions/signal-email/index.d.ts.map +1 -0
- package/dist/definitions/signal-email/index.js +26 -0
- package/dist/definitions/signal-email/index.js.map +1 -0
- package/dist/definitions/signal-email/request.schema.d.ts +123 -0
- package/dist/definitions/signal-email/request.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/request.schema.js +201 -0
- package/dist/definitions/signal-email/request.schema.js.map +1 -0
- package/dist/definitions/signal-email/response.schema.d.ts +73 -0
- package/dist/definitions/signal-email/response.schema.d.ts.map +1 -0
- package/dist/definitions/signal-email/response.schema.js +83 -0
- package/dist/definitions/signal-email/response.schema.js.map +1 -0
- package/dist/definitions/signal-projects/domain.schema.d.ts +227 -0
- package/dist/definitions/signal-projects/domain.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/domain.schema.js +230 -0
- package/dist/definitions/signal-projects/domain.schema.js.map +1 -0
- package/dist/definitions/signal-projects/index.d.ts +16 -0
- package/dist/definitions/signal-projects/index.d.ts.map +1 -0
- package/dist/definitions/signal-projects/index.js +16 -0
- package/dist/definitions/signal-projects/index.js.map +1 -0
- package/dist/definitions/signal-projects/request.schema.d.ts +254 -0
- package/dist/definitions/signal-projects/request.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/request.schema.js +213 -0
- package/dist/definitions/signal-projects/request.schema.js.map +1 -0
- package/dist/definitions/signal-projects/response.schema.d.ts +615 -0
- package/dist/definitions/signal-projects/response.schema.d.ts.map +1 -0
- package/dist/definitions/signal-projects/response.schema.js +267 -0
- package/dist/definitions/signal-projects/response.schema.js.map +1 -0
- package/dist/definitions/suppressions/domain.schema.d.ts +13 -0
- package/dist/definitions/suppressions/domain.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/domain.schema.js +8 -0
- package/dist/definitions/suppressions/domain.schema.js.map +1 -0
- package/dist/definitions/suppressions/index.d.ts +4 -0
- package/dist/definitions/suppressions/index.d.ts.map +1 -0
- package/dist/definitions/suppressions/index.js +4 -0
- package/dist/definitions/suppressions/index.js.map +1 -0
- package/dist/definitions/suppressions/request.schema.d.ts +39 -0
- package/dist/definitions/suppressions/request.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/request.schema.js +27 -0
- package/dist/definitions/suppressions/request.schema.js.map +1 -0
- package/dist/definitions/suppressions/response.schema.d.ts +42 -0
- package/dist/definitions/suppressions/response.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/response.schema.js +18 -0
- package/dist/definitions/suppressions/response.schema.js.map +1 -0
- package/dist/definitions/suppressions/schemas.d.ts +90 -0
- package/dist/definitions/suppressions/schemas.d.ts.map +1 -0
- package/dist/definitions/suppressions/schemas.js +68 -0
- package/dist/definitions/suppressions/suppressions.schema.d.ts +79 -0
- package/dist/definitions/suppressions/suppressions.schema.d.ts.map +1 -0
- package/dist/definitions/suppressions/suppressions.schema.js +63 -0
- package/dist/definitions/templates/domain.schema.d.ts +11 -0
- package/dist/definitions/templates/domain.schema.d.ts.map +1 -0
- package/dist/definitions/templates/domain.schema.js +14 -0
- package/dist/definitions/templates/domain.schema.js.map +1 -0
- package/dist/definitions/templates/index.d.ts +4 -0
- package/dist/definitions/templates/index.d.ts.map +1 -0
- package/dist/definitions/templates/index.js +4 -0
- package/dist/definitions/templates/index.js.map +1 -0
- package/dist/definitions/templates/request.schema.d.ts +33 -0
- package/dist/definitions/templates/request.schema.d.ts.map +1 -0
- package/dist/definitions/templates/request.schema.js +32 -0
- package/dist/definitions/templates/request.schema.js.map +1 -0
- package/dist/definitions/templates/response.schema.d.ts +91 -0
- package/dist/definitions/templates/response.schema.d.ts.map +1 -0
- package/dist/definitions/templates/response.schema.js +49 -0
- package/dist/definitions/templates/response.schema.js.map +1 -0
- package/dist/definitions/templates/schemas.d.ts +113 -0
- package/dist/definitions/templates/schemas.d.ts.map +1 -0
- package/dist/definitions/templates/schemas.js +80 -0
- package/dist/definitions/usage/domain.schema.d.ts +60 -0
- package/dist/definitions/usage/domain.schema.d.ts.map +1 -0
- package/dist/definitions/usage/domain.schema.js +23 -0
- package/dist/definitions/usage/domain.schema.js.map +1 -0
- package/dist/definitions/usage/index.d.ts +4 -0
- package/dist/definitions/usage/index.d.ts.map +1 -0
- package/dist/definitions/usage/index.js +4 -0
- package/dist/definitions/usage/index.js.map +1 -0
- package/dist/definitions/usage/request.schema.d.ts +12 -0
- package/dist/definitions/usage/request.schema.d.ts.map +1 -0
- package/dist/definitions/usage/request.schema.js +13 -0
- package/dist/definitions/usage/request.schema.js.map +1 -0
- package/dist/definitions/usage/response.schema.d.ts +76 -0
- package/dist/definitions/usage/response.schema.d.ts.map +1 -0
- package/dist/definitions/usage/response.schema.js +22 -0
- package/dist/definitions/usage/response.schema.js.map +1 -0
- package/dist/definitions/usage/schemas.d.ts +156 -0
- package/dist/definitions/usage/schemas.d.ts.map +1 -0
- package/dist/definitions/usage/schemas.js +83 -0
- package/dist/definitions/usage/usage.schema.d.ts +140 -0
- package/dist/definitions/usage/usage.schema.d.ts.map +1 -0
- package/dist/definitions/usage/usage.schema.js +77 -0
- package/dist/definitions/webhooks/domain.schema.d.ts +26 -0
- package/dist/definitions/webhooks/domain.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/domain.schema.js +14 -0
- package/dist/definitions/webhooks/domain.schema.js.map +1 -0
- package/dist/definitions/webhooks/index.d.ts +4 -0
- package/dist/definitions/webhooks/index.d.ts.map +1 -0
- package/dist/definitions/webhooks/index.js +4 -0
- package/dist/definitions/webhooks/index.js.map +1 -0
- package/dist/definitions/webhooks/request.schema.d.ts +64 -0
- package/dist/definitions/webhooks/request.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/request.schema.js +32 -0
- package/dist/definitions/webhooks/request.schema.js.map +1 -0
- package/dist/definitions/webhooks/response.schema.d.ts +76 -0
- package/dist/definitions/webhooks/response.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/response.schema.js +27 -0
- package/dist/definitions/webhooks/response.schema.js.map +1 -0
- package/dist/definitions/webhooks/schemas.d.ts +145 -0
- package/dist/definitions/webhooks/schemas.d.ts.map +1 -0
- package/dist/definitions/webhooks/schemas.js +97 -0
- package/dist/definitions/webhooks/webhooks.schema.d.ts +152 -0
- package/dist/definitions/webhooks/webhooks.schema.d.ts.map +1 -0
- package/dist/definitions/webhooks/webhooks.schema.js +96 -0
- package/dist/generators/generate-schemas.d.ts +10 -0
- package/dist/generators/generate-schemas.d.ts.map +1 -0
- package/dist/generators/generate-schemas.js +119 -0
- package/dist/generators/generate-schemas.js.map +1 -0
- package/dist/generators/index.d.ts +8 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +8 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/register-global-registry.d.ts +14 -0
- package/dist/generators/register-global-registry.d.ts.map +1 -0
- package/dist/generators/register-global-registry.js +516 -0
- package/dist/generators/register-global-registry.js.map +1 -0
- package/dist/generators/zod-to-json-schema.d.ts +64 -0
- package/dist/generators/zod-to-json-schema.d.ts.map +1 -0
- package/dist/generators/zod-to-json-schema.js +300 -0
- package/dist/generators/zod-to-json-schema.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod to JSON Schema Generator
|
|
3
|
+
*
|
|
4
|
+
* Converts Zod schemas to JSON Schema format for cross-language type definitions.
|
|
5
|
+
* This enables non-TypeScript services (Zig, Rust, Go) to consume the same
|
|
6
|
+
* type definitions as TypeScript services.
|
|
7
|
+
*
|
|
8
|
+
* Note: This is a custom implementation that works with Zod 4, as the
|
|
9
|
+
* zod-to-json-schema library doesn't fully support Zod 4 yet.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
/**
|
|
13
|
+
* JSON Schema type
|
|
14
|
+
*/
|
|
15
|
+
export type JsonSchemaObject = Record<string, unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* Options for JSON Schema generation
|
|
18
|
+
*/
|
|
19
|
+
export interface GeneratorOptions {
|
|
20
|
+
/** Name of the schema (used as $id) */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Optional description for the schema */
|
|
23
|
+
description?: string;
|
|
24
|
+
/** Whether to include $schema property */
|
|
25
|
+
includeSchema?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of JSON Schema generation
|
|
29
|
+
*/
|
|
30
|
+
export interface GeneratedSchema {
|
|
31
|
+
/** The generated JSON Schema */
|
|
32
|
+
schema: JsonSchemaObject;
|
|
33
|
+
/** The schema name */
|
|
34
|
+
name: string;
|
|
35
|
+
/** JSON string representation */
|
|
36
|
+
json: string;
|
|
37
|
+
}
|
|
38
|
+
type ZodSchemaInput = z.ZodType<any>;
|
|
39
|
+
/**
|
|
40
|
+
* Convert a Zod schema to JSON Schema format
|
|
41
|
+
*
|
|
42
|
+
* @param zodSchema - The Zod schema to convert
|
|
43
|
+
* @param options - Generation options
|
|
44
|
+
* @returns Generated JSON Schema with metadata
|
|
45
|
+
*/
|
|
46
|
+
export declare function convertToJsonSchema(zodSchema: ZodSchemaInput, options: GeneratorOptions): GeneratedSchema;
|
|
47
|
+
/**
|
|
48
|
+
* Batch convert multiple Zod schemas to JSON Schema format
|
|
49
|
+
*
|
|
50
|
+
* @param schemas - Map of schema name to Zod schema
|
|
51
|
+
* @param baseOptions - Base options applied to all schemas
|
|
52
|
+
* @returns Map of schema name to generated schema
|
|
53
|
+
*/
|
|
54
|
+
export declare function convertMultipleToJsonSchema(schemas: Record<string, ZodSchemaInput>, baseOptions?: Partial<Omit<GeneratorOptions, 'name'>>): Map<string, GeneratedSchema>;
|
|
55
|
+
/**
|
|
56
|
+
* Create a combined JSON Schema document with multiple definitions
|
|
57
|
+
*
|
|
58
|
+
* @param schemas - Map of schema name to Zod schema
|
|
59
|
+
* @param rootName - Name for the root schema document
|
|
60
|
+
* @returns Combined JSON Schema with all definitions
|
|
61
|
+
*/
|
|
62
|
+
export declare function createCombinedSchema(schemas: Record<string, ZodSchemaInput>, rootName: string): GeneratedSchema;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=zod-to-json-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-to-json-schema.d.ts","sourceRoot":"","sources":["../../src/generators/zod-to-json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAID,KAAK,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,gBAAgB,GACxB,eAAe,CAkBjB;AA8RD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,GACpD,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAY9B;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvC,QAAQ,EAAE,MAAM,GACf,eAAe,CAkBjB"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod to JSON Schema Generator
|
|
3
|
+
*
|
|
4
|
+
* Converts Zod schemas to JSON Schema format for cross-language type definitions.
|
|
5
|
+
* This enables non-TypeScript services (Zig, Rust, Go) to consume the same
|
|
6
|
+
* type definitions as TypeScript services.
|
|
7
|
+
*
|
|
8
|
+
* Note: This is a custom implementation that works with Zod 4, as the
|
|
9
|
+
* zod-to-json-schema library doesn't fully support Zod 4 yet.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
/**
|
|
13
|
+
* Convert a Zod schema to JSON Schema format
|
|
14
|
+
*
|
|
15
|
+
* @param zodSchema - The Zod schema to convert
|
|
16
|
+
* @param options - Generation options
|
|
17
|
+
* @returns Generated JSON Schema with metadata
|
|
18
|
+
*/
|
|
19
|
+
export function convertToJsonSchema(zodSchema, options) {
|
|
20
|
+
const { name, description, includeSchema = true } = options;
|
|
21
|
+
const schema = zodToJsonSchemaInternal(zodSchema);
|
|
22
|
+
// Add metadata
|
|
23
|
+
const enrichedSchema = {
|
|
24
|
+
...(includeSchema && { $schema: 'http://json-schema.org/draft-07/schema#' }),
|
|
25
|
+
$id: name,
|
|
26
|
+
...(description && { description }),
|
|
27
|
+
...schema,
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
schema: enrichedSchema,
|
|
31
|
+
name,
|
|
32
|
+
json: JSON.stringify(enrichedSchema, null, 2),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Internal function to convert Zod schema to JSON Schema
|
|
37
|
+
*/
|
|
38
|
+
function zodToJsonSchemaInternal(schema) {
|
|
39
|
+
// Get the schema definition - use any to handle Zod 4 internal types
|
|
40
|
+
const def = schema._zod?.def ?? schema._def;
|
|
41
|
+
if (!def) {
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
const typeName = def.typeName ?? def.type;
|
|
45
|
+
switch (typeName) {
|
|
46
|
+
case 'ZodString':
|
|
47
|
+
case 'string':
|
|
48
|
+
return convertString(def);
|
|
49
|
+
case 'ZodNumber':
|
|
50
|
+
case 'number':
|
|
51
|
+
return convertNumber(def);
|
|
52
|
+
case 'ZodBoolean':
|
|
53
|
+
case 'boolean':
|
|
54
|
+
return { type: 'boolean' };
|
|
55
|
+
case 'ZodArray':
|
|
56
|
+
case 'array':
|
|
57
|
+
return convertArray(def);
|
|
58
|
+
case 'ZodObject':
|
|
59
|
+
case 'object':
|
|
60
|
+
return convertObject(def);
|
|
61
|
+
case 'ZodEnum':
|
|
62
|
+
case 'enum':
|
|
63
|
+
return convertEnum(def);
|
|
64
|
+
case 'ZodUnion':
|
|
65
|
+
case 'union':
|
|
66
|
+
return convertUnion(def);
|
|
67
|
+
case 'ZodOptional':
|
|
68
|
+
case 'optional':
|
|
69
|
+
return zodToJsonSchemaInternal(def.innerType ?? def.inner);
|
|
70
|
+
case 'ZodNullable':
|
|
71
|
+
case 'nullable':
|
|
72
|
+
return convertNullable(def);
|
|
73
|
+
case 'ZodDefault':
|
|
74
|
+
case 'default':
|
|
75
|
+
return convertDefault(def);
|
|
76
|
+
case 'ZodRecord':
|
|
77
|
+
case 'record':
|
|
78
|
+
return convertRecord(def);
|
|
79
|
+
case 'ZodLiteral':
|
|
80
|
+
case 'literal':
|
|
81
|
+
return convertLiteral(def);
|
|
82
|
+
case 'ZodDate':
|
|
83
|
+
case 'date':
|
|
84
|
+
return { type: 'string', format: 'date-time' };
|
|
85
|
+
case 'ZodAny':
|
|
86
|
+
case 'any':
|
|
87
|
+
return {};
|
|
88
|
+
case 'ZodUnknown':
|
|
89
|
+
case 'unknown':
|
|
90
|
+
return {};
|
|
91
|
+
case 'ZodNull':
|
|
92
|
+
case 'null':
|
|
93
|
+
return { type: 'null' };
|
|
94
|
+
case 'ZodUndefined':
|
|
95
|
+
case 'undefined':
|
|
96
|
+
return {};
|
|
97
|
+
case 'ZodEffects':
|
|
98
|
+
case 'effects':
|
|
99
|
+
// For effects (transforms, refinements), use the inner schema
|
|
100
|
+
return zodToJsonSchemaInternal(def.schema ?? def.inner);
|
|
101
|
+
default:
|
|
102
|
+
console.warn(`Unknown Zod type: ${typeName}`);
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function convertString(def) {
|
|
107
|
+
const result = { type: 'string' };
|
|
108
|
+
// Handle checks array (Zod 4 style)
|
|
109
|
+
const checks = (def.checks ?? []);
|
|
110
|
+
for (const check of checks) {
|
|
111
|
+
switch (check.kind) {
|
|
112
|
+
case 'min':
|
|
113
|
+
result.minLength = check.value;
|
|
114
|
+
break;
|
|
115
|
+
case 'max':
|
|
116
|
+
result.maxLength = check.value;
|
|
117
|
+
break;
|
|
118
|
+
case 'email':
|
|
119
|
+
result.format = 'email';
|
|
120
|
+
break;
|
|
121
|
+
case 'url':
|
|
122
|
+
result.format = 'uri';
|
|
123
|
+
break;
|
|
124
|
+
case 'uuid':
|
|
125
|
+
result.format = 'uuid';
|
|
126
|
+
break;
|
|
127
|
+
case 'datetime':
|
|
128
|
+
result.format = 'date-time';
|
|
129
|
+
break;
|
|
130
|
+
case 'regex':
|
|
131
|
+
result.pattern = check.value.source;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
function convertNumber(def) {
|
|
138
|
+
const checks = (def.checks ?? []);
|
|
139
|
+
const isInt = checks.some((c) => c.kind === 'int');
|
|
140
|
+
const result = { type: isInt ? 'integer' : 'number' };
|
|
141
|
+
for (const check of checks) {
|
|
142
|
+
switch (check.kind) {
|
|
143
|
+
case 'min':
|
|
144
|
+
result.minimum = check.value;
|
|
145
|
+
break;
|
|
146
|
+
case 'max':
|
|
147
|
+
result.maximum = check.value;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
function convertArray(def) {
|
|
154
|
+
// Zod 4 uses 'element' for the inner type
|
|
155
|
+
const innerType = def.element ?? def.type;
|
|
156
|
+
const result = {
|
|
157
|
+
type: 'array',
|
|
158
|
+
items: innerType ? zodToJsonSchemaInternal(innerType) : {},
|
|
159
|
+
};
|
|
160
|
+
// Handle min/max length checks
|
|
161
|
+
const checks = def.checks ?? [];
|
|
162
|
+
for (const check of checks) {
|
|
163
|
+
if (check.kind === 'min') {
|
|
164
|
+
result.minItems = check.value;
|
|
165
|
+
}
|
|
166
|
+
if (check.kind === 'max') {
|
|
167
|
+
result.maxItems = check.value;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Also check for direct minLength/maxLength properties
|
|
171
|
+
if (def.minLength?.value) {
|
|
172
|
+
result.minItems = def.minLength.value;
|
|
173
|
+
}
|
|
174
|
+
if (def.maxLength?.value) {
|
|
175
|
+
result.maxItems = def.maxLength.value;
|
|
176
|
+
}
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
function convertObject(def) {
|
|
180
|
+
const shape = (def.shape ?? {});
|
|
181
|
+
const properties = {};
|
|
182
|
+
const required = [];
|
|
183
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
184
|
+
properties[key] = zodToJsonSchemaInternal(value);
|
|
185
|
+
// Check if field is required (not optional)
|
|
186
|
+
const valueDef = value._zod?.def ?? value._def;
|
|
187
|
+
const isOptional = valueDef?.typeName === 'ZodOptional' ||
|
|
188
|
+
valueDef?.typeName === 'ZodDefault' ||
|
|
189
|
+
valueDef?.type === 'optional' ||
|
|
190
|
+
valueDef?.type === 'default';
|
|
191
|
+
if (!isOptional) {
|
|
192
|
+
required.push(key);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const result = {
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties,
|
|
198
|
+
};
|
|
199
|
+
if (required.length > 0) {
|
|
200
|
+
result.required = required;
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
function convertEnum(def) {
|
|
205
|
+
// Zod 4 stores enum values differently
|
|
206
|
+
let values = def.values ?? def.entries;
|
|
207
|
+
// If values is an object (Zod 4 style), extract the values
|
|
208
|
+
if (values && typeof values === 'object' && !Array.isArray(values)) {
|
|
209
|
+
values = Object.values(values);
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
type: 'string',
|
|
213
|
+
enum: values,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
function convertUnion(def) {
|
|
217
|
+
const options = (def.options ?? []);
|
|
218
|
+
return {
|
|
219
|
+
oneOf: options.map((opt) => zodToJsonSchemaInternal(opt)),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
function convertNullable(def) {
|
|
223
|
+
const innerSchema = zodToJsonSchemaInternal((def.innerType ?? def.inner));
|
|
224
|
+
return {
|
|
225
|
+
oneOf: [innerSchema, { type: 'null' }],
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function convertDefault(def) {
|
|
229
|
+
const innerSchema = zodToJsonSchemaInternal((def.innerType ?? def.inner));
|
|
230
|
+
const defaultValue = def.defaultValue;
|
|
231
|
+
if (defaultValue !== undefined) {
|
|
232
|
+
innerSchema.default =
|
|
233
|
+
typeof defaultValue === 'function' ? defaultValue() : defaultValue;
|
|
234
|
+
}
|
|
235
|
+
return innerSchema;
|
|
236
|
+
}
|
|
237
|
+
function convertRecord(def) {
|
|
238
|
+
const valueType = def.valueType ?? def.value;
|
|
239
|
+
return {
|
|
240
|
+
type: 'object',
|
|
241
|
+
additionalProperties: valueType
|
|
242
|
+
? zodToJsonSchemaInternal(valueType)
|
|
243
|
+
: true,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function convertLiteral(def) {
|
|
247
|
+
const value = def.value;
|
|
248
|
+
if (typeof value === 'string') {
|
|
249
|
+
return { type: 'string', const: value };
|
|
250
|
+
}
|
|
251
|
+
if (typeof value === 'number') {
|
|
252
|
+
return { type: 'number', const: value };
|
|
253
|
+
}
|
|
254
|
+
if (typeof value === 'boolean') {
|
|
255
|
+
return { type: 'boolean', const: value };
|
|
256
|
+
}
|
|
257
|
+
return { const: value };
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Batch convert multiple Zod schemas to JSON Schema format
|
|
261
|
+
*
|
|
262
|
+
* @param schemas - Map of schema name to Zod schema
|
|
263
|
+
* @param baseOptions - Base options applied to all schemas
|
|
264
|
+
* @returns Map of schema name to generated schema
|
|
265
|
+
*/
|
|
266
|
+
export function convertMultipleToJsonSchema(schemas, baseOptions) {
|
|
267
|
+
const results = new Map();
|
|
268
|
+
for (const [name, zodSchema] of Object.entries(schemas)) {
|
|
269
|
+
const result = convertToJsonSchema(zodSchema, {
|
|
270
|
+
...baseOptions,
|
|
271
|
+
name,
|
|
272
|
+
});
|
|
273
|
+
results.set(name, result);
|
|
274
|
+
}
|
|
275
|
+
return results;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Create a combined JSON Schema document with multiple definitions
|
|
279
|
+
*
|
|
280
|
+
* @param schemas - Map of schema name to Zod schema
|
|
281
|
+
* @param rootName - Name for the root schema document
|
|
282
|
+
* @returns Combined JSON Schema with all definitions
|
|
283
|
+
*/
|
|
284
|
+
export function createCombinedSchema(schemas, rootName) {
|
|
285
|
+
const definitions = {};
|
|
286
|
+
for (const [name, zodSchema] of Object.entries(schemas)) {
|
|
287
|
+
definitions[name] = zodToJsonSchemaInternal(zodSchema);
|
|
288
|
+
}
|
|
289
|
+
const combinedSchema = {
|
|
290
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
291
|
+
$id: rootName,
|
|
292
|
+
definitions,
|
|
293
|
+
};
|
|
294
|
+
return {
|
|
295
|
+
schema: combinedSchema,
|
|
296
|
+
name: rootName,
|
|
297
|
+
json: JSON.stringify(combinedSchema, null, 2),
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
//# sourceMappingURL=zod-to-json-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-to-json-schema.js","sourceRoot":"","sources":["../../src/generators/zod-to-json-schema.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Zod to JSON Schema Generator\n *\n * Converts Zod schemas to JSON Schema format for cross-language type definitions.\n * This enables non-TypeScript services (Zig, Rust, Go) to consume the same\n * type definitions as TypeScript services.\n *\n * Note: This is a custom implementation that works with Zod 4, as the\n * zod-to-json-schema library doesn't fully support Zod 4 yet.\n */\n\nimport { z } from 'zod';\n\n/**\n * JSON Schema type\n */\nexport type JsonSchemaObject = Record<string, unknown>;\n\n/**\n * Options for JSON Schema generation\n */\nexport interface GeneratorOptions {\n /** Name of the schema (used as $id) */\n name: string;\n /** Optional description for the schema */\n description?: string;\n /** Whether to include $schema property */\n includeSchema?: boolean;\n}\n\n/**\n * Result of JSON Schema generation\n */\nexport interface GeneratedSchema {\n /** The generated JSON Schema */\n schema: JsonSchemaObject;\n /** The schema name */\n name: string;\n /** JSON string representation */\n json: string;\n}\n\n// Type alias for Zod schema input\n \ntype ZodSchemaInput = z.ZodType<any>;\n\n/**\n * Convert a Zod schema to JSON Schema format\n *\n * @param zodSchema - The Zod schema to convert\n * @param options - Generation options\n * @returns Generated JSON Schema with metadata\n */\nexport function convertToJsonSchema(\n zodSchema: ZodSchemaInput,\n options: GeneratorOptions\n): GeneratedSchema {\n const { name, description, includeSchema = true } = options;\n\n const schema = zodToJsonSchemaInternal(zodSchema);\n\n // Add metadata\n const enrichedSchema: JsonSchemaObject = {\n ...(includeSchema && { $schema: 'http://json-schema.org/draft-07/schema#' }),\n $id: name,\n ...(description && { description }),\n ...schema,\n };\n\n return {\n schema: enrichedSchema,\n name,\n json: JSON.stringify(enrichedSchema, null, 2),\n };\n}\n\n/**\n * Internal function to convert Zod schema to JSON Schema\n */\nfunction zodToJsonSchemaInternal(schema: ZodSchemaInput): JsonSchemaObject {\n // Get the schema definition - use any to handle Zod 4 internal types\n \n const def: any = (schema as any)._zod?.def ?? (schema as any)._def;\n\n if (!def) {\n return {};\n }\n\n const typeName = def.typeName ?? def.type;\n\n switch (typeName) {\n case 'ZodString':\n case 'string':\n return convertString(def);\n\n case 'ZodNumber':\n case 'number':\n return convertNumber(def);\n\n case 'ZodBoolean':\n case 'boolean':\n return { type: 'boolean' };\n\n case 'ZodArray':\n case 'array':\n return convertArray(def);\n\n case 'ZodObject':\n case 'object':\n return convertObject(def);\n\n case 'ZodEnum':\n case 'enum':\n return convertEnum(def);\n\n case 'ZodUnion':\n case 'union':\n return convertUnion(def);\n\n case 'ZodOptional':\n case 'optional':\n return zodToJsonSchemaInternal(def.innerType ?? def.inner);\n\n case 'ZodNullable':\n case 'nullable':\n return convertNullable(def);\n\n case 'ZodDefault':\n case 'default':\n return convertDefault(def);\n\n case 'ZodRecord':\n case 'record':\n return convertRecord(def);\n\n case 'ZodLiteral':\n case 'literal':\n return convertLiteral(def);\n\n case 'ZodDate':\n case 'date':\n return { type: 'string', format: 'date-time' };\n\n case 'ZodAny':\n case 'any':\n return {};\n\n case 'ZodUnknown':\n case 'unknown':\n return {};\n\n case 'ZodNull':\n case 'null':\n return { type: 'null' };\n\n case 'ZodUndefined':\n case 'undefined':\n return {};\n\n case 'ZodEffects':\n case 'effects':\n // For effects (transforms, refinements), use the inner schema\n return zodToJsonSchemaInternal(def.schema ?? def.inner);\n\n default:\n console.warn(`Unknown Zod type: ${typeName}`);\n return {};\n }\n}\n\n \nfunction convertString(def: any): JsonSchemaObject {\n const result: JsonSchemaObject = { type: 'string' };\n\n // Handle checks array (Zod 4 style)\n const checks = (def.checks ?? []) as Array<{ kind: string; value?: unknown; message?: string }>;\n\n for (const check of checks) {\n switch (check.kind) {\n case 'min':\n result.minLength = check.value as number;\n break;\n case 'max':\n result.maxLength = check.value as number;\n break;\n case 'email':\n result.format = 'email';\n break;\n case 'url':\n result.format = 'uri';\n break;\n case 'uuid':\n result.format = 'uuid';\n break;\n case 'datetime':\n result.format = 'date-time';\n break;\n case 'regex':\n result.pattern = (check.value as RegExp).source;\n break;\n }\n }\n\n return result;\n}\n\n \nfunction convertNumber(def: any): JsonSchemaObject {\n const checks = (def.checks ?? []) as Array<{ kind: string; value?: unknown }>;\n const isInt = checks.some((c) => c.kind === 'int');\n\n const result: JsonSchemaObject = { type: isInt ? 'integer' : 'number' };\n\n for (const check of checks) {\n switch (check.kind) {\n case 'min':\n result.minimum = check.value as number;\n break;\n case 'max':\n result.maximum = check.value as number;\n break;\n }\n }\n\n return result;\n}\n\n \nfunction convertArray(def: any): JsonSchemaObject {\n // Zod 4 uses 'element' for the inner type\n const innerType = def.element ?? def.type;\n const result: JsonSchemaObject = {\n type: 'array',\n items: innerType ? zodToJsonSchemaInternal(innerType as ZodSchemaInput) : {},\n };\n\n // Handle min/max length checks\n const checks = def.checks ?? [];\n for (const check of checks) {\n if (check.kind === 'min') {result.minItems = check.value;}\n if (check.kind === 'max') {result.maxItems = check.value;}\n }\n\n // Also check for direct minLength/maxLength properties\n if (def.minLength?.value) {result.minItems = def.minLength.value;}\n if (def.maxLength?.value) {result.maxItems = def.maxLength.value;}\n\n return result;\n}\n\n \nfunction convertObject(def: any): JsonSchemaObject {\n const shape = (def.shape ?? {}) as Record<string, ZodSchemaInput>;\n const properties: Record<string, JsonSchemaObject> = {};\n const required: string[] = [];\n\n for (const [key, value] of Object.entries(shape)) {\n properties[key] = zodToJsonSchemaInternal(value);\n\n // Check if field is required (not optional)\n \n const valueDef: any = (value as any)._zod?.def ?? (value as any)._def;\n const isOptional =\n valueDef?.typeName === 'ZodOptional' ||\n valueDef?.typeName === 'ZodDefault' ||\n valueDef?.type === 'optional' ||\n valueDef?.type === 'default';\n\n if (!isOptional) {\n required.push(key);\n }\n }\n\n const result: JsonSchemaObject = {\n type: 'object',\n properties,\n };\n\n if (required.length > 0) {\n result.required = required;\n }\n\n return result;\n}\n\n \nfunction convertEnum(def: any): JsonSchemaObject {\n // Zod 4 stores enum values differently\n let values = def.values ?? def.entries;\n\n // If values is an object (Zod 4 style), extract the values\n if (values && typeof values === 'object' && !Array.isArray(values)) {\n values = Object.values(values);\n }\n\n return {\n type: 'string',\n enum: values as string[],\n };\n}\n\n \nfunction convertUnion(def: any): JsonSchemaObject {\n const options = (def.options ?? []) as ZodSchemaInput[];\n return {\n oneOf: options.map((opt) => zodToJsonSchemaInternal(opt)),\n };\n}\n\n \nfunction convertNullable(def: any): JsonSchemaObject {\n const innerSchema = zodToJsonSchemaInternal(\n (def.innerType ?? def.inner) as ZodSchemaInput\n );\n return {\n oneOf: [innerSchema, { type: 'null' }],\n };\n}\n\n \nfunction convertDefault(def: any): JsonSchemaObject {\n const innerSchema = zodToJsonSchemaInternal(\n (def.innerType ?? def.inner) as ZodSchemaInput\n );\n const defaultValue = def.defaultValue;\n\n if (defaultValue !== undefined) {\n innerSchema.default =\n typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n return innerSchema;\n}\n\n \nfunction convertRecord(def: any): JsonSchemaObject {\n const valueType = def.valueType ?? def.value;\n return {\n type: 'object',\n additionalProperties: valueType\n ? zodToJsonSchemaInternal(valueType as ZodSchemaInput)\n : true,\n };\n}\n\n \nfunction convertLiteral(def: any): JsonSchemaObject {\n const value = def.value;\n if (typeof value === 'string') {\n return { type: 'string', const: value };\n }\n if (typeof value === 'number') {\n return { type: 'number', const: value };\n }\n if (typeof value === 'boolean') {\n return { type: 'boolean', const: value };\n }\n return { const: value };\n}\n\n/**\n * Batch convert multiple Zod schemas to JSON Schema format\n *\n * @param schemas - Map of schema name to Zod schema\n * @param baseOptions - Base options applied to all schemas\n * @returns Map of schema name to generated schema\n */\nexport function convertMultipleToJsonSchema(\n schemas: Record<string, ZodSchemaInput>,\n baseOptions?: Partial<Omit<GeneratorOptions, 'name'>>\n): Map<string, GeneratedSchema> {\n const results = new Map<string, GeneratedSchema>();\n\n for (const [name, zodSchema] of Object.entries(schemas)) {\n const result = convertToJsonSchema(zodSchema, {\n ...baseOptions,\n name,\n });\n results.set(name, result);\n }\n\n return results;\n}\n\n/**\n * Create a combined JSON Schema document with multiple definitions\n *\n * @param schemas - Map of schema name to Zod schema\n * @param rootName - Name for the root schema document\n * @returns Combined JSON Schema with all definitions\n */\nexport function createCombinedSchema(\n schemas: Record<string, ZodSchemaInput>,\n rootName: string\n): GeneratedSchema {\n const definitions: Record<string, JsonSchemaObject> = {};\n\n for (const [name, zodSchema] of Object.entries(schemas)) {\n definitions[name] = zodToJsonSchemaInternal(zodSchema);\n }\n\n const combinedSchema: JsonSchemaObject = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n $id: rootName,\n definitions,\n };\n\n return {\n schema: combinedSchema,\n name: rootName,\n json: JSON.stringify(combinedSchema, null, 2),\n };\n}\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @apollo-deploy/signal-schemas
|
|
3
|
+
*
|
|
4
|
+
* Wire contracts for the Apollo Signal transactional email service.
|
|
5
|
+
*
|
|
6
|
+
* Provides Zod schema definitions for runtime validation and TypeScript
|
|
7
|
+
* type inference across the Signal service boundary.
|
|
8
|
+
*
|
|
9
|
+
* Prefer subpath imports for tree-shaking:
|
|
10
|
+
* import { SignalSendEmailBodySchema } from '@apollo-deploy/signal-schemas/signal-email';
|
|
11
|
+
* import { SignalProjectSchema } from '@apollo-deploy/signal-schemas/signal-projects';
|
|
12
|
+
*/
|
|
13
|
+
export * from './definitions/index.js';
|
|
14
|
+
export * from './generators/index.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @apollo-deploy/signal-schemas
|
|
3
|
+
*
|
|
4
|
+
* Wire contracts for the Apollo Signal transactional email service.
|
|
5
|
+
*
|
|
6
|
+
* Provides Zod schema definitions for runtime validation and TypeScript
|
|
7
|
+
* type inference across the Signal service boundary.
|
|
8
|
+
*
|
|
9
|
+
* Prefer subpath imports for tree-shaking:
|
|
10
|
+
* import { SignalSendEmailBodySchema } from '@apollo-deploy/signal-schemas/signal-email';
|
|
11
|
+
* import { SignalProjectSchema } from '@apollo-deploy/signal-schemas/signal-projects';
|
|
12
|
+
*/
|
|
13
|
+
export * from './definitions/index.js';
|
|
14
|
+
export * from './generators/index.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC","sourcesContent":["/**\n * @apollo-deploy/signal-schemas\n *\n * Wire contracts for the Apollo Signal transactional email service.\n *\n * Provides Zod schema definitions for runtime validation and TypeScript\n * type inference across the Signal service boundary.\n *\n * Prefer subpath imports for tree-shaking:\n * import { SignalSendEmailBodySchema } from '@apollo-deploy/signal-schemas/signal-email';\n * import { SignalProjectSchema } from '@apollo-deploy/signal-schemas/signal-projects';\n */\n\nexport * from './definitions/index.js';\nexport * from './generators/index.js';\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apollo-deploy/signal-schemas",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Apollo Signal wire contracts \u2014 Zod schemas for the Signal transactional email service",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./definitions": {
|
|
19
|
+
"import": "./dist/definitions/index.js",
|
|
20
|
+
"types": "./dist/definitions/index.d.ts"
|
|
21
|
+
},
|
|
22
|
+
"./generators": {
|
|
23
|
+
"import": "./dist/generators/index.js",
|
|
24
|
+
"types": "./dist/generators/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./common": {
|
|
27
|
+
"import": "./dist/definitions/common.js",
|
|
28
|
+
"types": "./dist/definitions/common.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./signal-email": {
|
|
31
|
+
"import": "./dist/definitions/signal-email/index.js",
|
|
32
|
+
"types": "./dist/definitions/signal-email/index.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./signal-projects": {
|
|
35
|
+
"import": "./dist/definitions/signal-projects/index.js",
|
|
36
|
+
"types": "./dist/definitions/signal-projects/index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./projects": {
|
|
39
|
+
"import": "./dist/definitions/projects/index.js",
|
|
40
|
+
"types": "./dist/definitions/projects/index.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./domains": {
|
|
43
|
+
"import": "./dist/definitions/domains/index.js",
|
|
44
|
+
"types": "./dist/definitions/domains/index.d.ts"
|
|
45
|
+
},
|
|
46
|
+
"./emails": {
|
|
47
|
+
"import": "./dist/definitions/emails/index.js",
|
|
48
|
+
"types": "./dist/definitions/emails/index.d.ts"
|
|
49
|
+
},
|
|
50
|
+
"./suppressions": {
|
|
51
|
+
"import": "./dist/definitions/suppressions/index.js",
|
|
52
|
+
"types": "./dist/definitions/suppressions/index.d.ts"
|
|
53
|
+
},
|
|
54
|
+
"./webhooks": {
|
|
55
|
+
"import": "./dist/definitions/webhooks/index.js",
|
|
56
|
+
"types": "./dist/definitions/webhooks/index.d.ts"
|
|
57
|
+
},
|
|
58
|
+
"./usage": {
|
|
59
|
+
"import": "./dist/definitions/usage/index.js",
|
|
60
|
+
"types": "./dist/definitions/usage/index.d.ts"
|
|
61
|
+
},
|
|
62
|
+
"./deliverability": {
|
|
63
|
+
"import": "./dist/definitions/deliverability/index.js",
|
|
64
|
+
"types": "./dist/definitions/deliverability/index.d.ts"
|
|
65
|
+
},
|
|
66
|
+
"./templates": {
|
|
67
|
+
"import": "./dist/definitions/templates/index.js",
|
|
68
|
+
"types": "./dist/definitions/templates/index.d.ts"
|
|
69
|
+
},
|
|
70
|
+
"./health": {
|
|
71
|
+
"import": "./dist/definitions/health/index.js",
|
|
72
|
+
"types": "./dist/definitions/health/index.d.ts"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"publishConfig": {
|
|
76
|
+
"registry": "https://registry.npmjs.org",
|
|
77
|
+
"access": "public"
|
|
78
|
+
},
|
|
79
|
+
"repository": {
|
|
80
|
+
"type": "git",
|
|
81
|
+
"url": "https://github.com/Apollo-Deploy/cross-language-schemas.git",
|
|
82
|
+
"directory": "packages/schemas"
|
|
83
|
+
},
|
|
84
|
+
"scripts": {
|
|
85
|
+
"build": "tsc --build",
|
|
86
|
+
"generate": "bun run src/generators/generate-schemas.ts",
|
|
87
|
+
"registry:check": "bun run src/generators/register-global-registry.ts --check",
|
|
88
|
+
"registry:fix": "bun run src/generators/register-global-registry.ts --write",
|
|
89
|
+
"typecheck": "tsc --noEmit",
|
|
90
|
+
"test": "bun test"
|
|
91
|
+
},
|
|
92
|
+
"dependencies": {
|
|
93
|
+
"zod-to-json-schema": "^3.25.0"
|
|
94
|
+
},
|
|
95
|
+
"peerDependencies": {
|
|
96
|
+
"zod": ">=4.0.0"
|
|
97
|
+
},
|
|
98
|
+
"devDependencies": {
|
|
99
|
+
"@apollo-deploy/tsconfig": "workspace:*",
|
|
100
|
+
"bun-types": "^1.1.42",
|
|
101
|
+
"typescript": "^5.6.3"
|
|
102
|
+
}
|
|
103
|
+
}
|