@twin.org/tools-models 0.0.3-next.16
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/LICENSE +201 -0
- package/README.md +21 -0
- package/dist/es/index.js +36 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/models/jsonSchema/IJsonSchema.js +4 -0
- package/dist/es/models/jsonSchema/IJsonSchema.js.map +1 -0
- package/dist/es/models/jsonSchema/jsonSchemaTagNames.js +58 -0
- package/dist/es/models/jsonSchema/jsonSchemaTagNames.js.map +1 -0
- package/dist/es/models/jsonSchema/jsonSchemaTypeNames.js +4 -0
- package/dist/es/models/jsonSchema/jsonSchemaTypeNames.js.map +1 -0
- package/dist/es/models/openApi/IOpenApi.js +2 -0
- package/dist/es/models/openApi/IOpenApi.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiComponents.js +2 -0
- package/dist/es/models/openApi/IOpenApiComponents.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiContact.js +4 -0
- package/dist/es/models/openApi/IOpenApiContact.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiExample.js +4 -0
- package/dist/es/models/openApi/IOpenApiExample.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiExternalDocumentation.js +4 -0
- package/dist/es/models/openApi/IOpenApiExternalDocumentation.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiHeader.js +2 -0
- package/dist/es/models/openApi/IOpenApiHeader.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiInfo.js +2 -0
- package/dist/es/models/openApi/IOpenApiInfo.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiLicense.js +4 -0
- package/dist/es/models/openApi/IOpenApiLicense.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiMediaType.js +2 -0
- package/dist/es/models/openApi/IOpenApiMediaType.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiOAuthFlow.js +4 -0
- package/dist/es/models/openApi/IOpenApiOAuthFlow.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiOAuthFlows.js +2 -0
- package/dist/es/models/openApi/IOpenApiOAuthFlows.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiParameter.js +2 -0
- package/dist/es/models/openApi/IOpenApiParameter.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiPathItem.js +2 -0
- package/dist/es/models/openApi/IOpenApiPathItem.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiPathMethod.js +2 -0
- package/dist/es/models/openApi/IOpenApiPathMethod.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiReference.js +4 -0
- package/dist/es/models/openApi/IOpenApiReference.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiRequestBody.js +2 -0
- package/dist/es/models/openApi/IOpenApiRequestBody.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiResponse.js +2 -0
- package/dist/es/models/openApi/IOpenApiResponse.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiResponses.js +2 -0
- package/dist/es/models/openApi/IOpenApiResponses.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiSecurityRequirement.js +4 -0
- package/dist/es/models/openApi/IOpenApiSecurityRequirement.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiSecurityScheme.js +2 -0
- package/dist/es/models/openApi/IOpenApiSecurityScheme.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiServer.js +2 -0
- package/dist/es/models/openApi/IOpenApiServer.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiServerVariable.js +4 -0
- package/dist/es/models/openApi/IOpenApiServerVariable.js.map +1 -0
- package/dist/es/models/openApi/IOpenApiTag.js +2 -0
- package/dist/es/models/openApi/IOpenApiTag.js.map +1 -0
- package/dist/es/models/openApi/openApiConstants.js +12 -0
- package/dist/es/models/openApi/openApiConstants.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJson.js +4 -0
- package/dist/es/models/packageJson/IPackageJson.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJsonBugs.js +4 -0
- package/dist/es/models/packageJson/IPackageJsonBugs.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJsonPerson.js +4 -0
- package/dist/es/models/packageJson/IPackageJsonPerson.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJsonPublishConfig.js +4 -0
- package/dist/es/models/packageJson/IPackageJsonPublishConfig.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJsonRepository.js +4 -0
- package/dist/es/models/packageJson/IPackageJsonRepository.js.map +1 -0
- package/dist/es/models/packageJson/IPackageJsonStringMap.js +4 -0
- package/dist/es/models/packageJson/IPackageJsonStringMap.js.map +1 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/models/jsonSchema/IJsonSchema.d.ts +372 -0
- package/dist/types/models/jsonSchema/jsonSchemaTagNames.d.ts +4 -0
- package/dist/types/models/jsonSchema/jsonSchemaTypeNames.d.ts +4 -0
- package/dist/types/models/openApi/IOpenApi.d.ts +72 -0
- package/dist/types/models/openApi/IOpenApiComponents.d.ts +70 -0
- package/dist/types/models/openApi/IOpenApiContact.d.ts +21 -0
- package/dist/types/models/openApi/IOpenApiExample.d.ts +30 -0
- package/dist/types/models/openApi/IOpenApiExternalDocumentation.d.ts +14 -0
- package/dist/types/models/openApi/IOpenApiHeader.d.ts +50 -0
- package/dist/types/models/openApi/IOpenApiInfo.d.ts +43 -0
- package/dist/types/models/openApi/IOpenApiLicense.d.ts +21 -0
- package/dist/types/models/openApi/IOpenApiMediaType.d.ts +41 -0
- package/dist/types/models/openApi/IOpenApiOAuthFlow.d.ts +28 -0
- package/dist/types/models/openApi/IOpenApiOAuthFlows.d.ts +27 -0
- package/dist/types/models/openApi/IOpenApiParameter.d.ts +74 -0
- package/dist/types/models/openApi/IOpenApiPathItem.d.ts +72 -0
- package/dist/types/models/openApi/IOpenApiPathMethod.d.ts +75 -0
- package/dist/types/models/openApi/IOpenApiReference.d.ts +18 -0
- package/dist/types/models/openApi/IOpenApiRequestBody.d.ts +22 -0
- package/dist/types/models/openApi/IOpenApiResponse.d.ts +35 -0
- package/dist/types/models/openApi/IOpenApiResponses.d.ts +18 -0
- package/dist/types/models/openApi/IOpenApiSecurityRequirement.d.ts +7 -0
- package/dist/types/models/openApi/IOpenApiSecurityScheme.d.ts +33 -0
- package/dist/types/models/openApi/IOpenApiServer.d.ts +29 -0
- package/dist/types/models/openApi/IOpenApiServerVariable.d.ts +21 -0
- package/dist/types/models/openApi/IOpenApiTag.d.ts +31 -0
- package/dist/types/models/openApi/openApiConstants.d.ts +9 -0
- package/dist/types/models/packageJson/IPackageJson.d.ts +134 -0
- package/dist/types/models/packageJson/IPackageJsonBugs.d.ts +7 -0
- package/dist/types/models/packageJson/IPackageJsonPerson.d.ts +8 -0
- package/dist/types/models/packageJson/IPackageJsonPublishConfig.d.ts +6 -0
- package/dist/types/models/packageJson/IPackageJsonRepository.d.ts +8 -0
- package/dist/types/models/packageJson/IPackageJsonStringMap.d.ts +6 -0
- package/docs/changelog.md +10 -0
- package/docs/examples.md +85 -0
- package/docs/reference/classes/OpenApiConstants.md +21 -0
- package/docs/reference/index.md +48 -0
- package/docs/reference/interfaces/IJsonSchema.md +795 -0
- package/docs/reference/interfaces/IOpenApi.md +147 -0
- package/docs/reference/interfaces/IOpenApiComponents.md +115 -0
- package/docs/reference/interfaces/IOpenApiContact.md +43 -0
- package/docs/reference/interfaces/IOpenApiExample.md +55 -0
- package/docs/reference/interfaces/IOpenApiExternalDocumentation.md +23 -0
- package/docs/reference/interfaces/IOpenApiHeader.md +87 -0
- package/docs/reference/interfaces/IOpenApiInfo.md +91 -0
- package/docs/reference/interfaces/IOpenApiLicense.md +43 -0
- package/docs/reference/interfaces/IOpenApiMediaType.md +71 -0
- package/docs/reference/interfaces/IOpenApiOAuthFlow.md +51 -0
- package/docs/reference/interfaces/IOpenApiOAuthFlows.md +47 -0
- package/docs/reference/interfaces/IOpenApiParameter.md +119 -0
- package/docs/reference/interfaces/IOpenApiPathItem.md +131 -0
- package/docs/reference/interfaces/IOpenApiPathMethod.md +155 -0
- package/docs/reference/interfaces/IOpenApiReference.md +31 -0
- package/docs/reference/interfaces/IOpenApiRequestBody.md +35 -0
- package/docs/reference/interfaces/IOpenApiResponse.md +59 -0
- package/docs/reference/interfaces/IOpenApiResponses.md +29 -0
- package/docs/reference/interfaces/IOpenApiSecurityRequirement.md +11 -0
- package/docs/reference/interfaces/IOpenApiServer.md +59 -0
- package/docs/reference/interfaces/IOpenApiServerVariable.md +43 -0
- package/docs/reference/interfaces/IOpenApiTag.md +55 -0
- package/docs/reference/interfaces/IPackageJson.md +295 -0
- package/docs/reference/interfaces/IPackageJsonPublishConfig.md +7 -0
- package/docs/reference/interfaces/IPackageJsonStringMap.md +7 -0
- package/docs/reference/type-aliases/IOpenApiSecurityScheme.md +9 -0
- package/docs/reference/type-aliases/IPackageJsonBugs.md +5 -0
- package/docs/reference/type-aliases/IPackageJsonPerson.md +5 -0
- package/docs/reference/type-aliases/IPackageJsonRepository.md +5 -0
- package/docs/reference/type-aliases/JsonSchemaTypeNames.md +5 -0
- package/docs/reference/type-aliases/OpenApiParameterLocation.md +5 -0
- package/docs/reference/type-aliases/OpenApiParameterStyle.md +5 -0
- package/docs/reference/variables/JsonSchemaTagNames.md +5 -0
- package/locales/en.json +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IOpenApiOAuthFlows } from "./IOpenApiOAuthFlows.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OpenAPI Security Scheme Object.
|
|
4
|
+
* @see https://spec.openapis.org/oas/latest.html#security-scheme-object
|
|
5
|
+
*/
|
|
6
|
+
export type IOpenApiSecurityScheme = {
|
|
7
|
+
type: "apiKey";
|
|
8
|
+
description?: string;
|
|
9
|
+
name: string;
|
|
10
|
+
in: "query" | "header" | "cookie";
|
|
11
|
+
deprecated?: boolean;
|
|
12
|
+
} | {
|
|
13
|
+
type: "http";
|
|
14
|
+
description?: string;
|
|
15
|
+
scheme: string;
|
|
16
|
+
bearerFormat?: string;
|
|
17
|
+
deprecated?: boolean;
|
|
18
|
+
} | {
|
|
19
|
+
type: "mutualTLS";
|
|
20
|
+
description?: string;
|
|
21
|
+
deprecated?: boolean;
|
|
22
|
+
} | {
|
|
23
|
+
type: "oauth2";
|
|
24
|
+
description?: string;
|
|
25
|
+
flows: IOpenApiOAuthFlows;
|
|
26
|
+
oauth2MetadataUrl?: string;
|
|
27
|
+
deprecated?: boolean;
|
|
28
|
+
} | {
|
|
29
|
+
type: "openIdConnect";
|
|
30
|
+
description?: string;
|
|
31
|
+
openIdConnectUrl: string;
|
|
32
|
+
deprecated?: boolean;
|
|
33
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { IOpenApiServerVariable } from "./IOpenApiServerVariable.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OpenAPI Server Object.
|
|
4
|
+
* @see https://spec.openapis.org/oas/latest.html#server-object
|
|
5
|
+
*/
|
|
6
|
+
export interface IOpenApiServer {
|
|
7
|
+
/**
|
|
8
|
+
* The target URL.
|
|
9
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-3
|
|
10
|
+
*/
|
|
11
|
+
url: string;
|
|
12
|
+
/**
|
|
13
|
+
* A description of the server.
|
|
14
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-3
|
|
15
|
+
*/
|
|
16
|
+
description?: string;
|
|
17
|
+
/**
|
|
18
|
+
* A unique server name.
|
|
19
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-3
|
|
20
|
+
*/
|
|
21
|
+
name?: string;
|
|
22
|
+
/**
|
|
23
|
+
* URL template variables.
|
|
24
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-3
|
|
25
|
+
*/
|
|
26
|
+
variables?: {
|
|
27
|
+
[name: string]: IOpenApiServerVariable;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An OpenAPI Server Variable Object.
|
|
3
|
+
* @see https://spec.openapis.org/oas/latest.html#server-variable-object
|
|
4
|
+
*/
|
|
5
|
+
export interface IOpenApiServerVariable {
|
|
6
|
+
/**
|
|
7
|
+
* Allowed substitution values.
|
|
8
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-4
|
|
9
|
+
*/
|
|
10
|
+
enum?: string[];
|
|
11
|
+
/**
|
|
12
|
+
* The default substitution value.
|
|
13
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-4
|
|
14
|
+
*/
|
|
15
|
+
default: string;
|
|
16
|
+
/**
|
|
17
|
+
* A description of the variable.
|
|
18
|
+
* @see https://spec.openapis.org/oas/latest.html#fixed-fields-4
|
|
19
|
+
*/
|
|
20
|
+
description?: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { IOpenApiExternalDocumentation } from "./IOpenApiExternalDocumentation.js";
|
|
2
|
+
/**
|
|
3
|
+
* An OpenAPI Tag Object.
|
|
4
|
+
* @see https://spec.openapis.org/oas/latest.html#tag-object
|
|
5
|
+
*/
|
|
6
|
+
export interface IOpenApiTag {
|
|
7
|
+
/**
|
|
8
|
+
* The name of the tag.
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* A short summary of the tag.
|
|
13
|
+
*/
|
|
14
|
+
summary?: string;
|
|
15
|
+
/**
|
|
16
|
+
* A description of the tag.
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Additional external documentation for the tag.
|
|
21
|
+
*/
|
|
22
|
+
externalDocs?: IOpenApiExternalDocumentation;
|
|
23
|
+
/**
|
|
24
|
+
* Parent tag name.
|
|
25
|
+
*/
|
|
26
|
+
parent?: string;
|
|
27
|
+
/**
|
|
28
|
+
* A machine-readable category for the tag.
|
|
29
|
+
*/
|
|
30
|
+
kind?: string;
|
|
31
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { IPackageJsonBugs } from "./IPackageJsonBugs.js";
|
|
2
|
+
import type { IPackageJsonPerson } from "./IPackageJsonPerson.js";
|
|
3
|
+
import type { IPackageJsonPublishConfig } from "./IPackageJsonPublishConfig.js";
|
|
4
|
+
import type { IPackageJsonRepository } from "./IPackageJsonRepository.js";
|
|
5
|
+
import type { IPackageJsonStringMap } from "./IPackageJsonStringMap.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for each individual package.
|
|
8
|
+
* @see https://docs.npmjs.com/creating-a-package-json-file
|
|
9
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json
|
|
10
|
+
*/
|
|
11
|
+
export interface IPackageJson {
|
|
12
|
+
/**
|
|
13
|
+
* The name of the package.
|
|
14
|
+
* @see https://docs.npmjs.com/creating-a-package-json-file#required-name-and-version-fields
|
|
15
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#name
|
|
16
|
+
*/
|
|
17
|
+
name: string;
|
|
18
|
+
/**
|
|
19
|
+
* The semantic version for the package.
|
|
20
|
+
* @see https://docs.npmjs.com/creating-a-package-json-file#required-name-and-version-fields
|
|
21
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#version
|
|
22
|
+
*/
|
|
23
|
+
version?: string;
|
|
24
|
+
/**
|
|
25
|
+
* The short description for the package.
|
|
26
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#description
|
|
27
|
+
*/
|
|
28
|
+
description?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Search keywords for the package.
|
|
31
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#keywords
|
|
32
|
+
*/
|
|
33
|
+
keywords?: string[];
|
|
34
|
+
/**
|
|
35
|
+
* The package author.
|
|
36
|
+
* @see https://docs.npmjs.com/creating-a-package-json-file#author-field
|
|
37
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#people-fields-author-contributors
|
|
38
|
+
*/
|
|
39
|
+
author?: IPackageJsonPerson;
|
|
40
|
+
/**
|
|
41
|
+
* The contributors for the package.
|
|
42
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#people-fields-author-contributors
|
|
43
|
+
*/
|
|
44
|
+
contributors?: IPackageJsonPerson[];
|
|
45
|
+
/**
|
|
46
|
+
* The project homepage.
|
|
47
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#homepage
|
|
48
|
+
*/
|
|
49
|
+
homepage?: string;
|
|
50
|
+
/**
|
|
51
|
+
* The source repository for the package.
|
|
52
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#repository
|
|
53
|
+
*/
|
|
54
|
+
repository?: IPackageJsonRepository;
|
|
55
|
+
/**
|
|
56
|
+
* The issue tracker for the package.
|
|
57
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bugs
|
|
58
|
+
*/
|
|
59
|
+
bugs?: IPackageJsonBugs;
|
|
60
|
+
/**
|
|
61
|
+
* The SPDX license expression for the package.
|
|
62
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#license
|
|
63
|
+
*/
|
|
64
|
+
license?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Whether the package is private and should not be published.
|
|
67
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#private
|
|
68
|
+
*/
|
|
69
|
+
private?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* The module system for .js files in the package.
|
|
72
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#type
|
|
73
|
+
*/
|
|
74
|
+
type?: "commonjs" | "module";
|
|
75
|
+
/**
|
|
76
|
+
* The primary package entry point.
|
|
77
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#main
|
|
78
|
+
*/
|
|
79
|
+
main?: string;
|
|
80
|
+
/**
|
|
81
|
+
* The TypeScript declaration entry point.
|
|
82
|
+
*/
|
|
83
|
+
types?: string;
|
|
84
|
+
/**
|
|
85
|
+
* The executable entry points for the package.
|
|
86
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin
|
|
87
|
+
*/
|
|
88
|
+
bin?: string | IPackageJsonStringMap;
|
|
89
|
+
/**
|
|
90
|
+
* The files to include when the package is packed or published.
|
|
91
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#files
|
|
92
|
+
*/
|
|
93
|
+
files?: string[];
|
|
94
|
+
/**
|
|
95
|
+
* The lifecycle scripts for the package.
|
|
96
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#scripts
|
|
97
|
+
*/
|
|
98
|
+
scripts?: IPackageJsonStringMap;
|
|
99
|
+
/**
|
|
100
|
+
* The dependencies for the package.
|
|
101
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#dependencies
|
|
102
|
+
*/
|
|
103
|
+
dependencies?: IPackageJsonStringMap;
|
|
104
|
+
/**
|
|
105
|
+
* The development-only dependencies for the package.
|
|
106
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#devdependencies
|
|
107
|
+
*/
|
|
108
|
+
devDependencies?: IPackageJsonStringMap;
|
|
109
|
+
/**
|
|
110
|
+
* The peer dependencies for the package.
|
|
111
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependencies
|
|
112
|
+
*/
|
|
113
|
+
peerDependencies?: IPackageJsonStringMap;
|
|
114
|
+
/**
|
|
115
|
+
* The optional dependencies for the package.
|
|
116
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#optionaldependencies
|
|
117
|
+
*/
|
|
118
|
+
optionalDependencies?: IPackageJsonStringMap;
|
|
119
|
+
/**
|
|
120
|
+
* Runtime engine constraints for the package.
|
|
121
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#engines
|
|
122
|
+
*/
|
|
123
|
+
engines?: IPackageJsonStringMap;
|
|
124
|
+
/**
|
|
125
|
+
* Publish-time npm configuration.
|
|
126
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#publishconfig
|
|
127
|
+
*/
|
|
128
|
+
publishConfig?: IPackageJsonPublishConfig;
|
|
129
|
+
/**
|
|
130
|
+
* Workspace globs for a monorepo root package.
|
|
131
|
+
* @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#workspaces
|
|
132
|
+
*/
|
|
133
|
+
workspaces?: string[];
|
|
134
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.0.3-next.16](https://github.com/twinfoundation/tools/compare/tools-models-v0.0.3-next.15...tools-models-v0.0.3-next.16) (2026-03-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* ts to schema ([#86](https://github.com/twinfoundation/tools/issues/86)) ([ffebda5](https://github.com/twinfoundation/tools/commit/ffebda5f14ab5ec734bf37c9fb70a7ec3d4012c3))
|
|
9
|
+
|
|
10
|
+
## Changelog
|
package/docs/examples.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Tools Models Examples
|
|
2
|
+
|
|
3
|
+
This package exports the shared interfaces and constants used by the generator libraries and CLI applications. In most cases you will use these types to describe JSON Schema and OpenAPI documents in a type-safe way.
|
|
4
|
+
|
|
5
|
+
## Define A JSON Schema Document
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import type { IJsonSchema, JsonSchemaTypeNames } from '@twin.org/tools-models';
|
|
9
|
+
|
|
10
|
+
const schemaType: JsonSchemaTypeNames = 'object';
|
|
11
|
+
|
|
12
|
+
const productSchema: IJsonSchema = {
|
|
13
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
14
|
+
$id: 'https://schema.example.com/catalog/product',
|
|
15
|
+
title: 'Product',
|
|
16
|
+
type: schemaType,
|
|
17
|
+
properties: {
|
|
18
|
+
id: { type: 'string' },
|
|
19
|
+
name: { type: 'string', minLength: 1 },
|
|
20
|
+
price: { type: 'number', minimum: 0 }
|
|
21
|
+
},
|
|
22
|
+
required: ['id', 'name', 'price'],
|
|
23
|
+
additionalProperties: false
|
|
24
|
+
};
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Work With Supported JSON Schema Tags
|
|
28
|
+
|
|
29
|
+
`JsonSchemaTagNames` lists the tag names recognised by the schema builders after alias mapping. This is useful when validating custom documentation tags before handing source files to the generator.
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { JsonSchemaTagNames } from '@twin.org/tools-models';
|
|
33
|
+
|
|
34
|
+
const supportedTags = new Set(JsonSchemaTagNames);
|
|
35
|
+
|
|
36
|
+
if (supportedTags.has('minimum')) {
|
|
37
|
+
console.log('minimum is supported');
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Define An OpenAPI Document
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import type { IOpenApi } from '@twin.org/tools-models';
|
|
45
|
+
|
|
46
|
+
const openApiDocument: IOpenApi = {
|
|
47
|
+
openapi: '3.1.1',
|
|
48
|
+
info: {
|
|
49
|
+
title: 'Catalog API',
|
|
50
|
+
version: '1.0.0',
|
|
51
|
+
description: 'Operations for querying catalogue entries.'
|
|
52
|
+
},
|
|
53
|
+
paths: {
|
|
54
|
+
'/products/{productId}': {
|
|
55
|
+
get: {
|
|
56
|
+
operationId: 'getProduct',
|
|
57
|
+
responses: {
|
|
58
|
+
'200': {
|
|
59
|
+
description: 'The requested product.',
|
|
60
|
+
content: {
|
|
61
|
+
'application/json': {
|
|
62
|
+
schema: {
|
|
63
|
+
$ref: '#/components/schemas/Product'
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
components: {
|
|
73
|
+
schemas: {
|
|
74
|
+
Product: {
|
|
75
|
+
type: 'object',
|
|
76
|
+
properties: {
|
|
77
|
+
id: { type: 'string' },
|
|
78
|
+
name: { type: 'string' }
|
|
79
|
+
},
|
|
80
|
+
required: ['id', 'name']
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Class: OpenApiConstants
|
|
2
|
+
|
|
3
|
+
Constants for OpenAPI processing.
|
|
4
|
+
|
|
5
|
+
## Constructors
|
|
6
|
+
|
|
7
|
+
### Constructor
|
|
8
|
+
|
|
9
|
+
> **new OpenApiConstants**(): `OpenApiConstants`
|
|
10
|
+
|
|
11
|
+
#### Returns
|
|
12
|
+
|
|
13
|
+
`OpenApiConstants`
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
### API\_VERSION {#api_version}
|
|
18
|
+
|
|
19
|
+
> `readonly` `static` **API\_VERSION**: `"3.1.1"` = `"3.1.1"`
|
|
20
|
+
|
|
21
|
+
The OpenAPI version used.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# @twin.org/tools-models
|
|
2
|
+
|
|
3
|
+
## Classes
|
|
4
|
+
|
|
5
|
+
- [OpenApiConstants](classes/OpenApiConstants.md)
|
|
6
|
+
|
|
7
|
+
## Interfaces
|
|
8
|
+
|
|
9
|
+
- [IJsonSchema](interfaces/IJsonSchema.md)
|
|
10
|
+
- [IOpenApi](interfaces/IOpenApi.md)
|
|
11
|
+
- [IOpenApiComponents](interfaces/IOpenApiComponents.md)
|
|
12
|
+
- [IOpenApiContact](interfaces/IOpenApiContact.md)
|
|
13
|
+
- [IOpenApiExample](interfaces/IOpenApiExample.md)
|
|
14
|
+
- [IOpenApiExternalDocumentation](interfaces/IOpenApiExternalDocumentation.md)
|
|
15
|
+
- [IOpenApiHeader](interfaces/IOpenApiHeader.md)
|
|
16
|
+
- [IOpenApiInfo](interfaces/IOpenApiInfo.md)
|
|
17
|
+
- [IOpenApiLicense](interfaces/IOpenApiLicense.md)
|
|
18
|
+
- [IOpenApiMediaType](interfaces/IOpenApiMediaType.md)
|
|
19
|
+
- [IOpenApiOAuthFlow](interfaces/IOpenApiOAuthFlow.md)
|
|
20
|
+
- [IOpenApiOAuthFlows](interfaces/IOpenApiOAuthFlows.md)
|
|
21
|
+
- [IOpenApiParameter](interfaces/IOpenApiParameter.md)
|
|
22
|
+
- [IOpenApiPathItem](interfaces/IOpenApiPathItem.md)
|
|
23
|
+
- [IOpenApiPathMethod](interfaces/IOpenApiPathMethod.md)
|
|
24
|
+
- [IOpenApiReference](interfaces/IOpenApiReference.md)
|
|
25
|
+
- [IOpenApiRequestBody](interfaces/IOpenApiRequestBody.md)
|
|
26
|
+
- [IOpenApiResponse](interfaces/IOpenApiResponse.md)
|
|
27
|
+
- [IOpenApiResponses](interfaces/IOpenApiResponses.md)
|
|
28
|
+
- [IOpenApiSecurityRequirement](interfaces/IOpenApiSecurityRequirement.md)
|
|
29
|
+
- [IOpenApiServer](interfaces/IOpenApiServer.md)
|
|
30
|
+
- [IOpenApiServerVariable](interfaces/IOpenApiServerVariable.md)
|
|
31
|
+
- [IOpenApiTag](interfaces/IOpenApiTag.md)
|
|
32
|
+
- [IPackageJson](interfaces/IPackageJson.md)
|
|
33
|
+
- [IPackageJsonPublishConfig](interfaces/IPackageJsonPublishConfig.md)
|
|
34
|
+
- [IPackageJsonStringMap](interfaces/IPackageJsonStringMap.md)
|
|
35
|
+
|
|
36
|
+
## Type Aliases
|
|
37
|
+
|
|
38
|
+
- [JsonSchemaTypeNames](type-aliases/JsonSchemaTypeNames.md)
|
|
39
|
+
- [OpenApiParameterLocation](type-aliases/OpenApiParameterLocation.md)
|
|
40
|
+
- [OpenApiParameterStyle](type-aliases/OpenApiParameterStyle.md)
|
|
41
|
+
- [IOpenApiSecurityScheme](type-aliases/IOpenApiSecurityScheme.md)
|
|
42
|
+
- [IPackageJsonBugs](type-aliases/IPackageJsonBugs.md)
|
|
43
|
+
- [IPackageJsonPerson](type-aliases/IPackageJsonPerson.md)
|
|
44
|
+
- [IPackageJsonRepository](type-aliases/IPackageJsonRepository.md)
|
|
45
|
+
|
|
46
|
+
## Variables
|
|
47
|
+
|
|
48
|
+
- [JsonSchemaTagNames](variables/JsonSchemaTagNames.md)
|