@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/cli.cjs
CHANGED
|
@@ -6017,6 +6017,19 @@ function generateSchemasBatchFromProgram(options) {
|
|
|
6017
6017
|
function isMutableRegistry(reg) {
|
|
6018
6018
|
return "setSymbolMap" in reg && typeof reg.setSymbolMap === "function";
|
|
6019
6019
|
}
|
|
6020
|
+
function resolveStaticOptions(options) {
|
|
6021
|
+
const legacyRegistry = options.extensionRegistry;
|
|
6022
|
+
const configRegistry = legacyRegistry === void 0 && options.config?.extensions !== void 0 ? createExtensionRegistry(options.config.extensions) : void 0;
|
|
6023
|
+
return {
|
|
6024
|
+
extensionRegistry: legacyRegistry ?? configRegistry,
|
|
6025
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6026
|
+
vendorPrefix: options.vendorPrefix ?? options.config?.vendorPrefix,
|
|
6027
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6028
|
+
enumSerialization: options.enumSerialization ?? options.config?.enumSerialization,
|
|
6029
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6030
|
+
metadata: options.metadata ?? options.config?.metadata
|
|
6031
|
+
};
|
|
6032
|
+
}
|
|
6020
6033
|
function resolveOptions(options) {
|
|
6021
6034
|
const configRegistry = options.config?.extensions !== void 0 ? createExtensionRegistry(options.config.extensions) : void 0;
|
|
6022
6035
|
const legacyRegistry = options.extensionRegistry;
|
|
@@ -6230,10 +6243,9 @@ function omitApiName(metadata) {
|
|
|
6230
6243
|
const { apiName: _apiName, ...rest } = metadata;
|
|
6231
6244
|
return Object.keys(rest).length > 0 ? rest : void 0;
|
|
6232
6245
|
}
|
|
6233
|
-
function enforceRequiredMetadata(metadata, declarationKind, logicalName,
|
|
6246
|
+
function enforceRequiredMetadata(metadata, declarationKind, logicalName, metadataPolicy) {
|
|
6234
6247
|
const declarationPolicy = getDeclarationMetadataPolicy(
|
|
6235
|
-
|
|
6236
|
-
normalizeMetadataPolicy(options.metadata),
|
|
6248
|
+
normalizeMetadataPolicy(metadataPolicy),
|
|
6237
6249
|
declarationKind
|
|
6238
6250
|
);
|
|
6239
6251
|
if (metadata?.apiName === void 0 && declarationPolicy.apiName.mode === "require-explicit") {
|
|
@@ -6278,7 +6290,7 @@ function describeRootType(rootType, typeRegistry, fallbackName) {
|
|
|
6278
6290
|
type: definition.type
|
|
6279
6291
|
};
|
|
6280
6292
|
}
|
|
6281
|
-
function toStandaloneJsonSchema(root, typeRegistry,
|
|
6293
|
+
function toStandaloneJsonSchema(root, typeRegistry, resolved) {
|
|
6282
6294
|
const syntheticFieldMetadata = omitApiName(root.metadata);
|
|
6283
6295
|
const syntheticField = {
|
|
6284
6296
|
kind: "field",
|
|
@@ -6307,19 +6319,15 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
6307
6319
|
provenance: syntheticField.provenance
|
|
6308
6320
|
},
|
|
6309
6321
|
{
|
|
6310
|
-
|
|
6311
|
-
policy: normalizeMetadataPolicy(options?.metadata),
|
|
6322
|
+
policy: normalizeMetadataPolicy(resolved?.metadata),
|
|
6312
6323
|
surface: "tsdoc",
|
|
6313
6324
|
rootLogicalName: root.name
|
|
6314
6325
|
}
|
|
6315
6326
|
);
|
|
6316
6327
|
const schema = generateJsonSchemaFromIR(ir, {
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
enumSerialization: options?.enumSerialization,
|
|
6321
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6322
|
-
vendorPrefix: options?.vendorPrefix
|
|
6328
|
+
extensionRegistry: resolved?.extensionRegistry,
|
|
6329
|
+
enumSerialization: resolved?.enumSerialization,
|
|
6330
|
+
vendorPrefix: resolved?.vendorPrefix
|
|
6323
6331
|
});
|
|
6324
6332
|
const result = schema.properties?.["__result"];
|
|
6325
6333
|
if (result === void 0) {
|
|
@@ -6337,26 +6345,23 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
6337
6345
|
$defs: schema.$defs
|
|
6338
6346
|
};
|
|
6339
6347
|
}
|
|
6340
|
-
function generateSchemasFromAnalysis(analysis, filePath,
|
|
6348
|
+
function generateSchemasFromAnalysis(analysis, filePath, resolved) {
|
|
6341
6349
|
return toDiscoveredTypeSchemas(
|
|
6342
6350
|
generateClassSchemas(
|
|
6343
6351
|
analysis,
|
|
6344
6352
|
{ file: filePath },
|
|
6345
6353
|
{
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6351
|
-
metadata: options?.metadata,
|
|
6352
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6353
|
-
vendorPrefix: options?.vendorPrefix
|
|
6354
|
+
extensionRegistry: resolved?.extensionRegistry,
|
|
6355
|
+
enumSerialization: resolved?.enumSerialization,
|
|
6356
|
+
metadata: resolved?.metadata,
|
|
6357
|
+
vendorPrefix: resolved?.vendorPrefix
|
|
6354
6358
|
}
|
|
6355
6359
|
),
|
|
6356
6360
|
analysis.metadata
|
|
6357
6361
|
);
|
|
6358
6362
|
}
|
|
6359
6363
|
function generateSchemasFromResolvedType(options, skipNamedDeclaration = false, rootOverride) {
|
|
6364
|
+
const resolved = resolveStaticOptions(options);
|
|
6360
6365
|
const namedDeclaration = skipNamedDeclaration || hasConcreteTypeArguments(options.type, options.context.checker) ? void 0 : getNamedTypeDeclaration2(options.type);
|
|
6361
6366
|
if (namedDeclaration !== void 0) {
|
|
6362
6367
|
return generateSchemasFromDeclaration({
|
|
@@ -6374,10 +6379,8 @@ function generateSchemasFromResolvedType(options, skipNamedDeclaration = false,
|
|
|
6374
6379
|
typeRegistry,
|
|
6375
6380
|
/* @__PURE__ */ new Set(),
|
|
6376
6381
|
options.sourceNode,
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6380
|
-
options.extensionRegistry,
|
|
6382
|
+
createAnalyzerMetadataPolicy(resolved.metadata, options.discriminator),
|
|
6383
|
+
resolved.extensionRegistry,
|
|
6381
6384
|
diagnostics
|
|
6382
6385
|
);
|
|
6383
6386
|
if (diagnostics.length > 0) {
|
|
@@ -6408,31 +6411,30 @@ function generateSchemasFromResolvedType(options, skipNamedDeclaration = false,
|
|
|
6408
6411
|
root.annotations
|
|
6409
6412
|
),
|
|
6410
6413
|
filePath,
|
|
6411
|
-
|
|
6414
|
+
resolved
|
|
6412
6415
|
);
|
|
6413
6416
|
}
|
|
6414
6417
|
return {
|
|
6415
|
-
jsonSchema: toStandaloneJsonSchema(root, typeRegistry,
|
|
6418
|
+
jsonSchema: toStandaloneJsonSchema(root, typeRegistry, resolved),
|
|
6416
6419
|
uiSchema: null,
|
|
6417
6420
|
...root.metadata !== void 0 && { resolvedMetadata: root.metadata }
|
|
6418
6421
|
};
|
|
6419
6422
|
}
|
|
6420
6423
|
function generateSchemasFromDeclaration(options) {
|
|
6421
6424
|
const filePath = options.declaration.getSourceFile().fileName;
|
|
6425
|
+
const resolved = resolveStaticOptions(options);
|
|
6422
6426
|
if (ts8.isClassDeclaration(options.declaration)) {
|
|
6423
6427
|
return generateSchemasFromAnalysis(
|
|
6424
6428
|
analyzeClassToIR(
|
|
6425
6429
|
options.declaration,
|
|
6426
6430
|
options.context.checker,
|
|
6427
6431
|
filePath,
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6431
|
-
options.metadata,
|
|
6432
|
+
resolved.extensionRegistry,
|
|
6433
|
+
resolved.metadata,
|
|
6432
6434
|
options.discriminator
|
|
6433
6435
|
),
|
|
6434
6436
|
filePath,
|
|
6435
|
-
|
|
6437
|
+
resolved
|
|
6436
6438
|
);
|
|
6437
6439
|
}
|
|
6438
6440
|
if (ts8.isInterfaceDeclaration(options.declaration)) {
|
|
@@ -6441,14 +6443,12 @@ function generateSchemasFromDeclaration(options) {
|
|
|
6441
6443
|
options.declaration,
|
|
6442
6444
|
options.context.checker,
|
|
6443
6445
|
filePath,
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6447
|
-
options.metadata,
|
|
6446
|
+
resolved.extensionRegistry,
|
|
6447
|
+
resolved.metadata,
|
|
6448
6448
|
options.discriminator
|
|
6449
6449
|
),
|
|
6450
6450
|
filePath,
|
|
6451
|
-
|
|
6451
|
+
resolved
|
|
6452
6452
|
);
|
|
6453
6453
|
}
|
|
6454
6454
|
if (ts8.isTypeAliasDeclaration(options.declaration)) {
|
|
@@ -6456,23 +6456,19 @@ function generateSchemasFromDeclaration(options) {
|
|
|
6456
6456
|
options.declaration,
|
|
6457
6457
|
options.context.checker,
|
|
6458
6458
|
filePath,
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6462
|
-
options.metadata,
|
|
6459
|
+
resolved.extensionRegistry,
|
|
6460
|
+
resolved.metadata,
|
|
6463
6461
|
options.discriminator
|
|
6464
6462
|
);
|
|
6465
6463
|
if (analyzedAlias.ok) {
|
|
6466
|
-
return generateSchemasFromAnalysis(analyzedAlias.analysis, filePath,
|
|
6464
|
+
return generateSchemasFromAnalysis(analyzedAlias.analysis, filePath, resolved);
|
|
6467
6465
|
}
|
|
6468
6466
|
const aliasRootInfo = analyzeDeclarationRootInfo(
|
|
6469
6467
|
options.declaration,
|
|
6470
6468
|
options.context.checker,
|
|
6471
6469
|
filePath,
|
|
6472
|
-
|
|
6473
|
-
|
|
6474
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6475
|
-
options.metadata
|
|
6470
|
+
resolved.extensionRegistry,
|
|
6471
|
+
resolved.metadata
|
|
6476
6472
|
);
|
|
6477
6473
|
if (aliasRootInfo.diagnostics.length > 0) {
|
|
6478
6474
|
const diagnosticDetails = aliasRootInfo.diagnostics.map((diagnostic) => `${diagnostic.code}: ${diagnostic.message}`).join("; ");
|
|
@@ -6523,20 +6519,19 @@ function generateSchemasFromReturnType(options) {
|
|
|
6523
6519
|
});
|
|
6524
6520
|
}
|
|
6525
6521
|
function resolveDeclarationMetadata(options) {
|
|
6522
|
+
const resolved = resolveStaticOptions(options);
|
|
6526
6523
|
const analysis = (0, import_internal5.analyzeMetadataForNodeWithChecker)({
|
|
6527
6524
|
checker: options.context.checker,
|
|
6528
6525
|
node: options.declaration,
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
|
|
6532
|
-
extensions: options.extensionRegistry?.extensions,
|
|
6526
|
+
metadata: resolved.metadata,
|
|
6527
|
+
extensions: resolved.extensionRegistry?.extensions,
|
|
6533
6528
|
buildContext: options.context
|
|
6534
6529
|
});
|
|
6535
6530
|
if (analysis === null) {
|
|
6536
6531
|
return void 0;
|
|
6537
6532
|
}
|
|
6538
6533
|
const metadata = analysis.resolvedMetadata;
|
|
6539
|
-
enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName,
|
|
6534
|
+
enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName, resolved.metadata);
|
|
6540
6535
|
return metadata;
|
|
6541
6536
|
}
|
|
6542
6537
|
function unwrapPromiseType(checker, type) {
|