@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.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, options) {
6247
+ function enforceRequiredMetadata(metadata, declarationKind, logicalName, metadataPolicy) {
6235
6248
  const declarationPolicy = getDeclarationMetadataPolicy(
6236
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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, options) {
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6319
- extensionRegistry: options?.extensionRegistry,
6320
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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, options) {
6349
+ function generateSchemasFromAnalysis(analysis, filePath, resolved) {
6342
6350
  return toDiscoveredTypeSchemas(
6343
6351
  generateClassSchemas(
6344
6352
  analysis,
6345
6353
  { file: filePath },
6346
6354
  {
6347
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6348
- extensionRegistry: options?.extensionRegistry,
6349
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6350
- enumSerialization: options?.enumSerialization,
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6379
- createAnalyzerMetadataPolicy(options.metadata, options.discriminator),
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
- options
6415
+ resolved
6413
6416
  );
6414
6417
  }
6415
6418
  return {
6416
- jsonSchema: toStandaloneJsonSchema(root, typeRegistry, options),
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6430
- options.extensionRegistry,
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
- options
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6446
- options.extensionRegistry,
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
- options
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6461
- options.extensionRegistry,
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, options);
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6474
- options.extensionRegistry,
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6531
- metadata: options.metadata,
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, options);
6535
+ enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName, resolved.metadata);
6541
6536
  return metadata;
6542
6537
  }
6543
6538
  function unwrapPromiseType(checker, type) {