@shaclmate/compiler 4.0.40 → 4.0.42

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 (344) hide show
  1. package/dist/ShapesGraphToAstTransformer.d.ts +1 -8
  2. package/dist/ShapesGraphToAstTransformer.js +11 -126
  3. package/dist/_ShapesGraphToAstTransformer/shapeNodeKinds.js +128 -160
  4. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstStructTypeField.d.ts +17 -0
  5. package/dist/_ShapesGraphToAstTransformer/{transformPropertyShapeToAstObjectTypeProperty.js → transformPropertyShapeToAstStructTypeField.js} +71 -48
  6. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.d.ts +1 -1
  7. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +29 -20
  8. package/dist/_ShapesGraphToAstTransformer/{transformShapeToAstObjectType.d.ts → transformShapeToAstStructType.d.ts} +3 -3
  9. package/dist/_ShapesGraphToAstTransformer/{transformShapeToAstObjectType.js → transformShapeToAstStructType.js} +35 -45
  10. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstTermType.js +2 -1
  11. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.d.ts +1 -1
  12. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstType.js +3 -3
  13. package/dist/ast/AbstractCompoundType.d.ts +3 -2
  14. package/dist/ast/AbstractCompoundType.js +5 -5
  15. package/dist/ast/AbstractContainerType.d.ts +2 -2
  16. package/dist/ast/AbstractContainerType.js +4 -4
  17. package/dist/ast/{AbstractLazyObjectType.d.ts → AbstractLazyType.d.ts} +10 -12
  18. package/dist/ast/{AbstractLazyObjectType.js → AbstractLazyType.js} +3 -3
  19. package/dist/ast/AbstractType.d.ts +1 -1
  20. package/dist/ast/AbstractType.js +3 -0
  21. package/dist/ast/Ast.d.ts +2 -6
  22. package/dist/ast/DefaultValueType.js +2 -1
  23. package/dist/ast/IntersectionType.d.ts +2 -2
  24. package/dist/ast/IntersectionType.js +3 -3
  25. package/dist/ast/LazyOptionType.d.ts +6 -0
  26. package/dist/ast/LazyOptionType.js +5 -0
  27. package/dist/ast/LazySetType.d.ts +6 -0
  28. package/dist/ast/LazySetType.js +5 -0
  29. package/dist/ast/LazyType.d.ts +5 -0
  30. package/dist/ast/LazyType.js +5 -0
  31. package/dist/ast/ListType.d.ts +2 -2
  32. package/dist/ast/ListType.js +5 -5
  33. package/dist/ast/OptionType.js +2 -1
  34. package/dist/ast/SetType.js +2 -1
  35. package/dist/ast/StructCompoundType.d.ts +12 -0
  36. package/dist/ast/{ObjectCompoundType.js → StructCompoundType.js} +18 -18
  37. package/dist/ast/StructIntersectionType.d.ts +4 -0
  38. package/dist/ast/StructIntersectionType.js +2 -0
  39. package/dist/ast/{ObjectType.d.ts → StructType.d.ts} +28 -39
  40. package/dist/ast/{ObjectType.js → StructType.js} +81 -156
  41. package/dist/ast/StructUnionType.d.ts +4 -0
  42. package/dist/ast/StructUnionType.js +2 -0
  43. package/dist/ast/Type.d.ts +5 -5
  44. package/dist/ast/Type.js +4 -4
  45. package/dist/ast/UnionType.d.ts +2 -2
  46. package/dist/ast/UnionType.js +3 -3
  47. package/dist/ast/index.d.ts +7 -7
  48. package/dist/ast/index.js +7 -7
  49. package/dist/generators/AstJsonGenerator.js +7 -3
  50. package/dist/generators/transformAstToLabeledPropertyGraph.js +59 -56
  51. package/dist/generators/ts/AbstractCollectionType.d.ts +4 -11
  52. package/dist/generators/ts/AbstractCollectionType.js +3 -62
  53. package/dist/generators/ts/AbstractContainerType.d.ts +1 -2
  54. package/dist/generators/ts/AbstractContainerType.js +7 -10
  55. package/dist/generators/ts/AbstractDateType.d.ts +5 -8
  56. package/dist/generators/ts/AbstractDateType.js +7 -12
  57. package/dist/generators/ts/AbstractIdentifierType.d.ts +4 -0
  58. package/dist/generators/ts/AbstractIdentifierType.js +3 -0
  59. package/dist/generators/ts/{AbstractLazyObjectType.d.ts → AbstractLazyType.d.ts} +8 -8
  60. package/dist/generators/ts/{AbstractLazyObjectType.js → AbstractLazyType.js} +30 -17
  61. package/dist/generators/ts/AbstractLiteralType.d.ts +3 -5
  62. package/dist/generators/ts/AbstractLiteralType.js +0 -21
  63. package/dist/generators/ts/AbstractNumericType.d.ts +1 -7
  64. package/dist/generators/ts/AbstractNumericType.js +17 -27
  65. package/dist/generators/ts/AbstractObjectSetType.d.ts +1 -1
  66. package/dist/generators/ts/AbstractObjectSetType.js +2 -2
  67. package/dist/generators/ts/AbstractPrimitiveType.d.ts +2 -1
  68. package/dist/generators/ts/AbstractPrimitiveType.js +1 -1
  69. package/dist/generators/ts/AbstractTermType.d.ts +7 -23
  70. package/dist/generators/ts/AbstractTermType.js +27 -58
  71. package/dist/generators/ts/AbstractType.d.ts +86 -63
  72. package/dist/generators/ts/AbstractType.js +48 -22
  73. package/dist/generators/ts/BigDecimalType.d.ts +7 -3
  74. package/dist/generators/ts/BigDecimalType.js +7 -9
  75. package/dist/generators/ts/BigIntType.d.ts +5 -3
  76. package/dist/generators/ts/BigIntType.js +8 -5
  77. package/dist/generators/ts/BlankNodeType.d.ts +2 -7
  78. package/dist/generators/ts/BlankNodeType.js +4 -9
  79. package/dist/generators/ts/BooleanType.d.ts +6 -4
  80. package/dist/generators/ts/BooleanType.js +13 -15
  81. package/dist/generators/ts/DateTimeType.d.ts +2 -2
  82. package/dist/generators/ts/DateTimeType.js +14 -4
  83. package/dist/generators/ts/DateType.d.ts +2 -2
  84. package/dist/generators/ts/DateType.js +14 -4
  85. package/dist/generators/ts/DefaultValueType.d.ts +40 -2
  86. package/dist/generators/ts/DefaultValueType.js +15 -14
  87. package/dist/generators/ts/FloatType.d.ts +5 -3
  88. package/dist/generators/ts/FloatType.js +8 -5
  89. package/dist/generators/ts/GraphqlSchema.js +2 -2
  90. package/dist/generators/ts/IdentifierType.d.ts +2 -2
  91. package/dist/generators/ts/IdentifierType.js +8 -11
  92. package/dist/generators/ts/IntType.d.ts +5 -3
  93. package/dist/generators/ts/IntType.js +8 -5
  94. package/dist/generators/ts/IriType.d.ts +2 -2
  95. package/dist/generators/ts/IriType.js +16 -16
  96. package/dist/generators/ts/{LazyObjectOptionType.d.ts → LazyOptionType.d.ts} +13 -11
  97. package/dist/generators/ts/LazyOptionType.js +75 -0
  98. package/dist/generators/ts/LazySetType.d.ts +20 -0
  99. package/dist/generators/ts/LazySetType.js +76 -0
  100. package/dist/generators/ts/LazyType.d.ts +19 -0
  101. package/dist/generators/ts/LazyType.js +65 -0
  102. package/dist/generators/ts/ListType.d.ts +11 -2
  103. package/dist/generators/ts/ListType.js +53 -26
  104. package/dist/generators/ts/LiteralType.d.ts +7 -2
  105. package/dist/generators/ts/LiteralType.js +12 -5
  106. package/dist/generators/ts/ObjectType.d.ts +24 -25
  107. package/dist/generators/ts/ObjectType.js +303 -161
  108. package/dist/generators/ts/ObjectUnionType.js +42 -42
  109. package/dist/generators/ts/OptionType.d.ts +6 -2
  110. package/dist/generators/ts/OptionType.js +16 -9
  111. package/dist/generators/ts/RdfjsDatasetObjectSetType.js +1 -4
  112. package/dist/generators/ts/SetType.d.ts +17 -2
  113. package/dist/generators/ts/SetType.js +85 -9
  114. package/dist/generators/ts/Snippets.d.ts +29 -9
  115. package/dist/generators/ts/Snippets.js +179 -39
  116. package/dist/generators/ts/StringType.d.ts +7 -4
  117. package/dist/generators/ts/StringType.js +23 -12
  118. package/dist/generators/ts/TermType.d.ts +9 -3
  119. package/dist/generators/ts/TermType.js +29 -7
  120. package/dist/generators/ts/TsGenerator.d.ts +1 -1
  121. package/dist/generators/ts/TsGenerator.js +62 -32
  122. package/dist/generators/ts/Type.d.ts +4 -4
  123. package/dist/generators/ts/TypeFactory.d.ts +5 -5
  124. package/dist/generators/ts/TypeFactory.js +90 -82
  125. package/dist/generators/ts/UnionType.d.ts +25 -23
  126. package/dist/generators/ts/UnionType.js +254 -261
  127. package/dist/generators/ts/ZodGenerator.d.ts +1 -1
  128. package/dist/generators/ts/ZodGenerator.js +29 -14
  129. package/dist/generators/ts/_ObjectType/AbstractProperty.d.ts +28 -16
  130. package/dist/generators/ts/_ObjectType/AbstractProperty.js +1 -24
  131. package/dist/generators/ts/_ObjectType/DiscriminantProperty.d.ts +15 -17
  132. package/dist/generators/ts/_ObjectType/DiscriminantProperty.js +24 -54
  133. package/dist/generators/ts/_ObjectType/IdentifierProperty.d.ts +8 -2
  134. package/dist/generators/ts/_ObjectType/IdentifierProperty.js +48 -20
  135. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionExpression.d.ts +4 -0
  136. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionExpression.js +28 -0
  137. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionExpression.d.ts +4 -0
  138. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionExpression.js +15 -0
  139. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionExpression.d.ts +4 -0
  140. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionExpression.js +12 -0
  141. package/dist/generators/ts/_ObjectType/ObjectType_filterTypeExpression.d.ts +4 -0
  142. package/dist/generators/ts/_ObjectType/{ObjectType_filterTypeDeclaration.js → ObjectType_filterTypeExpression.js} +5 -10
  143. package/dist/generators/ts/_ObjectType/{ObjectType_focusSparqlConstructTriplesFunctionDeclaration.d.ts → ObjectType_focusSparqlConstructTriplesFunctionExpression.d.ts} +2 -3
  144. package/dist/generators/ts/_ObjectType/{ObjectType_focusSparqlConstructTriplesFunctionDeclaration.js → ObjectType_focusSparqlConstructTriplesFunctionExpression.js} +5 -13
  145. package/dist/generators/ts/_ObjectType/{ObjectType_focusSparqlWherePatternsFunctionDeclaration.d.ts → ObjectType_focusSparqlWherePatternsFunctionExpression.d.ts} +2 -3
  146. package/dist/generators/ts/_ObjectType/{ObjectType_focusSparqlWherePatternsFunctionDeclaration.js → ObjectType_focusSparqlWherePatternsFunctionExpression.js} +8 -31
  147. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionExpression.d.ts +4 -0
  148. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionExpression.js +12 -0
  149. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceFunctionExpression.d.ts +4 -0
  150. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceFunctionExpression.js +43 -0
  151. package/dist/generators/ts/_ObjectType/ObjectType_graphqlTypeExpression.d.ts +4 -0
  152. package/dist/generators/ts/_ObjectType/{ObjectType_graphqlTypeVariableStatement.js → ObjectType_graphqlTypeExpression.js} +6 -13
  153. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionExpression.d.ts +4 -0
  154. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionExpression.js +30 -0
  155. package/dist/generators/ts/_ObjectType/ObjectType_identifierTypeDeclarations.d.ts +4 -0
  156. package/dist/generators/ts/_ObjectType/ObjectType_identifierTypeDeclarations.js +13 -0
  157. package/dist/generators/ts/_ObjectType/ObjectType_isTypeFunctionDeclaration.js +11 -8
  158. package/dist/generators/ts/_ObjectType/ObjectType_jsonParseFunctionDeclaration.d.ts +1 -2
  159. package/dist/generators/ts/_ObjectType/ObjectType_jsonParseFunctionDeclaration.js +2 -6
  160. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaExpression.d.ts +4 -0
  161. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaExpression.js +18 -0
  162. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeExpression.d.ts +4 -0
  163. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeExpression.js +5 -0
  164. package/dist/generators/ts/_ObjectType/ObjectType_jsonUiSchemaFunctionExpression.d.ts +4 -0
  165. package/dist/generators/ts/_ObjectType/ObjectType_jsonUiSchemaFunctionExpression.js +17 -0
  166. package/dist/generators/ts/_ObjectType/ObjectType_objectSetMethodNames.d.ts +1 -1
  167. package/dist/generators/ts/_ObjectType/ObjectType_objectSetMethodNames.js +2 -2
  168. package/dist/generators/ts/_ObjectType/ObjectType_schemaExpression.d.ts +4 -0
  169. package/dist/generators/ts/_ObjectType/ObjectType_schemaExpression.js +18 -0
  170. package/dist/generators/ts/_ObjectType/ObjectType_schemaTypeExpression.d.ts +4 -0
  171. package/dist/generators/ts/_ObjectType/ObjectType_schemaTypeExpression.js +18 -0
  172. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.d.ts +2 -3
  173. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.js +5 -9
  174. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts +2 -3
  175. package/dist/generators/ts/_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.js +4 -8
  176. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionExpression.d.ts +4 -0
  177. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionExpression.js +14 -0
  178. package/dist/generators/ts/_ObjectType/ObjectType_toRdfResourceFunctionExpression.d.ts +4 -0
  179. package/dist/generators/ts/_ObjectType/{ObjectType_toRdfResourceFunctionDeclaration.js → ObjectType_toRdfResourceFunctionExpression.js} +7 -13
  180. package/dist/generators/ts/_ObjectType/ObjectType_toStringFunctionExpression.d.ts +4 -0
  181. package/dist/generators/ts/_ObjectType/ObjectType_toStringFunctionExpression.js +7 -0
  182. package/dist/generators/ts/_ObjectType/ObjectType_toStringRecordFunctionExpression.d.ts +4 -0
  183. package/dist/generators/ts/_ObjectType/ObjectType_toStringRecordFunctionExpression.js +5 -0
  184. package/dist/generators/ts/_ObjectType/{ObjectType_valueSparqlConstructTriplesFunctionDeclaration.d.ts → ObjectType_valueSparqlConstructTriplesFunctionExpression.d.ts} +2 -3
  185. package/dist/generators/ts/_ObjectType/ObjectType_valueSparqlConstructTriplesFunctionExpression.js +8 -0
  186. package/dist/generators/ts/_ObjectType/{ObjectType_valueSparqlWherePatternsFunctionDeclaration.d.ts → ObjectType_valueSparqlWherePatternsFunctionExpression.d.ts} +2 -3
  187. package/dist/generators/ts/_ObjectType/ObjectType_valueSparqlWherePatternsFunctionExpression.js +10 -0
  188. package/dist/generators/ts/_ObjectType/ShaclProperty.d.ts +9 -2
  189. package/dist/generators/ts/_ObjectType/ShaclProperty.js +70 -38
  190. package/dist/generators/ts/_snippets/snippets_BooleanSchema.js +4 -3
  191. package/dist/generators/ts/_snippets/snippets_DateSchema.js +4 -3
  192. package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.js +3 -3
  193. package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.js +6 -5
  194. package/dist/generators/ts/_snippets/snippets_IdentifierSchema.js +2 -1
  195. package/dist/generators/ts/_snippets/snippets_IriSchema.js +1 -0
  196. package/dist/generators/ts/_snippets/snippets_Lazy.d.ts +3 -0
  197. package/dist/generators/ts/_snippets/snippets_Lazy.js +22 -0
  198. package/dist/generators/ts/_snippets/snippets_LazyOption.d.ts +3 -0
  199. package/dist/generators/ts/_snippets/snippets_LazyOption.js +25 -0
  200. package/dist/generators/ts/_snippets/snippets_LazySet.d.ts +3 -0
  201. package/dist/generators/ts/_snippets/snippets_LazySet.js +40 -0
  202. package/dist/generators/ts/_snippets/snippets_LiteralFilter.js +1 -3
  203. package/dist/generators/ts/_snippets/snippets_LiteralSchema.js +1 -0
  204. package/dist/generators/ts/_snippets/snippets_NumericSchema.js +2 -1
  205. package/dist/generators/ts/_snippets/snippets_PropertyPath.js +6 -8
  206. package/dist/generators/ts/_snippets/snippets_RdfVocabularies.js +32 -32
  207. package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.js +1 -1
  208. package/dist/generators/ts/_snippets/snippets_StringSchema.js +5 -3
  209. package/dist/generators/ts/_snippets/snippets_TermFilter.js +3 -3
  210. package/dist/generators/ts/_snippets/snippets_TermSchema.js +4 -2
  211. package/dist/generators/ts/_snippets/snippets_bigDecimalFromRdfResourceValues.d.ts +3 -0
  212. package/dist/generators/ts/_snippets/snippets_bigDecimalFromRdfResourceValues.js +6 -0
  213. package/dist/generators/ts/_snippets/snippets_bigIntFromRdfResourceValues.d.ts +3 -0
  214. package/dist/generators/ts/_snippets/snippets_bigIntFromRdfResourceValues.js +6 -0
  215. package/dist/generators/ts/_snippets/snippets_blankNodeFromRdfResourceValues.d.ts +3 -0
  216. package/dist/generators/ts/_snippets/snippets_blankNodeFromRdfResourceValues.js +6 -0
  217. package/dist/generators/ts/_snippets/snippets_booleanFromRdfResourceValues.d.ts +3 -0
  218. package/dist/generators/ts/_snippets/snippets_booleanFromRdfResourceValues.js +6 -0
  219. package/dist/generators/ts/_snippets/snippets_convertToArraySet.d.ts +3 -0
  220. package/dist/generators/ts/_snippets/snippets_convertToArraySet.js +8 -0
  221. package/dist/generators/ts/_snippets/snippets_convertToLazy.d.ts +3 -0
  222. package/dist/generators/ts/_snippets/snippets_convertToLazy.js +15 -0
  223. package/dist/generators/ts/_snippets/snippets_convertToLazyOption.d.ts +3 -0
  224. package/dist/generators/ts/_snippets/snippets_convertToLazyOption.js +33 -0
  225. package/dist/generators/ts/_snippets/snippets_convertToLazySet.d.ts +3 -0
  226. package/dist/generators/ts/_snippets/snippets_convertToLazySet.js +27 -0
  227. package/dist/generators/ts/_snippets/snippets_convertToList.d.ts +3 -0
  228. package/dist/generators/ts/_snippets/snippets_convertToList.js +7 -0
  229. package/dist/generators/ts/_snippets/snippets_convertToScalarSet.d.ts +3 -0
  230. package/dist/generators/ts/_snippets/snippets_convertToScalarSet.js +15 -0
  231. package/dist/generators/ts/_snippets/snippets_dateFromRdfResourceValues.d.ts +3 -0
  232. package/dist/generators/ts/_snippets/snippets_dateFromRdfResourceValues.js +6 -0
  233. package/dist/generators/ts/_snippets/snippets_dateTimeFromRdfResourceValues.d.ts +3 -0
  234. package/dist/generators/ts/_snippets/snippets_dateTimeFromRdfResourceValues.js +6 -0
  235. package/dist/generators/ts/_snippets/snippets_defaultValueFromRdfResourceValues.d.ts +3 -0
  236. package/dist/generators/ts/_snippets/snippets_defaultValueFromRdfResourceValues.js +10 -0
  237. package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +1 -1
  238. package/dist/generators/ts/_snippets/snippets_filterNumeric.js +1 -1
  239. package/dist/generators/ts/_snippets/snippets_filterTerm.js +1 -2
  240. package/dist/generators/ts/_snippets/snippets_floatFromRdfResourceValues.d.ts +3 -0
  241. package/dist/generators/ts/_snippets/snippets_floatFromRdfResourceValues.js +6 -0
  242. package/dist/generators/ts/_snippets/snippets_identifierFromRdfResourceValues.d.ts +3 -0
  243. package/dist/generators/ts/_snippets/snippets_identifierFromRdfResourceValues.js +6 -0
  244. package/dist/generators/ts/_snippets/snippets_intFromRdfResourceValues.d.ts +3 -0
  245. package/dist/generators/ts/_snippets/snippets_intFromRdfResourceValues.js +6 -0
  246. package/dist/generators/ts/_snippets/snippets_iriFromRdfResourceValues.d.ts +3 -0
  247. package/dist/generators/ts/_snippets/snippets_iriFromRdfResourceValues.js +6 -0
  248. package/dist/generators/ts/_snippets/snippets_listFromRdfResourceValues.d.ts +3 -0
  249. package/dist/generators/ts/_snippets/snippets_listFromRdfResourceValues.js +15 -0
  250. package/dist/generators/ts/_snippets/snippets_literalFromRdfResourceValues.d.ts +3 -0
  251. package/dist/generators/ts/_snippets/snippets_literalFromRdfResourceValues.js +6 -0
  252. package/dist/generators/ts/_snippets/snippets_maybeFromRdfResourceValues.d.ts +3 -0
  253. package/dist/generators/ts/_snippets/snippets_maybeFromRdfResourceValues.js +11 -0
  254. package/dist/generators/ts/_snippets/snippets_mutableListFromRdfResourceValues.d.ts +3 -0
  255. package/dist/generators/ts/_snippets/snippets_mutableListFromRdfResourceValues.js +8 -0
  256. package/dist/generators/ts/_snippets/snippets_mutableSetFromRdfResourceValues.d.ts +3 -0
  257. package/dist/generators/ts/_snippets/snippets_mutableSetFromRdfResourceValues.js +8 -0
  258. package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.js +1 -1
  259. package/dist/generators/ts/_snippets/snippets_setFromRdfResourceValues.d.ts +3 -0
  260. package/dist/generators/ts/_snippets/snippets_setFromRdfResourceValues.js +9 -0
  261. package/dist/generators/ts/_snippets/snippets_shaclPropertyFromRdf.js +13 -7
  262. package/dist/generators/ts/_snippets/snippets_stringFromRdfResourceValues.d.ts +3 -0
  263. package/dist/generators/ts/_snippets/snippets_stringFromRdfResourceValues.js +6 -0
  264. package/dist/generators/ts/_snippets/snippets_termFilterSparqlPatterns.js +1 -1
  265. package/dist/generators/ts/_snippets/snippets_termFromRdfResourceValues.d.ts +3 -0
  266. package/dist/generators/ts/_snippets/snippets_termFromRdfResourceValues.js +17 -0
  267. package/dist/generators/ts/_snippets/snippets_termLikeFromRdfResourceValues.d.ts +3 -0
  268. package/dist/generators/ts/_snippets/snippets_termLikeFromRdfResourceValues.js +60 -0
  269. package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.js +2 -2
  270. package/dist/input/generated.d.ts +1116 -400
  271. package/dist/input/generated.js +1879 -1917
  272. package/package.json +2 -4
  273. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.d.ts +0 -9
  274. package/dist/ast/LazyObjectOptionType.d.ts +0 -6
  275. package/dist/ast/LazyObjectOptionType.js +0 -5
  276. package/dist/ast/LazyObjectSetType.d.ts +0 -6
  277. package/dist/ast/LazyObjectSetType.js +0 -5
  278. package/dist/ast/LazyObjectType.d.ts +0 -5
  279. package/dist/ast/LazyObjectType.js +0 -5
  280. package/dist/ast/ObjectCompoundType.d.ts +0 -12
  281. package/dist/ast/ObjectIntersectionType.d.ts +0 -4
  282. package/dist/ast/ObjectIntersectionType.js +0 -2
  283. package/dist/ast/ObjectUnionType.d.ts +0 -4
  284. package/dist/ast/ObjectUnionType.js +0 -2
  285. package/dist/generators/ts/LazyObjectOptionType.js +0 -62
  286. package/dist/generators/ts/LazyObjectSetType.d.ts +0 -20
  287. package/dist/generators/ts/LazyObjectSetType.js +0 -61
  288. package/dist/generators/ts/LazyObjectType.d.ts +0 -19
  289. package/dist/generators/ts/LazyObjectType.js +0 -53
  290. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionDeclaration.d.ts +0 -5
  291. package/dist/generators/ts/_ObjectType/ObjectType_createFunctionDeclaration.js +0 -65
  292. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionDeclaration.d.ts +0 -5
  293. package/dist/generators/ts/_ObjectType/ObjectType_equalsFunctionDeclaration.js +0 -23
  294. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionDeclaration.d.ts +0 -5
  295. package/dist/generators/ts/_ObjectType/ObjectType_filterFunctionDeclaration.js +0 -24
  296. package/dist/generators/ts/_ObjectType/ObjectType_filterTypeDeclaration.d.ts +0 -5
  297. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionDeclaration.d.ts +0 -5
  298. package/dist/generators/ts/_ObjectType/ObjectType_fromJsonFunctionDeclaration.js +0 -43
  299. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceFunctionDeclaration.d.ts +0 -5
  300. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceFunctionDeclaration.js +0 -80
  301. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceValuesFunctionDeclaration.d.ts +0 -5
  302. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfResourceValuesFunctionDeclaration.js +0 -15
  303. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfTypeVariableStatement.d.ts +0 -5
  304. package/dist/generators/ts/_ObjectType/ObjectType_fromRdfTypeVariableStatement.js +0 -10
  305. package/dist/generators/ts/_ObjectType/ObjectType_graphqlTypeVariableStatement.d.ts +0 -5
  306. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionDeclarations.d.ts +0 -4
  307. package/dist/generators/ts/_ObjectType/ObjectType_hashFunctionDeclarations.js +0 -45
  308. package/dist/generators/ts/_ObjectType/ObjectType_interfaceDeclaration.d.ts +0 -4
  309. package/dist/generators/ts/_ObjectType/ObjectType_interfaceDeclaration.js +0 -16
  310. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.d.ts +0 -5
  311. package/dist/generators/ts/_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.js +0 -31
  312. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeAliasDeclaration.d.ts +0 -5
  313. package/dist/generators/ts/_ObjectType/ObjectType_jsonTypeAliasDeclaration.js +0 -16
  314. package/dist/generators/ts/_ObjectType/ObjectType_jsonUiSchemaFunctionDeclaration.d.ts +0 -5
  315. package/dist/generators/ts/_ObjectType/ObjectType_jsonUiSchemaFunctionDeclaration.js +0 -17
  316. package/dist/generators/ts/_ObjectType/ObjectType_schemaVariableStatement.d.ts +0 -5
  317. package/dist/generators/ts/_ObjectType/ObjectType_schemaVariableStatement.js +0 -14
  318. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionDeclaration.d.ts +0 -5
  319. package/dist/generators/ts/_ObjectType/ObjectType_toJsonFunctionDeclaration.js +0 -41
  320. package/dist/generators/ts/_ObjectType/ObjectType_toRdfResourceFunctionDeclaration.d.ts +0 -5
  321. package/dist/generators/ts/_ObjectType/ObjectType_toStringFunctionDeclarations.d.ts +0 -4
  322. package/dist/generators/ts/_ObjectType/ObjectType_toStringFunctionDeclarations.js +0 -36
  323. package/dist/generators/ts/_ObjectType/ObjectType_valueSparqlConstructTriplesFunctionDeclaration.js +0 -11
  324. package/dist/generators/ts/_ObjectType/ObjectType_valueSparqlWherePatternsFunctionDeclaration.js +0 -13
  325. package/dist/generators/ts/_ObjectType/identifierTypeDeclarations.d.ts +0 -4
  326. package/dist/generators/ts/_ObjectType/identifierTypeDeclarations.js +0 -27
  327. package/dist/generators/ts/_snippets/snippets_LazyObject.d.ts +0 -3
  328. package/dist/generators/ts/_snippets/snippets_LazyObject.js +0 -22
  329. package/dist/generators/ts/_snippets/snippets_LazyObjectOption.d.ts +0 -3
  330. package/dist/generators/ts/_snippets/snippets_LazyObjectOption.js +0 -25
  331. package/dist/generators/ts/_snippets/snippets_LazyObjectSet.d.ts +0 -3
  332. package/dist/generators/ts/_snippets/snippets_LazyObjectSet.js +0 -40
  333. package/dist/generators/ts/_snippets/snippets_convertToArray.d.ts +0 -3
  334. package/dist/generators/ts/_snippets/snippets_convertToArray.js +0 -8
  335. package/dist/generators/ts/_snippets/snippets_convertToLazyObject.d.ts +0 -3
  336. package/dist/generators/ts/_snippets/snippets_convertToLazyObject.js +0 -15
  337. package/dist/generators/ts/_snippets/snippets_convertToLazyObjectOption.d.ts +0 -3
  338. package/dist/generators/ts/_snippets/snippets_convertToLazyObjectOption.js +0 -31
  339. package/dist/generators/ts/_snippets/snippets_convertToLazyObjectSet.d.ts +0 -3
  340. package/dist/generators/ts/_snippets/snippets_convertToLazyObjectSet.js +0 -25
  341. package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.d.ts +0 -3
  342. package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.js +0 -15
  343. package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.d.ts +0 -3
  344. package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.js +0 -23
@@ -7,113 +7,198 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { NodeKind } from "@shaclmate/shacl-ast";
8
8
  import { camelCase } from "change-case";
9
9
  import { Maybe } from "purify-ts";
10
+ import { invariant } from "ts-invariant";
10
11
  import { Memoize } from "typescript-memoize";
11
12
  import { DiscriminantProperty as _DiscriminantProperty } from "./_ObjectType/DiscriminantProperty.js";
12
13
  import { IdentifierProperty as _IdentifierProperty } from "./_ObjectType/IdentifierProperty.js";
13
- import { identifierTypeDeclarations } from "./_ObjectType/identifierTypeDeclarations.js";
14
- import { ObjectType_createFunctionDeclaration } from "./_ObjectType/ObjectType_createFunctionDeclaration.js";
15
- import { ObjectType_equalsFunctionDeclaration } from "./_ObjectType/ObjectType_equalsFunctionDeclaration.js";
16
- import { ObjectType_filterFunctionDeclaration } from "./_ObjectType/ObjectType_filterFunctionDeclaration.js";
17
- import { ObjectType_filterTypeDeclaration } from "./_ObjectType/ObjectType_filterTypeDeclaration.js";
18
- import { ObjectType_focusSparqlConstructTriplesFunctionDeclaration } from "./_ObjectType/ObjectType_focusSparqlConstructTriplesFunctionDeclaration.js";
19
- import { ObjectType_focusSparqlWherePatternsFunctionDeclaration } from "./_ObjectType/ObjectType_focusSparqlWherePatternsFunctionDeclaration.js";
20
- import { ObjectType_fromJsonFunctionDeclaration } from "./_ObjectType/ObjectType_fromJsonFunctionDeclaration.js";
21
- import { ObjectType_fromRdfResourceFunctionDeclaration } from "./_ObjectType/ObjectType_fromRdfResourceFunctionDeclaration.js";
22
- import { ObjectType_fromRdfResourceValuesFunctionDeclaration } from "./_ObjectType/ObjectType_fromRdfResourceValuesFunctionDeclaration.js";
23
- import { ObjectType_fromRdfTypeVariableStatement } from "./_ObjectType/ObjectType_fromRdfTypeVariableStatement.js";
24
- import { ObjectType_graphqlTypeVariableStatement } from "./_ObjectType/ObjectType_graphqlTypeVariableStatement.js";
25
- import { ObjectType_hashFunctionDeclarations } from "./_ObjectType/ObjectType_hashFunctionDeclarations.js";
26
- import { ObjectType_interfaceDeclaration } from "./_ObjectType/ObjectType_interfaceDeclaration.js";
14
+ import { ObjectType_createFunctionExpression } from "./_ObjectType/ObjectType_createFunctionExpression.js";
15
+ import { ObjectType_equalsFunctionExpression } from "./_ObjectType/ObjectType_equalsFunctionExpression.js";
16
+ import { ObjectType_filterFunctionExpression } from "./_ObjectType/ObjectType_filterFunctionExpression.js";
17
+ import { ObjectType_filterTypeExpression } from "./_ObjectType/ObjectType_filterTypeExpression.js";
18
+ import { ObjectType_focusSparqlConstructTriplesFunctionExpression } from "./_ObjectType/ObjectType_focusSparqlConstructTriplesFunctionExpression.js";
19
+ import { ObjectType_focusSparqlWherePatternsFunctionExpression } from "./_ObjectType/ObjectType_focusSparqlWherePatternsFunctionExpression.js";
20
+ import { ObjectType_fromJsonFunctionExpression } from "./_ObjectType/ObjectType_fromJsonFunctionExpression.js";
21
+ import { ObjectType_fromRdfResourceFunctionExpression } from "./_ObjectType/ObjectType_fromRdfResourceFunctionExpression.js";
22
+ import { ObjectType_graphqlTypeExpression } from "./_ObjectType/ObjectType_graphqlTypeExpression.js";
23
+ import { ObjectType_hashFunctionExpression } from "./_ObjectType/ObjectType_hashFunctionExpression.js";
24
+ import { ObjectType_identifierTypeDeclarations } from "./_ObjectType/ObjectType_identifierTypeDeclarations.js";
27
25
  import { ObjectType_isTypeFunctionDeclaration } from "./_ObjectType/ObjectType_isTypeFunctionDeclaration.js";
28
26
  import { ObjectType_jsonParseFunctionDeclaration } from "./_ObjectType/ObjectType_jsonParseFunctionDeclaration.js";
29
- import { ObjectType_jsonSchemaFunctionDeclaration } from "./_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.js";
30
- import { ObjectType_jsonTypeAliasDeclaration } from "./_ObjectType/ObjectType_jsonTypeAliasDeclaration.js";
31
- import { ObjectType_jsonUiSchemaFunctionDeclaration } from "./_ObjectType/ObjectType_jsonUiSchemaFunctionDeclaration.js";
27
+ import { ObjectType_jsonSchemaExpression } from "./_ObjectType/ObjectType_jsonSchemaExpression.js";
28
+ import { ObjectType_jsonTypeExpression } from "./_ObjectType/ObjectType_jsonTypeExpression.js";
29
+ import { ObjectType_jsonUiSchemaFunctionExpression } from "./_ObjectType/ObjectType_jsonUiSchemaFunctionExpression.js";
32
30
  import { ObjectType_objectSetMethodNames } from "./_ObjectType/ObjectType_objectSetMethodNames.js";
33
- import { ObjectType_schemaVariableStatement } from "./_ObjectType/ObjectType_schemaVariableStatement.js";
31
+ import { ObjectType_schemaExpression } from "./_ObjectType/ObjectType_schemaExpression.js";
32
+ import { ObjectType_schemaTypeExpression } from "./_ObjectType/ObjectType_schemaTypeExpression.js";
34
33
  import { ObjectType_sparqlConstructQueryFunctionDeclaration } from "./_ObjectType/ObjectType_sparqlConstructQueryFunctionDeclaration.js";
35
34
  import { ObjectType_sparqlConstructQueryStringFunctionDeclaration } from "./_ObjectType/ObjectType_sparqlConstructQueryStringFunctionDeclaration.js";
36
- import { ObjectType_toJsonFunctionDeclaration } from "./_ObjectType/ObjectType_toJsonFunctionDeclaration.js";
37
- import { ObjectType_toRdfResourceFunctionDeclaration } from "./_ObjectType/ObjectType_toRdfResourceFunctionDeclaration.js";
38
- import { ObjectType_toStringFunctionDeclarations } from "./_ObjectType/ObjectType_toStringFunctionDeclarations.js";
39
- import { ObjectType_valueSparqlConstructTriplesFunctionDeclaration } from "./_ObjectType/ObjectType_valueSparqlConstructTriplesFunctionDeclaration.js";
40
- import { ObjectType_valueSparqlWherePatternsFunctionDeclaration } from "./_ObjectType/ObjectType_valueSparqlWherePatternsFunctionDeclaration.js";
35
+ import { ObjectType_toJsonFunctionExpression } from "./_ObjectType/ObjectType_toJsonFunctionExpression.js";
36
+ import { ObjectType_toRdfResourceFunctionExpression } from "./_ObjectType/ObjectType_toRdfResourceFunctionExpression.js";
37
+ import { ObjectType_toStringFunctionExpression } from "./_ObjectType/ObjectType_toStringFunctionExpression.js";
38
+ import { ObjectType_toStringRecordFunctionExpression } from "./_ObjectType/ObjectType_toStringRecordFunctionExpression.js";
39
+ import { ObjectType_valueSparqlConstructTriplesFunctionExpression } from "./_ObjectType/ObjectType_valueSparqlConstructTriplesFunctionExpression.js";
40
+ import { ObjectType_valueSparqlWherePatternsFunctionExpression } from "./_ObjectType/ObjectType_valueSparqlWherePatternsFunctionExpression.js";
41
41
  import { ShaclProperty as _ShaclProperty } from "./_ObjectType/ShaclProperty.js";
42
42
  import { AbstractType } from "./AbstractType.js";
43
43
  import { code, def, joinCode } from "./ts-poet-wrapper.js";
44
+ import { tsComment } from "./tsComment.js";
44
45
  export class ObjectType extends AbstractType {
45
46
  toRdfTypes;
46
- conversionFunction = Maybe.empty();
47
+ discriminantProperty;
47
48
  extern;
48
49
  fromRdfType;
49
50
  graphqlArgs = Maybe.empty();
50
51
  identifierType;
52
+ jsTypes = [
53
+ { instanceof: "Object", typeof: "object" },
54
+ ];
51
55
  kind = "Object";
52
56
  recursive;
53
- referencesObjectType = true;
54
57
  synthetic;
55
- typeofs = ["object"];
56
58
  validationFunction = Maybe.empty();
57
- constructor({ extern, fromRdfType, identifierType, lazyAncestorObjectTypes, lazyChildObjectTypes, lazyDescendantObjectTypes, lazyDiscriminantProperty, lazyParentObjectTypes, lazyProperties, recursive, synthetic, toRdfTypes, ...superParameters }) {
59
+ constructor({ discriminantProperty, extern, fromRdfType, identifierType, lazyProperties, recursive, synthetic, toRdfTypes, ...superParameters }) {
58
60
  super(superParameters);
61
+ this.discriminantProperty = discriminantProperty;
59
62
  this.extern = extern;
60
63
  this.fromRdfType = fromRdfType;
61
64
  this.identifierType = identifierType;
62
65
  // Lazily initialize some members in getters to avoid recursive construction
63
- this.lazyAncestorObjectTypes = lazyAncestorObjectTypes;
64
- this.lazyChildObjectTypes = lazyChildObjectTypes;
65
- this.lazyDescendantObjectTypes = lazyDescendantObjectTypes;
66
- this.lazyDiscriminantProperty = lazyDiscriminantProperty;
67
- this.lazyParentObjectTypes = lazyParentObjectTypes;
68
66
  this.lazyProperties = lazyProperties;
69
67
  this.recursive = recursive;
70
68
  this.synthetic = synthetic;
71
69
  this.toRdfTypes = toRdfTypes;
72
70
  }
73
- get _discriminantProperty() {
74
- return this.lazyDiscriminantProperty(this);
75
- }
76
- get ancestorObjectTypes() {
77
- return this.lazyAncestorObjectTypes();
78
- }
79
- get childObjectTypes() {
80
- return this.lazyChildObjectTypes();
71
+ get conversionFunction() {
72
+ if (this.name.isJust()) {
73
+ return Maybe.empty();
74
+ }
75
+ return Maybe.of({
76
+ code: this.createFunction,
77
+ sourceTypes: [
78
+ {
79
+ expression: this.constructorParameters.type.expression,
80
+ jsType: {
81
+ instanceof: "Object",
82
+ typeof: "object",
83
+ },
84
+ },
85
+ ],
86
+ });
81
87
  }
82
88
  get declaration() {
83
- const alias = this.alias.extract();
84
- if (!alias) {
89
+ const name = this.name.extract();
90
+ if (!name) {
85
91
  return Maybe.empty();
86
92
  }
87
93
  const declarations = [];
88
94
  if (!this.extern) {
89
- const staticModuleDeclarations = [];
90
95
  if (this.configuration.features.has("Object.type")) {
91
- declarations.push(ObjectType_interfaceDeclaration.call(this));
96
+ declarations.push(code `\
97
+ ${this.comment
98
+ .alt(this.label)
99
+ .map(tsComment)
100
+ .orDefault("")}export type ${name} = ${this.inlineExpression};`);
101
+ }
102
+ let staticModuleDeclarations = [];
103
+ // create
104
+ if (this.configuration.features.has("Object.create")) {
105
+ staticModuleDeclarations.push(code `export const create: (${this.constructorParameters.signature}) => ${this.reusables.imports.Either}<Error, ${this.expression}> = ${ObjectType_createFunctionExpression.call(this)};`, code `export function createUnsafe(${this.constructorParameters.signature}): ${this.expression} {
106
+ return create(parameters).unsafeCoerce();
107
+ }`);
108
+ }
109
+ // equals
110
+ if (this.configuration.features.has("Object.equals")) {
111
+ staticModuleDeclarations.push(code `export const equals: (left: ${this.expression}, right: ${this.expression}) => ${this.reusables.snippets.EqualsResult} = ${ObjectType_equalsFunctionExpression.call(this)};`);
112
+ }
113
+ // Filter / filter
114
+ if (this.configuration.features.has("Object.filter")) {
115
+ staticModuleDeclarations.push(code `export type Filter = ${ObjectType_filterTypeExpression.call(this)};`);
116
+ staticModuleDeclarations.push(code `export const filter: (filter: ${this.filterType}, value: ${this.expression}) => boolean = ${ObjectType_filterFunctionExpression.call(this)};`);
117
+ }
118
+ // GraphQL
119
+ if (this.configuration.features.has("GraphQL") && !this.synthetic) {
120
+ staticModuleDeclarations.push(code `export const GraphQL = ${ObjectType_graphqlTypeExpression.call(this)};`);
121
+ }
122
+ // focusSparqlConstructTriples / focusSparqlWherePatterns
123
+ if (this.configuration.features.has("Object.SPARQL")) {
124
+ staticModuleDeclarations.push(code `export const focusSparqlConstructTriples: ${this.reusables.snippets.FocusSparqlConstructTriplesFunction}<${this.filterType}> = ${ObjectType_focusSparqlConstructTriplesFunctionExpression.call(this)};`, code `export const focusSparqlWherePatterns: ${this.reusables.snippets.FocusSparqlWherePatternsFunction}<${this.filterType}> = ${ObjectType_focusSparqlWherePatternsFunctionExpression.call(this)};`);
125
+ }
126
+ // fromJson
127
+ if (this.configuration.features.has("Object.fromJson")) {
128
+ staticModuleDeclarations.push(code `export const fromJson: (json: ${this.jsonType().expression}) => ${this.reusables.imports.Either}<Error, ${this.expression}> = ${ObjectType_fromJsonFunctionExpression.call(this)};`);
129
+ }
130
+ // fromRdfResource / fromRdfResourceValues
131
+ if (this.configuration.features.has("Object.fromRdf")) {
132
+ staticModuleDeclarations.push(code `export const _fromRdfResource: ${this.reusables.snippets._FromRdfResourceFunction}<${this.expression}> = ${ObjectType_fromRdfResourceFunctionExpression.call(this)};`, code `export const fromRdfResource = ${this.reusables.snippets.wrap_FromRdfResourceFunction}(_fromRdfResource);`, code `export const fromRdfResourceValues: ${this.reusables.snippets.FromRdfResourceValuesFunction}<${this.expression}, ${this.schemaType}> =
133
+ (values, options) => values.chainMap(value => value.toResource().chain(resource => fromRdfResource(resource, options)));`);
134
+ }
135
+ // hash
136
+ if (this.configuration.features.has("Object.hash")) {
137
+ staticModuleDeclarations.push(code `export const hash = ${ObjectType_hashFunctionExpression.call(this)};`);
138
+ }
139
+ // Identifier
140
+ if (this.configuration.features.has("Object.type")) {
141
+ staticModuleDeclarations = staticModuleDeclarations.concat(ObjectType_identifierTypeDeclarations.call(this));
142
+ }
143
+ // isType
144
+ staticModuleDeclarations = staticModuleDeclarations.concat(ObjectType_isTypeFunctionDeclaration.call(this).toList());
145
+ // type Json
146
+ if (this.configuration.features.has("Object.JSON.type")) {
147
+ staticModuleDeclarations.push(code `export type Json = ${ObjectType_jsonTypeExpression.call(this)}`);
148
+ }
149
+ // namespace Json
150
+ {
151
+ const jsonModuleDeclarations = [];
152
+ if (this.configuration.features.has("Object.JSON.parse")) {
153
+ jsonModuleDeclarations.push(ObjectType_jsonParseFunctionDeclaration.call(this));
154
+ }
155
+ if (this.configuration.features.has("Object.JSON.schema")) {
156
+ jsonModuleDeclarations.push(code `export function schema() { return ${ObjectType_jsonSchemaExpression.call(this)} satisfies ${this.reusables.imports.z}.ZodType<Json>; }`);
157
+ }
158
+ if (this.configuration.features.has("Object.JSON.uiSchema")) {
159
+ jsonModuleDeclarations.push(code `export const uiSchema = ${ObjectType_jsonUiSchemaFunctionExpression.call(this)};`);
160
+ }
161
+ if (jsonModuleDeclarations.length > 0) {
162
+ staticModuleDeclarations.push(code `export namespace Json { ${joinCode(jsonModuleDeclarations, { on: "\n\n" })} }`);
163
+ }
164
+ }
165
+ // schema / Schema
166
+ if (this.configuration.features.has("Object.schema")) {
167
+ staticModuleDeclarations.push(code `export const schema = ${ObjectType_schemaExpression.call(this)};`, code `export type Schema = typeof schema;`);
168
+ }
169
+ // sparqlConstructQuery / sparqlConstructQueryString
170
+ if (this.configuration.features.has("Object.SPARQL")) {
171
+ staticModuleDeclarations.push(ObjectType_sparqlConstructQueryFunctionDeclaration.call({
172
+ name,
173
+ configuration: this.configuration,
174
+ filterType: this.filterType,
175
+ reusables: this.reusables,
176
+ }), ObjectType_sparqlConstructQueryStringFunctionDeclaration.call({
177
+ name,
178
+ configuration: this.configuration,
179
+ filterType: this.filterType,
180
+ reusables: this.reusables,
181
+ }));
182
+ }
183
+ // toJson
184
+ if (this.configuration.features.has("Object.toJson")) {
185
+ staticModuleDeclarations.push(code `export const toJson: (${this.thisVariable}: ${this.expression}) => ${this.jsonType().expression} = ${ObjectType_toJsonFunctionExpression.call(this)};`);
186
+ }
187
+ // toRdfResource
188
+ if (this.configuration.features.has("Object.toRdf")) {
189
+ staticModuleDeclarations.push(code `export const _toRdfResource: ${this.reusables.snippets._ToRdfResourceFunction}<${this.identifierTypeAlias}, ${this.expression}> = ${ObjectType_toRdfResourceFunctionExpression.call(this)};`, code `export const toRdfResource = ${this.reusables.snippets.wrap_ToRdfResourceFunction}(_toRdfResource);`);
190
+ }
191
+ // toString / toStringRecord
192
+ if (this.configuration.features.has("Object.toString")) {
193
+ staticModuleDeclarations.push(code `export const ${this.configuration.syntheticNamePrefix}toString: (${this.thisVariable}: ${this.expression}) => string = ${ObjectType_toStringFunctionExpression.call(this)};`, code `export const toStringRecord: (${this.thisVariable}: ${this.expression}) => Record<string, string> = ${ObjectType_toStringRecordFunctionExpression.call(this)};`);
194
+ }
195
+ // valueSparqlConstructTriples / valueSparqlWherePatterns
196
+ if (this.configuration.features.has("Object.SPARQL")) {
197
+ staticModuleDeclarations.push(code `export const valueSparqlConstructTriples: ${this.reusables.snippets.ValueSparqlConstructTriplesFunction}<${this.filterType}, ${this.schemaType}> = ${ObjectType_valueSparqlConstructTriplesFunctionExpression.call(this)};`, code `export const valueSparqlWherePatterns: ${this.reusables.snippets.ValueSparqlWherePatternsFunction}<${this.filterType}, ${this.schemaType}> = ${ObjectType_valueSparqlWherePatternsFunctionExpression.call(this)};`);
92
198
  }
93
- staticModuleDeclarations.push(...ObjectType_createFunctionDeclaration.call(this).toList(), ...ObjectType_equalsFunctionDeclaration.call(this).toList(), ...ObjectType_hashFunctionDeclarations.call(this));
94
- const jsonModuleDeclarations = [
95
- ...ObjectType_jsonParseFunctionDeclaration.call(this).toList(),
96
- ...ObjectType_jsonSchemaFunctionDeclaration.call(this).toList(),
97
- ...ObjectType_jsonUiSchemaFunctionDeclaration.call(this).toList(),
98
- ];
99
- staticModuleDeclarations.push(...ObjectType_graphqlTypeVariableStatement.call(this).toList(), ...identifierTypeDeclarations.call(this), ...ObjectType_jsonTypeAliasDeclaration.call(this).toList(), ...(jsonModuleDeclarations.length > 0
100
- ? [
101
- code `export namespace Json { ${joinCode(jsonModuleDeclarations, { on: "\n\n" })} }`,
102
- ]
103
- : []), ...ObjectType_filterFunctionDeclaration.call(this).toList(), ...ObjectType_filterTypeDeclaration.call(this).toList(), ...ObjectType_focusSparqlConstructTriplesFunctionDeclaration.call(this).toList(), ...ObjectType_focusSparqlWherePatternsFunctionDeclaration.call(this).toList(), ...ObjectType_fromJsonFunctionDeclaration.call(this).toList(), ...ObjectType_fromRdfResourceFunctionDeclaration.call(this).toList(), ...ObjectType_fromRdfResourceValuesFunctionDeclaration.call(this).toList(), ...ObjectType_fromRdfTypeVariableStatement.call(this).toList(), ...ObjectType_isTypeFunctionDeclaration.call(this).toList(), ...ObjectType_schemaVariableStatement.call(this).toList(), ...ObjectType_sparqlConstructQueryFunctionDeclaration.call({
104
- alias,
105
- configuration: this.configuration,
106
- filterType: this.filterType,
107
- reusables: this.reusables,
108
- }).toList(), ...ObjectType_sparqlConstructQueryStringFunctionDeclaration.call({
109
- alias,
110
- configuration: this.configuration,
111
- filterType: this.filterType,
112
- reusables: this.reusables,
113
- }).toList(), ...ObjectType_toJsonFunctionDeclaration.call(this).toList(), ...ObjectType_toRdfResourceFunctionDeclaration.call(this).toList(), ...ObjectType_toStringFunctionDeclarations.call(this), ...ObjectType_valueSparqlConstructTriplesFunctionDeclaration.call(this).toList(), ...ObjectType_valueSparqlWherePatternsFunctionDeclaration.call(this).toList());
114
199
  if (staticModuleDeclarations.length > 0) {
115
200
  declarations.push(code `\
116
- export namespace ${def(alias)} {
201
+ export namespace ${def(name)} {
117
202
  ${joinCode(staticModuleDeclarations, { on: "\n\n" })}
118
203
  }`);
119
204
  }
@@ -123,165 +208,207 @@ ${joinCode(staticModuleDeclarations, { on: "\n\n" })}
123
208
  }
124
209
  return Maybe.of(joinCode(declarations, { on: "\n\n" }));
125
210
  }
126
- get descendantFromRdfTypeVariables() {
127
- return this.descendantObjectTypes.flatMap((descendantObjectType) => descendantObjectType.fromRdfTypeVariable.toList());
128
- }
129
- get descendantFromRdfTypes() {
130
- return this.descendantObjectTypes.flatMap((descendantObjectType) => descendantObjectType.fromRdfType.toList());
131
- }
132
- get descendantObjectTypes() {
133
- return this.lazyDescendantObjectTypes();
134
- }
135
- get discriminantProperty() {
136
- return Maybe.of({
137
- jsonName: this._discriminantProperty.jsonName,
138
- name: this._discriminantProperty.name,
139
- ownValues: this._discriminantProperty.type.ownValues,
140
- descendantValues: this._discriminantProperty.type.descendantValues,
141
- });
142
- }
143
- get discriminantValue() {
144
- return this.alias.unsafeCoerce();
145
- }
146
211
  get equalsFunction() {
147
- return code `${this.alias.unsafeCoerce()}.equals`;
212
+ return this.name
213
+ .map((name) => code `${name}.equals`)
214
+ .orDefaultLazy(() => ObjectType_equalsFunctionExpression.call(this));
148
215
  }
149
216
  get expression() {
150
- return code `${this.alias.unsafeCoerce()}`;
217
+ return this.name
218
+ .map((name) => code `${name}`)
219
+ .orDefaultLazy(() => this.inlineExpression);
151
220
  }
152
221
  get filterFunction() {
153
- return code `${this.alias.unsafeCoerce()}.filter`;
222
+ return this.name
223
+ .map((name) => code `${name}.filter`)
224
+ .orDefaultLazy(() => ObjectType_filterFunctionExpression.call(this));
154
225
  }
155
226
  get filterType() {
156
- return code `${this.alias.unsafeCoerce()}.Filter`;
227
+ return this.name
228
+ .map((name) => code `${name}.Filter`)
229
+ .orDefaultLazy(() => ObjectType_filterTypeExpression.call(this));
230
+ }
231
+ get fromRdfResourceValuesFunction() {
232
+ return this.name
233
+ .map((name) => code `${name}.fromRdfResourceValues`)
234
+ .orDefaultLazy(() => code `((values, options) => values.chainMap(value => value.toResource().chain(resource => ${ObjectType_fromRdfResourceFunctionExpression.call(this)}(resource, options))))`);
157
235
  }
158
236
  get fromRdfTypeVariable() {
159
- return this.fromRdfType.map(() => code `${this.alias.unsafeCoerce()}.fromRdfType`);
237
+ return this.fromRdfType.map((fromRdfType) => this.name
238
+ .map((name) => code `${name}.schema.fromRdfType`)
239
+ .orDefaultLazy(() => this.rdfjsTermExpression(fromRdfType)));
160
240
  }
161
241
  get graphqlType() {
162
- return new AbstractType.GraphqlType(code `${this.alias.unsafeCoerce()}.GraphQL`, this.reusables);
242
+ return new AbstractType.GraphqlType(this.name
243
+ .map((name) => code `${name}.GraphQL`)
244
+ .orDefaultLazy(() => ObjectType_graphqlTypeExpression.call(this)), this.reusables);
163
245
  }
164
246
  get hashFunction() {
165
- return code `${this.alias.unsafeCoerce()}.hash`;
247
+ return this.name
248
+ .map((name) => code `${name}.hash`)
249
+ .orDefaultLazy(() => ObjectType_hashFunctionExpression.call(this));
166
250
  }
167
251
  get identifierTypeAlias() {
168
- return code `${this.alias.unsafeCoerce()}.Identifier`;
252
+ return code `${this.name.unsafeCoerce()}.Identifier`;
169
253
  }
170
254
  get mutable() {
171
255
  return this.properties.some((property) => property.mutable);
172
256
  }
173
257
  get objectSetMethodNames() {
174
258
  return ObjectType_objectSetMethodNames.call({
175
- alias: this.alias.unsafeCoerce(),
259
+ name: this.name.unsafeCoerce(),
176
260
  configuration: this.configuration,
177
261
  });
178
262
  }
179
- get parentObjectTypes() {
180
- return this.lazyParentObjectTypes();
181
- }
182
263
  get properties() {
183
264
  const properties = this.lazyProperties(this);
184
- const propertyNames = new Set();
185
- for (const property of properties) {
186
- if (propertyNames.has(property.name)) {
187
- throw new Error(`duplicate property '${property.name}'`);
188
- }
189
- }
265
+ invariant(properties.length > 0, `${this.name.extract()}: empty properties`);
190
266
  return properties;
191
267
  }
268
+ get referencesNamedType() {
269
+ return (this.name.isJust() ||
270
+ this.properties.some((property) => {
271
+ switch (property.kind) {
272
+ case "Identifier":
273
+ case "Shacl":
274
+ return property.type.referencesNamedType;
275
+ default:
276
+ return false;
277
+ }
278
+ }));
279
+ }
192
280
  get schema() {
193
- return code `${this.alias.unsafeCoerce()}.schema`;
281
+ return this.name
282
+ .map((name) => code `${name}.schema`)
283
+ .orDefaultLazy(() => ObjectType_schemaExpression.call(this));
194
284
  }
195
285
  get schemaType() {
196
- return code `typeof ${this.schema}`;
286
+ return this.name
287
+ .map((name) => code `${name}.Schema`)
288
+ .orDefaultLazy(() => ObjectType_schemaTypeExpression.call(this));
197
289
  }
198
290
  get toRdfResourceValueTypes() {
199
291
  return new Set([...this.identifierType.nodeKinds].map(NodeKind.toTermType));
200
292
  }
201
293
  get toRdfjsResourceType() {
202
- if (this.parentObjectTypes.length > 0) {
203
- return this.parentObjectTypes[0].toRdfjsResourceType;
204
- }
205
294
  return code `${this.reusables.imports.Resource}${this.identifierType.kind === "Iri" ? code `<${this.reusables.imports.NamedNode}>` : ""}`;
206
295
  }
207
296
  get valueSparqlConstructTriplesFunction() {
208
- return code `${this.alias.unsafeCoerce()}.valueSparqlConstructTriples`;
297
+ return this.name
298
+ .map((name) => code `${name}.valueSparqlConstructTriples`)
299
+ .orDefaultLazy(() => ObjectType_valueSparqlConstructTriplesFunctionExpression.call(this));
209
300
  }
210
301
  get valueSparqlWherePatternsFunction() {
211
- return code `${this.alias.unsafeCoerce()}.valueSparqlWherePatterns`;
302
+ return this.name
303
+ .map((name) => code `${name}.valueSparqlWherePatterns`)
304
+ .orDefaultLazy(() => ObjectType_valueSparqlWherePatternsFunctionExpression.call(this));
305
+ }
306
+ get constructorParameters() {
307
+ let hasQuestionToken = true;
308
+ const propertySignatures = [];
309
+ for (const property of this.properties) {
310
+ property.constructorParameter.ifJust((propertyConstructorParameter) => {
311
+ hasQuestionToken =
312
+ hasQuestionToken && propertyConstructorParameter.hasQuestionToken;
313
+ propertySignatures.push(propertyConstructorParameter.signature);
314
+ });
315
+ }
316
+ invariant(propertySignatures.length > 0);
317
+ const typeExpression = code `{ ${joinCode(propertySignatures)} }`;
318
+ return {
319
+ hasQuestionToken,
320
+ signature: code `parameters${hasQuestionToken ? "?" : ""}: ${typeExpression}`,
321
+ type: {
322
+ expression: typeExpression,
323
+ },
324
+ variable: "parameters",
325
+ };
326
+ }
327
+ get createFunction() {
328
+ return this.name
329
+ .map((name) => code `${name}.create`)
330
+ .orDefaultLazy(() => ObjectType_createFunctionExpression.call(this));
212
331
  }
213
332
  get thisVariable() {
214
- return code `_${camelCase(this.alias.unsafeCoerce())}`;
333
+ return this.name
334
+ .map((name) => code `_${camelCase(name)}`)
335
+ .orDefault(code `_object`);
336
+ }
337
+ get toJsonFunction() {
338
+ return this.name
339
+ .map((name) => code `${name}.toJson`)
340
+ .orDefaultLazy(() => ObjectType_toJsonFunctionExpression.call(this));
341
+ }
342
+ get toStringFunction() {
343
+ return this.name
344
+ .map((name) => code `${name}.${this.configuration.syntheticNamePrefix}toString`)
345
+ .orDefaultLazy(() => ObjectType_toStringFunctionExpression.call(this));
346
+ }
347
+ get inlineExpression() {
348
+ return code `{ ${joinCode(this.properties.map((property) => property.declaration), { on: "\n\n" })} }`;
215
349
  }
216
350
  fromJsonExpression({ variables, }) {
217
351
  // Assumes the JSON object has been recursively validated already.
218
- return code `${this.alias.unsafeCoerce()}.fromJson(${variables.value})`;
219
- }
220
- fromRdfResourceValuesExpression({ variables, }) {
221
- const { resourceValues: resourceValuesVariable, ...fromRdfResourceValuesOptionsTemp } = variables;
222
- const fromRdfResourceValuesOptions = fromRdfResourceValuesOptionsTemp;
223
- if (!this.configuration.features.has("ObjectSet")) {
224
- delete fromRdfResourceValuesOptions["objectSet"];
225
- }
226
- return code `${this.alias.unsafeCoerce()}.fromRdfResourceValues(${resourceValuesVariable}, ${fromRdfResourceValuesOptions})`;
352
+ return code `${this.name.map((name) => code `${name}.fromJson`).orDefaultLazy(() => ObjectType_fromJsonFunctionExpression.call(this))}(${variables.value})`;
227
353
  }
228
354
  graphqlResolveExpression({ variables, }) {
229
355
  return variables.value;
230
356
  }
231
357
  jsonSchema({ context, }) {
232
- let expression = code `${this.alias.unsafeCoerce()}.Json.schema()`;
233
- if (context === "property" &&
234
- this.properties.some((property) => property.recursive)) {
235
- expression = code `${this.reusables.imports.z}.lazy((): ${this.reusables.imports.z}.ZodType<${this.alias.unsafeCoerce()}.Json> => ${expression})`;
236
- }
237
- return expression;
358
+ return this.name
359
+ .map((name) => {
360
+ let expression = code `${name}.Json.schema()`;
361
+ if (context === "property" &&
362
+ this.properties.some((property) => property.recursive)) {
363
+ expression = code `${this.reusables.imports.z}.lazy((): ${this.reusables.imports.z}.ZodType<${name}.Json> => ${expression})`;
364
+ }
365
+ return expression;
366
+ })
367
+ .orDefaultLazy(() => ObjectType_jsonSchemaExpression.call(this));
238
368
  }
239
369
  jsonType() {
240
- return new AbstractType.JsonType(code `${this.alias.unsafeCoerce()}.Json`);
370
+ return new AbstractType.JsonType(this.name
371
+ .map((name) => code `${name}.Json`)
372
+ .orDefaultLazy(() => ObjectType_jsonTypeExpression.call(this)));
241
373
  }
242
374
  jsonUiSchemaElement({ variables, }) {
243
- return Maybe.of(code `${this.alias.unsafeCoerce()}.Json.uiSchema({ scopePrefix: ${variables.scopePrefix} })`);
375
+ return Maybe.of(code `${this.name
376
+ .map((name) => code `${name}.Json.uiSchema`)
377
+ .orDefaultLazy(() => ObjectType_jsonUiSchemaFunctionExpression.call(this))}({ scopePrefix: ${variables.scopePrefix} })`);
244
378
  }
245
379
  toJsonExpression({ variables, }) {
246
- return code `${this.alias.unsafeCoerce()}.toJson(${variables.value})`;
380
+ const toJsonFunction = this.name
381
+ .map((name) => code `${name}.toJson`)
382
+ .orDefaultLazy(() => ObjectType_toJsonFunctionExpression.call(this));
383
+ return code `${toJsonFunction}(${variables.value})`;
247
384
  }
248
385
  toRdfResourceValuesExpression({ variables, }) {
249
- return code `[${this.alias.unsafeCoerce()}.toRdfResource(${variables.value}, { graph: ${variables.graph}, resourceSet: ${variables.resourceSet} }).identifier]`;
386
+ const toRdfResourceFunction = this.name
387
+ .map((name) => code `${name}.toRdfResource`)
388
+ .orDefaultLazy(() => code `${this.reusables.snippets.wrap_ToRdfResourceFunction}<${this.identifierType.expression}, ${this.expression}>(${ObjectType_toRdfResourceFunctionExpression.call(this)})`);
389
+ return code `[${toRdfResourceFunction}(${variables.value}, { graph: ${variables.graph}, resourceSet: ${variables.resourceSet} }).identifier]`;
250
390
  }
251
391
  toStringExpression({ variables, }) {
252
- return code `${this.alias.unsafeCoerce()}.${this.configuration.syntheticNamePrefix}toString(${variables.value})`;
392
+ return this.name
393
+ .map((name) => code `${name}.${this.configuration.syntheticNamePrefix}toString(${variables.value})`)
394
+ .orDefaultLazy(() => code `JSON.stringify(${this.toStringRecordExpression({ variables })})`);
395
+ }
396
+ toStringRecordExpression({ variables, }) {
397
+ return code `${this.reusables.snippets.compactRecord}({${joinCode(this.properties.flatMap((property) => property
398
+ .toStringInitializer({
399
+ variables: {
400
+ value: property.accessExpression({
401
+ variables: { object: variables.value },
402
+ }),
403
+ },
404
+ })
405
+ .toList()), { on: "," })}})`;
253
406
  }
254
- lazyAncestorObjectTypes;
255
- lazyChildObjectTypes;
256
- lazyDescendantObjectTypes;
257
- lazyDiscriminantProperty;
258
- lazyParentObjectTypes;
259
407
  lazyProperties;
260
408
  }
261
409
  __decorate([
262
410
  Memoize()
263
- ], ObjectType.prototype, "_discriminantProperty", null);
264
- __decorate([
265
- Memoize()
266
- ], ObjectType.prototype, "ancestorObjectTypes", null);
267
- __decorate([
268
- Memoize()
269
- ], ObjectType.prototype, "childObjectTypes", null);
270
- __decorate([
271
- Memoize()
272
- ], ObjectType.prototype, "descendantFromRdfTypeVariables", null);
273
- __decorate([
274
- Memoize()
275
- ], ObjectType.prototype, "descendantFromRdfTypes", null);
276
- __decorate([
277
- Memoize()
278
- ], ObjectType.prototype, "descendantObjectTypes", null);
279
- __decorate([
280
- Memoize()
281
- ], ObjectType.prototype, "discriminantProperty", null);
282
- __decorate([
283
- Memoize()
284
- ], ObjectType.prototype, "discriminantValue", null);
411
+ ], ObjectType.prototype, "conversionFunction", null);
285
412
  __decorate([
286
413
  Memoize()
287
414
  ], ObjectType.prototype, "equalsFunction", null);
@@ -294,6 +421,9 @@ __decorate([
294
421
  __decorate([
295
422
  Memoize()
296
423
  ], ObjectType.prototype, "filterType", null);
424
+ __decorate([
425
+ Memoize()
426
+ ], ObjectType.prototype, "fromRdfResourceValuesFunction", null);
297
427
  __decorate([
298
428
  Memoize()
299
429
  ], ObjectType.prototype, "fromRdfTypeVariable", null);
@@ -314,10 +444,10 @@ __decorate([
314
444
  ], ObjectType.prototype, "objectSetMethodNames", null);
315
445
  __decorate([
316
446
  Memoize()
317
- ], ObjectType.prototype, "parentObjectTypes", null);
447
+ ], ObjectType.prototype, "properties", null);
318
448
  __decorate([
319
449
  Memoize()
320
- ], ObjectType.prototype, "properties", null);
450
+ ], ObjectType.prototype, "referencesNamedType", null);
321
451
  __decorate([
322
452
  Memoize()
323
453
  ], ObjectType.prototype, "schema", null);
@@ -336,9 +466,21 @@ __decorate([
336
466
  __decorate([
337
467
  Memoize()
338
468
  ], ObjectType.prototype, "valueSparqlWherePatternsFunction", null);
469
+ __decorate([
470
+ Memoize()
471
+ ], ObjectType.prototype, "constructorParameters", null);
472
+ __decorate([
473
+ Memoize()
474
+ ], ObjectType.prototype, "createFunction", null);
339
475
  __decorate([
340
476
  Memoize()
341
477
  ], ObjectType.prototype, "thisVariable", null);
478
+ __decorate([
479
+ Memoize()
480
+ ], ObjectType.prototype, "toJsonFunction", null);
481
+ __decorate([
482
+ Memoize()
483
+ ], ObjectType.prototype, "toStringFunction", null);
342
484
  __decorate([
343
485
  Memoize()
344
486
  ], ObjectType.prototype, "jsonType", null);