@formspec/build 0.1.0-alpha.45 → 0.1.0-alpha.47
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/dist/cli.cjs +46 -51
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +46 -51
- package/dist/cli.js.map +1 -1
- package/dist/generators/class-schema.d.ts +16 -0
- package/dist/generators/class-schema.d.ts.map +1 -1
- package/dist/generators/discovered-schema.d.ts.map +1 -1
- package/dist/index.cjs +46 -51
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +46 -51
- package/dist/index.js.map +1 -1
- package/dist/internals.cjs +15 -0
- package/dist/internals.cjs.map +1 -1
- package/dist/internals.d.ts +1 -1
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +14 -0
- package/dist/internals.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5871,6 +5871,19 @@ function generateSchemasBatchFromProgram(options) {
|
|
|
5871
5871
|
function isMutableRegistry(reg) {
|
|
5872
5872
|
return "setSymbolMap" in reg && typeof reg.setSymbolMap === "function";
|
|
5873
5873
|
}
|
|
5874
|
+
function resolveStaticOptions(options) {
|
|
5875
|
+
const legacyRegistry = options.extensionRegistry;
|
|
5876
|
+
const configRegistry = legacyRegistry === void 0 && options.config?.extensions !== void 0 ? createExtensionRegistry(options.config.extensions) : void 0;
|
|
5877
|
+
return {
|
|
5878
|
+
extensionRegistry: legacyRegistry ?? configRegistry,
|
|
5879
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
5880
|
+
vendorPrefix: options.vendorPrefix ?? options.config?.vendorPrefix,
|
|
5881
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
5882
|
+
enumSerialization: options.enumSerialization ?? options.config?.enumSerialization,
|
|
5883
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
5884
|
+
metadata: options.metadata ?? options.config?.metadata
|
|
5885
|
+
};
|
|
5886
|
+
}
|
|
5874
5887
|
function resolveOptions(options) {
|
|
5875
5888
|
const configRegistry = options.config?.extensions !== void 0 ? createExtensionRegistry(options.config.extensions) : void 0;
|
|
5876
5889
|
const legacyRegistry = options.extensionRegistry;
|
|
@@ -6065,10 +6078,9 @@ function omitApiName(metadata) {
|
|
|
6065
6078
|
const { apiName: _apiName, ...rest } = metadata;
|
|
6066
6079
|
return Object.keys(rest).length > 0 ? rest : void 0;
|
|
6067
6080
|
}
|
|
6068
|
-
function enforceRequiredMetadata(metadata, declarationKind, logicalName,
|
|
6081
|
+
function enforceRequiredMetadata(metadata, declarationKind, logicalName, metadataPolicy) {
|
|
6069
6082
|
const declarationPolicy = getDeclarationMetadataPolicy(
|
|
6070
|
-
|
|
6071
|
-
normalizeMetadataPolicy(options.metadata),
|
|
6083
|
+
normalizeMetadataPolicy(metadataPolicy),
|
|
6072
6084
|
declarationKind
|
|
6073
6085
|
);
|
|
6074
6086
|
if (metadata?.apiName === void 0 && declarationPolicy.apiName.mode === "require-explicit") {
|
|
@@ -6113,7 +6125,7 @@ function describeRootType(rootType, typeRegistry, fallbackName) {
|
|
|
6113
6125
|
type: definition.type
|
|
6114
6126
|
};
|
|
6115
6127
|
}
|
|
6116
|
-
function toStandaloneJsonSchema(root, typeRegistry,
|
|
6128
|
+
function toStandaloneJsonSchema(root, typeRegistry, resolved) {
|
|
6117
6129
|
const syntheticFieldMetadata = omitApiName(root.metadata);
|
|
6118
6130
|
const syntheticField = {
|
|
6119
6131
|
kind: "field",
|
|
@@ -6142,19 +6154,15 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
6142
6154
|
provenance: syntheticField.provenance
|
|
6143
6155
|
},
|
|
6144
6156
|
{
|
|
6145
|
-
|
|
6146
|
-
policy: normalizeMetadataPolicy(options?.metadata),
|
|
6157
|
+
policy: normalizeMetadataPolicy(resolved?.metadata),
|
|
6147
6158
|
surface: "tsdoc",
|
|
6148
6159
|
rootLogicalName: root.name
|
|
6149
6160
|
}
|
|
6150
6161
|
);
|
|
6151
6162
|
const schema = generateJsonSchemaFromIR(ir, {
|
|
6152
|
-
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
enumSerialization: options?.enumSerialization,
|
|
6156
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6157
|
-
vendorPrefix: options?.vendorPrefix
|
|
6163
|
+
extensionRegistry: resolved?.extensionRegistry,
|
|
6164
|
+
enumSerialization: resolved?.enumSerialization,
|
|
6165
|
+
vendorPrefix: resolved?.vendorPrefix
|
|
6158
6166
|
});
|
|
6159
6167
|
const result = schema.properties?.["__result"];
|
|
6160
6168
|
if (result === void 0) {
|
|
@@ -6172,26 +6180,23 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
6172
6180
|
$defs: schema.$defs
|
|
6173
6181
|
};
|
|
6174
6182
|
}
|
|
6175
|
-
function generateSchemasFromAnalysis(analysis, filePath,
|
|
6183
|
+
function generateSchemasFromAnalysis(analysis, filePath, resolved) {
|
|
6176
6184
|
return toDiscoveredTypeSchemas(
|
|
6177
6185
|
generateClassSchemas(
|
|
6178
6186
|
analysis,
|
|
6179
6187
|
{ file: filePath },
|
|
6180
6188
|
{
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6186
|
-
metadata: options?.metadata,
|
|
6187
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6188
|
-
vendorPrefix: options?.vendorPrefix
|
|
6189
|
+
extensionRegistry: resolved?.extensionRegistry,
|
|
6190
|
+
enumSerialization: resolved?.enumSerialization,
|
|
6191
|
+
metadata: resolved?.metadata,
|
|
6192
|
+
vendorPrefix: resolved?.vendorPrefix
|
|
6189
6193
|
}
|
|
6190
6194
|
),
|
|
6191
6195
|
analysis.metadata
|
|
6192
6196
|
);
|
|
6193
6197
|
}
|
|
6194
6198
|
function generateSchemasFromResolvedType(options, skipNamedDeclaration = false, rootOverride) {
|
|
6199
|
+
const resolved = resolveStaticOptions(options);
|
|
6195
6200
|
const namedDeclaration = skipNamedDeclaration || hasConcreteTypeArguments(options.type, options.context.checker) ? void 0 : getNamedTypeDeclaration2(options.type);
|
|
6196
6201
|
if (namedDeclaration !== void 0) {
|
|
6197
6202
|
return generateSchemasFromDeclaration({
|
|
@@ -6209,10 +6214,8 @@ function generateSchemasFromResolvedType(options, skipNamedDeclaration = false,
|
|
|
6209
6214
|
typeRegistry,
|
|
6210
6215
|
/* @__PURE__ */ new Set(),
|
|
6211
6216
|
options.sourceNode,
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6215
|
-
options.extensionRegistry,
|
|
6217
|
+
createAnalyzerMetadataPolicy(resolved.metadata, options.discriminator),
|
|
6218
|
+
resolved.extensionRegistry,
|
|
6216
6219
|
diagnostics
|
|
6217
6220
|
);
|
|
6218
6221
|
if (diagnostics.length > 0) {
|
|
@@ -6243,31 +6246,30 @@ function generateSchemasFromResolvedType(options, skipNamedDeclaration = false,
|
|
|
6243
6246
|
root.annotations
|
|
6244
6247
|
),
|
|
6245
6248
|
filePath,
|
|
6246
|
-
|
|
6249
|
+
resolved
|
|
6247
6250
|
);
|
|
6248
6251
|
}
|
|
6249
6252
|
return {
|
|
6250
|
-
jsonSchema: toStandaloneJsonSchema(root, typeRegistry,
|
|
6253
|
+
jsonSchema: toStandaloneJsonSchema(root, typeRegistry, resolved),
|
|
6251
6254
|
uiSchema: null,
|
|
6252
6255
|
...root.metadata !== void 0 && { resolvedMetadata: root.metadata }
|
|
6253
6256
|
};
|
|
6254
6257
|
}
|
|
6255
6258
|
function generateSchemasFromDeclaration(options) {
|
|
6256
6259
|
const filePath = options.declaration.getSourceFile().fileName;
|
|
6260
|
+
const resolved = resolveStaticOptions(options);
|
|
6257
6261
|
if (ts8.isClassDeclaration(options.declaration)) {
|
|
6258
6262
|
return generateSchemasFromAnalysis(
|
|
6259
6263
|
analyzeClassToIR(
|
|
6260
6264
|
options.declaration,
|
|
6261
6265
|
options.context.checker,
|
|
6262
6266
|
filePath,
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6266
|
-
options.metadata,
|
|
6267
|
+
resolved.extensionRegistry,
|
|
6268
|
+
resolved.metadata,
|
|
6267
6269
|
options.discriminator
|
|
6268
6270
|
),
|
|
6269
6271
|
filePath,
|
|
6270
|
-
|
|
6272
|
+
resolved
|
|
6271
6273
|
);
|
|
6272
6274
|
}
|
|
6273
6275
|
if (ts8.isInterfaceDeclaration(options.declaration)) {
|
|
@@ -6276,14 +6278,12 @@ function generateSchemasFromDeclaration(options) {
|
|
|
6276
6278
|
options.declaration,
|
|
6277
6279
|
options.context.checker,
|
|
6278
6280
|
filePath,
|
|
6279
|
-
|
|
6280
|
-
|
|
6281
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6282
|
-
options.metadata,
|
|
6281
|
+
resolved.extensionRegistry,
|
|
6282
|
+
resolved.metadata,
|
|
6283
6283
|
options.discriminator
|
|
6284
6284
|
),
|
|
6285
6285
|
filePath,
|
|
6286
|
-
|
|
6286
|
+
resolved
|
|
6287
6287
|
);
|
|
6288
6288
|
}
|
|
6289
6289
|
if (ts8.isTypeAliasDeclaration(options.declaration)) {
|
|
@@ -6291,23 +6291,19 @@ function generateSchemasFromDeclaration(options) {
|
|
|
6291
6291
|
options.declaration,
|
|
6292
6292
|
options.context.checker,
|
|
6293
6293
|
filePath,
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6297
|
-
options.metadata,
|
|
6294
|
+
resolved.extensionRegistry,
|
|
6295
|
+
resolved.metadata,
|
|
6298
6296
|
options.discriminator
|
|
6299
6297
|
);
|
|
6300
6298
|
if (analyzedAlias.ok) {
|
|
6301
|
-
return generateSchemasFromAnalysis(analyzedAlias.analysis, filePath,
|
|
6299
|
+
return generateSchemasFromAnalysis(analyzedAlias.analysis, filePath, resolved);
|
|
6302
6300
|
}
|
|
6303
6301
|
const aliasRootInfo = analyzeDeclarationRootInfo(
|
|
6304
6302
|
options.declaration,
|
|
6305
6303
|
options.context.checker,
|
|
6306
6304
|
filePath,
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6310
|
-
options.metadata
|
|
6305
|
+
resolved.extensionRegistry,
|
|
6306
|
+
resolved.metadata
|
|
6311
6307
|
);
|
|
6312
6308
|
if (aliasRootInfo.diagnostics.length > 0) {
|
|
6313
6309
|
const diagnosticDetails = aliasRootInfo.diagnostics.map((diagnostic) => `${diagnostic.code}: ${diagnostic.message}`).join("; ");
|
|
@@ -6358,20 +6354,19 @@ function generateSchemasFromReturnType(options) {
|
|
|
6358
6354
|
});
|
|
6359
6355
|
}
|
|
6360
6356
|
function resolveDeclarationMetadata(options) {
|
|
6357
|
+
const resolved = resolveStaticOptions(options);
|
|
6361
6358
|
const analysis = analyzeMetadataForNodeWithChecker2({
|
|
6362
6359
|
checker: options.context.checker,
|
|
6363
6360
|
node: options.declaration,
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6367
|
-
extensions: options.extensionRegistry?.extensions,
|
|
6361
|
+
metadata: resolved.metadata,
|
|
6362
|
+
extensions: resolved.extensionRegistry?.extensions,
|
|
6368
6363
|
buildContext: options.context
|
|
6369
6364
|
});
|
|
6370
6365
|
if (analysis === null) {
|
|
6371
6366
|
return void 0;
|
|
6372
6367
|
}
|
|
6373
6368
|
const metadata = analysis.resolvedMetadata;
|
|
6374
|
-
enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName,
|
|
6369
|
+
enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName, resolved.metadata);
|
|
6375
6370
|
return metadata;
|
|
6376
6371
|
}
|
|
6377
6372
|
function unwrapPromiseType(checker, type) {
|