@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/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, options) {
6081
+ function enforceRequiredMetadata(metadata, declarationKind, logicalName, metadataPolicy) {
6069
6082
  const declarationPolicy = getDeclarationMetadataPolicy(
6070
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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, options) {
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6153
- extensionRegistry: options?.extensionRegistry,
6154
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
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, options) {
6183
+ function generateSchemasFromAnalysis(analysis, filePath, resolved) {
6176
6184
  return toDiscoveredTypeSchemas(
6177
6185
  generateClassSchemas(
6178
6186
  analysis,
6179
6187
  { file: filePath },
6180
6188
  {
6181
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6182
- extensionRegistry: options?.extensionRegistry,
6183
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6184
- enumSerialization: options?.enumSerialization,
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6213
- createAnalyzerMetadataPolicy(options.metadata, options.discriminator),
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
- options
6249
+ resolved
6247
6250
  );
6248
6251
  }
6249
6252
  return {
6250
- jsonSchema: toStandaloneJsonSchema(root, typeRegistry, options),
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6264
- options.extensionRegistry,
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
- options
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6280
- options.extensionRegistry,
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
- options
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6295
- options.extensionRegistry,
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, options);
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6308
- options.extensionRegistry,
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
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- migration bridge reads deprecated fields
6365
- metadata: options.metadata,
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, options);
6369
+ enforceRequiredMetadata(metadata, analysis.declarationKind, analysis.logicalName, resolved.metadata);
6375
6370
  return metadata;
6376
6371
  }
6377
6372
  function unwrapPromiseType(checker, type) {