schemastore-to-typescript 1.1.0 → 1.2.1

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/CHANGELOG.json CHANGED
@@ -2,7 +2,57 @@
2
2
  "name": "schemastore-to-typescript",
3
3
  "entries": [
4
4
  {
5
- "date": "Sat, 31 Oct 2026 17:00:37 GMT",
5
+ "date": "Sun, 01 Nov 2026 02:53:18 GMT",
6
+ "version": "1.2.1",
7
+ "tag": "schemastore-to-typescript_v1.2.1",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "filip.dupanovic@gmail.com",
12
+ "package": "schemastore-to-typescript",
13
+ "commit": "be1eaaac2eccb026829b2ff78a4e9deddc9f2c46",
14
+ "comment": "Name closed objects without members and all-caps type names in jsii mode"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Sun, 01 Nov 2026 02:29:00 GMT",
21
+ "version": "1.2.0",
22
+ "tag": "schemastore-to-typescript_v1.2.0",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "email not defined",
27
+ "package": "schemastore-to-typescript",
28
+ "commit": "516e3b8eb4d7537b8db4f93eb14808e8ae49b3d5",
29
+ "comment": "Update dependency @langri-sha/projen-project to v0.47.1"
30
+ },
31
+ {
32
+ "author": "email not defined",
33
+ "package": "schemastore-to-typescript",
34
+ "commit": "516e3b8eb4d7537b8db4f93eb14808e8ae49b3d5",
35
+ "comment": "Update dependency @langri-sha/projen-project to v0.47.0"
36
+ },
37
+ {
38
+ "author": "email not defined",
39
+ "package": "schemastore-to-typescript",
40
+ "commit": "516e3b8eb4d7537b8db4f93eb14808e8ae49b3d5",
41
+ "comment": "Update dependency @langri-sha/projen-project to v0.48.0"
42
+ }
43
+ ],
44
+ "minor": [
45
+ {
46
+ "author": "filip.dupanovic@gmail.com",
47
+ "package": "schemastore-to-typescript",
48
+ "commit": "516e3b8eb4d7537b8db4f93eb14808e8ae49b3d5",
49
+ "comment": "Add a jsii mode that emits typings jsii can compile"
50
+ }
51
+ ]
52
+ }
53
+ },
54
+ {
55
+ "date": "Sat, 31 Oct 2026 17:00:44 GMT",
6
56
  "version": "1.1.0",
7
57
  "tag": "schemastore-to-typescript_v1.1.0",
8
58
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  # Change Log - schemastore-to-typescript
2
2
 
3
- <!-- This log was last generated on Sat, 31 Oct 2026 17:00:37 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Sun, 01 Nov 2026 02:53:18 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.2.1
8
+
9
+ Sun, 01 Nov 2026 02:53:18 GMT
10
+
11
+ ### Patches
12
+
13
+ - Name closed objects without members and all-caps type names in jsii mode (filip.dupanovic@gmail.com)
14
+
15
+ ## 1.2.0
16
+
17
+ Sun, 01 Nov 2026 02:29:00 GMT
18
+
19
+ ### Minor changes
20
+
21
+ - Add a jsii mode that emits typings jsii can compile (filip.dupanovic@gmail.com)
22
+
23
+ ### Patches
24
+
25
+ - Update dependency @langri-sha/projen-project to v0.47.1
26
+ - Update dependency @langri-sha/projen-project to v0.47.0
27
+ - Update dependency @langri-sha/projen-project to v0.48.0
28
+
7
29
  ## 1.1.0
8
30
 
9
- Sat, 31 Oct 2026 17:00:37 GMT
31
+ Sat, 31 Oct 2026 17:00:44 GMT
10
32
 
11
33
  ### Minor changes
12
34
 
package/dist/cli.js CHANGED
@@ -12,10 +12,12 @@ export const program = new Command()
12
12
  .argument('<schema>', 'JSON schema store schema')
13
13
  .argument('[output]', 'Path to output the TypeScript definition')
14
14
  .option('-n, --no-cache', 'Skip caching requests')
15
+ .option('--jsii', 'Emit typings that jsii can compile')
16
+ .option('--type-name <name>', 'Name the root interface')
15
17
  .showHelpAfterError()
16
- .action(async (schema, output, { cache }) => {
18
+ .action(async (schema, output, { cache, jsii, typeName }) => {
17
19
  output ??= `${schema}.d.ts`;
18
- const compiled = await compile(schema, cache);
20
+ const compiled = await compile(schema, cache, { jsii, typeName });
19
21
  await fs.writeFile(
20
22
  // Using `process.cwd()` as escape hatch for `process.chdir()` not being
21
23
  // available in workers. See: https://github.com/vitest-dev/vitest/issues/1436.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,WAAW,MAAM,OAAO,CAAA;AAC/B,OAAO,MAAM,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,KAAK,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,OAAO,GAAY,IAAI,OAAO,EAAE;KAC1C,IAAI,CAAC,2BAA2B,CAAC;KACjC,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;KAChD,QAAQ,CAAC,UAAU,EAAE,0CAA0C,CAAC;KAChE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;KACjD,kBAAkB,EAAE;KACpB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAA;IAE3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC7C,MAAM,EAAE,CAAC,SAAS;IAChB,wEAAwE;IACxE,+EAA+E;IAC/E,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EACnC,QAAQ,CACT,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO;SACJ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,WAAW,MAAM,OAAO,CAAA;AAC/B,OAAO,MAAM,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,KAAK,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,OAAO,GAAY,IAAI,OAAO,EAAE;KAC1C,IAAI,CAAC,2BAA2B,CAAC;KACjC,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;KAChD,QAAQ,CAAC,UAAU,EAAE,0CAA0C,CAAC;KAChE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;KACjD,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;KACvD,kBAAkB,EAAE;KACpB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAA;IAE3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjE,MAAM,EAAE,CAAC,SAAS;IAChB,wEAAwE;IACxE,+EAA+E;IAC/E,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EACnC,QAAQ,CACT,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO;SACJ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACN,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1 +1,11 @@
1
- export declare const compile: (name: string, cache?: boolean) => Promise<string>;
1
+ export interface CompileOptions {
2
+ /**
3
+ * Emit typings that jsii compiles when they are part of a package's API.
4
+ */
5
+ jsii?: boolean;
6
+ /**
7
+ * Name the root interface, instead of the catalog's name for the schema.
8
+ */
9
+ typeName?: string;
10
+ }
11
+ export declare const compile: (name: string, cache?: boolean, { jsii, typeName }?: CompileOptions) => Promise<string>;
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import got, { HTTPError } from 'got';
5
5
  import { compile as compileSource, } from 'json-schema-to-typescript';
6
6
  import Keyv from 'keyv';
7
7
  import { KeyvFile } from 'keyv-file';
8
+ import { compilerOptions as jsiiCompilerOptions, jsiiSchema, jsiiTypings, } from './jsii.js';
8
9
  import { normalizeSchema } from './normalize.js';
9
10
  const debug = createDebug('schema-store-to-typescript');
10
11
  const paths = envPaths('schemastore-to-typescript');
@@ -112,7 +113,7 @@ const sanitizeSchema = (node, isRoot = true) => {
112
113
  }
113
114
  return sanitized;
114
115
  };
115
- export const compile = async (name, cache = true) => {
116
+ export const compile = async (name, cache = true, { jsii = false, typeName } = {}) => {
116
117
  const catalogUrl = 'https://www.schemastore.org/api/json/catalog.json';
117
118
  let catalog;
118
119
  let schema;
@@ -169,7 +170,7 @@ export const compile = async (name, cache = true) => {
169
170
  debug(`Fetching schema from: ${catalogSchema.url}`);
170
171
  schema = await fetchWithRetry(catalogSchema.url);
171
172
  if (typeof schema === 'object' && schema !== null) {
172
- schema.title = catalogSchema.name;
173
+ schema.title = typeName ?? catalogSchema.name;
173
174
  }
174
175
  }
175
176
  catch (e) {
@@ -188,6 +189,10 @@ export const compile = async (name, cache = true) => {
188
189
  if (cache) {
189
190
  await flushCache();
190
191
  }
191
- return compileSource(sanitizeSchema(normalizeSchema(schema)), name);
192
+ const normalized = sanitizeSchema(normalizeSchema(schema));
193
+ if (!jsii) {
194
+ return compileSource(normalized, name);
195
+ }
196
+ return jsiiTypings(await compileSource(jsiiSchema(normalized), name, jsiiCompilerOptions));
192
197
  };
193
198
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/jsii.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { JSONSchema, Options } from 'json-schema-to-typescript';
2
+ export declare const compilerOptions: Partial<Options>;
3
+ /**
4
+ * Reshapes a schema so the typings `json-schema-to-typescript` writes for it
5
+ * stay within what jsii accepts: no `null`, no intersections, no named maps
6
+ * and no inline objects.
7
+ */
8
+ export declare const jsiiSchema: (schema: JSONSchema) => JSONSchema;
9
+ /**
10
+ * jsii requires a struct's members to be `readonly` (JSII3008). Only the
11
+ * members of exported interfaces are rewritten: after `jsiiSchema` there is no
12
+ * object type left that is written inline.
13
+ */
14
+ export declare const jsiiTypings: (source: string) => string;
package/dist/jsii.js ADDED
@@ -0,0 +1,454 @@
1
+ import { escapeToken, isObject, literalKeys, namedSchemaKeys, resolvePointer, } from './normalize.js';
2
+ export const compilerOptions = {
3
+ ignoreMinAndMaxItems: true,
4
+ };
5
+ const mapSchema = (node, visit, inSchema = true) => {
6
+ if (Array.isArray(node)) {
7
+ return node.map((item) => mapSchema(item, visit, inSchema));
8
+ }
9
+ if (!isObject(node)) {
10
+ return node;
11
+ }
12
+ if (!inSchema) {
13
+ return Object.fromEntries(Object.entries(node).map(([name, value]) => [
14
+ name,
15
+ mapSchema(value, visit, true),
16
+ ]));
17
+ }
18
+ const mapped = {};
19
+ for (const [key, value] of Object.entries(node)) {
20
+ mapped[key] = literalKeys.has(key)
21
+ ? value
22
+ : mapSchema(value, visit, !namedSchemaKeys.has(key));
23
+ }
24
+ return visit(mapped);
25
+ };
26
+ const hasMembers = (node) => isObject(node) &&
27
+ isObject(node.properties) &&
28
+ Object.keys(node.properties).length > 0;
29
+ const isNull = (node) => isObject(node) && (node.type === 'null' || node.const === null);
30
+ /**
31
+ * jsii rejects a union with `null` (JSII1001). Every member it applies to is
32
+ * optional, so leaving `null` out loses nothing the schema's own optionality
33
+ * doesn't already say.
34
+ */
35
+ const stripNull = (node) => {
36
+ if (Array.isArray(node.type) && node.type.includes('null')) {
37
+ const types = node.type.filter((type) => type !== 'null');
38
+ if (types.length === 0) {
39
+ delete node.type;
40
+ }
41
+ else {
42
+ node.type = types.length === 1 ? types[0] : types;
43
+ }
44
+ }
45
+ if (Array.isArray(node.enum) && node.enum.includes(null)) {
46
+ const values = node.enum.filter((value) => value !== null);
47
+ if (values.length === 0) {
48
+ delete node.enum;
49
+ }
50
+ else {
51
+ node.enum = values;
52
+ }
53
+ }
54
+ for (const keyword of ['anyOf', 'oneOf']) {
55
+ const alternatives = node[keyword];
56
+ if (!Array.isArray(alternatives) || !alternatives.some(isNull)) {
57
+ continue;
58
+ }
59
+ const remaining = alternatives.filter((member) => !isNull(member));
60
+ const { [keyword]: _, ...rest } = node;
61
+ if (remaining.length === 0) {
62
+ return rest;
63
+ }
64
+ if (remaining.length === 1 && isObject(remaining[0])) {
65
+ return { ...remaining[0], ...rest };
66
+ }
67
+ return { ...rest, [keyword]: remaining };
68
+ }
69
+ return node;
70
+ };
71
+ /**
72
+ * Whatever `stripNull` left of a schema that only ever allowed `null`.
73
+ */
74
+ const unnull = (node) => {
75
+ if (node.type === 'null') {
76
+ delete node.type;
77
+ }
78
+ if (node.const === null) {
79
+ delete node.const;
80
+ }
81
+ return node;
82
+ };
83
+ const mergeMembers = (target, source) => {
84
+ const targetRequired = Array.isArray(target.required) ? target.required : [];
85
+ const sourceRequired = Array.isArray(source.required) ? source.required : [];
86
+ return {
87
+ ...target,
88
+ type: 'object',
89
+ properties: {
90
+ ...source.properties,
91
+ ...target.properties,
92
+ },
93
+ ...(targetRequired.length + sourceRequired.length > 0 && {
94
+ required: [...new Set([...targetRequired, ...sourceRequired])],
95
+ }),
96
+ };
97
+ };
98
+ /**
99
+ * Members of alternatives are any of them, so a member that several
100
+ * alternatives describe takes all of their schemas. The node's own members
101
+ * stay as they are: they hold in every alternative.
102
+ */
103
+ const mergeAlternative = (node, alternative, own) => {
104
+ const properties = { ...node.properties };
105
+ for (const [name, schema] of Object.entries(alternative.properties)) {
106
+ const earlier = properties[name];
107
+ if (own.has(name) || JSON.stringify(earlier) === JSON.stringify(schema)) {
108
+ continue;
109
+ }
110
+ properties[name] =
111
+ earlier === undefined
112
+ ? schema
113
+ : {
114
+ anyOf: [
115
+ ...(isObject(earlier) && Array.isArray(earlier.anyOf)
116
+ ? earlier.anyOf
117
+ : [earlier]),
118
+ schema,
119
+ ],
120
+ };
121
+ }
122
+ return { ...node, type: 'object', properties };
123
+ };
124
+ /**
125
+ * jsii only accepts an intersection of interfaces (JSII1008), and a union
126
+ * beside members compiles to one. The schemas use `allOf`, and `anyOf` beside
127
+ * `properties`, to attach constraints: this restates what they say about
128
+ * members in one object, and drops what only constrains.
129
+ */
130
+ const flatten = (document) => (node) => {
131
+ let flattened = node;
132
+ if (Array.isArray(flattened.allOf)) {
133
+ const { allOf, ...rest } = flattened;
134
+ const references = [];
135
+ flattened = rest;
136
+ for (const member of allOf) {
137
+ if (!isObject(member)) {
138
+ continue;
139
+ }
140
+ const target = typeof member.$ref === 'string'
141
+ ? resolvePointer(document, member.$ref)
142
+ : member;
143
+ if (hasMembers(target)) {
144
+ flattened = mergeMembers(flattened, target);
145
+ }
146
+ else if (typeof member.$ref === 'string') {
147
+ references.push(member);
148
+ }
149
+ }
150
+ if (references.length === 1 && !hasMembers(flattened)) {
151
+ const { type: _, ...siblings } = flattened;
152
+ flattened = { ...references[0], ...siblings };
153
+ }
154
+ }
155
+ if (hasMembers(flattened)) {
156
+ for (const keyword of ['anyOf', 'oneOf']) {
157
+ const alternatives = flattened[keyword];
158
+ if (!Array.isArray(alternatives)) {
159
+ continue;
160
+ }
161
+ const targets = alternatives.map((member) => isObject(member) && typeof member.$ref === 'string'
162
+ ? resolvePointer(document, member.$ref)
163
+ : member);
164
+ if (!targets.every((target) => hasMembers(target) ||
165
+ (isObject(target) && Array.isArray(target.required)))) {
166
+ continue;
167
+ }
168
+ const { [keyword]: _, ...rest } = flattened;
169
+ const own = new Set(Object.keys(rest.properties));
170
+ flattened = rest;
171
+ for (const target of targets) {
172
+ if (hasMembers(target)) {
173
+ flattened = mergeAlternative(flattened, target, own);
174
+ }
175
+ }
176
+ }
177
+ }
178
+ return flattened;
179
+ };
180
+ /**
181
+ * Tuples cannot cross a jsii API (JSII1999); `ignoreMinAndMaxItems` covers
182
+ * the ones spelled with `minItems` and `maxItems`. What follows the listed
183
+ * items is one more alternative, or anything when it is `true`.
184
+ */
185
+ const untuple = (node) => {
186
+ if (!Array.isArray(node.items)) {
187
+ return node;
188
+ }
189
+ const { items, additionalItems, ...rest } = node;
190
+ const alternatives = isObject(additionalItems)
191
+ ? [...items, additionalItems]
192
+ : items;
193
+ return {
194
+ ...rest,
195
+ items: additionalItems === true || alternatives.length === 0
196
+ ? {}
197
+ : { anyOf: alternatives },
198
+ };
199
+ };
200
+ const isMap = (node) => isObject(node) &&
201
+ !hasMembers(node) &&
202
+ (node.type === 'object' ||
203
+ (node.type === undefined &&
204
+ (node.additionalProperties !== undefined ||
205
+ isObject(node.patternProperties)))) &&
206
+ (node.additionalProperties !== false || isObject(node.patternProperties));
207
+ /**
208
+ * A named interface cannot be a map (JSII1999), but a map type can stand in
209
+ * a member's type. Restate every member-less object as one, without the name
210
+ * that would hoist it back into an interface.
211
+ */
212
+ const mapify = (node) => {
213
+ if (!isMap(node)) {
214
+ return node;
215
+ }
216
+ const patterns = isObject(node.patternProperties)
217
+ ? Object.values(node.patternProperties)
218
+ : [];
219
+ const values = isObject(node.additionalProperties)
220
+ ? [node.additionalProperties, ...patterns]
221
+ : patterns;
222
+ const { $id: _id, title: _title, required: _required, patternProperties: _patterns, ...rest } = node;
223
+ return {
224
+ ...rest,
225
+ type: 'object',
226
+ additionalProperties: values.length === 0 || node.additionalProperties === true
227
+ ? true
228
+ : values.length === 1
229
+ ? values[0]
230
+ : { anyOf: values },
231
+ };
232
+ };
233
+ /**
234
+ * A map that reaches itself keeps its `$ref` where it does, so that it stays
235
+ * a named interface rather than expanding without end.
236
+ */
237
+ const inlineMaps = (document) => {
238
+ const walk = (node, expanding, inSchema) => {
239
+ if (Array.isArray(node)) {
240
+ return node.map((item) => walk(item, expanding, inSchema));
241
+ }
242
+ if (!isObject(node)) {
243
+ return node;
244
+ }
245
+ if (!inSchema) {
246
+ return Object.fromEntries(Object.entries(node).map(([name, value]) => [
247
+ name,
248
+ walk(value, expanding, true),
249
+ ]));
250
+ }
251
+ const target = typeof node.$ref === 'string'
252
+ ? resolvePointer(document, node.$ref)
253
+ : undefined;
254
+ if (typeof node.$ref === 'string' &&
255
+ isMap(target) &&
256
+ target !== document &&
257
+ !expanding.includes(node.$ref)) {
258
+ const { $ref, title: _, ...siblings } = node;
259
+ return {
260
+ ...walk(structuredClone(target), [...expanding, $ref], true),
261
+ ...siblings,
262
+ };
263
+ }
264
+ const walked = {};
265
+ for (const [key, value] of Object.entries(node)) {
266
+ if (literalKeys.has(key)) {
267
+ walked[key] = value;
268
+ }
269
+ else if (key === 'definitions' && isObject(value)) {
270
+ walked[key] = Object.fromEntries(Object.entries(value).map(([name, definition]) => [
271
+ name,
272
+ walk(definition, [...expanding, `#/definitions/${escapeToken(name)}`], true),
273
+ ]));
274
+ }
275
+ else {
276
+ walked[key] = walk(value, expanding, !namedSchemaKeys.has(key));
277
+ }
278
+ }
279
+ return walked;
280
+ };
281
+ return walk(document, [], true);
282
+ };
283
+ /**
284
+ * jsii rejects a type name `Case.pascal` would change (JSII8000), which is one
285
+ * spelled in capitals alone, such as `SDK`.
286
+ */
287
+ const isShouting = (name) => /^[A-Z0-9]+$/.test(name) && /[A-Z].*[A-Z]/.test(name);
288
+ const isClosed = (node) => node.type === 'object' && node.additionalProperties === false;
289
+ const pascal = (text) => text
290
+ .split(/[^A-Za-z0-9]+/)
291
+ .filter(Boolean)
292
+ .map((word) => word[0].toUpperCase() + word.slice(1))
293
+ .join('');
294
+ /**
295
+ * jsii only accepts a struct for an object (JSII1003), so every object that
296
+ * would otherwise be written inline gets a title, which names it and hoists it.
297
+ */
298
+ const nameInlineObjects = (document) => {
299
+ const taken = new Set();
300
+ const collect = (node, inSchema) => {
301
+ if (Array.isArray(node)) {
302
+ node.forEach((item) => collect(item, inSchema));
303
+ }
304
+ else if (isObject(node)) {
305
+ for (const [key, value] of Object.entries(node)) {
306
+ if (!inSchema) {
307
+ collect(value, true);
308
+ }
309
+ else if (!literalKeys.has(key)) {
310
+ if (key === 'title' && typeof value === 'string') {
311
+ taken.add(pascal(value));
312
+ }
313
+ if (key === 'definitions' && isObject(value)) {
314
+ Object.keys(value).forEach((name) => taken.add(pascal(name)));
315
+ }
316
+ collect(value, !namedSchemaKeys.has(key));
317
+ }
318
+ }
319
+ }
320
+ };
321
+ collect(document, true);
322
+ const unique = (name) => {
323
+ let candidate = name;
324
+ for (let suffix = 2; taken.has(candidate); suffix++) {
325
+ candidate = `${name}${suffix}`;
326
+ }
327
+ taken.add(candidate);
328
+ return candidate;
329
+ };
330
+ const name = (node, fallback) => typeof node.title === 'string' ? pascal(node.title) : fallback;
331
+ const visit = (node, fallback, hoisted) => {
332
+ const own = hoisted || typeof node.title === 'string'
333
+ ? name(node, fallback)
334
+ : undefined;
335
+ if (own !== undefined && isShouting(own)) {
336
+ node.title = unique(own[0] + own.slice(1).toLowerCase());
337
+ }
338
+ if (!hoisted &&
339
+ (hasMembers(node) || isClosed(node)) &&
340
+ typeof node.title !== 'string' &&
341
+ typeof node.$ref !== 'string') {
342
+ node.title = unique(fallback);
343
+ }
344
+ const self = name(node, fallback);
345
+ const child = (value, suffix, isHoisted = false) => {
346
+ if (isObject(value)) {
347
+ visit(value, `${self}${suffix}`, isHoisted);
348
+ }
349
+ };
350
+ if (isObject(node.properties)) {
351
+ for (const [key, value] of Object.entries(node.properties)) {
352
+ child(value, pascal(key));
353
+ }
354
+ }
355
+ if (isObject(node.definitions)) {
356
+ for (const [key, value] of Object.entries(node.definitions)) {
357
+ if (isObject(value)) {
358
+ visit(value, pascal(key), true);
359
+ }
360
+ }
361
+ }
362
+ if (Array.isArray(node.items)) {
363
+ node.items.forEach((item) => child(item, 'Item'));
364
+ }
365
+ else {
366
+ child(node.items, 'Item');
367
+ }
368
+ child(node.additionalProperties, 'Value');
369
+ for (const keyword of ['anyOf', 'oneOf']) {
370
+ if (Array.isArray(node[keyword])) {
371
+ node[keyword].forEach((member, index) => child(member, `Option${index + 1}`));
372
+ }
373
+ }
374
+ };
375
+ visit(document, 'Root', true);
376
+ return document;
377
+ };
378
+ /**
379
+ * Reshapes a schema so the typings `json-schema-to-typescript` writes for it
380
+ * stay within what jsii accepts: no `null`, no intersections, no named maps
381
+ * and no inline objects.
382
+ */
383
+ export const jsiiSchema = (schema) => {
384
+ if (!isObject(schema)) {
385
+ return schema;
386
+ }
387
+ let document = structuredClone(schema);
388
+ document = mapSchema(document, stripNull);
389
+ document = mapSchema(document, unnull);
390
+ document = mapSchema(document, flatten(document));
391
+ document = mapSchema(document, untuple);
392
+ document = mapSchema(document, mapify);
393
+ document = inlineMaps(document);
394
+ return nameInlineObjects(document);
395
+ };
396
+ const prohibited = new Set(['build', 'equals', 'hashcode']);
397
+ /**
398
+ * jsii rejects any member whose name `Case.camel` would change (JSII8002), and
399
+ * a few that clash with generated code (JSII5016). They stay in the typings, as
400
+ * the wire format spells them, but outside the assembly.
401
+ */
402
+ const isJsiiName = (name) => /^[a-z][a-z0-9]*(?:[A-Z][a-z0-9]*)*$/.test(name) &&
403
+ !prohibited.has(name.toLowerCase());
404
+ const bareDeprecation = /^( *\* @deprecated)$/gm;
405
+ const property = /^ {2}(?:readonly )?("[^"]+"|'[^']+'|[A-Za-z_$][\w$]*)(\?)?:/;
406
+ const indexSignature = /^ {2}(?:readonly )?\[[^\]]+\]:/;
407
+ const ignore = (lines) => {
408
+ const last = lines.length - 1;
409
+ if (lines[last]?.trim() === '*/') {
410
+ lines.splice(last, 0, ' * @jsii ignore');
411
+ }
412
+ else {
413
+ lines.push(' /** @jsii ignore */');
414
+ }
415
+ };
416
+ /**
417
+ * jsii requires a struct's members to be `readonly` (JSII3008). Only the
418
+ * members of exported interfaces are rewritten: after `jsiiSchema` there is no
419
+ * object type left that is written inline.
420
+ */
421
+ export const jsiiTypings = (source) => {
422
+ const output = [];
423
+ let inInterface = false;
424
+ for (const line of source
425
+ .replaceAll(bareDeprecation, '$1 Deprecated by the schema.')
426
+ .split('\n')) {
427
+ if (!inInterface) {
428
+ inInterface = /^export interface .*\{$/.test(line);
429
+ output.push(line);
430
+ continue;
431
+ }
432
+ if (line === '}') {
433
+ inInterface = false;
434
+ output.push(line);
435
+ continue;
436
+ }
437
+ if (indexSignature.test(line)) {
438
+ ignore(output);
439
+ output.push(line);
440
+ continue;
441
+ }
442
+ const match = property.exec(line);
443
+ if (!match) {
444
+ output.push(line);
445
+ continue;
446
+ }
447
+ if (!isJsiiName(match[1].replace(/^["']|["']$/g, ''))) {
448
+ ignore(output);
449
+ }
450
+ output.push(line.replace(/^ {2}(?:readonly )?/, ' readonly '));
451
+ }
452
+ return output.join('\n');
453
+ };
454
+ //# sourceMappingURL=jsii.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsii.js","sourceRoot":"","sources":["../src/jsii.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { JSONSchema } from 'json-schema-to-typescript';
2
+ export type Node = Record<string, unknown>;
3
+ export declare const isObject: (value: unknown) => value is Node;
4
+ export declare const literalKeys: Set<string>;
5
+ export declare const namedSchemaKeys: Set<string>;
6
+ export declare const escapeToken: (name: string) => string;
7
+ export declare const resolvePointer: (document: Node, ref: string) => unknown;
2
8
  /**
3
9
  * `json-schema-to-typescript` resolves references against draft-07's
4
10
  * vocabulary: it only knows `definitions`, and it expects the root to be a
package/dist/normalize.js CHANGED
@@ -1,11 +1,11 @@
1
- const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
1
+ export const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
2
2
  // Hold literal instance data rather than nested schemas, so they must not be
3
3
  // walked as if they were part of the schema shape.
4
- const literalKeys = new Set(['const', 'default', 'enum', 'examples']);
4
+ export const literalKeys = new Set(['const', 'default', 'enum', 'examples']);
5
5
  // Keyed by name rather than by keyword: a member of one of these called
6
6
  // `$defs` is a subschema that happens to be named `$defs`, not a definition
7
7
  // block.
8
- const namedSchemaKeys = new Set([
8
+ export const namedSchemaKeys = new Set([
9
9
  '$defs',
10
10
  'definitions',
11
11
  'dependencies',
@@ -13,10 +13,10 @@ const namedSchemaKeys = new Set([
13
13
  'patternProperties',
14
14
  'properties',
15
15
  ]);
16
- const escapeToken = (name) => name.replaceAll('~', '~0').replaceAll('/', '~1');
16
+ export const escapeToken = (name) => name.replaceAll('~', '~0').replaceAll('/', '~1');
17
17
  const unescapeToken = (token) => token.replaceAll('~1', '/').replaceAll('~0', '~');
18
18
  const join = (path, token) => path === '' ? token : `${path}/${token}`;
19
- const resolvePointer = (document, ref) => {
19
+ export const resolvePointer = (document, ref) => {
20
20
  if (ref === '#') {
21
21
  return document;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "schemastore-to-typescript",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "Fetch JSON schemas from the JSON Schema Store catalog and compile them to TypeScript typings",
5
5
  "keywords": [
6
6
  "cli",
@@ -50,10 +50,10 @@
50
50
  "keyv-file": "5.3.5"
51
51
  },
52
52
  "devDependencies": {
53
- "@langri-sha/eslint-config": "0.10.0",
53
+ "@langri-sha/eslint-config": "0.11.0",
54
54
  "@langri-sha/lint-staged": "0.9.11",
55
55
  "@langri-sha/prettier": "0.4.11",
56
- "@langri-sha/projen-project": "0.46.0",
56
+ "@langri-sha/projen-project": "0.48.0",
57
57
  "@langri-sha/tsconfig": "1.1.1",
58
58
  "@langri-sha/vitest": "0.2.3",
59
59
  "@types/debug": "4.1.13",
package/readme.md CHANGED
@@ -35,6 +35,35 @@ import { compile } from 'schemastore-to-typescript'
35
35
  const typings = await compile('swcrc')
36
36
  ```
37
37
 
38
+ ## Usage with jsii
39
+
40
+ Typings exported from the API of a [jsii] package have to fit what jsii can
41
+ represent. Pass `--jsii` for typings that do, and `--type-name` when the root
42
+ interface would share its name with the class that wraps it:
43
+
44
+ ```sh
45
+ schemastore-to-typescript --jsii --type-name RuffSchema ruff src/ruff.ts
46
+ ```
47
+
48
+ ```ts
49
+ const typings = await compile('ruff', true, {
50
+ jsii: true,
51
+ typeName: 'RuffSchema',
52
+ })
53
+ ```
54
+
55
+ The mode changes the shape of types only as far as jsii requires:
56
+
57
+ - members are `readonly` and `null` is left out of unions
58
+ - objects written inline become named interfaces, and named maps are written
59
+ inline as `{ [k: string]: T }`
60
+ - intersections become a single interface, and tuples become arrays
61
+ - type names spelled in capitals alone, such as `SDK`, become `Sdk`, and so does
62
+ a `--type-name` spelled that way
63
+ - names that aren't camelCase, names jsii reserves and index signatures stay in
64
+ the typings as they are, tagged `@jsii ignore`, so the assembly leaves them
65
+ out
66
+
38
67
  ## Contributing
39
68
 
40
69
  See [CONTRIBUTING.md] in `langri-sha/github`.
@@ -44,6 +73,7 @@ See [CONTRIBUTING.md] in `langri-sha/github`.
44
73
  [`got`]: https://www.npmjs.com/package/got
45
74
  [`json-schema-to-typescript`]:
46
75
  https://www.npmjs.com/package/json-schema-to-typescript
76
+ [jsii]: https://aws.github.io/jsii/
47
77
  [json schema store]: https://www.schemastore.org/
48
78
  [json schema store catalog api]:
49
79
  https://www.schemastore.org/api/json/catalog.json