apify-schema-tools 3.1.0 → 3.2.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/.node-version +1 -1
- package/CHANGELOG.md +7 -1
- package/biome.json +8 -2
- package/dist/apify-schema-tools.js +12 -9
- package/dist/apify-schema-tools.js.map +1 -1
- package/dist/apify.d.ts +1 -1
- package/dist/apify.d.ts.map +1 -1
- package/dist/apify.js +19 -5
- package/dist/apify.js.map +1 -1
- package/dist/cli/check.d.ts +5 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +86 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/init.d.ts +5 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +92 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/sync.d.ts +5 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +112 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/configuration.d.ts +14 -5
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +9 -5
- package/dist/configuration.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +19 -0
- package/dist/main.js.map +1 -0
- package/dist/middle-schema/compare-schemas.d.ts +3 -0
- package/dist/middle-schema/compare-schemas.d.ts.map +1 -0
- package/dist/middle-schema/compare-schemas.js +90 -0
- package/dist/middle-schema/compare-schemas.js.map +1 -0
- package/dist/middle-schema/generate-typescript.d.ts +7 -0
- package/dist/middle-schema/generate-typescript.d.ts.map +1 -0
- package/dist/middle-schema/generate-typescript.js +70 -0
- package/dist/middle-schema/generate-typescript.js.map +1 -0
- package/dist/middle-schema/parse-json-schema.d.ts +4 -0
- package/dist/middle-schema/parse-json-schema.d.ts.map +1 -0
- package/dist/middle-schema/parse-json-schema.js +65 -0
- package/dist/middle-schema/parse-json-schema.js.map +1 -0
- package/dist/middle-schema/parse-typescript.d.ts +4 -0
- package/dist/middle-schema/parse-typescript.d.ts.map +1 -0
- package/dist/middle-schema/parse-typescript.js +199 -0
- package/dist/middle-schema/parse-typescript.js.map +1 -0
- package/dist/middle-schema/schema-types.d.ts +24 -0
- package/dist/middle-schema/schema-types.d.ts.map +1 -0
- package/dist/middle-schema/schema-types.js +14 -0
- package/dist/middle-schema/schema-types.js.map +1 -0
- package/dist/middle-schema/schema.d.ts +24 -0
- package/dist/middle-schema/schema.d.ts.map +1 -0
- package/dist/middle-schema/schema.js +14 -0
- package/dist/middle-schema/schema.js.map +1 -0
- package/dist/schema/entities/abstract-entity.d.ts +5 -0
- package/dist/schema/entities/abstract-entity.d.ts.map +1 -0
- package/dist/schema/entities/abstract-entity.js +3 -0
- package/dist/schema/entities/abstract-entity.js.map +1 -0
- package/dist/schema/entities/primitive-union.d.ts +12 -0
- package/dist/schema/entities/primitive-union.d.ts.map +1 -0
- package/dist/schema/entities/primitive-union.js +74 -0
- package/dist/schema/entities/primitive-union.js.map +1 -0
- package/dist/schema/entities/primitive.d.ts +15 -0
- package/dist/schema/entities/primitive.d.ts.map +1 -0
- package/dist/schema/entities/primitive.js +54 -0
- package/dist/schema/entities/primitive.js.map +1 -0
- package/dist/schema/parsers/json-schema.d.ts +4 -0
- package/dist/schema/parsers/json-schema.d.ts.map +1 -0
- package/dist/schema/parsers/json-schema.js +12 -0
- package/dist/schema/parsers/json-schema.js.map +1 -0
- package/dist/schema/parsers/typescript.d.ts +3 -0
- package/dist/schema/parsers/typescript.d.ts.map +1 -0
- package/dist/schema/parsers/typescript.js +24 -0
- package/dist/schema/parsers/typescript.js.map +1 -0
- package/dist/schemas/input.d.ts +840 -0
- package/dist/schemas/input.d.ts.map +1 -0
- package/dist/schemas/input.js +349 -0
- package/dist/schemas/input.js.map +1 -0
- package/dist/utils/filesystem.d.ts +8 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +16 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/json-schemas-interactive-conflict.d.ts +16 -0
- package/dist/utils/json-schemas-interactive-conflict.d.ts.map +1 -0
- package/dist/utils/json-schemas-interactive-conflict.js +165 -0
- package/dist/utils/json-schemas-interactive-conflict.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +42 -0
- package/dist/utils/json-schemas.d.ts.map +1 -0
- package/dist/utils/json-schemas.js +162 -0
- package/dist/utils/json-schemas.js.map +1 -0
- package/dist/zod/schemas/input.d.ts +840 -0
- package/dist/zod/schemas/input.d.ts.map +1 -0
- package/dist/zod/schemas/input.js +393 -0
- package/dist/zod/schemas/input.js.map +1 -0
- package/package.json +12 -12
- package/samples/all-defaults/.actor/input_schema.json +32 -3
- package/samples/all-defaults/src-schemas/input.json +2 -1
- package/samples/deep-merged-schemas/.actor/input_schema.json +36 -3
- package/samples/merged-schemas/.actor/input_schema.json +27 -3
- package/samples/package-json-config/.actor/input_schema.json +32 -3
- package/samples/package-json-config-merged/.actor/input_schema.json +36 -3
- package/src/apify.ts +21 -6
- package/src/cli/check.ts +114 -0
- package/src/cli/init.ts +125 -0
- package/src/cli/sync.ts +164 -0
- package/src/configuration.ts +17 -7
- package/src/main.ts +25 -0
- package/src/middle-schema/compare-schemas.ts +113 -0
- package/src/middle-schema/generate-typescript.ts +88 -0
- package/src/middle-schema/parse-json-schema.ts +104 -0
- package/src/middle-schema/parse-typescript.ts +239 -0
- package/src/middle-schema/schema-types.ts +40 -0
- package/test/apify.test.ts +410 -2
- package/test/cli/check.test.ts +1571 -0
- package/test/cli/init.test.ts +459 -0
- package/test/cli/sync.test.ts +341 -0
- package/test/common.ts +68 -0
- package/test/configuration.test.ts +8 -8
- package/test/middle-schema/compare-schemas.test.ts +585 -0
- package/test/middle-schema/generate-typescript.test.ts +191 -0
- package/test/middle-schema/parse-json-schema.test.ts +178 -0
- package/test/middle-schema/parse-typescript.test.ts +143 -0
- package/test/{json-schema-conflicts.test.ts → utils/json-schemas-interactive-conflict.test.ts} +2 -2
- package/test/{json-schemas.test.ts → utils/json-schemas.test.ts} +3 -3
- package/src/apify-schema-tools.ts +0 -420
- package/src/typescript.ts +0 -563
- package/test/apify-schema-tools.test.ts +0 -2216
- package/test/typescript.test.ts +0 -1079
- /package/src/{filesystem.ts → utils/filesystem.ts} +0 -0
- /package/src/{json-schema-conflicts.ts → utils/json-schemas-interactive-conflict.ts} +0 -0
- /package/src/{json-schemas.ts → utils/json-schemas.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-typescript.js","sourceRoot":"","sources":["../../src/middle-schema/parse-typescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const ALLOWED_TYPES: readonly ["string", "number", "boolean", "object", "null", "unknown"];
|
|
2
|
+
export type AllowedType = (typeof ALLOWED_TYPES)[number];
|
|
3
|
+
export declare function isAllowedType(type: string): type is AllowedType;
|
|
4
|
+
interface MiddleBasicSpecs {
|
|
5
|
+
doc?: string;
|
|
6
|
+
isRequired: boolean;
|
|
7
|
+
isArray: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MiddleBasicVar extends MiddleBasicSpecs {
|
|
10
|
+
type: AllowedType | AllowedType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function isMiddleBasicVar(schema: MiddleSchema): schema is MiddleBasicVar;
|
|
13
|
+
export interface MiddleEnum extends MiddleBasicSpecs {
|
|
14
|
+
enum: unknown[];
|
|
15
|
+
}
|
|
16
|
+
export declare function isMiddleEnum(schema: MiddleSchema): schema is MiddleEnum;
|
|
17
|
+
export interface MiddleObject extends MiddleBasicSpecs {
|
|
18
|
+
properties: Record<string, MiddleSchema>;
|
|
19
|
+
additionalProperties?: MiddleSchema;
|
|
20
|
+
}
|
|
21
|
+
export declare function isMiddleObject(schema: MiddleSchema): schema is MiddleObject;
|
|
22
|
+
export type MiddleSchema = MiddleBasicVar | MiddleEnum | MiddleObject;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=schema-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../src/middle-schema/schema-types.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,uEAAwE,CAAC;AAE5F,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,WAAW,CAE/D;AAED,UAAU,gBAAgB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACvD,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,cAAc,CAE/E;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IACnD,IAAI,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,UAAU,CAEvE;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACrD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,YAAY,CAAC;CACpC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,YAAY,CAE3E;AAED,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const ALLOWED_TYPES = ["string", "number", "boolean", "object", "null", "unknown"];
|
|
2
|
+
export function isAllowedType(type) {
|
|
3
|
+
return ALLOWED_TYPES.includes(type);
|
|
4
|
+
}
|
|
5
|
+
export function isMiddleBasicVar(schema) {
|
|
6
|
+
return "type" in schema;
|
|
7
|
+
}
|
|
8
|
+
export function isMiddleEnum(schema) {
|
|
9
|
+
return "enum" in schema;
|
|
10
|
+
}
|
|
11
|
+
export function isMiddleObject(schema) {
|
|
12
|
+
return "properties" in schema;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=schema-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../../src/middle-schema/schema-types.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAI5F,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAmB,CAAC,CAAC;AACpD,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACpD,OAAO,MAAM,IAAI,MAAM,CAAC;AACzB,CAAC;AAMD,MAAM,UAAU,YAAY,CAAC,MAAoB;IAChD,OAAO,MAAM,IAAI,MAAM,CAAC;AACzB,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,MAAoB;IAClD,OAAO,YAAY,IAAI,MAAM,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const ALLOWED_TYPES: readonly ["string", "number", "boolean", "object", "null", "unknown"];
|
|
2
|
+
export type AllowedType = (typeof ALLOWED_TYPES)[number];
|
|
3
|
+
export declare function isAllowedType(type: string): type is AllowedType;
|
|
4
|
+
interface MiddleBasicSpecs {
|
|
5
|
+
doc?: string;
|
|
6
|
+
isRequired: boolean;
|
|
7
|
+
isArray: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MiddleBasicVar extends MiddleBasicSpecs {
|
|
10
|
+
type: AllowedType | AllowedType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function isMiddleBasicVar(schema: MiddleSchema): schema is MiddleBasicVar;
|
|
13
|
+
export interface MiddleEnum extends MiddleBasicSpecs {
|
|
14
|
+
enum: unknown[];
|
|
15
|
+
}
|
|
16
|
+
export declare function isMiddleEnum(schema: MiddleSchema): schema is MiddleEnum;
|
|
17
|
+
export interface MiddleObject extends MiddleBasicSpecs {
|
|
18
|
+
properties: Record<string, MiddleSchema>;
|
|
19
|
+
additionalProperties?: MiddleSchema;
|
|
20
|
+
}
|
|
21
|
+
export declare function isMiddleObject(schema: MiddleSchema): schema is MiddleObject;
|
|
22
|
+
export type MiddleSchema = MiddleBasicVar | MiddleEnum | MiddleObject;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/middle-schema/schema.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,uEAAwE,CAAC;AAE5F,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,WAAW,CAE/D;AAED,UAAU,gBAAgB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACvD,IAAI,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,cAAc,CAE/E;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IACnD,IAAI,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,UAAU,CAEvE;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACrD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,YAAY,CAAC;CACpC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,YAAY,CAE3E;AAED,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const ALLOWED_TYPES = ["string", "number", "boolean", "object", "null", "unknown"];
|
|
2
|
+
export function isAllowedType(type) {
|
|
3
|
+
return ALLOWED_TYPES.includes(type);
|
|
4
|
+
}
|
|
5
|
+
export function isMiddleBasicVar(schema) {
|
|
6
|
+
return "type" in schema;
|
|
7
|
+
}
|
|
8
|
+
export function isMiddleEnum(schema) {
|
|
9
|
+
return "enum" in schema;
|
|
10
|
+
}
|
|
11
|
+
export function isMiddleObject(schema) {
|
|
12
|
+
return "properties" in schema;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/middle-schema/schema.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAI5F,MAAM,UAAU,aAAa,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAmB,CAAC,CAAC;AACpD,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACpD,OAAO,MAAM,IAAI,MAAM,CAAC;AACzB,CAAC;AAMD,MAAM,UAAU,YAAY,CAAC,MAAoB;IAChD,OAAO,MAAM,IAAI,MAAM,CAAC;AACzB,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,MAAoB;IAClD,OAAO,YAAY,IAAI,MAAM,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-entity.d.ts","sourceRoot":"","sources":["../../../src/schema/entities/abstract-entity.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IACjC,QAAQ,CAAC,YAAY,IAAI,MAAM;IAE/B,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-entity.js","sourceRoot":"","sources":["../../../src/schema/entities/abstract-entity.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;CAIjC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { JSONSchema4 } from "json-schema";
|
|
2
|
+
import { SchemaEntity } from "./abstract-entity.js";
|
|
3
|
+
import { type PrimitiveType } from "./primitive.js";
|
|
4
|
+
export declare class SchemaPrimitiveUnion extends SchemaEntity {
|
|
5
|
+
types: PrimitiveType[];
|
|
6
|
+
constructor(...types: PrimitiveType[]);
|
|
7
|
+
static fromJsonSchema(schema: JSONSchema4): SchemaPrimitiveUnion | undefined;
|
|
8
|
+
static fromTypeScript(typeScript: string): SchemaPrimitiveUnion | undefined;
|
|
9
|
+
toTypeScript(): string;
|
|
10
|
+
compareTo(other: SchemaEntity): boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=primitive-union.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive-union.d.ts","sourceRoot":"","sources":["../../../src/schema/entities/primitive-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5F,qBAAa,oBAAqB,SAAQ,YAAY;IACrD,KAAK,EAAE,aAAa,EAAE,CAAC;gBAEX,GAAG,KAAK,EAAE,aAAa,EAAE;IAKrC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,oBAAoB,GAAG,SAAS;IAwB5E,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAalE,YAAY,IAAI,MAAM;IAItB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;CAgBhD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SchemaEntity } from "./abstract-entity.js";
|
|
2
|
+
import { isPrimitiveSchemaType, isPrimitiveType } from "./primitive.js";
|
|
3
|
+
export class SchemaPrimitiveUnion extends SchemaEntity {
|
|
4
|
+
types;
|
|
5
|
+
constructor(...types) {
|
|
6
|
+
super();
|
|
7
|
+
this.types = types;
|
|
8
|
+
}
|
|
9
|
+
static fromJsonSchema(schema) {
|
|
10
|
+
if (!schema.type) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if (!Array.isArray(schema.type)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (schema.type.length === 0) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
if (!schema.type.every(isPrimitiveSchemaType)) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const types = new Set();
|
|
23
|
+
for (const type of schema.type) {
|
|
24
|
+
if (type === "integer") {
|
|
25
|
+
types.add("number");
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
types.add(type);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return new SchemaPrimitiveUnion(...types);
|
|
32
|
+
}
|
|
33
|
+
static fromTypeScript(typeScript) {
|
|
34
|
+
const cleanText = typeScript.replaceAll(/\s+/g, "");
|
|
35
|
+
const unparsedTypes = cleanText.split("|");
|
|
36
|
+
const types = [];
|
|
37
|
+
for (const unparsedType of unparsedTypes) {
|
|
38
|
+
if (!isPrimitiveType(unparsedType)) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
types.push(unparsedType);
|
|
42
|
+
}
|
|
43
|
+
return new SchemaPrimitiveUnion(...types);
|
|
44
|
+
}
|
|
45
|
+
toTypeScript() {
|
|
46
|
+
return this.types.join(" | ");
|
|
47
|
+
}
|
|
48
|
+
compareTo(other) {
|
|
49
|
+
if (!(other instanceof SchemaPrimitiveUnion)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
if (this.types.length !== other.types.length) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
const sortedThisTypes = [...this.types].sort(ascOrder);
|
|
56
|
+
const sortedOtherTypes = [...other.types].sort(ascOrder);
|
|
57
|
+
for (let i = 0; i < sortedThisTypes.length; i++) {
|
|
58
|
+
if (sortedThisTypes[i] !== sortedOtherTypes[i]) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function ascOrder(a, b) {
|
|
66
|
+
if (a < b) {
|
|
67
|
+
return -1;
|
|
68
|
+
}
|
|
69
|
+
if (a > b) {
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=primitive-union.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive-union.js","sourceRoot":"","sources":["../../../src/schema/entities/primitive-union.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { JSONSchema4, JSONSchema4TypeName } from "json-schema";
|
|
2
|
+
import { SchemaEntity } from "./abstract-entity.js";
|
|
3
|
+
export type PrimitiveSchemaType = Exclude<JSONSchema4TypeName, "object" | "array">;
|
|
4
|
+
export declare function isPrimitiveSchemaType(type: JSONSchema4TypeName): type is PrimitiveSchemaType;
|
|
5
|
+
export type PrimitiveType = Exclude<PrimitiveSchemaType, "integer"> | "unknown";
|
|
6
|
+
export declare function isPrimitiveType(text: string): text is PrimitiveType;
|
|
7
|
+
export declare class SchemaPrimitive extends SchemaEntity {
|
|
8
|
+
type: PrimitiveType;
|
|
9
|
+
constructor(type: PrimitiveType);
|
|
10
|
+
static fromJsonSchema(schema: JSONSchema4): SchemaPrimitive | undefined;
|
|
11
|
+
static fromTypeScript(text: string): SchemaPrimitive | undefined;
|
|
12
|
+
toTypeScript(): string;
|
|
13
|
+
compareTo(other: SchemaEntity): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=primitive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/schema/entities/primitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;AAEnF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,IAAI,mBAAmB,CAE5F;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;AAWhF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAChD,IAAI,EAAE,aAAa,CAAC;gBAER,IAAI,EAAE,aAAa;IAK/B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS;IAgBvE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAQvD,YAAY,IAAI,MAAM;IAItB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;CAMhD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SchemaEntity } from "./abstract-entity.js";
|
|
2
|
+
export function isPrimitiveSchemaType(type) {
|
|
3
|
+
return type !== "object" && type !== "array";
|
|
4
|
+
}
|
|
5
|
+
const VALID_TYPES_RECORD = {
|
|
6
|
+
string: true,
|
|
7
|
+
number: true,
|
|
8
|
+
boolean: true,
|
|
9
|
+
null: true,
|
|
10
|
+
any: true,
|
|
11
|
+
unknown: true,
|
|
12
|
+
};
|
|
13
|
+
export function isPrimitiveType(text) {
|
|
14
|
+
return text in VALID_TYPES_RECORD;
|
|
15
|
+
}
|
|
16
|
+
export class SchemaPrimitive extends SchemaEntity {
|
|
17
|
+
type;
|
|
18
|
+
constructor(type) {
|
|
19
|
+
super();
|
|
20
|
+
this.type = type;
|
|
21
|
+
}
|
|
22
|
+
static fromJsonSchema(schema) {
|
|
23
|
+
if (!schema.type) {
|
|
24
|
+
return new SchemaPrimitive("unknown");
|
|
25
|
+
}
|
|
26
|
+
if (Array.isArray(schema.type)) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
if (!isPrimitiveSchemaType(schema.type)) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (schema.type === "integer") {
|
|
33
|
+
return new SchemaPrimitive("number");
|
|
34
|
+
}
|
|
35
|
+
return new SchemaPrimitive(schema.type);
|
|
36
|
+
}
|
|
37
|
+
static fromTypeScript(text) {
|
|
38
|
+
const type = text.replaceAll(/\s+/g, "");
|
|
39
|
+
if (isPrimitiveType(type)) {
|
|
40
|
+
return new SchemaPrimitive(type);
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
toTypeScript() {
|
|
45
|
+
return this.type;
|
|
46
|
+
}
|
|
47
|
+
compareTo(other) {
|
|
48
|
+
if (!(other instanceof SchemaPrimitive)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return this.type === other.type;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=primitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/schema/entities/primitive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,UAAU,qBAAqB,CAAC,IAAyB;IAC9D,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC;AAC9C,CAAC;AAID,MAAM,kBAAkB,GAAgC;IACvD,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,IAAI,kBAAkB,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAChD,IAAI,CAAgB;IAEpB,YAAY,IAAmB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAmB;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAEQ,YAAY;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAEQ,SAAS,CAAC,KAAmB;QACrC,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IACjC,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../../src/schema/parsers/json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAInE,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAQjE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SchemaPrimitive } from "../entities/primitive.js";
|
|
2
|
+
import { SchemaPrimitiveUnion } from "../entities/primitive-union.js";
|
|
3
|
+
export function parseJsonSchema(schema) {
|
|
4
|
+
let entity;
|
|
5
|
+
entity ??= SchemaPrimitiveUnion.fromJsonSchema(schema);
|
|
6
|
+
entity ??= SchemaPrimitive.fromJsonSchema(schema);
|
|
7
|
+
if (!entity) {
|
|
8
|
+
throw new TypeError("Unsupported JSON schema");
|
|
9
|
+
}
|
|
10
|
+
return entity;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=json-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../../src/schema/parsers/json-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,UAAU,eAAe,CAAC,MAAmB;IAClD,IAAI,MAAgC,CAAC;IACrC,MAAM,KAAK,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,KAAK,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/schema/parsers/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAUnE,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAelF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SchemaPrimitive } from "../entities/primitive.js";
|
|
2
|
+
import { SchemaPrimitiveUnion } from "../entities/primitive-union.js";
|
|
3
|
+
function getTypeScriptTypeRegexp(typeName) {
|
|
4
|
+
const escapedTypeName = typeName.replaceAll(/[.*+?^${}()|[\]\\]/g, "");
|
|
5
|
+
const sanitizedTypeName = escapedTypeName.replaceAll(/\s+/g, "");
|
|
6
|
+
return new RegExp(`^\\s*(export\\s+type\\s+${sanitizedTypeName}\\s*=\\s*(.+?));?\\s*$`, "s");
|
|
7
|
+
}
|
|
8
|
+
export function parseTypeScript(typeScript, typeName) {
|
|
9
|
+
const typeRegexp = getTypeScriptTypeRegexp(typeName);
|
|
10
|
+
// We assume that there is only one type definition per type name
|
|
11
|
+
const match = typeRegexp.exec(typeScript);
|
|
12
|
+
const typeDefinition = match?.at(-1);
|
|
13
|
+
if (!typeDefinition) {
|
|
14
|
+
throw new TypeError(`TypeScript type "${typeName}" not found`);
|
|
15
|
+
}
|
|
16
|
+
let schema;
|
|
17
|
+
schema ??= SchemaPrimitiveUnion.fromTypeScript(typeDefinition);
|
|
18
|
+
schema ??= SchemaPrimitive.fromTypeScript(typeDefinition);
|
|
19
|
+
if (!schema) {
|
|
20
|
+
throw new TypeError(`Unsupported TypeScript type definition for type "${typeName}"`);
|
|
21
|
+
}
|
|
22
|
+
return schema;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=typescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/schema/parsers/typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,SAAS,uBAAuB,CAAC,QAAgB;IAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,OAAO,IAAI,MAAM,CAAC,2BAA2B,iBAAiB,wBAAwB,EAAE,GAAG,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAgB;IACnE,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACrD,iEAAiE;IACjE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,oBAAoB,QAAQ,aAAa,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAgC,CAAC;IACrC,MAAM,KAAK,oBAAoB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,KAAK,eAAe,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CAAC,oDAAoD,QAAQ,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
|