@formspec/build 0.1.0-alpha.24 → 0.1.0-alpha.27

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.
Files changed (39) hide show
  1. package/dist/analyzer/program.d.ts +12 -0
  2. package/dist/analyzer/program.d.ts.map +1 -1
  3. package/dist/browser.cjs.map +1 -1
  4. package/dist/browser.d.ts +1 -0
  5. package/dist/browser.d.ts.map +1 -1
  6. package/dist/browser.js.map +1 -1
  7. package/dist/build-alpha.d.ts +167 -22
  8. package/dist/build-beta.d.ts +167 -22
  9. package/dist/build-internal.d.ts +167 -22
  10. package/dist/build.d.ts +239 -21
  11. package/dist/cli.cjs +118 -6
  12. package/dist/cli.cjs.map +1 -1
  13. package/dist/cli.js +117 -6
  14. package/dist/cli.js.map +1 -1
  15. package/dist/generators/class-schema.d.ts +27 -0
  16. package/dist/generators/class-schema.d.ts.map +1 -1
  17. package/dist/generators/mixed-authoring.d.ts.map +1 -1
  18. package/dist/index.cjs +114 -6
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +5 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +111 -6
  23. package/dist/index.js.map +1 -1
  24. package/dist/internals.cjs +46 -0
  25. package/dist/internals.cjs.map +1 -1
  26. package/dist/internals.d.ts +1 -1
  27. package/dist/internals.d.ts.map +1 -1
  28. package/dist/internals.js +44 -0
  29. package/dist/internals.js.map +1 -1
  30. package/dist/json-schema/ir-generator.d.ts +30 -0
  31. package/dist/json-schema/ir-generator.d.ts.map +1 -1
  32. package/dist/json-schema/schema.d.ts +2 -2
  33. package/dist/json-schema/types.d.ts +35 -4
  34. package/dist/json-schema/types.d.ts.map +1 -1
  35. package/dist/ui-schema/schema.d.ts +2 -7
  36. package/dist/ui-schema/schema.d.ts.map +1 -1
  37. package/dist/ui-schema/types.d.ts +58 -0
  38. package/dist/ui-schema/types.d.ts.map +1 -1
  39. package/package.json +4 -4
@@ -14,7 +14,7 @@
14
14
  export { canonicalizeChainDSL } from "./canonicalize/index.js";
15
15
  export { canonicalizeTSDoc } from "./canonicalize/index.js";
16
16
  export type { TSDocSource } from "./canonicalize/index.js";
17
- export { createProgramContext, findClassByName, findInterfaceByName, findTypeAliasByName, } from "./analyzer/program.js";
17
+ export { createProgramContext, createProgramContextFromProgram, findClassByName, findInterfaceByName, findTypeAliasByName, analyzeNamedTypeToIRFromProgramContext, } from "./analyzer/program.js";
18
18
  export { analyzeClassToIR, analyzeInterfaceToIR, analyzeTypeAliasToIR, } from "./analyzer/class-analyzer.js";
19
19
  export type { IRClassAnalysis, FieldLayoutMetadata, AnalyzeTypeAliasToIRResult, } from "./analyzer/class-analyzer.js";
20
20
  export { generateClassSchemas } from "./generators/class-schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,+BAA+B,EAC/B,cAAc,GACf,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACjG,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,oBAAoB,EACpB,+BAA+B,EAC/B,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,sCAAsC,GACvC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,+BAA+B,EAC/B,cAAc,GACf,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACjG,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/internals.js CHANGED
@@ -2367,6 +2367,18 @@ function detectFormSpecReference(typeNode) {
2367
2367
  }
2368
2368
 
2369
2369
  // src/analyzer/program.ts
2370
+ function createProgramContextFromProgram(program, filePath) {
2371
+ const absolutePath = path.resolve(filePath);
2372
+ const sourceFile = program.getSourceFile(absolutePath) ?? program.getSourceFile(filePath);
2373
+ if (!sourceFile) {
2374
+ throw new Error(`Could not find source file in provided program: ${absolutePath}`);
2375
+ }
2376
+ return {
2377
+ program,
2378
+ checker: program.getTypeChecker(),
2379
+ sourceFile
2380
+ };
2381
+ }
2370
2382
  function createProgramContext(filePath) {
2371
2383
  const absolutePath = path.resolve(filePath);
2372
2384
  const fileDir = path.dirname(absolutePath);
@@ -2435,6 +2447,36 @@ function findInterfaceByName(sourceFile, interfaceName) {
2435
2447
  function findTypeAliasByName(sourceFile, aliasName) {
2436
2448
  return findNodeByName(sourceFile, aliasName, ts4.isTypeAliasDeclaration, (n) => n.name.text);
2437
2449
  }
2450
+ function analyzeNamedTypeToIRFromProgramContext(ctx, filePath, typeName, extensionRegistry) {
2451
+ const analysisFilePath = path.resolve(filePath);
2452
+ const classDecl = findClassByName(ctx.sourceFile, typeName);
2453
+ if (classDecl !== null) {
2454
+ return analyzeClassToIR(classDecl, ctx.checker, analysisFilePath, extensionRegistry);
2455
+ }
2456
+ const interfaceDecl = findInterfaceByName(ctx.sourceFile, typeName);
2457
+ if (interfaceDecl !== null) {
2458
+ return analyzeInterfaceToIR(interfaceDecl, ctx.checker, analysisFilePath, extensionRegistry);
2459
+ }
2460
+ const typeAlias = findTypeAliasByName(ctx.sourceFile, typeName);
2461
+ if (typeAlias !== null) {
2462
+ const result = analyzeTypeAliasToIR(
2463
+ typeAlias,
2464
+ ctx.checker,
2465
+ analysisFilePath,
2466
+ extensionRegistry
2467
+ );
2468
+ if (result.ok) {
2469
+ return result.analysis;
2470
+ }
2471
+ throw new Error(result.error);
2472
+ }
2473
+ throw new Error(
2474
+ `Type "${typeName}" not found as a class, interface, or type alias in ${analysisFilePath}`
2475
+ );
2476
+ }
2477
+
2478
+ // src/generators/class-schema.ts
2479
+ import "typescript";
2438
2480
 
2439
2481
  // src/json-schema/ir-generator.ts
2440
2482
  function makeContext(options) {
@@ -3390,12 +3432,14 @@ function collectFormSpecReferences(methods) {
3390
3432
  export {
3391
3433
  analyzeClassToIR,
3392
3434
  analyzeInterfaceToIR,
3435
+ analyzeNamedTypeToIRFromProgramContext,
3393
3436
  analyzeTypeAliasToIR,
3394
3437
  canonicalizeChainDSL,
3395
3438
  canonicalizeTSDoc,
3396
3439
  collectFormSpecReferences,
3397
3440
  createExtensionRegistry,
3398
3441
  createProgramContext,
3442
+ createProgramContextFromProgram,
3399
3443
  findClassByName,
3400
3444
  findInterfaceByName,
3401
3445
  findTypeAliasByName,