@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.
Files changed (144) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +21 -0
  3. package/dist/es/index.js +36 -0
  4. package/dist/es/index.js.map +1 -0
  5. package/dist/es/models/jsonSchema/IJsonSchema.js +4 -0
  6. package/dist/es/models/jsonSchema/IJsonSchema.js.map +1 -0
  7. package/dist/es/models/jsonSchema/jsonSchemaTagNames.js +58 -0
  8. package/dist/es/models/jsonSchema/jsonSchemaTagNames.js.map +1 -0
  9. package/dist/es/models/jsonSchema/jsonSchemaTypeNames.js +4 -0
  10. package/dist/es/models/jsonSchema/jsonSchemaTypeNames.js.map +1 -0
  11. package/dist/es/models/openApi/IOpenApi.js +2 -0
  12. package/dist/es/models/openApi/IOpenApi.js.map +1 -0
  13. package/dist/es/models/openApi/IOpenApiComponents.js +2 -0
  14. package/dist/es/models/openApi/IOpenApiComponents.js.map +1 -0
  15. package/dist/es/models/openApi/IOpenApiContact.js +4 -0
  16. package/dist/es/models/openApi/IOpenApiContact.js.map +1 -0
  17. package/dist/es/models/openApi/IOpenApiExample.js +4 -0
  18. package/dist/es/models/openApi/IOpenApiExample.js.map +1 -0
  19. package/dist/es/models/openApi/IOpenApiExternalDocumentation.js +4 -0
  20. package/dist/es/models/openApi/IOpenApiExternalDocumentation.js.map +1 -0
  21. package/dist/es/models/openApi/IOpenApiHeader.js +2 -0
  22. package/dist/es/models/openApi/IOpenApiHeader.js.map +1 -0
  23. package/dist/es/models/openApi/IOpenApiInfo.js +2 -0
  24. package/dist/es/models/openApi/IOpenApiInfo.js.map +1 -0
  25. package/dist/es/models/openApi/IOpenApiLicense.js +4 -0
  26. package/dist/es/models/openApi/IOpenApiLicense.js.map +1 -0
  27. package/dist/es/models/openApi/IOpenApiMediaType.js +2 -0
  28. package/dist/es/models/openApi/IOpenApiMediaType.js.map +1 -0
  29. package/dist/es/models/openApi/IOpenApiOAuthFlow.js +4 -0
  30. package/dist/es/models/openApi/IOpenApiOAuthFlow.js.map +1 -0
  31. package/dist/es/models/openApi/IOpenApiOAuthFlows.js +2 -0
  32. package/dist/es/models/openApi/IOpenApiOAuthFlows.js.map +1 -0
  33. package/dist/es/models/openApi/IOpenApiParameter.js +2 -0
  34. package/dist/es/models/openApi/IOpenApiParameter.js.map +1 -0
  35. package/dist/es/models/openApi/IOpenApiPathItem.js +2 -0
  36. package/dist/es/models/openApi/IOpenApiPathItem.js.map +1 -0
  37. package/dist/es/models/openApi/IOpenApiPathMethod.js +2 -0
  38. package/dist/es/models/openApi/IOpenApiPathMethod.js.map +1 -0
  39. package/dist/es/models/openApi/IOpenApiReference.js +4 -0
  40. package/dist/es/models/openApi/IOpenApiReference.js.map +1 -0
  41. package/dist/es/models/openApi/IOpenApiRequestBody.js +2 -0
  42. package/dist/es/models/openApi/IOpenApiRequestBody.js.map +1 -0
  43. package/dist/es/models/openApi/IOpenApiResponse.js +2 -0
  44. package/dist/es/models/openApi/IOpenApiResponse.js.map +1 -0
  45. package/dist/es/models/openApi/IOpenApiResponses.js +2 -0
  46. package/dist/es/models/openApi/IOpenApiResponses.js.map +1 -0
  47. package/dist/es/models/openApi/IOpenApiSecurityRequirement.js +4 -0
  48. package/dist/es/models/openApi/IOpenApiSecurityRequirement.js.map +1 -0
  49. package/dist/es/models/openApi/IOpenApiSecurityScheme.js +2 -0
  50. package/dist/es/models/openApi/IOpenApiSecurityScheme.js.map +1 -0
  51. package/dist/es/models/openApi/IOpenApiServer.js +2 -0
  52. package/dist/es/models/openApi/IOpenApiServer.js.map +1 -0
  53. package/dist/es/models/openApi/IOpenApiServerVariable.js +4 -0
  54. package/dist/es/models/openApi/IOpenApiServerVariable.js.map +1 -0
  55. package/dist/es/models/openApi/IOpenApiTag.js +2 -0
  56. package/dist/es/models/openApi/IOpenApiTag.js.map +1 -0
  57. package/dist/es/models/openApi/openApiConstants.js +12 -0
  58. package/dist/es/models/openApi/openApiConstants.js.map +1 -0
  59. package/dist/es/models/packageJson/IPackageJson.js +4 -0
  60. package/dist/es/models/packageJson/IPackageJson.js.map +1 -0
  61. package/dist/es/models/packageJson/IPackageJsonBugs.js +4 -0
  62. package/dist/es/models/packageJson/IPackageJsonBugs.js.map +1 -0
  63. package/dist/es/models/packageJson/IPackageJsonPerson.js +4 -0
  64. package/dist/es/models/packageJson/IPackageJsonPerson.js.map +1 -0
  65. package/dist/es/models/packageJson/IPackageJsonPublishConfig.js +4 -0
  66. package/dist/es/models/packageJson/IPackageJsonPublishConfig.js.map +1 -0
  67. package/dist/es/models/packageJson/IPackageJsonRepository.js +4 -0
  68. package/dist/es/models/packageJson/IPackageJsonRepository.js.map +1 -0
  69. package/dist/es/models/packageJson/IPackageJsonStringMap.js +4 -0
  70. package/dist/es/models/packageJson/IPackageJsonStringMap.js.map +1 -0
  71. package/dist/types/index.d.ts +33 -0
  72. package/dist/types/models/jsonSchema/IJsonSchema.d.ts +372 -0
  73. package/dist/types/models/jsonSchema/jsonSchemaTagNames.d.ts +4 -0
  74. package/dist/types/models/jsonSchema/jsonSchemaTypeNames.d.ts +4 -0
  75. package/dist/types/models/openApi/IOpenApi.d.ts +72 -0
  76. package/dist/types/models/openApi/IOpenApiComponents.d.ts +70 -0
  77. package/dist/types/models/openApi/IOpenApiContact.d.ts +21 -0
  78. package/dist/types/models/openApi/IOpenApiExample.d.ts +30 -0
  79. package/dist/types/models/openApi/IOpenApiExternalDocumentation.d.ts +14 -0
  80. package/dist/types/models/openApi/IOpenApiHeader.d.ts +50 -0
  81. package/dist/types/models/openApi/IOpenApiInfo.d.ts +43 -0
  82. package/dist/types/models/openApi/IOpenApiLicense.d.ts +21 -0
  83. package/dist/types/models/openApi/IOpenApiMediaType.d.ts +41 -0
  84. package/dist/types/models/openApi/IOpenApiOAuthFlow.d.ts +28 -0
  85. package/dist/types/models/openApi/IOpenApiOAuthFlows.d.ts +27 -0
  86. package/dist/types/models/openApi/IOpenApiParameter.d.ts +74 -0
  87. package/dist/types/models/openApi/IOpenApiPathItem.d.ts +72 -0
  88. package/dist/types/models/openApi/IOpenApiPathMethod.d.ts +75 -0
  89. package/dist/types/models/openApi/IOpenApiReference.d.ts +18 -0
  90. package/dist/types/models/openApi/IOpenApiRequestBody.d.ts +22 -0
  91. package/dist/types/models/openApi/IOpenApiResponse.d.ts +35 -0
  92. package/dist/types/models/openApi/IOpenApiResponses.d.ts +18 -0
  93. package/dist/types/models/openApi/IOpenApiSecurityRequirement.d.ts +7 -0
  94. package/dist/types/models/openApi/IOpenApiSecurityScheme.d.ts +33 -0
  95. package/dist/types/models/openApi/IOpenApiServer.d.ts +29 -0
  96. package/dist/types/models/openApi/IOpenApiServerVariable.d.ts +21 -0
  97. package/dist/types/models/openApi/IOpenApiTag.d.ts +31 -0
  98. package/dist/types/models/openApi/openApiConstants.d.ts +9 -0
  99. package/dist/types/models/packageJson/IPackageJson.d.ts +134 -0
  100. package/dist/types/models/packageJson/IPackageJsonBugs.d.ts +7 -0
  101. package/dist/types/models/packageJson/IPackageJsonPerson.d.ts +8 -0
  102. package/dist/types/models/packageJson/IPackageJsonPublishConfig.d.ts +6 -0
  103. package/dist/types/models/packageJson/IPackageJsonRepository.d.ts +8 -0
  104. package/dist/types/models/packageJson/IPackageJsonStringMap.d.ts +6 -0
  105. package/docs/changelog.md +10 -0
  106. package/docs/examples.md +85 -0
  107. package/docs/reference/classes/OpenApiConstants.md +21 -0
  108. package/docs/reference/index.md +48 -0
  109. package/docs/reference/interfaces/IJsonSchema.md +795 -0
  110. package/docs/reference/interfaces/IOpenApi.md +147 -0
  111. package/docs/reference/interfaces/IOpenApiComponents.md +115 -0
  112. package/docs/reference/interfaces/IOpenApiContact.md +43 -0
  113. package/docs/reference/interfaces/IOpenApiExample.md +55 -0
  114. package/docs/reference/interfaces/IOpenApiExternalDocumentation.md +23 -0
  115. package/docs/reference/interfaces/IOpenApiHeader.md +87 -0
  116. package/docs/reference/interfaces/IOpenApiInfo.md +91 -0
  117. package/docs/reference/interfaces/IOpenApiLicense.md +43 -0
  118. package/docs/reference/interfaces/IOpenApiMediaType.md +71 -0
  119. package/docs/reference/interfaces/IOpenApiOAuthFlow.md +51 -0
  120. package/docs/reference/interfaces/IOpenApiOAuthFlows.md +47 -0
  121. package/docs/reference/interfaces/IOpenApiParameter.md +119 -0
  122. package/docs/reference/interfaces/IOpenApiPathItem.md +131 -0
  123. package/docs/reference/interfaces/IOpenApiPathMethod.md +155 -0
  124. package/docs/reference/interfaces/IOpenApiReference.md +31 -0
  125. package/docs/reference/interfaces/IOpenApiRequestBody.md +35 -0
  126. package/docs/reference/interfaces/IOpenApiResponse.md +59 -0
  127. package/docs/reference/interfaces/IOpenApiResponses.md +29 -0
  128. package/docs/reference/interfaces/IOpenApiSecurityRequirement.md +11 -0
  129. package/docs/reference/interfaces/IOpenApiServer.md +59 -0
  130. package/docs/reference/interfaces/IOpenApiServerVariable.md +43 -0
  131. package/docs/reference/interfaces/IOpenApiTag.md +55 -0
  132. package/docs/reference/interfaces/IPackageJson.md +295 -0
  133. package/docs/reference/interfaces/IPackageJsonPublishConfig.md +7 -0
  134. package/docs/reference/interfaces/IPackageJsonStringMap.md +7 -0
  135. package/docs/reference/type-aliases/IOpenApiSecurityScheme.md +9 -0
  136. package/docs/reference/type-aliases/IPackageJsonBugs.md +5 -0
  137. package/docs/reference/type-aliases/IPackageJsonPerson.md +5 -0
  138. package/docs/reference/type-aliases/IPackageJsonRepository.md +5 -0
  139. package/docs/reference/type-aliases/JsonSchemaTypeNames.md +5 -0
  140. package/docs/reference/type-aliases/OpenApiParameterLocation.md +5 -0
  141. package/docs/reference/type-aliases/OpenApiParameterStyle.md +5 -0
  142. package/docs/reference/variables/JsonSchemaTagNames.md +5 -0
  143. package/locales/en.json +1 -0
  144. 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,9 @@
1
+ /**
2
+ * Constants for OpenAPI processing.
3
+ */
4
+ export declare class OpenApiConstants {
5
+ /**
6
+ * The OpenAPI version used.
7
+ */
8
+ static readonly API_VERSION = "3.1.1";
9
+ }
@@ -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,7 @@
1
+ /**
2
+ * A package bugs field.
3
+ */
4
+ export type IPackageJsonBugs = string | {
5
+ url?: string;
6
+ email?: string;
7
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A package person field.
3
+ */
4
+ export type IPackageJsonPerson = string | {
5
+ name: string;
6
+ email?: string;
7
+ url?: string;
8
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Publish-time npm configuration.
3
+ */
4
+ export interface IPackageJsonPublishConfig {
5
+ [id: string]: string | boolean;
6
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A package repository field.
3
+ */
4
+ export type IPackageJsonRepository = string | {
5
+ type?: string;
6
+ url: string;
7
+ directory?: string;
8
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * A map of package names to version specifiers.
3
+ */
4
+ export interface IPackageJsonStringMap {
5
+ [id: string]: string;
6
+ }
@@ -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
@@ -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)