@shaclmate/compiler 4.0.8 → 4.0.10

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 (372) hide show
  1. package/dist/Compiler.d.ts +1 -4
  2. package/dist/Compiler.js +1 -5
  3. package/dist/ShapesGraphToAstTransformer.d.ts +2 -11
  4. package/dist/ShapesGraphToAstTransformer.js +25 -27
  5. package/dist/_ShapesGraphToAstTransformer/defaultNodeShapeNodeKinds.d.ts +3 -0
  6. package/dist/_ShapesGraphToAstTransformer/defaultNodeShapeNodeKinds.js +5 -0
  7. package/dist/_ShapesGraphToAstTransformer/shapeAstTypeName.d.ts +4 -0
  8. package/dist/_ShapesGraphToAstTransformer/shapeAstTypeName.js +27 -0
  9. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.js +74 -19
  10. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.d.ts +1 -1
  11. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +45 -91
  12. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.d.ts +11 -0
  13. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +146 -0
  14. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.d.ts +7 -0
  15. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.js +182 -0
  16. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstTermType.js +9 -7
  17. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.d.ts +3 -5
  18. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.js +33 -10
  19. package/dist/ast/AbstractCompoundType.d.ts +26 -8
  20. package/dist/ast/AbstractCompoundType.js +84 -16
  21. package/dist/ast/AbstractContainerType.d.ts +2 -4
  22. package/dist/ast/AbstractContainerType.js +3 -4
  23. package/dist/ast/AbstractLazyObjectType.d.ts +1 -0
  24. package/dist/ast/AbstractLazyObjectType.js +3 -0
  25. package/dist/ast/AbstractTermType.d.ts +1 -0
  26. package/dist/ast/AbstractTermType.js +1 -0
  27. package/dist/ast/AbstractType.d.ts +16 -1
  28. package/dist/ast/AbstractType.js +11 -1
  29. package/dist/ast/Ast.d.ts +5 -5
  30. package/dist/ast/BlankNodeType.d.ts +1 -1
  31. package/dist/ast/DefaultValueType.d.ts +1 -2
  32. package/dist/ast/DefaultValueType.js +2 -0
  33. package/dist/ast/IdentifierType.d.ts +1 -1
  34. package/dist/ast/IntersectionType.d.ts +7 -2
  35. package/dist/ast/IntersectionType.js +8 -0
  36. package/dist/ast/ListType.d.ts +2 -9
  37. package/dist/ast/ListType.js +1 -9
  38. package/dist/ast/LiteralType.d.ts +1 -0
  39. package/dist/ast/LiteralType.js +26 -0
  40. package/dist/ast/ObjectCompoundType.d.ts +12 -0
  41. package/dist/ast/ObjectCompoundType.js +88 -0
  42. package/dist/ast/ObjectIntersectionType.d.ts +3 -7
  43. package/dist/ast/ObjectIntersectionType.js +1 -7
  44. package/dist/ast/ObjectType.d.ts +14 -31
  45. package/dist/ast/ObjectType.js +41 -73
  46. package/dist/ast/ObjectUnionType.d.ts +3 -7
  47. package/dist/ast/ObjectUnionType.js +1 -7
  48. package/dist/ast/OptionType.d.ts +1 -2
  49. package/dist/ast/OptionType.js +2 -0
  50. package/dist/ast/SetType.d.ts +1 -2
  51. package/dist/ast/SetType.js +2 -0
  52. package/dist/ast/Type.d.ts +1 -4
  53. package/dist/ast/Type.js +0 -6
  54. package/dist/ast/UnionType.d.ts +11 -6
  55. package/dist/ast/UnionType.js +6 -4
  56. package/dist/ast/index.d.ts +1 -2
  57. package/dist/ast/index.js +1 -2
  58. package/dist/generators/json/AstJsonGenerator.js +17 -15
  59. package/dist/generators/ts/AbstractCollectionType.d.ts +1 -1
  60. package/dist/generators/ts/AbstractCollectionType.js +10 -12
  61. package/dist/generators/ts/AbstractContainerType.d.ts +9 -4
  62. package/dist/generators/ts/AbstractContainerType.js +10 -3
  63. package/dist/generators/ts/AbstractDateType.d.ts +2 -2
  64. package/dist/generators/ts/AbstractDateType.js +2 -2
  65. package/dist/generators/ts/AbstractIdentifierType.d.ts +1 -1
  66. package/dist/generators/ts/AbstractIdentifierType.js +1 -1
  67. package/dist/generators/ts/AbstractLazyObjectType.d.ts +13 -10
  68. package/dist/generators/ts/AbstractLazyObjectType.js +21 -16
  69. package/dist/generators/ts/AbstractNamedUnionType.d.ts +33 -0
  70. package/dist/generators/ts/AbstractNamedUnionType.js +195 -0
  71. package/dist/generators/ts/AbstractNumericType.d.ts +3 -3
  72. package/dist/generators/ts/AbstractNumericType.js +4 -4
  73. package/dist/generators/ts/AbstractTermType.d.ts +7 -4
  74. package/dist/generators/ts/AbstractTermType.js +7 -4
  75. package/dist/generators/ts/AbstractType.d.ts +34 -19
  76. package/dist/generators/ts/AbstractUnionType.d.ts +80 -0
  77. package/dist/generators/ts/AbstractUnionType.js +514 -0
  78. package/dist/generators/ts/AnonymousUnionType.d.ts +26 -0
  79. package/dist/generators/ts/AnonymousUnionType.js +56 -0
  80. package/dist/generators/ts/BigDecimalType.d.ts +4 -4
  81. package/dist/generators/ts/BigDecimalType.js +5 -5
  82. package/dist/generators/ts/BigIntType.d.ts +1 -1
  83. package/dist/generators/ts/BigIntType.js +1 -1
  84. package/dist/generators/ts/BlankNodeType.d.ts +2 -2
  85. package/dist/generators/ts/BlankNodeType.js +2 -2
  86. package/dist/generators/ts/BooleanType.d.ts +3 -3
  87. package/dist/generators/ts/BooleanType.js +3 -3
  88. package/dist/generators/ts/DateTimeType.d.ts +1 -1
  89. package/dist/generators/ts/DateTimeType.js +1 -1
  90. package/dist/generators/ts/DateType.d.ts +1 -1
  91. package/dist/generators/ts/DateType.js +1 -1
  92. package/dist/generators/ts/DefaultValueType.d.ts +5 -5
  93. package/dist/generators/ts/DefaultValueType.js +17 -16
  94. package/dist/generators/ts/IdentifierType.d.ts +2 -2
  95. package/dist/generators/ts/IdentifierType.js +2 -2
  96. package/dist/generators/ts/IriType.d.ts +2 -2
  97. package/dist/generators/ts/IriType.js +2 -2
  98. package/dist/generators/ts/LazyObjectOptionType.d.ts +1 -1
  99. package/dist/generators/ts/LazyObjectOptionType.js +10 -10
  100. package/dist/generators/ts/LazyObjectSetType.d.ts +1 -1
  101. package/dist/generators/ts/LazyObjectSetType.js +8 -8
  102. package/dist/generators/ts/LazyObjectType.d.ts +1 -1
  103. package/dist/generators/ts/LazyObjectType.js +9 -10
  104. package/dist/generators/ts/ListType.d.ts +9 -8
  105. package/dist/generators/ts/ListType.js +15 -14
  106. package/dist/generators/ts/LiteralType.d.ts +2 -2
  107. package/dist/generators/ts/LiteralType.js +3 -3
  108. package/dist/generators/ts/NamedObjectType.d.ts +126 -0
  109. package/dist/generators/ts/NamedObjectType.js +420 -0
  110. package/dist/generators/ts/NamedObjectUnionType.d.ts +35 -0
  111. package/dist/generators/ts/NamedObjectUnionType.js +217 -0
  112. package/dist/generators/ts/NamedUnionType.d.ts +11 -0
  113. package/dist/generators/ts/NamedUnionType.js +13 -0
  114. package/dist/generators/ts/OptionType.d.ts +5 -5
  115. package/dist/generators/ts/OptionType.js +12 -12
  116. package/dist/generators/ts/SetType.d.ts +4 -4
  117. package/dist/generators/ts/SetType.js +13 -11
  118. package/dist/generators/ts/StringType.d.ts +3 -3
  119. package/dist/generators/ts/StringType.js +3 -3
  120. package/dist/generators/ts/TermType.d.ts +2 -2
  121. package/dist/generators/ts/TermType.js +3 -3
  122. package/dist/generators/ts/TsGenerator.js +28 -20
  123. package/dist/generators/ts/Type.d.ts +5 -4
  124. package/dist/generators/ts/TypeFactory.d.ts +9 -7
  125. package/dist/generators/ts/TypeFactory.js +139 -112
  126. package/dist/generators/ts/ZodGenerator.js +18 -16
  127. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/AbstractProperty.d.ts +9 -9
  128. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/AbstractProperty.js +3 -3
  129. package/dist/generators/ts/{_ObjectType/TypeDiscriminantProperty.d.ts → _NamedObjectType/DiscriminantProperty.d.ts} +14 -14
  130. package/dist/generators/ts/{_ObjectType/TypeDiscriminantProperty.js → _NamedObjectType/DiscriminantProperty.js} +22 -20
  131. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/IdentifierPrefixProperty.d.ts +3 -3
  132. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/IdentifierPrefixProperty.js +6 -6
  133. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/IdentifierProperty.d.ts +3 -3
  134. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/IdentifierProperty.js +31 -28
  135. package/dist/generators/ts/_NamedObjectType/NamedObjectType_classDeclaration.d.ts +4 -0
  136. package/dist/generators/ts/{_ObjectType/ObjectType_classDeclaration.js → _NamedObjectType/NamedObjectType_classDeclaration.js} +15 -15
  137. package/dist/generators/ts/_NamedObjectType/NamedObjectType_createFunctionDeclaration.d.ts +5 -0
  138. package/dist/generators/ts/{_ObjectType/ObjectType_createFunctionDeclaration.js → _NamedObjectType/NamedObjectType_createFunctionDeclaration.js} +2 -2
  139. package/dist/generators/ts/_NamedObjectType/NamedObjectType_equalsFunctionOrMethodDeclaration.d.ts +5 -0
  140. package/dist/generators/ts/{_ObjectType/ObjectType_equalsFunctionOrMethodDeclaration.js → _NamedObjectType/NamedObjectType_equalsFunctionOrMethodDeclaration.js} +2 -2
  141. package/dist/generators/ts/_NamedObjectType/NamedObjectType_filterFunctionDeclaration.d.ts +4 -0
  142. package/dist/generators/ts/{_ObjectType/ObjectType_filterFunctionDeclaration.js → _NamedObjectType/NamedObjectType_filterFunctionDeclaration.js} +2 -2
  143. package/dist/generators/ts/_NamedObjectType/NamedObjectType_filterTypeDeclaration.d.ts +4 -0
  144. package/dist/generators/ts/{_ObjectType/ObjectType_filterTypeDeclaration.js → _NamedObjectType/NamedObjectType_filterTypeDeclaration.js} +2 -2
  145. package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlConstructTriplesFunctionDeclaration.d.ts +5 -0
  146. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlConstructTriplesFunctionDeclaration.js → _NamedObjectType/NamedObjectType_focusSparqlConstructTriplesFunctionDeclaration.js} +6 -5
  147. package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlWherePatternsFunctionDeclaration.d.ts +5 -0
  148. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlWherePatternsFunctionDeclarations.js → _NamedObjectType/NamedObjectType_focusSparqlWherePatternsFunctionDeclaration.js} +5 -5
  149. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromJsonFunctionDeclaration.d.ts +5 -0
  150. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromJsonFunctionDeclaration.js +20 -0
  151. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceFunctionDeclaration.d.ts +5 -0
  152. package/dist/generators/ts/{_ObjectType/ObjectType_fromRdfFunctionDeclaration.js → _NamedObjectType/NamedObjectType_fromRdfResourceFunctionDeclaration.js} +6 -7
  153. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceValuesFunctionDeclaration.d.ts +5 -0
  154. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceValuesFunctionDeclaration.js +20 -0
  155. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfTypeVariableStatement.d.ts +5 -0
  156. package/dist/generators/ts/{_ObjectType/ObjectType_fromRdfTypeVariableStatement.js → _NamedObjectType/NamedObjectType_fromRdfTypeVariableStatement.js} +2 -2
  157. package/dist/generators/ts/_NamedObjectType/NamedObjectType_graphqlTypeVariableStatement.d.ts +5 -0
  158. package/dist/generators/ts/{_ObjectType/ObjectType_graphqlTypeVariableStatement.js → _NamedObjectType/NamedObjectType_graphqlTypeVariableStatement.js} +2 -2
  159. package/dist/generators/ts/_NamedObjectType/NamedObjectType_hashFunctionOrMethodDeclarations.d.ts +4 -0
  160. package/dist/generators/ts/{_ObjectType/ObjectType_hashFunctionOrMethodDeclarations.js → _NamedObjectType/NamedObjectType_hashFunctionOrMethodDeclarations.js} +2 -2
  161. package/dist/generators/ts/_NamedObjectType/NamedObjectType_interfaceDeclaration.d.ts +4 -0
  162. package/dist/generators/ts/{_ObjectType/ObjectType_interfaceDeclaration.js → _NamedObjectType/NamedObjectType_interfaceDeclaration.js} +2 -2
  163. package/dist/generators/ts/_NamedObjectType/NamedObjectType_isTypeFunctionDeclaration.d.ts +4 -0
  164. package/dist/generators/ts/{_ObjectType/ObjectType_isTypeFunctionDeclaration.js → _NamedObjectType/NamedObjectType_isTypeFunctionDeclaration.js} +4 -4
  165. package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonParseFunctionDeclaration.d.ts +5 -0
  166. package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonParseFunctionDeclaration.js +19 -0
  167. package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonSchemaFunctionDeclaration.d.ts +5 -0
  168. package/dist/generators/ts/{_ObjectType/ObjectType_jsonZodSchemaFunctionDeclaration.js → _NamedObjectType/NamedObjectType_jsonSchemaFunctionDeclaration.js} +5 -5
  169. package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonTypeAliasDeclaration.d.ts +5 -0
  170. package/dist/generators/ts/{_ObjectType/ObjectType_jsonTypeAliasDeclaration.js → _NamedObjectType/NamedObjectType_jsonTypeAliasDeclaration.js} +2 -2
  171. package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonUiSchemaFunctionDeclaration.d.ts +5 -0
  172. package/dist/generators/ts/{_ObjectType/ObjectType_jsonUiSchemaFunctionDeclaration.js → _NamedObjectType/NamedObjectType_jsonUiSchemaFunctionDeclaration.js} +4 -4
  173. package/dist/generators/ts/_NamedObjectType/NamedObjectType_objectSetMethodNames.d.ts +9 -0
  174. package/dist/generators/ts/{_ObjectType/ObjectType_objectSetMethodNames.js → _NamedObjectType/NamedObjectType_objectSetMethodNames.js} +2 -2
  175. package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromJsonFunctionDeclaration.d.ts +5 -0
  176. package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromJsonFunctionDeclaration.js +38 -0
  177. package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromRdfResourceFunctionDeclaration.d.ts +5 -0
  178. package/dist/generators/ts/{_ObjectType/ObjectType_propertiesFromRdfFunctionDeclaration.js → _NamedObjectType/NamedObjectType_propertiesFromRdfResourceFunctionDeclaration.js} +16 -15
  179. package/dist/generators/ts/_NamedObjectType/NamedObjectType_schemaVariableStatement.d.ts +4 -0
  180. package/dist/generators/ts/{_ObjectType/ObjectType_schemaVariableStatement.js → _NamedObjectType/NamedObjectType_schemaVariableStatement.js} +3 -4
  181. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.d.ts → _NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.d.ts} +2 -2
  182. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.js → _NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.js} +4 -4
  183. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts → _NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts} +2 -2
  184. package/dist/generators/ts/{_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.js → _NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.js} +2 -2
  185. package/dist/generators/ts/_NamedObjectType/NamedObjectType_toJsonFunctionOrMethodDeclaration.d.ts +5 -0
  186. package/dist/generators/ts/{_ObjectType/ObjectType_toJsonFunctionOrMethodDeclaration.js → _NamedObjectType/NamedObjectType_toJsonFunctionOrMethodDeclaration.js} +2 -2
  187. package/dist/generators/ts/_NamedObjectType/NamedObjectType_toRdfResourceFunctionOrMethodDeclaration.d.ts +5 -0
  188. package/dist/generators/ts/{_ObjectType/ObjectType_toRdfFunctionOrMethodDeclaration.js → _NamedObjectType/NamedObjectType_toRdfResourceFunctionOrMethodDeclaration.js} +10 -8
  189. package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlConstructTriplesFunctionDeclaration.d.ts +5 -0
  190. package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlConstructTriplesFunctionDeclaration.js +13 -0
  191. package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlWherePatternsFunctionDeclaration.d.ts +5 -0
  192. package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlWherePatternsFunctionDeclaration.js +15 -0
  193. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/Property.d.ts +2 -2
  194. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/ShaclProperty.d.ts +3 -3
  195. package/dist/generators/ts/{_ObjectType → _NamedObjectType}/ShaclProperty.js +14 -14
  196. package/dist/generators/ts/_NamedObjectType/identifierTypeDeclarations.d.ts +4 -0
  197. package/dist/generators/ts/_snippets/snippets_FocusSparqlConstructTriplesFunction.d.ts +2 -0
  198. package/dist/generators/ts/_snippets/snippets_FocusSparqlConstructTriplesFunction.js +12 -0
  199. package/dist/generators/ts/_snippets/snippets_FocusSparqlWherePatternsFunction.d.ts +2 -0
  200. package/dist/generators/ts/_snippets/snippets_FocusSparqlWherePatternsFunction.js +14 -0
  201. package/dist/generators/ts/_snippets/snippets_FromRdfResourceFunction.d.ts +2 -0
  202. package/dist/generators/ts/_snippets/snippets_FromRdfResourceFunction.js +15 -0
  203. package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.d.ts +2 -0
  204. package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.js +17 -0
  205. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfResourceFunction.d.ts +2 -0
  206. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfResourceFunction.js +15 -0
  207. package/dist/generators/ts/_snippets/snippets_PropertyPath.d.ts +5 -0
  208. package/dist/generators/ts/_snippets/snippets_PropertyPath.js +35 -0
  209. package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.js +2 -2
  210. package/dist/generators/ts/_snippets/snippets_ToRdfResourceFunction.d.ts +2 -0
  211. package/dist/generators/ts/_snippets/snippets_ToRdfResourceFunction.js +7 -0
  212. package/dist/generators/ts/_snippets/snippets_ToRdfResourceValuesFunction.d.ts +2 -0
  213. package/dist/generators/ts/_snippets/snippets_ToRdfResourceValuesFunction.js +16 -0
  214. package/dist/generators/ts/_snippets/snippets_ValueSparqlConstructTriplesFunction.d.ts +2 -0
  215. package/dist/generators/ts/_snippets/snippets_ValueSparqlConstructTriplesFunction.js +13 -0
  216. package/dist/generators/ts/_snippets/snippets_ValueSparqlWherePatternsFunction.d.ts +2 -0
  217. package/dist/generators/ts/_snippets/snippets_ValueSparqlWherePatternsFunction.js +16 -0
  218. package/dist/generators/ts/_snippets/snippets_bigDecimalSparqlWherePatterns.js +2 -2
  219. package/dist/generators/ts/_snippets/snippets_blankNodeSparqlWherePatterns.js +2 -2
  220. package/dist/generators/ts/_snippets/snippets_booleanEquals.js +1 -1
  221. package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.js +2 -2
  222. package/dist/generators/ts/_snippets/snippets_dateSparqlWherePatterns.js +2 -2
  223. package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +2 -2
  224. package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.js +1 -1
  225. package/dist/generators/ts/_snippets/snippets_identifierSparqlWherePatterns.js +2 -2
  226. package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.js +2 -2
  227. package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.js +2 -2
  228. package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.js +2 -2
  229. package/dist/generators/ts/_snippets/snippets_literalSparqlWherePatterns.js +2 -2
  230. package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.js +2 -2
  231. package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.js +2 -2
  232. package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.js +2 -3
  233. package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.js +2 -2
  234. package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.js +2 -2
  235. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.js +4 -3
  236. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.js +4 -3
  237. package/dist/generators/ts/_snippets/snippets_sparqlPropertyPath.js +3 -2
  238. package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.js +2 -2
  239. package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.js +2 -2
  240. package/dist/generators/ts/graphqlSchemaVariableStatement.d.ts +4 -4
  241. package/dist/generators/ts/graphqlSchemaVariableStatement.js +25 -25
  242. package/dist/generators/ts/imports.d.ts +1 -1
  243. package/dist/generators/ts/imports.js +1 -1
  244. package/dist/generators/ts/objectSetDeclarations.d.ts +5 -5
  245. package/dist/generators/ts/objectSetDeclarations.js +34 -31
  246. package/dist/generators/ts/objectSetInterfaceDeclaration.d.ts +5 -5
  247. package/dist/generators/ts/objectSetInterfaceDeclaration.js +6 -4
  248. package/dist/generators/ts/objectSetMethodSignatures.d.ts +4 -4
  249. package/dist/generators/ts/objectSetMethodSignatures.js +9 -9
  250. package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.d.ts +5 -5
  251. package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.js +54 -53
  252. package/dist/generators/ts/singleEntryRecord.d.ts +2 -0
  253. package/dist/generators/ts/singleEntryRecord.js +6 -0
  254. package/dist/generators/ts/snippets.d.ts +10 -6
  255. package/dist/generators/ts/snippets.js +20 -12
  256. package/dist/generators/ts/sparqlObjectSetClassDeclaration.d.ts +5 -5
  257. package/dist/generators/ts/sparqlObjectSetClassDeclaration.js +19 -20
  258. package/dist/generators/ts/synthesizeUberObjectUnionType.d.ts +4 -4
  259. package/dist/generators/ts/synthesizeUberObjectUnionType.js +14 -9
  260. package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.d.ts +5 -5
  261. package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.js +2 -2
  262. package/dist/input/NodeShape.d.ts +0 -1
  263. package/dist/input/NodeShape.js +0 -3
  264. package/dist/input/ShapesGraph.d.ts +3 -2
  265. package/dist/input/ShapesGraph.js +12 -7
  266. package/dist/input/generated.d.ts +1899 -88
  267. package/dist/input/generated.js +676 -564
  268. package/package.json +5 -7
  269. package/dist/_ShapesGraphToAstTransformer/CurieFactory.d.ts +0 -16
  270. package/dist/_ShapesGraphToAstTransformer/CurieFactory.js +0 -45
  271. package/dist/_ShapesGraphToAstTransformer/NodeShapeAstType.d.ts +0 -3
  272. package/dist/_ShapesGraphToAstTransformer/NodeShapeAstType.js +0 -2
  273. package/dist/_ShapesGraphToAstTransformer/index.d.ts +0 -6
  274. package/dist/_ShapesGraphToAstTransformer/index.js +0 -6
  275. package/dist/_ShapesGraphToAstTransformer/shapeIdentifier.d.ts +0 -5
  276. package/dist/_ShapesGraphToAstTransformer/shapeIdentifier.js +0 -9
  277. package/dist/_ShapesGraphToAstTransformer/transformNodeShapeToAstType.d.ts +0 -11
  278. package/dist/_ShapesGraphToAstTransformer/transformNodeShapeToAstType.js +0 -338
  279. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstAbstractTypeProperties.d.ts +0 -12
  280. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstAbstractTypeProperties.js +0 -31
  281. package/dist/ast/AbstractObjectCompoundType.d.ts +0 -45
  282. package/dist/ast/AbstractObjectCompoundType.js +0 -180
  283. package/dist/ast/Curie.d.ts +0 -21
  284. package/dist/ast/Curie.js +0 -29
  285. package/dist/ast/PlaceholderType.d.ts +0 -15
  286. package/dist/ast/PlaceholderType.js +0 -19
  287. package/dist/generators/codeName.d.ts +0 -6
  288. package/dist/generators/codeName.js +0 -66
  289. package/dist/generators/ts/AbstractDeclaredType.d.ts +0 -23
  290. package/dist/generators/ts/AbstractDeclaredType.js +0 -17
  291. package/dist/generators/ts/ObjectType.d.ts +0 -117
  292. package/dist/generators/ts/ObjectType.js +0 -402
  293. package/dist/generators/ts/ObjectUnionType.d.ts +0 -65
  294. package/dist/generators/ts/ObjectUnionType.js +0 -257
  295. package/dist/generators/ts/UnionType.d.ts +0 -40
  296. package/dist/generators/ts/UnionType.js +0 -527
  297. package/dist/generators/ts/_ObjectType/ObjectType_classDeclaration.d.ts +0 -4
  298. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionDeclaration.d.ts +0 -5
  299. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionOrMethodDeclaration.d.ts +0 -5
  300. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionDeclaration.d.ts +0 -4
  301. package/dist/generators/ts/_ObjectType/ObjectType_filterTypeDeclaration.d.ts +0 -4
  302. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionDeclarations.d.ts +0 -4
  303. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionDeclarations.js +0 -66
  304. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfFunctionDeclaration.d.ts +0 -5
  305. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfTypeVariableStatement.d.ts +0 -5
  306. package/dist/generators/ts/_ObjectType/ObjectType_graphqlTypeVariableStatement.d.ts +0 -5
  307. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionOrMethodDeclarations.d.ts +0 -4
  308. package/dist/generators/ts/_ObjectType/ObjectType_interfaceDeclaration.d.ts +0 -4
  309. package/dist/generators/ts/_ObjectType/ObjectType_isTypeFunctionDeclaration.d.ts +0 -4
  310. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.d.ts +0 -5
  311. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.js +0 -14
  312. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeAliasDeclaration.d.ts +0 -5
  313. package/dist/generators/ts/_ObjectType/ObjectType_jsonUiSchemaFunctionDeclaration.d.ts +0 -5
  314. package/dist/generators/ts/_ObjectType/ObjectType_jsonZodSchemaFunctionDeclaration.d.ts +0 -5
  315. package/dist/generators/ts/_ObjectType/ObjectType_objectSetMethodNames.d.ts +0 -9
  316. package/dist/generators/ts/_ObjectType/ObjectType_propertiesFromRdfFunctionDeclaration.d.ts +0 -5
  317. package/dist/generators/ts/_ObjectType/ObjectType_schemaVariableStatement.d.ts +0 -4
  318. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructTriplesFunctionDeclaration.d.ts +0 -5
  319. package/dist/generators/ts/_ObjectType/ObjectType_sparqlWherePatternsFunctionDeclarations.d.ts +0 -5
  320. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionOrMethodDeclaration.d.ts +0 -5
  321. package/dist/generators/ts/_ObjectType/ObjectType_toRdfFunctionOrMethodDeclaration.d.ts +0 -5
  322. package/dist/generators/ts/_ObjectType/identifierTypeDeclarations.d.ts +0 -4
  323. package/dist/generators/ts/_ObjectUnionType/MemberType.d.ts +0 -34
  324. package/dist/generators/ts/_ObjectUnionType/MemberType.js +0 -105
  325. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_equalsFunctionDeclaration.d.ts +0 -5
  326. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_equalsFunctionDeclaration.js +0 -29
  327. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterFunctionDeclaration.d.ts +0 -4
  328. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterFunctionDeclaration.js +0 -19
  329. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterTypeDeclaration.d.ts +0 -4
  330. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_filterTypeDeclaration.js +0 -10
  331. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_fromJsonFunctionDeclaration.d.ts +0 -5
  332. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_fromJsonFunctionDeclaration.js +0 -19
  333. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_fromRdfFunctionDeclarations.d.ts +0 -5
  334. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_fromRdfFunctionDeclarations.js +0 -20
  335. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_graphqlTypeVariableStatement.d.ts +0 -5
  336. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_graphqlTypeVariableStatement.js +0 -18
  337. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_hashFunctionDeclaration.d.ts +0 -5
  338. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_hashFunctionDeclaration.js +0 -28
  339. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_identifierTypeDeclarations.d.ts +0 -4
  340. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_identifierTypeDeclarations.js +0 -9
  341. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_isTypeFunctionDeclaration.d.ts +0 -5
  342. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_isTypeFunctionDeclaration.js +0 -13
  343. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonTypeAliasDeclaration.d.ts +0 -5
  344. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonTypeAliasDeclaration.js +0 -10
  345. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonZodSchemaFunctionDeclaration.d.ts +0 -5
  346. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_jsonZodSchemaFunctionDeclaration.js +0 -14
  347. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_schemaVariableStatement.d.ts +0 -4
  348. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_schemaVariableStatement.js +0 -37
  349. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlConstructTriplesFunctionDeclaration.d.ts +0 -5
  350. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlConstructTriplesFunctionDeclaration.js +0 -15
  351. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlWherePatternsFunctionDeclaration.d.ts +0 -5
  352. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_sparqlWherePatternsFunctionDeclaration.js +0 -35
  353. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_toJsonFunctionDeclaration.d.ts +0 -5
  354. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_toJsonFunctionDeclaration.js +0 -26
  355. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_toRdfFunctionDeclarations.d.ts +0 -5
  356. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_toRdfFunctionDeclarations.js +0 -43
  357. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_typeAliasDeclaration.d.ts +0 -4
  358. package/dist/generators/ts/_ObjectUnionType/ObjectUnionType_typeAliasDeclaration.js +0 -10
  359. package/dist/generators/ts/_snippets/snippets_FromRdfOptions.d.ts +0 -2
  360. package/dist/generators/ts/_snippets/snippets_FromRdfOptions.js +0 -5
  361. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfParameters.d.ts +0 -2
  362. package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfParameters.js +0 -5
  363. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunction.d.ts +0 -2
  364. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunction.js +0 -6
  365. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunctionParameters.d.ts +0 -2
  366. package/dist/generators/ts/_snippets/snippets_SparqlConstructTriplesFunctionParameters.js +0 -12
  367. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunction.d.ts +0 -2
  368. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunction.js +0 -6
  369. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunctionParameters.d.ts +0 -2
  370. package/dist/generators/ts/_snippets/snippets_SparqlWherePatternsFunctionParameters.js +0 -15
  371. /package/dist/generators/ts/{_ObjectType → _NamedObjectType}/Property.js +0 -0
  372. /package/dist/generators/ts/{_ObjectType → _NamedObjectType}/identifierTypeDeclarations.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "dependencies": {
3
- "@shaclmate/shacl-ast": "4.0.8",
3
+ "@shaclmate/shacl-ast": "4.0.10",
4
4
  "@rdfjs/data-model": "~2.1.1",
5
5
  "@rdfjs/dataset": "~2.0.2",
6
6
  "@rdfjs/prefix-map": "~0.1.2",
@@ -19,7 +19,7 @@
19
19
  "pino": "~9.1.0",
20
20
  "plur": "~5.1.0",
21
21
  "purify-ts": "~2.1.4",
22
- "rdfjs-resource": "3.0.6",
22
+ "rdfjs-resource": "3.0.7",
23
23
  "reserved-identifiers": "~1.0.0",
24
24
  "toposort": "2.0.2",
25
25
  "ts-invariant": "~0.10.3",
@@ -51,10 +51,8 @@
51
51
  "dist/generators/json/*.js",
52
52
  "dist/generators/ts/*.d.ts",
53
53
  "dist/generators/ts/*.js",
54
- "dist/generators/ts/_ObjectType/*.d.ts",
55
- "dist/generators/ts/_ObjectType/*.js",
56
- "dist/generators/ts/_ObjectUnionType/*.d.ts",
57
- "dist/generators/ts/_ObjectUnionType/*.js",
54
+ "dist/generators/ts/_NamedObjectType/*.d.ts",
55
+ "dist/generators/ts/_NamedObjectType/*.js",
58
56
  "dist/generators/ts/_snippets/*.d.ts",
59
57
  "dist/generators/ts/_snippets/*.js",
60
58
  "dist/input/*.d.ts",
@@ -80,5 +78,5 @@
80
78
  },
81
79
  "type": "module",
82
80
  "types": "./dist/index.d.ts",
83
- "version": "4.0.8"
81
+ "version": "4.0.10"
84
82
  }
@@ -1,16 +0,0 @@
1
- import type PrefixMap from "@rdfjs/prefix-map/PrefixMap.js";
2
- import type { NamedNode } from "@rdfjs/types";
3
- import { Maybe } from "purify-ts";
4
- import { Curie } from "../ast/Curie.js";
5
- /**
6
- * Factory for Compact URIs (CURIEs). Tracks whether the reference part of the CURIE is unique.
7
- */
8
- export declare class CurieFactory {
9
- private readonly prefixMap;
10
- private readonly referenceCounts;
11
- constructor({ prefixMap }: {
12
- prefixMap: PrefixMap;
13
- });
14
- create(namedNode: NamedNode): Maybe<Curie>;
15
- }
16
- //# sourceMappingURL=CurieFactory.d.ts.map
@@ -1,45 +0,0 @@
1
- import { Maybe } from "purify-ts";
2
- import { invariant } from "ts-invariant";
3
- import { Curie } from "../ast/Curie.js";
4
- import { logger } from "../logger.js";
5
- /**
6
- * Factory for Compact URIs (CURIEs). Tracks whether the reference part of the CURIE is unique.
7
- */
8
- export class CurieFactory {
9
- prefixMap;
10
- referenceCounts = {};
11
- constructor({ prefixMap }) {
12
- this.prefixMap = prefixMap;
13
- }
14
- create(namedNode) {
15
- return Maybe.fromNullable(this.prefixMap.shrink(namedNode)?.value).map((value) => {
16
- const split = value.split(":", 2);
17
- invariant(split.length === 2);
18
- const prefix = split[0];
19
- const reference = split[1];
20
- if (this.referenceCounts[reference] === undefined) {
21
- this.referenceCounts[reference] = {};
22
- }
23
- if (this.referenceCounts[reference][prefix] === undefined) {
24
- this.referenceCounts[reference][prefix] = 1;
25
- }
26
- else {
27
- this.referenceCounts[reference][prefix] += 1;
28
- }
29
- return new Curie({
30
- hasUniqueReference: () => {
31
- const referenceCounts = this.referenceCounts[reference];
32
- if (Object.entries(referenceCounts).length === 1) {
33
- return true;
34
- }
35
- logger.debug(`duplicate local part ${reference} in ${JSON.stringify(referenceCounts)}`);
36
- return false;
37
- },
38
- prefix: split[0],
39
- reference: split[1],
40
- value: namedNode.value,
41
- });
42
- });
43
- }
44
- }
45
- //# sourceMappingURL=CurieFactory.js.map
@@ -1,3 +0,0 @@
1
- import type * as ast from "../ast/index.js";
2
- export type NodeShapeAstType = ast.ListType | ast.ObjectIntersectionType | ast.ObjectType | ast.ObjectUnionType;
3
- //# sourceMappingURL=NodeShapeAstType.d.ts.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=NodeShapeAstType.js.map
@@ -1,6 +0,0 @@
1
- export * from "./NodeShapeAstType.js";
2
- export * from "./shapeIdentifier.js";
3
- export * from "./transformNodeShapeToAstType.js";
4
- export * from "./transformPropertyShapeToAstObjectTypeProperty.js";
5
- export * from "./transformShapeToAstType.js";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1,6 +0,0 @@
1
- export * from "./NodeShapeAstType.js";
2
- export * from "./shapeIdentifier.js";
3
- export * from "./transformNodeShapeToAstType.js";
4
- export * from "./transformPropertyShapeToAstObjectTypeProperty.js";
5
- export * from "./transformShapeToAstType.js";
6
- //# sourceMappingURL=index.js.map
@@ -1,5 +0,0 @@
1
- import type { BlankNode, NamedNode } from "@rdfjs/types";
2
- import type * as input from "../input/index.js";
3
- import type { ShapesGraphToAstTransformer } from "../ShapesGraphToAstTransformer.js";
4
- export declare function shapeIdentifier(this: ShapesGraphToAstTransformer, shape: input.Shape): BlankNode | NamedNode;
5
- //# sourceMappingURL=shapeIdentifier.d.ts.map
@@ -1,9 +0,0 @@
1
- export function shapeIdentifier(shape) {
2
- switch (shape.identifier.termType) {
3
- case "BlankNode":
4
- return shape.identifier;
5
- case "NamedNode":
6
- return (this.curieFactory.create(shape.identifier).extract() ?? shape.identifier);
7
- }
8
- }
9
- //# sourceMappingURL=shapeIdentifier.js.map
@@ -1,11 +0,0 @@
1
- import { Either } from "purify-ts";
2
- import * as ast from "../ast/index.js";
3
- import type * as input from "../input/index.js";
4
- import type { ShapesGraphToAstTransformer } from "../ShapesGraphToAstTransformer.js";
5
- import type { NodeShapeAstType } from "./NodeShapeAstType.js";
6
- export declare function transformNodeShapeToAstObjectCompoundType(this: ShapesGraphToAstTransformer, { export_, nodeShape, }: {
7
- export_: boolean;
8
- nodeShape: input.NodeShape;
9
- }): Either<Error, ast.ObjectIntersectionType | ast.ObjectUnionType>;
10
- export declare function transformNodeShapeToAstType(this: ShapesGraphToAstTransformer, nodeShape: input.NodeShape): Either<Error, NodeShapeAstType>;
11
- //# sourceMappingURL=transformNodeShapeToAstType.d.ts.map
@@ -1,338 +0,0 @@
1
- import dataFactory from "@rdfjs/data-model";
2
- import { rdf } from "@tpluscode/rdf-ns-builders";
3
- import { Either, Left, Maybe } from "purify-ts";
4
- import { invariant } from "ts-invariant";
5
- import * as ast from "../ast/index.js";
6
- import { Eithers } from "../Eithers.js";
7
- import { nodeShapeIdentifierMintingStrategy } from "./nodeShapeIdentifierMintingStrategy.js";
8
- import { nodeShapeTsFeatures } from "./nodeShapeTsFeatures.js";
9
- import { shapeNodeKinds } from "./shapeNodeKinds.js";
10
- const defaultNodeShapeNodeKinds = new Set([
11
- "BlankNode",
12
- "IRI",
13
- ]);
14
- function isObjectTypePropertyRequired(property) {
15
- switch (property.type.kind) {
16
- case "DefaultValueType":
17
- return false;
18
- case "LazyObjectOptionType":
19
- return false;
20
- case "LazyObjectSetType":
21
- return property.type.partialType.minCount > 0;
22
- case "OptionType":
23
- return false;
24
- case "SetType":
25
- return property.type.minCount > 0;
26
- case "UnionType":
27
- return property.type.memberTypes.every((memberType) => isObjectTypePropertyRequired({ type: memberType }));
28
- case "BlankNodeType":
29
- case "IdentifierType":
30
- case "IriType":
31
- case "LazyObjectType":
32
- case "ListType":
33
- case "LiteralType":
34
- case "ObjectType":
35
- case "ObjectUnionType":
36
- case "PlaceholderType":
37
- case "TermType":
38
- return true;
39
- case "IntersectionType":
40
- case "ObjectIntersectionType":
41
- throw new Error("unsupported");
42
- default:
43
- property.type;
44
- throw new Error("should never reach this point");
45
- }
46
- }
47
- const listPropertiesObjectType = new ast.ObjectType({
48
- abstract: false,
49
- export_: false,
50
- extern: false,
51
- comment: Maybe.empty(),
52
- label: Maybe.empty(),
53
- identifierMintingStrategy: Maybe.empty(),
54
- identifierType: new ast.IdentifierType({
55
- comment: Maybe.empty(),
56
- label: Maybe.empty(),
57
- }),
58
- fromRdfType: Maybe.empty(),
59
- name: Maybe.empty(),
60
- toRdfTypes: [],
61
- tsFeatures: new Set([]),
62
- tsObjectDeclarationType: "class",
63
- shapeIdentifier: dataFactory.blankNode(),
64
- synthetic: true,
65
- tsImports: [],
66
- });
67
- /**
68
- * Is an ast.ObjectType actually the shape of an RDF list?
69
- * If so, return the type of its rdf:first.
70
- */
71
- function transformNodeShapeToAstListType(nodeShape) {
72
- invariant(nodeShape.isList);
73
- return Eithers.chain3(nodeShapeIdentifierMintingStrategy(nodeShape), shapeNodeKinds(nodeShape, { defaultNodeShapeNodeKinds }), nodeShape.constraints.xone).chain(([identifierMintingStrategy, nodeKinds, xone]) => {
74
- // Put a placeholder in the cache to deal with cyclic references
75
- // Remove the placeholder if the transformation fails.
76
- const listType = new ast.ListType({
77
- comment: nodeShape.comment,
78
- identifierNodeKind: nodeKinds.has("BlankNode") ? "BlankNode" : "IRI",
79
- itemType: ast.PlaceholderType.instance,
80
- label: nodeShape.label,
81
- mutable: nodeShape.mutable.orDefault(false),
82
- identifierMintingStrategy,
83
- shapeIdentifier: this.shapeIdentifier(nodeShape),
84
- toRdfTypes: nodeShape.toRdfTypes,
85
- });
86
- this.nodeShapeAstTypesByIdentifier.set(nodeShape.identifier, listType);
87
- return (() => {
88
- let emptyListShape;
89
- let nonEmptyListShape;
90
- for (const shape of xone) {
91
- if (shape.constraints.hasValues.length === 1 &&
92
- shape.constraints.hasValues[0].equals(rdf.nil)) {
93
- emptyListShape = shape;
94
- }
95
- else if (shape.kind === "NodeShape" &&
96
- shape.constraints.properties.orDefault([]).length >= 2) {
97
- nonEmptyListShape = shape;
98
- }
99
- }
100
- if (!emptyListShape || !nonEmptyListShape) {
101
- return Left(new Error(`${nodeShape} does not have an sh:xone with exactly two shapes, one for the empty list and one for the non-empty list`));
102
- }
103
- return nonEmptyListShape.constraints.properties.chain((nonEmptyListShapeProperties) => {
104
- let firstPropertyShape;
105
- let restPropertyShape;
106
- for (const propertyShape of nonEmptyListShapeProperties) {
107
- if (propertyShape.path.termType !== "NamedNode") {
108
- continue;
109
- }
110
- if (propertyShape.path.equals(rdf.first)) {
111
- firstPropertyShape = propertyShape;
112
- }
113
- else if (propertyShape.path.equals(rdf.rest)) {
114
- restPropertyShape = propertyShape;
115
- }
116
- }
117
- if (!firstPropertyShape) {
118
- return Left(new Error(`${nodeShape} has a non-empty list shape without an sh:property shape whose sh:path is rdf:first`));
119
- }
120
- if (firstPropertyShape.constraints.maxCount.extract() !== 1 ||
121
- firstPropertyShape.constraints.minCount.extract() !== 1) {
122
- return Left(new Error(`${nodeShape} non-empty list shape rdf:first property shape does not have sh:maxCount=1 and/or sh:minCount=1`));
123
- }
124
- if (!restPropertyShape) {
125
- return Left(new Error(`${nodeShape} has a non-empty list shape without an sh:property shape whose sh:path is rdf:rest`));
126
- }
127
- if (restPropertyShape.constraints.maxCount.extract() !== 1 ||
128
- restPropertyShape.constraints.minCount.extract() !== 1) {
129
- return Left(new Error(`${nodeShape} non-empty list shape rdf:rest property shape does not have sh:maxCount=1 and/or sh:minCount=1`));
130
- }
131
- return this.transformPropertyShapeToAstObjectTypeProperty({
132
- // Just need a dummy ast.ObjectType here to get the properties transformed.
133
- objectType: listPropertiesObjectType,
134
- propertyShape: firstPropertyShape,
135
- }).chain((firstProperty) => {
136
- if (!ast.ListType.isItemType(firstProperty.type)) {
137
- return Left(new Error(`${nodeShape}: ${firstProperty.type.kind} is not a valid list item type`));
138
- }
139
- listType.itemType = firstProperty.type;
140
- return this.transformPropertyShapeToAstObjectTypeProperty({
141
- // Just need a dummy ast.ObjectType here to get the properties transformed.
142
- objectType: listPropertiesObjectType,
143
- propertyShape: restPropertyShape,
144
- }).chain((restProperty) => {
145
- if (restProperty.type.kind !== "ListType" ||
146
- !restProperty.type.shapeIdentifier.equals(nodeShape.identifier)) {
147
- return Left(new Error(`${nodeShape} rdf:rest property is not recursive into the node shape`));
148
- }
149
- return Either.of(listType);
150
- });
151
- });
152
- });
153
- })().ifLeft(() => {
154
- this.nodeShapeAstTypesByIdentifier.delete(nodeShape.identifier);
155
- });
156
- });
157
- }
158
- export function transformNodeShapeToAstObjectCompoundType({ export_, nodeShape, }) {
159
- return Eithers.chain3(nodeShape.constraints.and, nodeShapeTsFeatures.bind(this)(nodeShape), nodeShape.constraints.xone).chain(([andShapes, tsFeatures, xoneShapes]) => {
160
- let compoundTypeShapes;
161
- let compoundTypeKind;
162
- if (andShapes.length > 0) {
163
- compoundTypeShapes = andShapes;
164
- compoundTypeKind = "ObjectIntersectionType";
165
- }
166
- else if (xoneShapes.length > 0) {
167
- compoundTypeShapes = xoneShapes;
168
- compoundTypeKind = "ObjectUnionType";
169
- }
170
- else {
171
- throw new Error("should never be reached");
172
- }
173
- const compoundTypeNodeShapes = [];
174
- for (const compoundTypeShape of compoundTypeShapes) {
175
- if (compoundTypeShape.kind !== "NodeShape") {
176
- return Left(new Error(`${nodeShape} has non-NodeShape in its logical constraint`));
177
- }
178
- compoundTypeNodeShapes.push(compoundTypeShape);
179
- }
180
- if (compoundTypeNodeShapes.length === 0) {
181
- return Left(new Error(`${nodeShape} has no NodeShapes in its logical constraint`));
182
- }
183
- // Put a placeholder in the cache to deal with cyclic references
184
- const compoundType = new (compoundTypeKind === "ObjectIntersectionType"
185
- ? ast.ObjectIntersectionType
186
- : ast.ObjectUnionType)({
187
- comment: nodeShape.comment,
188
- export_,
189
- label: nodeShape.label,
190
- name: nodeShape.shaclmateName,
191
- shapeIdentifier: this.shapeIdentifier(nodeShape),
192
- tsFeatures,
193
- });
194
- this.nodeShapeAstTypesByIdentifier.set(nodeShape.identifier, compoundType);
195
- return Either.sequence(compoundTypeNodeShapes.map((memberNodeShape) => this.transformNodeShapeToAstType(memberNodeShape).chain((memberType) => compoundType.addMemberType(memberType))))
196
- .map(() => compoundType)
197
- .ifLeft(() => {
198
- this.nodeShapeAstTypesByIdentifier.delete(nodeShape.identifier);
199
- });
200
- });
201
- }
202
- export function transformNodeShapeToAstType(nodeShape) {
203
- {
204
- const type = this.nodeShapeAstTypesByIdentifier.get(nodeShape.identifier);
205
- if (type) {
206
- return Either.of(type);
207
- }
208
- }
209
- if (nodeShape.isList) {
210
- return transformNodeShapeToAstListType.bind(this)(nodeShape);
211
- }
212
- return Eithers.chain11(nodeShape.ancestorNodeShapes, nodeShape.childNodeShapes, nodeShape.descendantNodeShapes, nodeShape.parentNodeShapes, nodeShape.constraints.and, nodeShapeIdentifierMintingStrategy(nodeShape), shapeNodeKinds(nodeShape, { defaultNodeShapeNodeKinds }), nodeShape.constraints.properties, nodeShapeTsFeatures.bind(this)(nodeShape), nodeShape.tsObjectDeclarationType.isJust()
213
- ? Either.of(nodeShape.tsObjectDeclarationType)
214
- : nodeShape.isDefinedBy.map((ontology) => ontology.chain((ontology) => ontology.tsObjectDeclarationType)), nodeShape.constraints.xone).chain(([ancestorNodeShapes, childNodeShapes, descendantNodeShapes, parentNodeShapes, andShapes, identifierMintingStrategy, nodeKinds, propertyShapes, tsFeatures, tsObjectDeclarationType, xoneShapes,]) => {
215
- const abstract = nodeShape.abstract.orDefault(false);
216
- const export_ = nodeShape.export.orDefault(true);
217
- if (andShapes.length > 0 || xoneShapes.length > 0) {
218
- return transformNodeShapeToAstObjectCompoundType.bind(this)({
219
- export_,
220
- nodeShape,
221
- });
222
- }
223
- let fromRdfType;
224
- let toRdfTypes;
225
- if (!abstract) {
226
- fromRdfType = nodeShape.fromRdfType.alt(nodeShape.rdfType);
227
- if (nodeShape.isClass &&
228
- nodeShape.identifier.termType === "NamedNode") {
229
- fromRdfType = fromRdfType.alt(Maybe.of(nodeShape.identifier));
230
- }
231
- toRdfTypes = nodeShape.toRdfTypes.concat();
232
- if (toRdfTypes.length === 0) {
233
- toRdfTypes.push(...nodeShape.rdfType.toList());
234
- }
235
- // Ensure toRdfTypes has fromRdfType
236
- fromRdfType.ifJust((fromRdfType) => {
237
- if (!toRdfTypes.some((toRdfType) => toRdfType.equals(fromRdfType))) {
238
- toRdfTypes.push(fromRdfType);
239
- }
240
- });
241
- }
242
- else {
243
- fromRdfType = Maybe.empty();
244
- toRdfTypes = [];
245
- }
246
- if (nodeKinds.has("Literal")) {
247
- return Left(new Error(`${nodeShape} should not have a nodeKind "Literal"`));
248
- }
249
- let identifierType;
250
- if (nodeKinds.size === 2) {
251
- invariant(nodeShape.identifierIn.length === 0);
252
- identifierType = new ast.IdentifierType({
253
- comment: Maybe.empty(),
254
- label: Maybe.empty(),
255
- });
256
- }
257
- else {
258
- switch ([...nodeKinds][0]) {
259
- case "BlankNode":
260
- invariant(nodeShape.identifierIn.length === 0);
261
- identifierType = new ast.BlankNodeType({
262
- comment: Maybe.empty(),
263
- label: Maybe.empty(),
264
- });
265
- break;
266
- case "IRI":
267
- identifierType = new ast.IriType({
268
- comment: Maybe.empty(),
269
- hasValues: [],
270
- in_: nodeShape.identifierIn,
271
- label: Maybe.empty(),
272
- });
273
- break;
274
- case "Literal":
275
- throw new Error("should never happen");
276
- }
277
- }
278
- // Put a placeholder in the cache to deal with cyclic references
279
- // Remove the placeholder if the transformation fails.
280
- // If this node shape's properties (directly or indirectly) refer to the node shape itself,
281
- // we'll return this placeholder.
282
- const objectType = new ast.ObjectType({
283
- abstract,
284
- comment: nodeShape.comment,
285
- export_: export_,
286
- extern: nodeShape.extern.orDefault(false),
287
- fromRdfType,
288
- label: nodeShape.label,
289
- identifierType,
290
- identifierMintingStrategy,
291
- name: nodeShape.shaclmateName,
292
- shapeIdentifier: this.shapeIdentifier(nodeShape),
293
- synthetic: false,
294
- toRdfTypes,
295
- tsFeatures,
296
- tsImports: nodeShape.tsImports,
297
- tsObjectDeclarationType: tsObjectDeclarationType.orDefault("class"),
298
- });
299
- this.nodeShapeAstTypesByIdentifier.set(nodeShape.identifier, objectType);
300
- return (() => {
301
- // Populate ancestor and descendant object types
302
- const relatedObjectTypes = (relatedNodeShapes) => {
303
- return relatedNodeShapes.flatMap((relatedNodeShape) => this.transformNodeShapeToAstType(relatedNodeShape)
304
- .toMaybe()
305
- .filter((astType) => astType.kind === "ObjectType")
306
- .toList());
307
- };
308
- objectType.addAncestorObjectTypes(...relatedObjectTypes(ancestorNodeShapes));
309
- objectType.addChildObjectTypes(...relatedObjectTypes(childNodeShapes));
310
- objectType.addDescendantObjectTypes(...relatedObjectTypes(descendantNodeShapes));
311
- objectType.addParentObjectTypes(...relatedObjectTypes(parentNodeShapes));
312
- // Populate properties
313
- for (const propertyShape of propertyShapes) {
314
- const propertyEither = this.transformPropertyShapeToAstObjectTypeProperty({
315
- objectType,
316
- propertyShape,
317
- });
318
- if (propertyEither.isLeft()) {
319
- return propertyEither;
320
- }
321
- propertyEither.ifRight((property) => {
322
- objectType.addProperties(property);
323
- });
324
- }
325
- if (!objectType.abstract &&
326
- !objectType.extern &&
327
- objectType.fromRdfType.isNothing() &&
328
- !objectType.properties.some(isObjectTypePropertyRequired)) {
329
- return Left(new Error(`${nodeShape} has no required properties and no implicitly required rdf:type`));
330
- }
331
- objectType.sortProperties();
332
- return Either.of(objectType);
333
- })().ifLeft(() => {
334
- this.nodeShapeAstTypesByIdentifier.delete(nodeShape.identifier);
335
- });
336
- });
337
- }
338
- //# sourceMappingURL=transformNodeShapeToAstType.js.map
@@ -1,12 +0,0 @@
1
- import { Either, Maybe } from "purify-ts";
2
- import type * as input from "../input/index.js";
3
- type AstAbstractTypeProperties = {
4
- readonly comment: Maybe<string>;
5
- readonly label: Maybe<string>;
6
- };
7
- declare namespace AstAbstractTypeProperties {
8
- const empty: AstAbstractTypeProperties;
9
- }
10
- export declare function transformShapeToAstAbstractTypeProperties(shape: input.Shape): Either<Error, AstAbstractTypeProperties>;
11
- export {};
12
- //# sourceMappingURL=transformShapeToAstAbstractTypeProperties.d.ts.map
@@ -1,31 +0,0 @@
1
- import { Either, Maybe } from "purify-ts";
2
- var AstAbstractTypeProperties;
3
- (function (AstAbstractTypeProperties) {
4
- AstAbstractTypeProperties.empty = {
5
- comment: Maybe.empty(),
6
- label: Maybe.empty(),
7
- };
8
- })(AstAbstractTypeProperties || (AstAbstractTypeProperties = {}));
9
- export function transformShapeToAstAbstractTypeProperties(shape) {
10
- if (shape.kind === "PropertyShape") {
11
- // comment, label, et al. belong to the ObjectType.Property, not to the type
12
- return Either.of(AstAbstractTypeProperties.empty);
13
- }
14
- return shape.constraints.properties.chain((properties) => {
15
- if (properties.length > 0) {
16
- // comment, label, et al. belong to the ObjectType, not to the type
17
- return Either.of(AstAbstractTypeProperties.empty);
18
- }
19
- return shape.constraints.xone.map((xone) => {
20
- if (xone.length > 0) {
21
- // comment, label, et al. belong to the ObjectType, not to the type
22
- return AstAbstractTypeProperties.empty;
23
- }
24
- return {
25
- comment: shape.comment,
26
- label: shape.label,
27
- };
28
- });
29
- });
30
- }
31
- //# sourceMappingURL=transformShapeToAstAbstractTypeProperties.js.map
@@ -1,45 +0,0 @@
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: 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