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