@shaclmate/compiler 3.0.3 → 4.0.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 (581) hide show
  1. package/dist/Compiler.d.ts +2 -3
  2. package/dist/Compiler.js +5 -8
  3. package/dist/Eithers.d.ts +14 -0
  4. package/dist/Eithers.js +67 -0
  5. package/dist/ShapesGraphToAstTransformer.d.ts +3 -8
  6. package/dist/ShapesGraphToAstTransformer.js +22 -23
  7. package/dist/_ShapesGraphToAstTransformer/CurieFactory.d.ts +16 -0
  8. package/dist/_ShapesGraphToAstTransformer/CurieFactory.js +45 -0
  9. package/dist/_ShapesGraphToAstTransformer/ShapeStack.d.ts +1 -1
  10. package/dist/_ShapesGraphToAstTransformer/ShapeStack.js +1 -2
  11. package/dist/_ShapesGraphToAstTransformer/index.d.ts +1 -5
  12. package/dist/_ShapesGraphToAstTransformer/index.js +1 -5
  13. package/dist/_ShapesGraphToAstTransformer/nodeShapeIdentifierMintingStrategy.d.ts +5 -0
  14. package/dist/_ShapesGraphToAstTransformer/nodeShapeIdentifierMintingStrategy.js +28 -0
  15. package/dist/_ShapesGraphToAstTransformer/nodeShapeTsFeatures.d.ts +5 -0
  16. package/dist/_ShapesGraphToAstTransformer/nodeShapeTsFeatures.js +8 -0
  17. package/dist/_ShapesGraphToAstTransformer/shapeIdentifier.d.ts +5 -0
  18. package/dist/_ShapesGraphToAstTransformer/shapeIdentifier.js +9 -0
  19. package/dist/_ShapesGraphToAstTransformer/shapeNodeKinds.d.ts +8 -0
  20. package/dist/_ShapesGraphToAstTransformer/shapeNodeKinds.js +175 -0
  21. package/dist/_ShapesGraphToAstTransformer/transformNodeShapeToAstType.d.ts +3 -3
  22. package/dist/_ShapesGraphToAstTransformer/transformNodeShapeToAstType.js +302 -231
  23. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.d.ts +6 -3
  24. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.js +168 -170
  25. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstAbstractTypeProperties.d.ts +12 -0
  26. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstAbstractTypeProperties.js +31 -0
  27. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.d.ts +10 -0
  28. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +141 -0
  29. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstTermType.d.ts +5 -5
  30. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstTermType.js +92 -11
  31. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.d.ts +3 -3
  32. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.js +8 -4
  33. package/dist/ast/AbstractCollectionType.d.ts +20 -0
  34. package/dist/ast/AbstractCollectionType.js +27 -0
  35. package/dist/ast/AbstractCompoundType.d.ts +23 -0
  36. package/dist/ast/AbstractCompoundType.js +39 -0
  37. package/dist/ast/AbstractContainerType.d.ts +36 -0
  38. package/dist/ast/AbstractContainerType.js +58 -0
  39. package/dist/ast/AbstractLazyObjectType.d.ts +25 -0
  40. package/dist/ast/AbstractLazyObjectType.js +30 -0
  41. package/dist/ast/AbstractObjectCompoundType.d.ts +45 -0
  42. package/dist/ast/AbstractObjectCompoundType.js +180 -0
  43. package/dist/ast/AbstractTermType.d.ts +24 -0
  44. package/dist/ast/AbstractTermType.js +41 -0
  45. package/dist/ast/AbstractType.d.ts +21 -0
  46. package/dist/ast/AbstractType.js +29 -0
  47. package/dist/ast/BlankNodeType.d.ts +11 -0
  48. package/dist/ast/BlankNodeType.js +17 -0
  49. package/dist/ast/Curie.d.ts +10 -3
  50. package/dist/ast/Curie.js +14 -6
  51. package/dist/ast/DefaultValueType.d.ts +26 -0
  52. package/dist/ast/DefaultValueType.js +41 -0
  53. package/dist/ast/IdentifierType.d.ts +5 -4
  54. package/dist/ast/IdentifierType.js +19 -1
  55. package/dist/ast/IntersectionType.d.ts +3 -3
  56. package/dist/ast/IntersectionType.js +7 -1
  57. package/dist/ast/IriType.d.ts +10 -0
  58. package/dist/ast/IriType.js +10 -0
  59. package/dist/ast/LazyObjectOptionType.d.ts +6 -0
  60. package/dist/ast/LazyObjectOptionType.js +5 -0
  61. package/dist/ast/LazyObjectSetType.d.ts +6 -0
  62. package/dist/ast/LazyObjectSetType.js +5 -0
  63. package/dist/ast/LazyObjectType.d.ts +5 -0
  64. package/dist/ast/LazyObjectType.js +5 -0
  65. package/dist/ast/ListType.d.ts +28 -24
  66. package/dist/ast/ListType.js +68 -1
  67. package/dist/ast/LiteralType.d.ts +13 -4
  68. package/dist/ast/LiteralType.js +24 -1
  69. package/dist/ast/ObjectIntersectionType.d.ts +3 -3
  70. package/dist/ast/ObjectIntersectionType.js +7 -1
  71. package/dist/ast/ObjectType.d.ts +79 -72
  72. package/dist/ast/ObjectType.js +402 -9
  73. package/dist/ast/ObjectUnionType.d.ts +3 -3
  74. package/dist/ast/ObjectUnionType.js +7 -1
  75. package/dist/ast/OptionType.d.ts +9 -4
  76. package/dist/ast/OptionType.js +17 -1
  77. package/dist/ast/PlaceholderType.d.ts +10 -2
  78. package/dist/ast/PlaceholderType.js +18 -1
  79. package/dist/ast/SetType.d.ts +12 -9
  80. package/dist/ast/SetType.js +32 -1
  81. package/dist/ast/TermType.d.ts +8 -13
  82. package/dist/ast/TermType.js +15 -1
  83. package/dist/ast/Type.d.ts +10 -4
  84. package/dist/ast/Type.js +47 -1
  85. package/dist/ast/UnionType.d.ts +7 -3
  86. package/dist/ast/UnionType.js +12 -1
  87. package/dist/ast/equals.d.ts +12 -0
  88. package/dist/ast/equals.js +65 -0
  89. package/dist/ast/index.d.ts +10 -2
  90. package/dist/ast/index.js +10 -2
  91. package/dist/generators/json/AstJsonGenerator.js +53 -49
  92. package/dist/generators/ts/AbstractCollectionType.d.ts +47 -0
  93. package/dist/generators/ts/AbstractCollectionType.js +235 -0
  94. package/dist/generators/ts/AbstractContainerType.d.ts +51 -0
  95. package/dist/generators/ts/AbstractContainerType.js +72 -0
  96. package/dist/generators/ts/AbstractDateType.d.ts +31 -0
  97. package/dist/generators/ts/AbstractDateType.js +71 -0
  98. package/dist/generators/ts/AbstractDeclaredType.d.ts +23 -0
  99. package/dist/generators/ts/AbstractDeclaredType.js +17 -0
  100. package/dist/generators/ts/AbstractIdentifierType.d.ts +14 -0
  101. package/dist/generators/ts/AbstractIdentifierType.js +38 -0
  102. package/dist/generators/ts/AbstractLazyObjectType.d.ts +63 -0
  103. package/dist/generators/ts/AbstractLazyObjectType.js +140 -0
  104. package/dist/generators/ts/AbstractLiteralType.d.ts +24 -0
  105. package/dist/generators/ts/AbstractLiteralType.js +36 -0
  106. package/dist/generators/ts/AbstractNumericType.d.ts +32 -0
  107. package/dist/generators/ts/AbstractNumericType.js +85 -0
  108. package/dist/generators/ts/AbstractPrimitiveType.d.ts +30 -0
  109. package/dist/generators/ts/AbstractPrimitiveType.js +60 -0
  110. package/dist/generators/ts/AbstractTermType.d.ts +60 -0
  111. package/dist/generators/ts/AbstractTermType.js +171 -0
  112. package/dist/generators/ts/AbstractType.d.ts +267 -0
  113. package/dist/generators/ts/AbstractType.js +85 -0
  114. package/dist/generators/ts/BigDecimalType.d.ts +21 -0
  115. package/dist/generators/ts/BigDecimalType.js +91 -0
  116. package/dist/generators/ts/BigIntType.d.ts +15 -0
  117. package/dist/generators/ts/BigIntType.js +49 -0
  118. package/dist/generators/ts/BlankNodeType.d.ts +26 -0
  119. package/dist/generators/ts/BlankNodeType.js +61 -0
  120. package/dist/generators/ts/BooleanType.d.ts +18 -10
  121. package/dist/generators/ts/BooleanType.js +28 -51
  122. package/dist/generators/ts/DateTimeType.d.ts +8 -22
  123. package/dist/generators/ts/DateTimeType.js +10 -89
  124. package/dist/generators/ts/DateType.d.ts +7 -8
  125. package/dist/generators/ts/DateType.js +11 -18
  126. package/dist/generators/ts/DefaultValueType.d.ts +48 -0
  127. package/dist/generators/ts/DefaultValueType.js +178 -0
  128. package/dist/generators/ts/FloatType.d.ts +9 -4
  129. package/dist/generators/ts/FloatType.js +13 -15
  130. package/dist/generators/ts/IdentifierType.d.ts +18 -16
  131. package/dist/generators/ts/IdentifierType.js +45 -172
  132. package/dist/generators/ts/IntType.d.ts +9 -4
  133. package/dist/generators/ts/IntType.js +13 -15
  134. package/dist/generators/ts/IriType.d.ts +24 -0
  135. package/dist/generators/ts/IriType.js +106 -0
  136. package/dist/generators/ts/LazyObjectOptionType.d.ts +31 -0
  137. package/dist/generators/ts/LazyObjectOptionType.js +87 -0
  138. package/dist/generators/ts/LazyObjectSetType.d.ts +15 -0
  139. package/dist/generators/ts/LazyObjectSetType.js +78 -0
  140. package/dist/generators/ts/LazyObjectType.d.ts +14 -0
  141. package/dist/generators/ts/LazyObjectType.js +59 -0
  142. package/dist/generators/ts/ListType.d.ts +33 -31
  143. package/dist/generators/ts/ListType.js +76 -271
  144. package/dist/generators/ts/LiteralType.d.ts +16 -18
  145. package/dist/generators/ts/LiteralType.js +35 -114
  146. package/dist/generators/ts/ObjectType.d.ts +60 -66
  147. package/dist/generators/ts/ObjectType.js +151 -190
  148. package/dist/generators/ts/ObjectUnionType.d.ts +38 -74
  149. package/dist/generators/ts/ObjectUnionType.js +144 -559
  150. package/dist/generators/ts/OptionType.d.ts +33 -27
  151. package/dist/generators/ts/OptionType.js +93 -83
  152. package/dist/generators/ts/SetType.d.ts +13 -32
  153. package/dist/generators/ts/SetType.js +27 -160
  154. package/dist/generators/ts/StringType.d.ts +19 -11
  155. package/dist/generators/ts/StringType.js +33 -53
  156. package/dist/generators/ts/TermType.d.ts +22 -56
  157. package/dist/generators/ts/TermType.js +67 -219
  158. package/dist/generators/ts/TsGenerator.d.ts +0 -1
  159. package/dist/generators/ts/TsGenerator.js +30 -87
  160. package/dist/generators/ts/Type.d.ts +24 -245
  161. package/dist/generators/ts/Type.js +1 -121
  162. package/dist/generators/ts/TypeFactory.d.ts +24 -15
  163. package/dist/generators/ts/TypeFactory.js +330 -400
  164. package/dist/generators/ts/Typeof.d.ts +2 -0
  165. package/dist/generators/ts/Typeof.js +2 -0
  166. package/dist/generators/ts/UnionType.d.ts +32 -28
  167. package/dist/generators/ts/UnionType.js +299 -230
  168. package/dist/generators/ts/_ObjectType/AbstractProperty.d.ts +191 -0
  169. package/dist/generators/ts/_ObjectType/AbstractProperty.js +49 -0
  170. package/dist/generators/ts/_ObjectType/IdentifierPrefixProperty.d.ts +22 -25
  171. package/dist/generators/ts/_ObjectType/IdentifierPrefixProperty.js +34 -56
  172. package/dist/generators/ts/_ObjectType/IdentifierProperty.d.ts +38 -36
  173. package/dist/generators/ts/_ObjectType/IdentifierProperty.js +238 -191
  174. package/dist/generators/ts/_ObjectType/ObjectType_classDeclaration.d.ts +4 -0
  175. package/dist/generators/ts/_ObjectType/ObjectType_classDeclaration.js +69 -0
  176. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionDeclaration.d.ts +5 -0
  177. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionDeclaration.js +52 -0
  178. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionOrMethodDeclaration.d.ts +5 -0
  179. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionOrMethodDeclaration.js +51 -0
  180. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionDeclaration.d.ts +4 -0
  181. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionDeclaration.js +21 -0
  182. package/dist/generators/ts/_ObjectType/ObjectType_filterTypeDeclaration.d.ts +4 -0
  183. package/dist/generators/ts/_ObjectType/ObjectType_filterTypeDeclaration.js +22 -0
  184. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfTypeVariableStatement.d.ts +5 -0
  185. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfTypeVariableStatement.js +13 -0
  186. package/dist/generators/ts/_ObjectType/ObjectType_graphqlTypeVariableStatement.d.ts +5 -0
  187. package/dist/generators/ts/_ObjectType/ObjectType_graphqlTypeVariableStatement.js +35 -0
  188. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionOrMethodDeclarations.d.ts +4 -0
  189. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionOrMethodDeclarations.js +73 -0
  190. package/dist/generators/ts/_ObjectType/ObjectType_interfaceDeclaration.d.ts +4 -0
  191. package/dist/generators/ts/_ObjectType/ObjectType_interfaceDeclaration.js +16 -0
  192. package/dist/generators/ts/_ObjectType/ObjectType_isTypeFunctionDeclaration.d.ts +4 -0
  193. package/dist/generators/ts/_ObjectType/ObjectType_isTypeFunctionDeclaration.js +14 -0
  194. package/dist/generators/ts/_ObjectType/ObjectType_jsonFunctionDeclarations.d.ts +4 -0
  195. package/dist/generators/ts/_ObjectType/ObjectType_jsonFunctionDeclarations.js +122 -0
  196. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeAliasDeclaration.d.ts +5 -0
  197. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeAliasDeclaration.js +17 -0
  198. package/dist/generators/ts/_ObjectType/ObjectType_objectSetMethodNames.d.ts +9 -0
  199. package/dist/generators/ts/_ObjectType/{objectSetMethodNames.js → ObjectType_objectSetMethodNames.js} +3 -3
  200. package/dist/generators/ts/_ObjectType/ObjectType_rdfFunctionDeclarations.d.ts +4 -0
  201. package/dist/generators/ts/_ObjectType/ObjectType_rdfFunctionDeclarations.js +132 -0
  202. package/dist/generators/ts/_ObjectType/ObjectType_schemaVariableStatement.d.ts +4 -0
  203. package/dist/generators/ts/_ObjectType/ObjectType_schemaVariableStatement.js +10 -0
  204. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.d.ts +6 -0
  205. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.js +12 -0
  206. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts +6 -0
  207. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.js +10 -0
  208. package/dist/generators/ts/_ObjectType/ObjectType_sparqlFunctionDeclarations.d.ts +4 -0
  209. package/dist/generators/ts/_ObjectType/ObjectType_sparqlFunctionDeclarations.js +143 -0
  210. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionOrMethodDeclaration.d.ts +5 -0
  211. package/dist/generators/ts/_ObjectType/{toJsonFunctionOrMethodDeclaration.js → ObjectType_toJsonFunctionOrMethodDeclaration.js} +18 -18
  212. package/dist/generators/ts/_ObjectType/ObjectType_toRdfFunctionOrMethodDeclaration.d.ts +5 -0
  213. package/dist/generators/ts/_ObjectType/ObjectType_toRdfFunctionOrMethodDeclaration.js +65 -0
  214. package/dist/generators/ts/_ObjectType/Property.d.ts +5 -168
  215. package/dist/generators/ts/_ObjectType/Property.js +1 -32
  216. package/dist/generators/ts/_ObjectType/ShaclProperty.d.ts +41 -32
  217. package/dist/generators/ts/_ObjectType/ShaclProperty.js +178 -134
  218. package/dist/generators/ts/_ObjectType/TypeDiscriminantProperty.d.ts +48 -0
  219. package/dist/generators/ts/_ObjectType/TypeDiscriminantProperty.js +142 -0
  220. package/dist/generators/ts/_ObjectType/identifierTypeDeclarations.d.ts +2 -5
  221. package/dist/generators/ts/_ObjectType/identifierTypeDeclarations.js +9 -44
  222. package/dist/generators/ts/_ObjectUnionType/MemberType.d.ts +34 -0
  223. package/dist/generators/ts/_ObjectUnionType/MemberType.js +105 -0
  224. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_equalsFunctionDeclaration.d.ts +5 -0
  225. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_equalsFunctionDeclaration.js +29 -0
  226. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterFunctionDeclaration.d.ts +4 -0
  227. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterFunctionDeclaration.js +19 -0
  228. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterTypeDeclaration.d.ts +4 -0
  229. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterTypeDeclaration.js +10 -0
  230. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_graphqlTypeVariableStatement.d.ts +5 -0
  231. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_graphqlTypeVariableStatement.js +18 -0
  232. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_hashFunctionDeclaration.d.ts +5 -0
  233. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_hashFunctionDeclaration.js +28 -0
  234. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_identifierTypeDeclarations.d.ts +4 -0
  235. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_identifierTypeDeclarations.js +9 -0
  236. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_isTypeFunctionDeclaration.d.ts +5 -0
  237. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_isTypeFunctionDeclaration.js +13 -0
  238. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonFunctionDeclarations.d.ts +4 -0
  239. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonFunctionDeclarations.js +50 -0
  240. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonTypeAliasDeclaration.d.ts +5 -0
  241. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonTypeAliasDeclaration.js +10 -0
  242. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_rdfFunctionDeclarations.d.ts +4 -0
  243. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_rdfFunctionDeclarations.js +60 -0
  244. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_schemaVariableStatement.d.ts +4 -0
  245. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_schemaVariableStatement.js +37 -0
  246. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlFunctionDeclarations.d.ts +4 -0
  247. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlFunctionDeclarations.js +45 -0
  248. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_typeAliasDeclaration.d.ts +4 -0
  249. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_typeAliasDeclaration.js +10 -0
  250. package/dist/generators/ts/_snippets/snippets_BlankNodeFilter.d.ts +2 -0
  251. package/dist/generators/ts/_snippets/snippets_BlankNodeFilter.js +6 -0
  252. package/dist/generators/ts/_snippets/snippets_BlankNodeSchema.d.ts +2 -0
  253. package/dist/generators/ts/_snippets/snippets_BlankNodeSchema.js +7 -0
  254. package/dist/generators/ts/_snippets/snippets_BooleanFilter.d.ts +2 -0
  255. package/dist/generators/ts/_snippets/snippets_BooleanFilter.js +7 -0
  256. package/dist/generators/ts/_snippets/snippets_BooleanSchema.d.ts +2 -0
  257. package/dist/generators/ts/_snippets/snippets_BooleanSchema.js +8 -0
  258. package/dist/generators/ts/_snippets/snippets_CollectionFilter.d.ts +2 -0
  259. package/dist/generators/ts/_snippets/snippets_CollectionFilter.js +8 -0
  260. package/dist/generators/ts/_snippets/snippets_CollectionSchema.d.ts +2 -0
  261. package/dist/generators/ts/_snippets/snippets_CollectionSchema.js +9 -0
  262. package/dist/generators/ts/_snippets/snippets_DateFilter.d.ts +2 -0
  263. package/dist/generators/ts/_snippets/snippets_DateFilter.js +11 -0
  264. package/dist/generators/ts/_snippets/snippets_DateSchema.d.ts +2 -0
  265. package/dist/generators/ts/_snippets/snippets_DateSchema.js +8 -0
  266. package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.d.ts +2 -0
  267. package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.js +10 -0
  268. package/dist/generators/ts/_snippets/snippets_EqualsResult.d.ts +2 -0
  269. package/dist/generators/ts/_snippets/snippets_EqualsResult.js +65 -0
  270. package/dist/generators/ts/_snippets/snippets_FromRdfOptions.d.ts +2 -0
  271. package/dist/generators/ts/_snippets/snippets_FromRdfOptions.js +5 -0
  272. package/dist/generators/ts/_snippets/snippets_Hasher.d.ts +2 -0
  273. package/dist/generators/ts/_snippets/snippets_Hasher.js +4 -0
  274. package/dist/generators/ts/_snippets/snippets_IdentifierFilter.d.ts +2 -0
  275. package/dist/generators/ts/_snippets/snippets_IdentifierFilter.js +9 -0
  276. package/dist/generators/ts/_snippets/snippets_IdentifierSchema.d.ts +2 -0
  277. package/dist/generators/ts/_snippets/snippets_IdentifierSchema.js +7 -0
  278. package/dist/generators/ts/_snippets/snippets_IdentifierSet.d.ts +2 -0
  279. package/dist/generators/ts/_snippets/snippets_IdentifierSet.js +29 -0
  280. package/dist/generators/ts/_snippets/snippets_IriFilter.d.ts +2 -0
  281. package/dist/generators/ts/_snippets/snippets_IriFilter.js +8 -0
  282. package/dist/generators/ts/_snippets/snippets_IriSchema.d.ts +2 -0
  283. package/dist/generators/ts/_snippets/snippets_IriSchema.js +9 -0
  284. package/dist/generators/ts/_snippets/snippets_LazyObject.d.ts +2 -0
  285. package/dist/generators/ts/_snippets/snippets_LazyObject.js +24 -0
  286. package/dist/generators/ts/_snippets/snippets_LazyObjectOption.d.ts +2 -0
  287. package/dist/generators/ts/_snippets/snippets_LazyObjectOption.js +27 -0
  288. package/dist/generators/ts/_snippets/snippets_LazyObjectSet.d.ts +2 -0
  289. package/dist/generators/ts/_snippets/snippets_LazyObjectSet.js +42 -0
  290. package/dist/generators/ts/_snippets/snippets_LiteralFilter.d.ts +2 -0
  291. package/dist/generators/ts/_snippets/snippets_LiteralFilter.js +9 -0
  292. package/dist/generators/ts/_snippets/snippets_LiteralSchema.d.ts +2 -0
  293. package/dist/generators/ts/_snippets/snippets_LiteralSchema.js +10 -0
  294. package/dist/generators/ts/_snippets/snippets_MaybeFilter.d.ts +2 -0
  295. package/dist/generators/ts/_snippets/snippets_MaybeFilter.js +5 -0
  296. package/dist/generators/ts/_snippets/snippets_MaybeSchema.d.ts +2 -0
  297. package/dist/generators/ts/_snippets/snippets_MaybeSchema.js +8 -0
  298. package/dist/generators/ts/_snippets/snippets_NumericFilter.d.ts +2 -0
  299. package/dist/generators/ts/_snippets/snippets_NumericFilter.js +11 -0
  300. package/dist/generators/ts/_snippets/snippets_NumericSchema.d.ts +2 -0
  301. package/dist/generators/ts/_snippets/snippets_NumericSchema.js +8 -0
  302. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfParameters.d.ts +2 -0
  303. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfParameters.js +5 -0
  304. package/dist/generators/ts/_snippets/snippets_RdfVocabularies.d.ts +2 -0
  305. package/dist/generators/ts/_snippets/snippets_RdfVocabularies.js +42 -0
  306. package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.d.ts +2 -0
  307. package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.js +10 -0
  308. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunction.d.ts +2 -0
  309. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunction.js +6 -0
  310. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunctionParameters.d.ts +2 -0
  311. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunctionParameters.js +12 -0
  312. package/dist/generators/ts/_snippets/snippets_SparqlFilterPattern.d.ts +2 -0
  313. package/dist/generators/ts/_snippets/snippets_SparqlFilterPattern.js +5 -0
  314. package/dist/generators/ts/_snippets/snippets_SparqlPattern.d.ts +2 -0
  315. package/dist/generators/ts/_snippets/snippets_SparqlPattern.js +6 -0
  316. package/dist/generators/ts/_snippets/snippets_SparqlPattern_isSolutionGenerating.d.ts +2 -0
  317. package/dist/generators/ts/_snippets/snippets_SparqlPattern_isSolutionGenerating.js +32 -0
  318. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunction.d.ts +2 -0
  319. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunction.js +6 -0
  320. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunctionParameters.d.ts +2 -0
  321. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunctionParameters.js +15 -0
  322. package/dist/generators/ts/_snippets/snippets_StringFilter.d.ts +2 -0
  323. package/dist/generators/ts/_snippets/snippets_StringFilter.js +9 -0
  324. package/dist/generators/ts/_snippets/snippets_StringSchema.d.ts +2 -0
  325. package/dist/generators/ts/_snippets/snippets_StringSchema.js +8 -0
  326. package/dist/generators/ts/_snippets/snippets_TermFilter.d.ts +2 -0
  327. package/dist/generators/ts/_snippets/snippets_TermFilter.js +11 -0
  328. package/dist/generators/ts/_snippets/snippets_TermSchema.d.ts +2 -0
  329. package/dist/generators/ts/_snippets/snippets_TermSchema.js +9 -0
  330. package/dist/generators/ts/_snippets/snippets_UnwrapR.d.ts +2 -0
  331. package/dist/generators/ts/_snippets/snippets_UnwrapR.js +6 -0
  332. package/dist/generators/ts/_snippets/snippets_arrayEquals.d.ts +2 -0
  333. package/dist/generators/ts/_snippets/snippets_arrayEquals.js +71 -0
  334. package/dist/generators/ts/_snippets/snippets_arrayIntersection.d.ts +2 -0
  335. package/dist/generators/ts/_snippets/snippets_arrayIntersection.js +30 -0
  336. package/dist/generators/ts/_snippets/snippets_bigDecimalLiteral.d.ts +2 -0
  337. package/dist/generators/ts/_snippets/snippets_bigDecimalLiteral.js +12 -0
  338. package/dist/generators/ts/_snippets/snippets_bigDecimalSparqlWherePatterns.d.ts +2 -0
  339. package/dist/generators/ts/_snippets/snippets_bigDecimalSparqlWherePatterns.js +91 -0
  340. package/dist/generators/ts/_snippets/snippets_blankNodeFromString.d.ts +2 -0
  341. package/dist/generators/ts/_snippets/snippets_blankNodeFromString.js +11 -0
  342. package/dist/generators/ts/_snippets/snippets_blankNodeSparqlWherePatterns.d.ts +2 -0
  343. package/dist/generators/ts/_snippets/snippets_blankNodeSparqlWherePatterns.js +9 -0
  344. package/dist/generators/ts/_snippets/snippets_booleanEquals.d.ts +2 -0
  345. package/dist/generators/ts/_snippets/snippets_booleanEquals.js +18 -0
  346. package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.d.ts +2 -0
  347. package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.js +22 -0
  348. package/dist/generators/ts/_snippets/snippets_dateEquals.d.ts +2 -0
  349. package/dist/generators/ts/_snippets/snippets_dateEquals.js +15 -0
  350. package/dist/generators/ts/_snippets/snippets_dateSparqlWherePatterns.d.ts +2 -0
  351. package/dist/generators/ts/_snippets/snippets_dateSparqlWherePatterns.js +79 -0
  352. package/dist/generators/ts/_snippets/snippets_decodeBigDecimalLiteral.d.ts +2 -0
  353. package/dist/generators/ts/_snippets/snippets_decodeBigDecimalLiteral.js +11 -0
  354. package/dist/generators/ts/_snippets/snippets_deduplicateSparqlPatterns.d.ts +2 -0
  355. package/dist/generators/ts/_snippets/snippets_deduplicateSparqlPatterns.js +21 -0
  356. package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.d.ts +2 -0
  357. package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +13 -0
  358. package/dist/generators/ts/_snippets/snippets_filterArray.d.ts +2 -0
  359. package/dist/generators/ts/_snippets/snippets_filterArray.js +24 -0
  360. package/dist/generators/ts/_snippets/snippets_filterBigDecimal.d.ts +2 -0
  361. package/dist/generators/ts/_snippets/snippets_filterBigDecimal.js +29 -0
  362. package/dist/generators/ts/_snippets/snippets_filterBlankNode.d.ts +2 -0
  363. package/dist/generators/ts/_snippets/snippets_filterBlankNode.js +9 -0
  364. package/dist/generators/ts/_snippets/snippets_filterBoolean.d.ts +2 -0
  365. package/dist/generators/ts/_snippets/snippets_filterBoolean.js +12 -0
  366. package/dist/generators/ts/_snippets/snippets_filterDate.d.ts +2 -0
  367. package/dist/generators/ts/_snippets/snippets_filterDate.js +28 -0
  368. package/dist/generators/ts/_snippets/snippets_filterIdentifier.d.ts +2 -0
  369. package/dist/generators/ts/_snippets/snippets_filterIdentifier.js +17 -0
  370. package/dist/generators/ts/_snippets/snippets_filterIri.d.ts +2 -0
  371. package/dist/generators/ts/_snippets/snippets_filterIri.js +13 -0
  372. package/dist/generators/ts/_snippets/snippets_filterLiteral.d.ts +2 -0
  373. package/dist/generators/ts/_snippets/snippets_filterLiteral.js +10 -0
  374. package/dist/generators/ts/_snippets/snippets_filterMaybe.d.ts +2 -0
  375. package/dist/generators/ts/_snippets/snippets_filterMaybe.js +25 -0
  376. package/dist/generators/ts/_snippets/snippets_filterNumeric.d.ts +2 -0
  377. package/dist/generators/ts/_snippets/snippets_filterNumeric.js +28 -0
  378. package/dist/generators/ts/_snippets/snippets_filterString.d.ts +2 -0
  379. package/dist/generators/ts/_snippets/snippets_filterString.js +20 -0
  380. package/dist/generators/ts/_snippets/snippets_filterTerm.d.ts +2 -0
  381. package/dist/generators/ts/_snippets/snippets_filterTerm.js +26 -0
  382. package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.d.ts +2 -0
  383. package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.js +17 -0
  384. package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.d.ts +2 -0
  385. package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.js +25 -0
  386. package/dist/generators/ts/_snippets/snippets_identifierFromString.d.ts +2 -0
  387. package/dist/generators/ts/_snippets/snippets_identifierFromString.js +8 -0
  388. package/dist/generators/ts/_snippets/snippets_identifierSparqlWherePatterns.d.ts +2 -0
  389. package/dist/generators/ts/_snippets/snippets_identifierSparqlWherePatterns.js +36 -0
  390. package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.d.ts +2 -0
  391. package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.js +20 -0
  392. package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.d.ts +2 -0
  393. package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.js +7 -0
  394. package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.d.ts +2 -0
  395. package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.js +7 -0
  396. package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.d.ts +2 -0
  397. package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.js +7 -0
  398. package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.d.ts +2 -0
  399. package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.js +7 -0
  400. package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.d.ts +2 -0
  401. package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.js +7 -0
  402. package/dist/generators/ts/_snippets/snippets_liftSparqlPatterns.d.ts +2 -0
  403. package/dist/generators/ts/_snippets/snippets_liftSparqlPatterns.js +18 -0
  404. package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.d.ts +2 -0
  405. package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.js +43 -0
  406. package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.d.ts +2 -0
  407. package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.js +121 -0
  408. package/dist/generators/ts/_snippets/snippets_literalFactory.d.ts +2 -0
  409. package/dist/generators/ts/_snippets/snippets_literalFactory.js +5 -0
  410. package/dist/generators/ts/_snippets/snippets_literalSchemaSparqlPatterns.d.ts +2 -0
  411. package/dist/generators/ts/_snippets/snippets_literalSchemaSparqlPatterns.js +45 -0
  412. package/dist/generators/ts/_snippets/snippets_literalSparqlWherePatterns.d.ts +2 -0
  413. package/dist/generators/ts/_snippets/snippets_literalSparqlWherePatterns.js +10 -0
  414. package/dist/generators/ts/_snippets/snippets_maybeEquals.d.ts +2 -0
  415. package/dist/generators/ts/_snippets/snippets_maybeEquals.js +34 -0
  416. package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.d.ts +2 -0
  417. package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.js +10 -0
  418. package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.d.ts +2 -0
  419. package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.js +26 -0
  420. package/dist/generators/ts/_snippets/snippets_normalizeSparqlWherePatterns.d.ts +2 -0
  421. package/dist/generators/ts/_snippets/snippets_normalizeSparqlWherePatterns.js +97 -0
  422. package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.d.ts +2 -0
  423. package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.js +71 -0
  424. package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.d.ts +2 -0
  425. package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.js +10 -0
  426. package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.d.ts +2 -0
  427. package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.js +22 -0
  428. package/dist/generators/ts/_snippets/snippets_shaclPropertyFromRdf.d.ts +2 -0
  429. package/dist/generators/ts/_snippets/snippets_shaclPropertyFromRdf.js +14 -0
  430. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.d.ts +2 -0
  431. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.js +94 -0
  432. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.d.ts +2 -0
  433. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.js +92 -0
  434. package/dist/generators/ts/_snippets/snippets_sortSparqlPatterns.d.ts +2 -0
  435. package/dist/generators/ts/_snippets/snippets_sortSparqlPatterns.js +26 -0
  436. package/dist/generators/ts/_snippets/snippets_sparqlInstancesOfPattern.d.ts +2 -0
  437. package/dist/generators/ts/_snippets/snippets_sparqlInstancesOfPattern.js +32 -0
  438. package/dist/generators/ts/_snippets/snippets_sparqlPropertyPath.d.ts +2 -0
  439. package/dist/generators/ts/_snippets/snippets_sparqlPropertyPath.js +61 -0
  440. package/dist/generators/ts/_snippets/snippets_sparqlValueInPattern.d.ts +2 -0
  441. package/dist/generators/ts/_snippets/snippets_sparqlValueInPattern.js +27 -0
  442. package/dist/generators/ts/_snippets/snippets_strictEquals.d.ts +2 -0
  443. package/dist/generators/ts/_snippets/snippets_strictEquals.js +14 -0
  444. package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.d.ts +2 -0
  445. package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.js +47 -0
  446. package/dist/generators/ts/_snippets/snippets_termFilterSparqlPatterns.d.ts +2 -0
  447. package/dist/generators/ts/_snippets/snippets_termFilterSparqlPatterns.js +98 -0
  448. package/dist/generators/ts/_snippets/snippets_termSchemaSparqlPatterns.d.ts +2 -0
  449. package/dist/generators/ts/_snippets/snippets_termSchemaSparqlPatterns.js +29 -0
  450. package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.d.ts +2 -0
  451. package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.js +11 -0
  452. package/dist/generators/ts/codeEquals.d.ts +3 -0
  453. package/dist/generators/ts/codeEquals.js +7 -0
  454. package/dist/generators/ts/graphqlSchemaVariableStatement.d.ts +2 -2
  455. package/dist/generators/ts/graphqlSchemaVariableStatement.js +56 -60
  456. package/dist/generators/ts/imports.d.ts +40 -0
  457. package/dist/generators/ts/imports.js +41 -0
  458. package/dist/generators/ts/objectSetDeclarations.d.ts +2 -2
  459. package/dist/generators/ts/objectSetDeclarations.js +5 -7
  460. package/dist/generators/ts/objectSetInterfaceDeclaration.d.ts +2 -2
  461. package/dist/generators/ts/objectSetInterfaceDeclaration.js +19 -41
  462. package/dist/generators/ts/objectSetMethodSignatures.d.ts +9 -3
  463. package/dist/generators/ts/objectSetMethodSignatures.js +14 -34
  464. package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.d.ts +2 -2
  465. package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.js +279 -359
  466. package/dist/generators/ts/rdfjsTermExpression.d.ts +2 -1
  467. package/dist/generators/ts/rdfjsTermExpression.js +28 -10
  468. package/dist/generators/ts/removeUndefined.d.ts +2 -0
  469. package/dist/generators/ts/removeUndefined.js +17 -0
  470. package/dist/generators/ts/snippets.d.ts +104 -0
  471. package/dist/generators/ts/snippets.js +205 -0
  472. package/dist/generators/ts/sparqlObjectSetClassDeclaration.d.ts +2 -2
  473. package/dist/generators/ts/sparqlObjectSetClassDeclaration.js +209 -388
  474. package/dist/generators/ts/synthesizeUberObjectUnionType.d.ts +9 -0
  475. package/dist/generators/ts/synthesizeUberObjectUnionType.js +59 -0
  476. package/dist/generators/ts/ts-poet-wrapper.d.ts +5 -0
  477. package/dist/generators/ts/ts-poet-wrapper.js +13 -0
  478. package/dist/generators/ts/tsName.d.ts +11 -2
  479. package/dist/generators/ts/tsName.js +25 -28
  480. package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.d.ts +4 -3
  481. package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.js +18 -15
  482. package/dist/index.d.ts +6 -1
  483. package/dist/index.js +5 -1
  484. package/dist/input/NodeShape.d.ts +14 -11
  485. package/dist/input/NodeShape.js +87 -80
  486. package/dist/input/Ontology.d.ts +1 -1
  487. package/dist/input/Ontology.js +13 -0
  488. package/dist/input/PropertyShape.d.ts +8 -5
  489. package/dist/input/PropertyShape.js +46 -9
  490. package/dist/input/ShapesGraph.d.ts +23 -6
  491. package/dist/input/ShapesGraph.js +58 -39
  492. package/dist/input/ancestorClassIris.js +4 -1
  493. package/dist/input/descendantClassIris.js +8 -2
  494. package/dist/input/generated.d.ts +3032 -1042
  495. package/dist/input/generated.js +3595 -2730
  496. package/dist/input/index.d.ts +1 -1
  497. package/dist/input/index.js +1 -1
  498. package/dist/input/tsFeatures.d.ts +1 -1
  499. package/package.json +40 -34
  500. package/dist/_ShapesGraphToAstTransformer/InheritableShapeConstraints.d.ts +0 -2
  501. package/dist/_ShapesGraphToAstTransformer/InheritableShapeConstraints.js +0 -2
  502. package/dist/_ShapesGraphToAstTransformer/flattenAstObjectCompositeTypeMemberTypes.d.ts +0 -13
  503. package/dist/_ShapesGraphToAstTransformer/flattenAstObjectCompositeTypeMemberTypes.js +0 -51
  504. package/dist/_ShapesGraphToAstTransformer/pickLiteral.d.ts +0 -4
  505. package/dist/_ShapesGraphToAstTransformer/pickLiteral.js +0 -18
  506. package/dist/_ShapesGraphToAstTransformer/propertyShapeNodeKinds.d.ts +0 -4
  507. package/dist/_ShapesGraphToAstTransformer/propertyShapeNodeKinds.js +0 -26
  508. package/dist/_ShapesGraphToAstTransformer/shapeAstName.d.ts +0 -5
  509. package/dist/_ShapesGraphToAstTransformer/shapeAstName.js +0 -69
  510. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompositeType.d.ts +0 -10
  511. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompositeType.js +0 -185
  512. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstIdentifierType.d.ts +0 -10
  513. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstIdentifierType.js +0 -32
  514. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstLiteralType.d.ts +0 -10
  515. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstLiteralType.js +0 -46
  516. package/dist/ast/CompositeType.d.ts +0 -13
  517. package/dist/ast/CompositeType.js +0 -2
  518. package/dist/ast/Name.d.ts +0 -49
  519. package/dist/ast/Name.js +0 -2
  520. package/dist/ast/ObjectCompositeType.d.ts +0 -33
  521. package/dist/ast/ObjectCompositeType.js +0 -2
  522. package/dist/generators/ts/DeclaredType.d.ts +0 -17
  523. package/dist/generators/ts/DeclaredType.js +0 -13
  524. package/dist/generators/ts/Import.d.ts +0 -20
  525. package/dist/generators/ts/Import.js +0 -69
  526. package/dist/generators/ts/NumberType.d.ts +0 -13
  527. package/dist/generators/ts/NumberType.js +0 -71
  528. package/dist/generators/ts/PrimitiveType.d.ts +0 -21
  529. package/dist/generators/ts/PrimitiveType.js +0 -57
  530. package/dist/generators/ts/SnippetDeclarations.d.ts +0 -17
  531. package/dist/generators/ts/SnippetDeclarations.js +0 -367
  532. package/dist/generators/ts/_ObjectType/EagerShaclProperty.d.ts +0 -12
  533. package/dist/generators/ts/_ObjectType/EagerShaclProperty.js +0 -31
  534. package/dist/generators/ts/_ObjectType/LazyShaclProperty.d.ts +0 -100
  535. package/dist/generators/ts/_ObjectType/LazyShaclProperty.js +0 -315
  536. package/dist/generators/ts/_ObjectType/TypeDiscriminatorProperty.d.ts +0 -51
  537. package/dist/generators/ts/_ObjectType/TypeDiscriminatorProperty.js +0 -138
  538. package/dist/generators/ts/_ObjectType/classDeclaration.d.ts +0 -5
  539. package/dist/generators/ts/_ObjectType/classDeclaration.js +0 -122
  540. package/dist/generators/ts/_ObjectType/createFunctionDeclaration.d.ts +0 -5
  541. package/dist/generators/ts/_ObjectType/createFunctionDeclaration.js +0 -73
  542. package/dist/generators/ts/_ObjectType/equalsFunctionDeclaration.d.ts +0 -5
  543. package/dist/generators/ts/_ObjectType/equalsFunctionDeclaration.js +0 -19
  544. package/dist/generators/ts/_ObjectType/equalsFunctionOrMethodDeclaration.d.ts +0 -11
  545. package/dist/generators/ts/_ObjectType/equalsFunctionOrMethodDeclaration.js +0 -73
  546. package/dist/generators/ts/_ObjectType/fromRdfTypeVariableStatement.d.ts +0 -5
  547. package/dist/generators/ts/_ObjectType/fromRdfTypeVariableStatement.js +0 -28
  548. package/dist/generators/ts/_ObjectType/graphqlTypeVariableStatement.d.ts +0 -5
  549. package/dist/generators/ts/_ObjectType/graphqlTypeVariableStatement.js +0 -49
  550. package/dist/generators/ts/_ObjectType/hashFunctionDeclarations.d.ts +0 -4
  551. package/dist/generators/ts/_ObjectType/hashFunctionDeclarations.js +0 -18
  552. package/dist/generators/ts/_ObjectType/hashFunctionOrMethodDeclarations.d.ts +0 -13
  553. package/dist/generators/ts/_ObjectType/hashFunctionOrMethodDeclarations.js +0 -96
  554. package/dist/generators/ts/_ObjectType/index.d.ts +0 -22
  555. package/dist/generators/ts/_ObjectType/index.js +0 -22
  556. package/dist/generators/ts/_ObjectType/interfaceDeclaration.d.ts +0 -5
  557. package/dist/generators/ts/_ObjectType/interfaceDeclaration.js +0 -21
  558. package/dist/generators/ts/_ObjectType/jsonFunctionDeclarations.d.ts +0 -4
  559. package/dist/generators/ts/_ObjectType/jsonFunctionDeclarations.js +0 -189
  560. package/dist/generators/ts/_ObjectType/jsonTypeAliasDeclaration.d.ts +0 -5
  561. package/dist/generators/ts/_ObjectType/jsonTypeAliasDeclaration.js +0 -28
  562. package/dist/generators/ts/_ObjectType/objectSetMethodNames.d.ts +0 -9
  563. package/dist/generators/ts/_ObjectType/propertiesVariableStatement.d.ts +0 -5
  564. package/dist/generators/ts/_ObjectType/propertiesVariableStatement.js +0 -37
  565. package/dist/generators/ts/_ObjectType/rdfFunctionDeclarations.d.ts +0 -4
  566. package/dist/generators/ts/_ObjectType/rdfFunctionDeclarations.js +0 -169
  567. package/dist/generators/ts/_ObjectType/sparqlConstructQueryFunctionDeclaration.d.ts +0 -5
  568. package/dist/generators/ts/_ObjectType/sparqlConstructQueryFunctionDeclaration.js +0 -22
  569. package/dist/generators/ts/_ObjectType/sparqlConstructQueryStringFunctionDeclaration.d.ts +0 -5
  570. package/dist/generators/ts/_ObjectType/sparqlConstructQueryStringFunctionDeclaration.js +0 -21
  571. package/dist/generators/ts/_ObjectType/sparqlFunctionDeclarations.d.ts +0 -4
  572. package/dist/generators/ts/_ObjectType/sparqlFunctionDeclarations.js +0 -166
  573. package/dist/generators/ts/_ObjectType/toJsonFunctionOrMethodDeclaration.d.ts +0 -10
  574. package/dist/generators/ts/_ObjectType/toRdfFunctionOrMethodDeclaration.d.ts +0 -10
  575. package/dist/generators/ts/_ObjectType/toRdfFunctionOrMethodDeclaration.js +0 -76
  576. package/dist/generators/ts/forwardingObjectSetClassDeclaration.d.ts +0 -8
  577. package/dist/generators/ts/forwardingObjectSetClassDeclaration.js +0 -29
  578. package/dist/generators/ts/objectInitializer.d.ts +0 -2
  579. package/dist/generators/ts/objectInitializer.js +0 -14
  580. package/dist/input/PropertyPath.d.ts +0 -41
  581. package/dist/input/PropertyPath.js +0 -95
@@ -1,20 +1,101 @@
1
- import { Either } from "purify-ts";
2
- import { propertyShapeNodeKinds } from "./propertyShapeNodeKinds.js";
1
+ import { Either, Left } from "purify-ts";
2
+ import { invariant } from "ts-invariant";
3
+ import * as ast from "../ast/index.js";
4
+ import { Eithers } from "../Eithers.js";
5
+ import { shapeNodeKinds } from "./shapeNodeKinds.js";
6
+ import { transformShapeToAstAbstractTypeProperties } from "./transformShapeToAstAbstractTypeProperties.js";
3
7
  /**
4
8
  * Try to convert a shape to an AST TermType using some heuristics.
5
9
  */
6
10
  export function transformShapeToAstTermType(shape, shapeStack) {
7
11
  shapeStack.push(shape);
8
12
  try {
9
- const nodeKinds = propertyShapeNodeKinds(shape);
10
- return Either.of({
11
- defaultValue: shapeStack.defaultValue,
12
- hasValues: shapeStack.constraints.hasValues,
13
- in_: shapeStack.constraints.in_,
14
- kind: "TermType",
15
- nodeKinds: nodeKinds.size > 0
16
- ? nodeKinds
17
- : new Set(["BlankNode", "NamedNode", "Literal"]),
13
+ return Eithers.chain2(transformShapeToAstAbstractTypeProperties(shape), shapeNodeKinds(shape)).chain(([astAbstractTypeProperties, nodeKinds]) => {
14
+ const hasValues = shapeStack.constraints.hasValues;
15
+ const in_ = shapeStack.constraints.in_;
16
+ let termType;
17
+ if (nodeKinds.size === 1) {
18
+ const nodeKind = [...nodeKinds][0];
19
+ switch (nodeKind) {
20
+ case "BlankNode":
21
+ invariant(in_.length === 0);
22
+ termType = new ast.BlankNodeType({
23
+ ...astAbstractTypeProperties,
24
+ });
25
+ break;
26
+ case "IRI":
27
+ termType = new ast.IriType({
28
+ ...astAbstractTypeProperties,
29
+ hasValues: hasValues.filter((_) => _.termType === "NamedNode"),
30
+ in_: in_.filter((_) => _.termType === "NamedNode"),
31
+ });
32
+ break;
33
+ case "Literal":
34
+ termType = new ast.LiteralType({
35
+ ...astAbstractTypeProperties,
36
+ datatype: shape.constraints.datatype,
37
+ hasValues: hasValues.filter((_) => _.termType === "Literal"),
38
+ in_: in_.filter((_) => _.termType === "Literal"),
39
+ languageIn: [...new Set(shape.constraints.languageIn)],
40
+ maxExclusive: shape.constraints.maxExclusive,
41
+ maxInclusive: shape.constraints.maxInclusive,
42
+ minExclusive: shape.constraints.minExclusive,
43
+ minInclusive: shape.constraints.minInclusive,
44
+ });
45
+ break;
46
+ }
47
+ }
48
+ else if (nodeKinds.size === 2 &&
49
+ nodeKinds.has("BlankNode") &&
50
+ nodeKinds.has("IRI")) {
51
+ invariant(in_.length === 0);
52
+ termType = new ast.IdentifierType({
53
+ ...astAbstractTypeProperties,
54
+ });
55
+ }
56
+ else {
57
+ invariant(nodeKinds.size >= 2 && nodeKinds.has("Literal"));
58
+ termType = new ast.TermType({
59
+ ...astAbstractTypeProperties,
60
+ hasValues,
61
+ in_,
62
+ nodeKinds,
63
+ });
64
+ }
65
+ if (termType.in_.length > 0) {
66
+ for (const hasValue of termType.hasValues) {
67
+ if (!termType.in_.some((in_) => hasValue.equals(in_))) {
68
+ return Left(new Error(`${shape}: has-value conflicts with in`));
69
+ }
70
+ }
71
+ }
72
+ return shapeStack.defaultValue
73
+ .map((defaultValue) => {
74
+ switch (termType.kind) {
75
+ case "BlankNodeType":
76
+ return Left(new Error(`${shape}: blank node identifier types cannot have default values`));
77
+ }
78
+ switch (termType.hasValues.length) {
79
+ case 0:
80
+ break;
81
+ case 1:
82
+ if (!termType.hasValues[0].equals(defaultValue)) {
83
+ return Left(new Error(`${shape}: default value conflicts with has-value`));
84
+ }
85
+ break;
86
+ default:
87
+ return Left(new Error(`${shape}: has a default value and multiple has-values`));
88
+ }
89
+ if (termType.in_.length > 0 &&
90
+ !termType.in_.some((in_) => in_.equals(defaultValue))) {
91
+ return Left(new Error(`${shape}: default value conflicts with in value`));
92
+ }
93
+ return Either.of(new ast.DefaultValueType({
94
+ defaultValue,
95
+ itemType: termType,
96
+ }));
97
+ })
98
+ .orDefault(Either.of(termType));
18
99
  });
19
100
  }
20
101
  finally {
@@ -1,7 +1,7 @@
1
- import type { Either } from "purify-ts";
2
- import type { ShapesGraphToAstTransformer } from "../ShapesGraphToAstTransformer.js";
1
+ import { Either } from "purify-ts";
3
2
  import type * as ast from "../ast/index.js";
4
3
  import type * as input from "../input/index.js";
4
+ import type { ShapesGraphToAstTransformer } from "../ShapesGraphToAstTransformer.js";
5
5
  import type { ShapeStack } from "./ShapeStack.js";
6
6
  /**
7
7
  * Try to convert a shape to a type using some heuristics.
@@ -9,5 +9,5 @@ import type { ShapeStack } from "./ShapeStack.js";
9
9
  * We don't try to handle exotic cases allowed by the SHACL spec, such as combinations of sh:in and sh:node. Instead we assume
10
10
  * a shape has one type.
11
11
  */
12
- export declare function transformShapeToAstType(this: ShapesGraphToAstTransformer, shape: input.Shape, shapeStack: ShapeStack): Either<Error, ast.Type>;
12
+ export declare function transformShapeToAstType(this: ShapesGraphToAstTransformer, shape: input.Shape, shapeStack: ShapeStack): Either<Error, Exclude<ast.Type, ast.PlaceholderType>>;
13
13
  //# sourceMappingURL=transformShapeToAstType.d.ts.map
@@ -1,3 +1,6 @@
1
+ import { Either } from "purify-ts";
2
+ import { transformShapeToAstCompoundType } from "./transformShapeToAstCompoundType.js";
3
+ import { transformShapeToAstTermType } from "./transformShapeToAstTermType.js";
1
4
  /**
2
5
  * Try to convert a shape to a type using some heuristics.
3
6
  *
@@ -6,9 +9,10 @@
6
9
  */
7
10
  export function transformShapeToAstType(shape, shapeStack) {
8
11
  // Try to transform the property shape into an AST type without cardinality constraints
9
- return this.transformShapeToAstCompositeType(shape, shapeStack)
10
- .altLazy(() => this.transformShapeToAstIdentifierType(shape, shapeStack))
11
- .altLazy(() => this.transformShapeToAstLiteralType(shape, shapeStack))
12
- .altLazy(() => this.transformShapeToAstTermType(shape, shapeStack));
12
+ return transformShapeToAstCompoundType
13
+ .bind(this)(shape, shapeStack)
14
+ .chain((astType) => astType
15
+ .map((_) => Either.of(_))
16
+ .orDefaultLazy(() => transformShapeToAstTermType.bind(this)(shape, shapeStack)));
13
17
  }
14
18
  //# sourceMappingURL=transformShapeToAstType.js.map
@@ -0,0 +1,20 @@
1
+ import { AbstractContainerType } from "./AbstractContainerType.js";
2
+ /**
3
+ * Abstract base class for a collection of items of a single type. This is the parent of ListType and SetType.
4
+ */
5
+ export declare abstract class AbstractCollectionType<ItemTypeT extends AbstractCollectionType.ItemType = AbstractCollectionType.ItemType> extends AbstractContainerType<ItemTypeT> {
6
+ abstract readonly kind: "ListType" | "SetType";
7
+ /**
8
+ * The collection should be mutable in generated code.
9
+ */
10
+ readonly mutable: boolean;
11
+ constructor({ mutable, ...superParameters }: {
12
+ mutable: boolean;
13
+ } & ConstructorParameters<typeof AbstractContainerType<ItemTypeT>>[0]);
14
+ equals(other: AbstractCollectionType<ItemTypeT>): boolean;
15
+ }
16
+ export declare namespace AbstractCollectionType {
17
+ type ItemType = AbstractContainerType.ItemType;
18
+ const isItemType: typeof AbstractContainerType.isItemType;
19
+ }
20
+ //# sourceMappingURL=AbstractCollectionType.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { AbstractContainerType } from "./AbstractContainerType.js";
2
+ /**
3
+ * Abstract base class for a collection of items of a single type. This is the parent of ListType and SetType.
4
+ */
5
+ export class AbstractCollectionType extends AbstractContainerType {
6
+ /**
7
+ * The collection should be mutable in generated code.
8
+ */
9
+ mutable;
10
+ constructor({ mutable, ...superParameters }) {
11
+ super(superParameters);
12
+ this.mutable = mutable;
13
+ }
14
+ equals(other) {
15
+ if (!super.equals(other)) {
16
+ return false;
17
+ }
18
+ if (this.mutable !== other.mutable) {
19
+ return false;
20
+ }
21
+ return true;
22
+ }
23
+ }
24
+ (function (AbstractCollectionType) {
25
+ AbstractCollectionType.isItemType = AbstractContainerType.isItemType;
26
+ })(AbstractCollectionType || (AbstractCollectionType = {}));
27
+ //# sourceMappingURL=AbstractCollectionType.js.map
@@ -0,0 +1,23 @@
1
+ import { AbstractType } from "./AbstractType.js";
2
+ import { Type } from "./Type.js";
3
+ /**
4
+ * A compound of types, such as an intersection or union.
5
+ *
6
+ * Compound = combining types at the type level e.g., functions, intersections, unions
7
+ * Composite = combining values at runtime (e.g., arrays, structs whose members have the same type)
8
+ */
9
+ export declare abstract class AbstractCompoundType<MemberTypeT extends Type> extends AbstractType {
10
+ #private;
11
+ /**
12
+ * Type discriminant
13
+ */
14
+ abstract readonly kind: "IntersectionType" | "ObjectIntersectionType" | "ObjectUnionType" | "UnionType";
15
+ constructor({ memberTypes, ...superParameters }: {
16
+ memberTypes?: readonly MemberTypeT[];
17
+ } & ConstructorParameters<typeof AbstractType>[0]);
18
+ addMemberType(memberType: MemberTypeT): void;
19
+ equals(other: AbstractCompoundType<MemberTypeT>): boolean;
20
+ get memberTypes(): readonly MemberTypeT[];
21
+ toString(): string;
22
+ }
23
+ //# sourceMappingURL=AbstractCompoundType.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { invariant } from "ts-invariant";
2
+ import { AbstractType } from "./AbstractType.js";
3
+ import { arrayEquals } from "./equals.js";
4
+ import { Type } from "./Type.js";
5
+ /**
6
+ * A compound of types, such as an intersection or union.
7
+ *
8
+ * Compound = combining types at the type level e.g., functions, intersections, unions
9
+ * Composite = combining values at runtime (e.g., arrays, structs whose members have the same type)
10
+ */
11
+ export class AbstractCompoundType extends AbstractType {
12
+ /**
13
+ * Member types.
14
+ *
15
+ * Mutable to support cycle-handling logic in the compiler.
16
+ */
17
+ #memberTypes;
18
+ constructor({ memberTypes, ...superParameters }) {
19
+ super(superParameters);
20
+ this.#memberTypes = memberTypes?.concat() ?? [];
21
+ }
22
+ addMemberType(memberType) {
23
+ this.#memberTypes.push(memberType);
24
+ }
25
+ equals(other) {
26
+ if (!super.equals(other)) {
27
+ return false;
28
+ }
29
+ return arrayEquals(Type.equals)(this.memberTypes, other.memberTypes);
30
+ }
31
+ get memberTypes() {
32
+ invariant(this.#memberTypes.length > 0);
33
+ return this.#memberTypes;
34
+ }
35
+ toString() {
36
+ return `${this.kind}(memberTypes=[${this.memberTypes.map((memberType) => memberType.toString()).join(", ")}])`;
37
+ }
38
+ }
39
+ //# sourceMappingURL=AbstractCompoundType.js.map
@@ -0,0 +1,36 @@
1
+ import { AbstractType } from "./AbstractType.js";
2
+ import type { BlankNodeType } from "./BlankNodeType.js";
3
+ import type { IdentifierType } from "./IdentifierType.js";
4
+ import type { IntersectionType } from "./IntersectionType.js";
5
+ import type { IriType } from "./IriType.js";
6
+ import type { ListType } from "./ListType.js";
7
+ import type { LiteralType } from "./LiteralType.js";
8
+ import type { ObjectIntersectionType } from "./ObjectIntersectionType.js";
9
+ import type { ObjectType } from "./ObjectType.js";
10
+ import type { ObjectUnionType } from "./ObjectUnionType.js";
11
+ import type { PlaceholderType } from "./PlaceholderType.js";
12
+ import type { TermType } from "./TermType.js";
13
+ import { Type } from "./Type.js";
14
+ import type { UnionType } from "./UnionType.js";
15
+ /**
16
+ * Abstract base class for types that contain other types e.g., ListType, OptionType, SetType.
17
+ */
18
+ export declare abstract class AbstractContainerType<ItemTypeT extends AbstractContainerType.ItemType = AbstractContainerType.ItemType> extends AbstractType {
19
+ abstract readonly kind: "DefaultValueType" | "ListType" | "OptionType" | "SetType";
20
+ /**
21
+ * Container item type.
22
+ *
23
+ * Mutable to support cycle-handling logic in the compiler.
24
+ */
25
+ itemType: ItemTypeT;
26
+ constructor({ itemType, ...superParameters }: {
27
+ itemType: ItemTypeT;
28
+ } & ConstructorParameters<typeof AbstractType>[0]);
29
+ equals(other: AbstractContainerType<ItemTypeT>): boolean;
30
+ toString(): string;
31
+ }
32
+ export declare namespace AbstractContainerType {
33
+ type ItemType = BlankNodeType | IdentifierType | IntersectionType | IriType | ListType | LiteralType | ObjectIntersectionType | ObjectType | ObjectUnionType | PlaceholderType | TermType | UnionType;
34
+ function isItemType(type: Type): type is ItemType;
35
+ }
36
+ //# sourceMappingURL=AbstractContainerType.d.ts.map
@@ -0,0 +1,58 @@
1
+ import { AbstractType } from "./AbstractType.js";
2
+ import { Type } from "./Type.js";
3
+ /**
4
+ * Abstract base class for types that contain other types e.g., ListType, OptionType, SetType.
5
+ */
6
+ export class AbstractContainerType extends AbstractType {
7
+ /**
8
+ * Container item type.
9
+ *
10
+ * Mutable to support cycle-handling logic in the compiler.
11
+ */
12
+ itemType;
13
+ constructor({ itemType, ...superParameters }) {
14
+ super(superParameters);
15
+ this.itemType = itemType;
16
+ }
17
+ equals(other) {
18
+ if (!super.equals(other)) {
19
+ return false;
20
+ }
21
+ if (!Type.equals(this.itemType, other.itemType)) {
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ toString() {
27
+ return `${this.kind}(itemType=${this.itemType})`;
28
+ }
29
+ }
30
+ (function (AbstractContainerType) {
31
+ function isItemType(type) {
32
+ switch (type.kind) {
33
+ case "BlankNodeType":
34
+ case "IdentifierType":
35
+ case "IntersectionType":
36
+ case "IriType":
37
+ case "ListType":
38
+ case "LiteralType":
39
+ case "ObjectIntersectionType":
40
+ case "ObjectType":
41
+ case "ObjectUnionType":
42
+ case "TermType":
43
+ case "UnionType":
44
+ return true;
45
+ case "DefaultValueType":
46
+ case "LazyObjectOptionType":
47
+ case "LazyObjectSetType":
48
+ case "LazyObjectType":
49
+ case "OptionType":
50
+ case "SetType":
51
+ return false;
52
+ case "PlaceholderType":
53
+ throw new Error("should never happen");
54
+ }
55
+ }
56
+ AbstractContainerType.isItemType = isItemType;
57
+ })(AbstractContainerType || (AbstractContainerType = {}));
58
+ //# sourceMappingURL=AbstractContainerType.js.map
@@ -0,0 +1,25 @@
1
+ import { AbstractType } from "./AbstractType.js";
2
+ import type { ObjectType } from "./ObjectType.js";
3
+ import type { ObjectUnionType } from "./ObjectUnionType.js";
4
+ import type { OptionType } from "./OptionType.js";
5
+ import type { SetType } from "./SetType.js";
6
+ /**
7
+ * Abstract base class of LazyObjectOptionType, LazyObjectSetType, and LazyObjectType.
8
+ */
9
+ export declare abstract class AbstractLazyObjectType<PartialTypeT extends AbstractLazyObjectType.PartialTypeConstraint, ResolveTypeT extends AbstractLazyObjectType.ResolveTypeConstraint> extends AbstractType {
10
+ abstract readonly kind: "LazyObjectOptionType" | "LazyObjectSetType" | "LazyObjectType";
11
+ readonly partialType: PartialTypeT;
12
+ readonly resolveType: ResolveTypeT;
13
+ constructor({ partialType, resolveType, ...superParameters }: {
14
+ partialType: PartialTypeT;
15
+ resolveType: ResolveTypeT;
16
+ } & ConstructorParameters<typeof AbstractType>[0]);
17
+ equals(other: AbstractLazyObjectType<PartialTypeT, ResolveTypeT>): boolean;
18
+ toString(): string;
19
+ }
20
+ export declare namespace AbstractLazyObjectType {
21
+ type ObjectTypeConstraint = ObjectType | ObjectUnionType;
22
+ type PartialTypeConstraint = ObjectTypeConstraint | OptionType<ObjectTypeConstraint> | SetType<ObjectTypeConstraint>;
23
+ type ResolveTypeConstraint = PartialTypeConstraint;
24
+ }
25
+ //# sourceMappingURL=AbstractLazyObjectType.d.ts.map
@@ -0,0 +1,30 @@
1
+ import { AbstractType } from "./AbstractType.js";
2
+ import { Type } from "./Type.js";
3
+ /**
4
+ * Abstract base class of LazyObjectOptionType, LazyObjectSetType, and LazyObjectType.
5
+ */
6
+ export class AbstractLazyObjectType extends AbstractType {
7
+ partialType;
8
+ resolveType;
9
+ constructor({ partialType, resolveType, ...superParameters }) {
10
+ super(superParameters);
11
+ this.partialType = partialType;
12
+ this.resolveType = resolveType;
13
+ }
14
+ equals(other) {
15
+ if (!super.equals(other)) {
16
+ return false;
17
+ }
18
+ if (!Type.equals(this.partialType, other.partialType)) {
19
+ return false;
20
+ }
21
+ if (!Type.equals(this.resolveType, other.resolveType)) {
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ toString() {
27
+ return `${this.kind}(partialType=${this.partialType}, resolveType=${this.resolveType})`;
28
+ }
29
+ }
30
+ //# sourceMappingURL=AbstractLazyObjectType.js.map
@@ -0,0 +1,45 @@
1
+ import type { BlankNode, NamedNode } from "@rdfjs/types";
2
+ import { Either, Maybe } from "purify-ts";
3
+ import type { TsFeature } from "../enums/TsFeature.js";
4
+ import { AbstractCompoundType } from "./AbstractCompoundType.js";
5
+ import { BlankNodeType } from "./BlankNodeType.js";
6
+ import { IdentifierType } from "./IdentifierType.js";
7
+ import { IriType } from "./IriType.js";
8
+ import type { ObjectIntersectionType } from "./ObjectIntersectionType.js";
9
+ import type { ObjectType } from "./ObjectType.js";
10
+ import type { ObjectUnionType } from "./ObjectUnionType.js";
11
+ import type { Type } from "./Type.js";
12
+ /**
13
+ * Abstract base class for a compound of object types, such as an intersection or union.
14
+ */
15
+ export declare abstract class AbstractObjectCompoundType<ObjectCompoundTypeT extends ObjectIntersectionType | ObjectUnionType> extends AbstractCompoundType<ObjectCompoundTypeT | ObjectType> {
16
+ #private;
17
+ /**
18
+ * Should generated code derived from this type be visible outside its module?
19
+ *
20
+ * Defaults to true.
21
+ */
22
+ readonly export: boolean;
23
+ abstract readonly kind: "ObjectIntersectionType" | "ObjectUnionType";
24
+ /**
25
+ * Name of this type, from shaclmate:name.
26
+ */
27
+ readonly name: Maybe<string>;
28
+ /**
29
+ * Identifier of the shape this ObjectType was derived from.
30
+ */
31
+ readonly shapeIdentifier: BlankNode | NamedNode;
32
+ constructor({ export_, name, shapeIdentifier, tsFeatures, ...superParameters }: {
33
+ export_: boolean;
34
+ name: Maybe<string>;
35
+ shapeIdentifier: BlankNode | NamedNode;
36
+ tsFeatures: Maybe<ReadonlySet<TsFeature>>;
37
+ } & ConstructorParameters<typeof AbstractCompoundType<ObjectCompoundTypeT | ObjectType>>[0]);
38
+ equals(other: AbstractObjectCompoundType<ObjectCompoundTypeT>): boolean;
39
+ get identifierType(): BlankNodeType | IdentifierType | IriType;
40
+ get memberObjectTypes(): readonly ObjectType[];
41
+ get tsFeatures(): ReadonlySet<TsFeature>;
42
+ addMemberType(memberType: Type): Either<Error, void>;
43
+ toString(): string;
44
+ }
45
+ //# sourceMappingURL=AbstractObjectCompoundType.d.ts.map
@@ -0,0 +1,180 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import TermSet from "@rdfjs/term-set";
8
+ import { Either, Maybe } from "purify-ts";
9
+ import { Resource } from "rdfjs-resource";
10
+ import { invariant } from "ts-invariant";
11
+ import { Memoize } from "typescript-memoize";
12
+ import { AbstractCompoundType } from "./AbstractCompoundType.js";
13
+ import { BlankNodeType } from "./BlankNodeType.js";
14
+ import { IdentifierType } from "./IdentifierType.js";
15
+ import { IriType } from "./IriType.js";
16
+ /**
17
+ * Abstract base class for a compound of object types, such as an intersection or union.
18
+ */
19
+ export class AbstractObjectCompoundType extends AbstractCompoundType {
20
+ /**
21
+ * Should generated code derived from this type be visible outside its module?
22
+ *
23
+ * Defaults to true.
24
+ */
25
+ export;
26
+ /**
27
+ * Name of this type, from shaclmate:name.
28
+ */
29
+ name;
30
+ /**
31
+ * Identifier of the shape this ObjectType was derived from.
32
+ */
33
+ shapeIdentifier;
34
+ /**
35
+ * TypeScript features to generate.
36
+ */
37
+ #tsFeatures;
38
+ constructor({ export_, name, shapeIdentifier, tsFeatures, ...superParameters }) {
39
+ super(superParameters);
40
+ this.export = export_;
41
+ this.name = name;
42
+ this.shapeIdentifier = shapeIdentifier;
43
+ this.#tsFeatures = tsFeatures;
44
+ }
45
+ equals(other) {
46
+ // Don't recurse
47
+ return this.shapeIdentifier.equals(other.shapeIdentifier);
48
+ }
49
+ get identifierType() {
50
+ const memberIdentifierTypeNodeKinds = new Set();
51
+ const memberIdentifierTypesIn = new TermSet();
52
+ for (const memberType of this.memberTypes) {
53
+ for (const nodeKind of memberType.identifierType.nodeKinds) {
54
+ memberIdentifierTypeNodeKinds.add(nodeKind);
55
+ }
56
+ for (const in_ of memberType.identifierType.in_) {
57
+ memberIdentifierTypesIn.add(in_);
58
+ }
59
+ }
60
+ invariant(memberIdentifierTypeNodeKinds.size > 0);
61
+ if (memberIdentifierTypeNodeKinds.size === 2) {
62
+ return new IdentifierType({
63
+ comment: Maybe.empty(),
64
+ label: Maybe.empty(),
65
+ });
66
+ }
67
+ const memberIdentifierTypeNodeKind = [...memberIdentifierTypeNodeKinds][0];
68
+ switch (memberIdentifierTypeNodeKind) {
69
+ case "BlankNode":
70
+ return new BlankNodeType({
71
+ comment: Maybe.empty(),
72
+ label: Maybe.empty(),
73
+ });
74
+ case "IRI":
75
+ return new IriType({
76
+ comment: Maybe.empty(),
77
+ hasValues: [],
78
+ in_: [...memberIdentifierTypesIn],
79
+ label: Maybe.empty(),
80
+ });
81
+ default:
82
+ memberIdentifierTypeNodeKind;
83
+ throw new Error("should never reach here");
84
+ }
85
+ }
86
+ get memberObjectTypes() {
87
+ const memberObjectTypes = [];
88
+ for (const memberType of this.memberTypes) {
89
+ switch (memberType.kind) {
90
+ case "ObjectType":
91
+ memberObjectTypes.push(memberType);
92
+ break;
93
+ case "ObjectIntersectionType":
94
+ case "ObjectUnionType": {
95
+ invariant(memberType.kind === this.kind);
96
+ memberObjectTypes.push(...memberType.memberObjectTypes);
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ invariant(memberObjectTypes.length >= this.memberTypes.length);
102
+ // Member object types must have distinct RDF types or no RDF types at all.
103
+ const fromRdfTypes = new TermSet();
104
+ let expectUniqueFromRdfTypesCount = 0;
105
+ for (const memberObjectType of memberObjectTypes) {
106
+ if (memberObjectType.extern) {
107
+ continue;
108
+ }
109
+ expectUniqueFromRdfTypesCount++;
110
+ memberObjectType.fromRdfType.ifJust((fromRdfType) => fromRdfTypes.add(fromRdfType));
111
+ }
112
+ if (fromRdfTypes.size > 0 &&
113
+ fromRdfTypes.size !== expectUniqueFromRdfTypesCount) {
114
+ throw new Error(`one or more ${this} members ([${memberObjectTypes.map((memberType) => memberType.toString()).join(", ")}]) lack distinguishing fromRdfType's ({${[...fromRdfTypes].map((fromRdfType) => Resource.Identifier.toString(fromRdfType)).join(", ")}})`);
115
+ }
116
+ return memberObjectTypes;
117
+ }
118
+ get tsFeatures() {
119
+ // Members of the compound type must have the same tsFeatures.
120
+ // They must also have distinct RDF types or no RDF types at all.
121
+ const mergedMemberTsFeatures = new Set();
122
+ for (let memberTypeI = 0; memberTypeI < this.memberObjectTypes.length; memberTypeI++) {
123
+ const memberType = this.memberObjectTypes[memberTypeI];
124
+ if (memberTypeI === 0) {
125
+ for (const tsFeature of memberType.tsFeatures) {
126
+ mergedMemberTsFeatures.add(tsFeature);
127
+ }
128
+ }
129
+ if (memberType.tsFeatures.size !== mergedMemberTsFeatures.size) {
130
+ throw new Error(`${this} has a member ObjectType (${memberType}) with different tsFeatures than the other member ObjectType's`);
131
+ }
132
+ for (const tsFeature of memberType.tsFeatures) {
133
+ if (!mergedMemberTsFeatures.has(tsFeature)) {
134
+ throw new Error(`${this} has a member ObjectType (${memberType}) with different tsFeatures than the other member ObjectType's`);
135
+ }
136
+ }
137
+ }
138
+ return this.#tsFeatures.orDefault(mergedMemberTsFeatures);
139
+ }
140
+ addMemberType(memberType) {
141
+ return Either.encase(() => {
142
+ switch (memberType.kind) {
143
+ case "ObjectType":
144
+ super.addMemberType(memberType);
145
+ break;
146
+ case "ObjectIntersectionType":
147
+ if (this.kind === memberType.kind) {
148
+ super.addMemberType(memberType);
149
+ }
150
+ else {
151
+ throw new Error(`${this}: has incompatible compound type composition (has-a ${memberType})`);
152
+ }
153
+ break;
154
+ case "ObjectUnionType":
155
+ if (this.kind === memberType.kind) {
156
+ super.addMemberType(memberType);
157
+ }
158
+ else {
159
+ throw new Error(`${this}: has incompatible compound type composition (has-a ${memberType})`);
160
+ }
161
+ break;
162
+ default:
163
+ throw new Error(`${this} has one or more non-(ObjectIntersectionType | ObjectType | ObjectUnionType) node shapes in its logical constraint`);
164
+ }
165
+ });
166
+ }
167
+ toString() {
168
+ return `${this.kind}(shapeIdentifier=${Resource.Identifier.toString(this.shapeIdentifier)})`;
169
+ }
170
+ }
171
+ __decorate([
172
+ Memoize()
173
+ ], AbstractObjectCompoundType.prototype, "identifierType", null);
174
+ __decorate([
175
+ Memoize()
176
+ ], AbstractObjectCompoundType.prototype, "memberObjectTypes", null);
177
+ __decorate([
178
+ Memoize()
179
+ ], AbstractObjectCompoundType.prototype, "tsFeatures", null);
180
+ //# sourceMappingURL=AbstractObjectCompoundType.js.map