ormbridge 0.9.0 → 0.10.0

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 (97) hide show
  1. package/README.md +1 -0
  2. package/dist/cliRunner.js +3 -3
  3. package/dist/cliRunner.js.map +1 -1
  4. package/dist/config.d.ts +2 -2
  5. package/dist/emitters/jpa.d.ts +36 -0
  6. package/dist/emitters/jpa.js +253 -0
  7. package/dist/emitters/jpa.js.map +1 -0
  8. package/dist/emitters/jpaColumns.d.ts +25 -0
  9. package/dist/emitters/jpaColumns.js +341 -0
  10. package/dist/emitters/jpaColumns.js.map +1 -0
  11. package/dist/emitters/jpaDefaults.d.ts +24 -0
  12. package/dist/emitters/jpaDefaults.js +223 -0
  13. package/dist/emitters/jpaDefaults.js.map +1 -0
  14. package/dist/emitters/jpaEnums.d.ts +11 -0
  15. package/dist/emitters/jpaEnums.js +134 -0
  16. package/dist/emitters/jpaEnums.js.map +1 -0
  17. package/dist/emitters/jpaFormat.d.ts +16 -0
  18. package/dist/emitters/jpaFormat.js +73 -0
  19. package/dist/emitters/jpaFormat.js.map +1 -0
  20. package/dist/emitters/jpaKeys.d.ts +25 -0
  21. package/dist/emitters/jpaKeys.js +110 -0
  22. package/dist/emitters/jpaKeys.js.map +1 -0
  23. package/dist/emitters/jpaNames.d.ts +26 -0
  24. package/dist/emitters/jpaNames.js +234 -0
  25. package/dist/emitters/jpaNames.js.map +1 -0
  26. package/dist/emitters/jpaRelations.d.ts +41 -0
  27. package/dist/emitters/jpaRelations.js +304 -0
  28. package/dist/emitters/jpaRelations.js.map +1 -0
  29. package/dist/emitters/jpaRender.d.ts +10 -0
  30. package/dist/emitters/jpaRender.js +81 -0
  31. package/dist/emitters/jpaRender.js.map +1 -0
  32. package/dist/emitters/jpaScalars.d.ts +32 -0
  33. package/dist/emitters/jpaScalars.js +188 -0
  34. package/dist/emitters/jpaScalars.js.map +1 -0
  35. package/dist/emitters/jpaTable.d.ts +10 -0
  36. package/dist/emitters/jpaTable.js +109 -0
  37. package/dist/emitters/jpaTable.js.map +1 -0
  38. package/dist/emitters/jpaTypes.d.ts +85 -0
  39. package/dist/emitters/jpaTypes.js +36 -0
  40. package/dist/emitters/jpaTypes.js.map +1 -0
  41. package/dist/formats.d.ts +3 -2
  42. package/dist/formats.js +34 -0
  43. package/dist/formats.js.map +1 -1
  44. package/dist/index.d.ts +4 -0
  45. package/dist/index.js +2 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/io.js +27 -1
  48. package/dist/io.js.map +1 -1
  49. package/dist/parsers/javaSyntax.d.ts +120 -0
  50. package/dist/parsers/javaSyntax.js +304 -0
  51. package/dist/parsers/javaSyntax.js.map +1 -0
  52. package/dist/parsers/javaValues.d.ts +5 -0
  53. package/dist/parsers/javaValues.js +187 -0
  54. package/dist/parsers/javaValues.js.map +1 -0
  55. package/dist/parsers/jpa.d.ts +17 -0
  56. package/dist/parsers/jpa.js +131 -0
  57. package/dist/parsers/jpa.js.map +1 -0
  58. package/dist/parsers/jpaAnnotations.d.ts +46 -0
  59. package/dist/parsers/jpaAnnotations.js +156 -0
  60. package/dist/parsers/jpaAnnotations.js.map +1 -0
  61. package/dist/parsers/jpaBuild.d.ts +4 -0
  62. package/dist/parsers/jpaBuild.js +297 -0
  63. package/dist/parsers/jpaBuild.js.map +1 -0
  64. package/dist/parsers/jpaClasses.d.ts +27 -0
  65. package/dist/parsers/jpaClasses.js +257 -0
  66. package/dist/parsers/jpaClasses.js.map +1 -0
  67. package/dist/parsers/jpaCollections.d.ts +12 -0
  68. package/dist/parsers/jpaCollections.js +106 -0
  69. package/dist/parsers/jpaCollections.js.map +1 -0
  70. package/dist/parsers/jpaColumns.d.ts +26 -0
  71. package/dist/parsers/jpaColumns.js +361 -0
  72. package/dist/parsers/jpaColumns.js.map +1 -0
  73. package/dist/parsers/jpaEntities.d.ts +9 -0
  74. package/dist/parsers/jpaEntities.js +181 -0
  75. package/dist/parsers/jpaEntities.js.map +1 -0
  76. package/dist/parsers/jpaIndexes.d.ts +12 -0
  77. package/dist/parsers/jpaIndexes.js +87 -0
  78. package/dist/parsers/jpaIndexes.js.map +1 -0
  79. package/dist/parsers/jpaJoins.d.ts +68 -0
  80. package/dist/parsers/jpaJoins.js +131 -0
  81. package/dist/parsers/jpaJoins.js.map +1 -0
  82. package/dist/parsers/jpaModel.d.ts +73 -0
  83. package/dist/parsers/jpaModel.js +2 -0
  84. package/dist/parsers/jpaModel.js.map +1 -0
  85. package/dist/parsers/jpaNotes.d.ts +20 -0
  86. package/dist/parsers/jpaNotes.js +138 -0
  87. package/dist/parsers/jpaNotes.js.map +1 -0
  88. package/dist/parsers/jpaRelations.d.ts +4 -0
  89. package/dist/parsers/jpaRelations.js +242 -0
  90. package/dist/parsers/jpaRelations.js.map +1 -0
  91. package/dist/parsers/jpaTypes.d.ts +23 -0
  92. package/dist/parsers/jpaTypes.js +232 -0
  93. package/dist/parsers/jpaTypes.js.map +1 -0
  94. package/dist/styles.d.ts +3 -2
  95. package/dist/styles.js +4 -1
  96. package/dist/styles.js.map +1 -1
  97. package/package.json +8 -1
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export { parsePrisma } from './parsers/prisma.js';
6
6
  export { parseDoctrine } from './parsers/doctrine.js';
7
7
  export { parseDrizzle } from './parsers/drizzle.js';
8
8
  export { parseEfcore, isSkippedEfcorePath } from './parsers/efcore.js';
9
+ export { parseJpa, isSkippedJpaPath } from './parsers/jpa.js';
9
10
  export { parseGorm } from './parsers/gorm.js';
10
11
  export { parseJsonSchema } from './parsers/jsonSchema.js';
11
12
  export { parseLaravel } from './parsers/laravel.js';
@@ -23,6 +24,7 @@ export { emitSqlDdl, quoteIdentifier, sqlDialectOf, sqlStringLiteral, } from './
23
24
  export { emitSqlAlchemy, isSqlAlchemyStyle, SQLALCHEMY_STYLES, } from './emitters/sqlalchemy.js';
24
25
  export { emitSequelize, isSequelizeStyle, SEQUELIZE_STYLES, } from './emitters/sequelize.js';
25
26
  export { DEFAULT_EFCORE_NAMESPACE, EFCORE_STYLES, emitEfcore, isEfcoreStyle, isValidCsharpNamespace, } from './emitters/efcore.js';
27
+ export { DEFAULT_JPA_PACKAGE, emitJpa, isJpaStyle, isValidJavaPackage, JPA_STYLES, } from './emitters/jpa.js';
26
28
  export { checkStyle, isOutputStyle, OUTPUT_STYLES } from './styles.js';
27
29
  export { emitGraphene } from './emitters/graphene.js';
28
30
  export { emitTypeorm } from './emitters/typeorm.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5E,OAAO,EACL,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAK9E,OAAO,EACL,cAAc,EACd,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5E,OAAO,EACL,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAK9E,OAAO,EACL,cAAc,EACd,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAM5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
package/dist/io.js CHANGED
@@ -113,6 +113,20 @@ const EFCORE_SKIPPED_DIRECTORIES = new Set([
113
113
  ]);
114
114
  /** Generated C# files: migration designers, the model snapshot and compiler output. */
115
115
  const EFCORE_NON_MODEL_FILE = /(?:\.(?:Designer|g|generated)\.cs|ModelSnapshot\.cs)$/i;
116
+ /** Directories skipped when reading Hibernate / JPA projects: build output, tool folders and installed packages. */
117
+ const JPA_SKIPPED_DIRECTORIES = new Set([
118
+ 'target',
119
+ 'build',
120
+ 'out',
121
+ '.gradle',
122
+ '.mvn',
123
+ '.idea',
124
+ '.settings',
125
+ 'node_modules',
126
+ '.git',
127
+ ]);
128
+ /** Java files that are not the model: tests, module and package descriptors and generated metamodel classes. */
129
+ const JPA_NON_MODEL_FILE = /(?:Tests?|_)\.java$|^(?:module|package)-info\.java$/;
116
130
  /** Reads the inputs, converts them, and writes the result to the output path when one is given. */
117
131
  export async function runConversion(options) {
118
132
  const discovered = await discoverInputFiles(options.inputs, options.from);
@@ -357,7 +371,9 @@ async function discoverInputFiles(inputs, format) {
357
371
  ? 'JavaScript or TypeScript (.js, .cjs, .mjs, .ts) Sequelize model files'
358
372
  : format === 'efcore'
359
373
  ? 'C# (.cs) files with Entity Framework Core models'
360
- : '.prisma files';
374
+ : format === 'jpa'
375
+ ? 'Java (.java) files with Hibernate / JPA entities'
376
+ : '.prisma files';
361
377
  return err('NO_INPUT_FILES', `No ${expected} were found in: ${inputs.join(', ')}.`);
362
378
  }
363
379
  return ok(files);
@@ -379,6 +395,10 @@ function isRelevantFile(filePath, format) {
379
395
  return (extname(filePath) === '.cs' &&
380
396
  !EFCORE_NON_MODEL_FILE.test(basename(filePath)));
381
397
  }
398
+ if (format === 'jpa') {
399
+ return (extname(filePath) === '.java' &&
400
+ !JPA_NON_MODEL_FILE.test(basename(filePath)));
401
+ }
382
402
  if (format === 'gorm') {
383
403
  return (extname(filePath) === '.go' && !/_test\.go$/.test(basename(filePath)));
384
404
  }
@@ -430,6 +450,12 @@ function isSkippedDirectory(name, parent, format) {
430
450
  if (format === 'efcore') {
431
451
  return EFCORE_SKIPPED_DIRECTORIES.has(name.toLowerCase());
432
452
  }
453
+ if (format === 'jpa') {
454
+ // src/test holds the tests; db/migration holds Flyway and Liquibase migrations.
455
+ return (JPA_SKIPPED_DIRECTORIES.has(name) ||
456
+ (name === 'test' && basename(parent) === 'src') ||
457
+ (/^migrations?$/.test(name) && basename(parent) === 'db'));
458
+ }
433
459
  return (SKIPPED_DIRECTORIES.has(name) ||
434
460
  (format === 'doctrine' && PHP_SKIPPED_DIRECTORIES.has(name)));
435
461
  }
package/dist/io.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import Parser from 'web-tree-sitter';
2
+ import { type Result } from '../result.js';
3
+ export type SyntaxNode = Parser.SyntaxNode;
4
+ /** A Java type reduced to what mapping needs: a name, generic arguments and the array depth. */
5
+ export interface JavaType {
6
+ /** The last identifier, without package qualifiers or arguments: `List`, `Post`, `int`. */
7
+ name: string;
8
+ /** The type as written without generic arguments and array markers (`java.util.List`). */
9
+ text: string;
10
+ args: JavaType[];
11
+ /** Number of array dimensions: `byte[]` is 1. */
12
+ arrayDepth: number;
13
+ }
14
+ /** A statically evaluated expression. Anything that cannot be evaluated is `other` with its source text. */
15
+ export type JavaValue = {
16
+ kind: 'string';
17
+ value: string;
18
+ } | {
19
+ kind: 'number';
20
+ value: number;
21
+ text: string;
22
+ } | {
23
+ kind: 'bool';
24
+ value: boolean;
25
+ } | {
26
+ kind: 'null';
27
+ }
28
+ /** `GenerationType.IDENTITY`, or a bare identifier that is not a known constant. */
29
+ | {
30
+ kind: 'member';
31
+ path: string[];
32
+ }
33
+ /** `Post.class`. */
34
+ | {
35
+ kind: 'class';
36
+ type: string;
37
+ } | {
38
+ kind: 'array';
39
+ items: JavaValue[];
40
+ } | {
41
+ kind: 'annotation';
42
+ annotation: JavaAnnotation;
43
+ } | {
44
+ kind: 'other';
45
+ text: string;
46
+ };
47
+ /** Looks a constant up by simple or `Class.NAME` form; used while evaluating expressions. */
48
+ export type ConstLookup = (path: string[]) => SyntaxNode | undefined;
49
+ export interface JavaAnnotation {
50
+ /** The simple name: `Entity` for `@Entity` and for `@jakarta.persistence.Entity`. */
51
+ name: string;
52
+ /** The qualifier when the annotation is written fully qualified (`jakarta.persistence`). */
53
+ qualifier?: string;
54
+ /** Argument expressions by name; a single unnamed argument is stored as `value`. */
55
+ args: Map<string, SyntaxNode>;
56
+ node: SyntaxNode;
57
+ }
58
+ export interface JavaField {
59
+ name: string;
60
+ type: JavaType;
61
+ modifiers: string[];
62
+ annotations: JavaAnnotation[];
63
+ initializer?: SyntaxNode;
64
+ node: SyntaxNode;
65
+ }
66
+ export interface JavaParameter {
67
+ name: string;
68
+ type: JavaType;
69
+ }
70
+ export interface JavaMethod {
71
+ name: string;
72
+ returnType: JavaType;
73
+ parameters: JavaParameter[];
74
+ modifiers: string[];
75
+ annotations: JavaAnnotation[];
76
+ node: SyntaxNode;
77
+ }
78
+ export type JavaClassKind = 'class' | 'interface' | 'enum' | 'record' | 'annotation';
79
+ export interface JavaEnumConstant {
80
+ name: string;
81
+ /** The constructor arguments of the constant: `DRAFT("draft")` has one. */
82
+ args: SyntaxNode[];
83
+ }
84
+ export interface JavaClass {
85
+ name: string;
86
+ kind: JavaClassKind;
87
+ modifiers: string[];
88
+ annotations: JavaAnnotation[];
89
+ typeParameters: string[];
90
+ superclass?: JavaType;
91
+ interfaces: JavaType[];
92
+ fields: JavaField[];
93
+ methods: JavaMethod[];
94
+ enumConstants: JavaEnumConstant[];
95
+ /** Name of the enclosing type for nested types. */
96
+ outer?: string;
97
+ /** Imports of the file: simple name to the full name, or `pkg.*` for wildcards. */
98
+ imports: string[];
99
+ packageName: string;
100
+ path: string;
101
+ }
102
+ export interface JavaFile {
103
+ path: string;
104
+ packageName: string;
105
+ imports: string[];
106
+ /** Every type of the file, nested ones included. */
107
+ classes: JavaClass[];
108
+ /** True when the grammar reported syntax errors. */
109
+ hasErrors: boolean;
110
+ }
111
+ /** Lazily loads the tree-sitter Java grammar (WebAssembly, no native build step). */
112
+ export declare function getJavaParser(): Promise<Result<Parser>>;
113
+ /** Splits at commas that are not inside `<...>`, `(...)` or `[...]`. */
114
+ export declare function splitTopLevel(text: string): string[];
115
+ /** Reads a type from its source text. Never fails: unreadable text becomes a type named after the text. */
116
+ export declare function parseTypeText(text: string, depth?: number): JavaType;
117
+ /** Reads `@Name`, `@Name(value)` and `@Name(a = 1, b = 2)`. */
118
+ export declare function readAnnotation(node: SyntaxNode): JavaAnnotation;
119
+ /** Reads the types, fields and methods of one Java file. */
120
+ export declare function readJavaFile(root: SyntaxNode, path: string): JavaFile;
@@ -0,0 +1,304 @@
1
+ import { createRequire } from 'node:module';
2
+ import Parser from 'web-tree-sitter';
3
+ import { describeThrown, err, ok } from '../result.js';
4
+ let cachedParser;
5
+ /** Lazily loads the tree-sitter Java grammar (WebAssembly, no native build step). */
6
+ export async function getJavaParser() {
7
+ if (cachedParser !== undefined) {
8
+ return ok(cachedParser);
9
+ }
10
+ try {
11
+ const requireFromHere = createRequire(import.meta.url);
12
+ const wasmPath = requireFromHere.resolve('tree-sitter-wasms/out/tree-sitter-java.wasm');
13
+ await Parser.init();
14
+ const language = await Parser.Language.load(wasmPath);
15
+ const parser = new Parser();
16
+ parser.setLanguage(language);
17
+ cachedParser = parser;
18
+ return ok(parser);
19
+ }
20
+ catch (thrown) {
21
+ return err('PARSER_INIT_FAILED', `Failed to initialize the tree-sitter Java grammar. Check that the "web-tree-sitter" (0.22.x) and ` +
22
+ `"tree-sitter-wasms" packages are installed. Underlying error: ${describeThrown(thrown)}`);
23
+ }
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Types
27
+ // ---------------------------------------------------------------------------
28
+ /** Splits at commas that are not inside `<...>`, `(...)` or `[...]`. */
29
+ export function splitTopLevel(text) {
30
+ const parts = [];
31
+ let depth = 0;
32
+ let current = '';
33
+ for (const character of text) {
34
+ if (character === '<' || character === '(' || character === '[') {
35
+ depth += 1;
36
+ }
37
+ else if (character === '>' || character === ')' || character === ']') {
38
+ depth -= 1;
39
+ }
40
+ if (character === ',' && depth === 0) {
41
+ parts.push(current);
42
+ current = '';
43
+ }
44
+ else {
45
+ current += character;
46
+ }
47
+ }
48
+ if (current.trim() !== '') {
49
+ parts.push(current);
50
+ }
51
+ return parts.map((part) => part.trim());
52
+ }
53
+ const MAX_TYPE_DEPTH = 16;
54
+ /** Reads a type from its source text. Never fails: unreadable text becomes a type named after the text. */
55
+ export function parseTypeText(text, depth = 0) {
56
+ let rest = text
57
+ .replace(/@[\w.]+(?:\([^)]*\))?/g, ' ')
58
+ .replace(/\bfinal\b/g, ' ')
59
+ .replace(/\s+/g, ' ')
60
+ .trim();
61
+ let arrayDepth = 0;
62
+ while (/\[\s*\]$/.test(rest)) {
63
+ arrayDepth += 1;
64
+ rest = rest.replace(/\[\s*\]$/, '').trim();
65
+ }
66
+ if (rest.endsWith('...')) {
67
+ arrayDepth += 1;
68
+ rest = rest.slice(0, -3).trim();
69
+ }
70
+ // `? extends Foo` and `? super Foo` are read as Foo; a bare `?` is Object.
71
+ const wildcard = rest.match(/^\?\s*(?:extends|super)\s+(.+)$/);
72
+ if (wildcard !== null) {
73
+ return parseTypeText(wildcard[1] ?? 'Object', depth + 1);
74
+ }
75
+ if (rest === '?') {
76
+ return { name: 'Object', text: 'Object', args: [], arrayDepth };
77
+ }
78
+ const open = rest.indexOf('<');
79
+ const head = open === -1 ? rest : rest.slice(0, open).trim();
80
+ const name = head.split('.').pop()?.trim() ?? head;
81
+ let args = [];
82
+ if (open !== -1 && rest.endsWith('>') && depth < MAX_TYPE_DEPTH) {
83
+ args = splitTopLevel(rest.slice(open + 1, -1)).map((part) => parseTypeText(part, depth + 1));
84
+ }
85
+ return { name, text: head, args, arrayDepth };
86
+ }
87
+ // ---------------------------------------------------------------------------
88
+ // Declarations
89
+ // ---------------------------------------------------------------------------
90
+ /** Reads `@Name`, `@Name(value)` and `@Name(a = 1, b = 2)`. */
91
+ export function readAnnotation(node) {
92
+ const nameNode = node.childForFieldName('name');
93
+ const full = (nameNode?.text ?? '').split('.');
94
+ const name = full.pop() ?? '';
95
+ const args = new Map();
96
+ const list = node.childForFieldName('arguments');
97
+ if (list !== null) {
98
+ for (const child of list.namedChildren) {
99
+ if (child.type === 'element_value_pair') {
100
+ const key = child.childForFieldName('key');
101
+ const value = child.childForFieldName('value');
102
+ if (key !== null && value !== null) {
103
+ args.set(key.text, value);
104
+ }
105
+ }
106
+ else if (!child.type.includes('comment')) {
107
+ args.set('value', child);
108
+ }
109
+ }
110
+ }
111
+ return {
112
+ name,
113
+ ...(full.length === 0 ? {} : { qualifier: full.join('.') }),
114
+ args,
115
+ node,
116
+ };
117
+ }
118
+ function readModifiers(node) {
119
+ const modifiers = node.namedChildren.find((child) => child.type === 'modifiers');
120
+ const result = { keywords: [], annotations: [] };
121
+ if (modifiers === undefined) {
122
+ return result;
123
+ }
124
+ for (const child of modifiers.children) {
125
+ if (child.type === 'annotation' || child.type === 'marker_annotation') {
126
+ result.annotations.push(readAnnotation(child));
127
+ }
128
+ else if (!child.type.includes('comment')) {
129
+ result.keywords.push(child.type);
130
+ }
131
+ }
132
+ return result;
133
+ }
134
+ function readFields(node, fields, modifiers) {
135
+ const typeNode = node.childForFieldName('type');
136
+ if (typeNode === null) {
137
+ return;
138
+ }
139
+ const base = parseTypeText(typeNode.text);
140
+ for (const declarator of node.namedChildren) {
141
+ if (declarator.type !== 'variable_declarator') {
142
+ continue;
143
+ }
144
+ const name = declarator.childForFieldName('name');
145
+ if (name === null) {
146
+ continue;
147
+ }
148
+ const dimensions = declarator.childForFieldName('dimensions');
149
+ const extra = dimensions === null ? 0 : (dimensions.text.match(/\[/g) ?? []).length;
150
+ const value = declarator.childForFieldName('value');
151
+ fields.push({
152
+ name: name.text,
153
+ type: { ...base, arrayDepth: base.arrayDepth + extra },
154
+ modifiers: modifiers.keywords,
155
+ annotations: modifiers.annotations,
156
+ ...(value === null ? {} : { initializer: value }),
157
+ node,
158
+ });
159
+ }
160
+ }
161
+ function readMethod(node) {
162
+ const name = node.childForFieldName('name');
163
+ const type = node.childForFieldName('type');
164
+ if (name === null || type === null) {
165
+ return undefined;
166
+ }
167
+ const modifiers = readModifiers(node);
168
+ const parameters = [];
169
+ const list = node.childForFieldName('parameters');
170
+ for (const parameter of list?.namedChildren ?? []) {
171
+ const parameterType = parameter.childForFieldName('type');
172
+ const parameterName = parameter.childForFieldName('name');
173
+ if (parameterType !== null && parameterName !== null) {
174
+ parameters.push({
175
+ name: parameterName.text,
176
+ type: parseTypeText(parameterType.text),
177
+ });
178
+ }
179
+ }
180
+ return {
181
+ name: name.text,
182
+ returnType: parseTypeText(type.text),
183
+ parameters,
184
+ modifiers: modifiers.keywords,
185
+ annotations: modifiers.annotations,
186
+ node,
187
+ };
188
+ }
189
+ const TYPE_DECLARATIONS = {
190
+ class_declaration: 'class',
191
+ interface_declaration: 'interface',
192
+ enum_declaration: 'enum',
193
+ record_declaration: 'record',
194
+ annotation_type_declaration: 'annotation',
195
+ };
196
+ function readTypeParameters(node) {
197
+ const list = node.childForFieldName('type_parameters');
198
+ return (list?.namedChildren ?? [])
199
+ .filter((child) => child.type === 'type_parameter')
200
+ .map((child) => child.namedChild(0)?.text ?? child.text);
201
+ }
202
+ function readTypeList(node) {
203
+ if (node === null) {
204
+ return [];
205
+ }
206
+ const list = node.namedChildren.find((child) => child.type === 'type_list');
207
+ return (list ?? node).namedChildren
208
+ .filter((child) => !child.type.includes('comment'))
209
+ .map((child) => parseTypeText(child.text));
210
+ }
211
+ function readType(node, file, outer, into) {
212
+ const kind = TYPE_DECLARATIONS[node.type];
213
+ const nameNode = node.childForFieldName('name');
214
+ if (kind === undefined || nameNode === null) {
215
+ return;
216
+ }
217
+ const modifiers = readModifiers(node);
218
+ const superNode = node.namedChildren.find((child) => child.type === 'superclass');
219
+ const superType = superNode?.namedChildren.find((child) => !child.type.includes('comment'));
220
+ const interfaces = node.namedChildren.find((child) => child.type === 'super_interfaces' || child.type === 'extends_interfaces');
221
+ const cls = {
222
+ name: nameNode.text,
223
+ kind,
224
+ modifiers: modifiers.keywords,
225
+ annotations: modifiers.annotations,
226
+ typeParameters: readTypeParameters(node),
227
+ ...(superType === undefined
228
+ ? {}
229
+ : { superclass: parseTypeText(superType.text) }),
230
+ interfaces: readTypeList(interfaces ?? null),
231
+ fields: [],
232
+ methods: [],
233
+ enumConstants: [],
234
+ ...(outer === undefined ? {} : { outer }),
235
+ imports: file.imports,
236
+ packageName: file.packageName,
237
+ path: file.path,
238
+ };
239
+ into.push(cls);
240
+ const body = node.childForFieldName('body');
241
+ const members = [];
242
+ for (const child of body?.namedChildren ?? []) {
243
+ if (child.type === 'enum_body_declarations') {
244
+ members.push(...child.namedChildren);
245
+ }
246
+ else {
247
+ members.push(child);
248
+ }
249
+ }
250
+ if (kind === 'record') {
251
+ // Record components are not mapped by JPA, so they are not read as fields.
252
+ return;
253
+ }
254
+ for (const member of members) {
255
+ if (member.type === 'enum_constant') {
256
+ const constant = member.childForFieldName('name');
257
+ if (constant !== null) {
258
+ const list = member.childForFieldName('arguments');
259
+ cls.enumConstants.push({
260
+ name: constant.text,
261
+ args: (list?.namedChildren ?? []).filter((child) => !child.type.includes('comment')),
262
+ });
263
+ }
264
+ }
265
+ else if (member.type === 'field_declaration') {
266
+ readFields(member, cls.fields, readModifiers(member));
267
+ }
268
+ else if (member.type === 'method_declaration') {
269
+ const method = readMethod(member);
270
+ if (method !== undefined) {
271
+ cls.methods.push(method);
272
+ }
273
+ }
274
+ else if (member.type in TYPE_DECLARATIONS) {
275
+ readType(member, file, cls.name, into);
276
+ }
277
+ }
278
+ }
279
+ /** Reads the types, fields and methods of one Java file. */
280
+ export function readJavaFile(root, path) {
281
+ let packageName = '';
282
+ const imports = [];
283
+ const classes = [];
284
+ const file = { path, packageName, imports };
285
+ for (const child of root.namedChildren) {
286
+ if (child.type === 'package_declaration') {
287
+ packageName =
288
+ child.namedChildren.find((item) => !item.type.includes('comment'))?.text ?? '';
289
+ file.packageName = packageName;
290
+ }
291
+ else if (child.type === 'import_declaration') {
292
+ const text = child.text
293
+ .replace(/^import\s+(?:static\s+)?/, '')
294
+ .replace(/;\s*$/, '')
295
+ .trim();
296
+ imports.push(text);
297
+ }
298
+ else if (child.type in TYPE_DECLARATIONS) {
299
+ readType(child, file, undefined, classes);
300
+ }
301
+ }
302
+ return { path, packageName, imports, classes, hasErrors: root.hasError };
303
+ }
304
+ //# sourceMappingURL=javaSyntax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javaSyntax.js","sourceRoot":"","sources":["../../src/parsers/javaSyntax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type ConstLookup, type JavaValue, type SyntaxNode } from './javaSyntax.js';
2
+ /** Decodes the text of a regular string literal or text block. */
3
+ export declare function unquoteJavaString(literal: string): string;
4
+ /** Evaluates an annotation argument or field initializer without running any code. */
5
+ export declare function evaluate(node: SyntaxNode, lookup: ConstLookup, depth?: number): JavaValue;