@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
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from "ts-log";
2
- import * as ast from "../../ast/index.js";
2
+ import type * as ast from "../../ast/index.js";
3
3
  import type { Generator } from "../Generator.js";
4
4
  export declare class ZodGenerator implements Generator {
5
5
  private readonly logger;
@@ -1,6 +1,5 @@
1
- import * as ast from "../../ast/index.js";
2
- import { ObjectType_jsonSchemaFunctionDeclaration } from "./_ObjectType/ObjectType_jsonSchemaFunctionDeclaration.js";
3
- import { ObjectType_jsonTypeAliasDeclaration } from "./_ObjectType/ObjectType_jsonTypeAliasDeclaration.js";
1
+ import { ObjectType_jsonSchemaExpression } from "./_ObjectType/ObjectType_jsonSchemaExpression.js";
2
+ import { ObjectType_jsonTypeExpression } from "./_ObjectType/ObjectType_jsonTypeExpression.js";
4
3
  import { Reusables } from "./Reusables.js";
5
4
  import { TsGenerator } from "./TsGenerator.js";
6
5
  import { TypeFactory } from "./TypeFactory.js";
@@ -19,24 +18,40 @@ export class ZodGenerator {
19
18
  reusables,
20
19
  });
21
20
  const declarations = [];
22
- for (const namedObjectType of ast.ObjectType.toposort(ast_.namedObjectTypes).map((astObjectType) => typeFactory.createObjectType(astObjectType))) {
23
- declarations.push(code `\
24
- export namespace ${namedObjectType.alias.unsafeCoerce()} {
25
- ${joinCode(ObjectType_jsonTypeAliasDeclaration.call(namedObjectType).toList())}
21
+ for (const astNamedType of ast_.namedTypes) {
22
+ switch (astNamedType.kind) {
23
+ case "Struct": {
24
+ const tsNamedObjectType = typeFactory.createObjectType(astNamedType);
25
+ declarations.push(code `\
26
+ export namespace ${tsNamedObjectType.name.unsafeCoerce()} {
27
+ export type Json = ${ObjectType_jsonTypeExpression.call(tsNamedObjectType)};
26
28
 
27
29
  export namespace Json {
28
- ${joinCode(ObjectType_jsonSchemaFunctionDeclaration.call(namedObjectType).toList())}
30
+ export function schema() {
31
+ return ${ObjectType_jsonSchemaExpression.call(tsNamedObjectType)};
32
+ }
29
33
  }
30
34
  }`);
31
- }
32
- for (const astNamedUnionType of ast_.namedUnionTypes.map((astNamedUnionType) => typeFactory.createUnionType(astNamedUnionType))) {
33
- declarations.push(code `\
34
- export namespace ${astNamedUnionType.alias.unsafeCoerce()} {
35
- ${astNamedUnionType.jsonTypeAliasDeclaration}
35
+ break;
36
+ }
37
+ case "Union": {
38
+ const tsNamedUnionType = typeFactory.createUnionType(astNamedType);
39
+ declarations.push(code `\
40
+ export namespace ${tsNamedUnionType.name.unsafeCoerce()} {
41
+ ${tsNamedUnionType.jsonTypeAliasDeclaration}
36
42
  export namespace Json {
37
- ${astNamedUnionType.jsonSchemaFunctionDeclaration}
43
+ ${tsNamedUnionType.jsonSchemaFunctionDeclaration}
38
44
  }
39
45
  }`);
46
+ break;
47
+ }
48
+ default: {
49
+ const type = typeFactory.createType(astNamedType);
50
+ type.declaration.ifJust((declaration) => {
51
+ declarations.push(declaration);
52
+ });
53
+ }
54
+ }
40
55
  }
41
56
  declarations.splice(0, 0, joinCode(reusables.snippets.ifUsed, { on: "\n\n" }));
42
57
  return joinCode(declarations, { on: "\n\n" }).toString({});
@@ -1,6 +1,5 @@
1
- import { Maybe } from "purify-ts";
1
+ import type { Maybe } from "purify-ts";
2
2
  import type { Logger } from "ts-log";
3
- import type { ObjectType } from "../ObjectType.js";
4
3
  import type { Reusables } from "../Reusables.js";
5
4
  import { rdfjsTermExpression } from "../rdfjsTermExpression.js";
6
5
  import type { TsGenerator } from "../TsGenerator.js";
@@ -9,18 +8,23 @@ import { type Code } from "../ts-poet-wrapper.js";
9
8
  export declare abstract class AbstractProperty<TypeT extends Pick<Type, "expression" | "filterFunction" | "mutable" | "schema">> {
10
9
  protected readonly configuration: TsGenerator.Configuration;
11
10
  protected readonly logger: Logger;
12
- protected readonly objectType: ObjectType;
11
+ protected readonly objectType: {
12
+ readonly name: Maybe<string>;
13
+ };
13
14
  protected readonly reusables: Reusables;
14
15
  /**
15
16
  * Optional parameter to include in the parameters object of constructor function.
16
17
  */
17
- abstract readonly constructorParameter: Maybe<Code>;
18
+ abstract readonly constructorParameter: Maybe<{
19
+ readonly hasQuestionToken: boolean;
20
+ readonly signature: Code;
21
+ }>;
18
22
  /**
19
- * Property declaration to include in a class or interface declaration of the object type.
23
+ * Property declaration to include in the type declaration of the ObjectType.
20
24
  */
21
25
  abstract readonly declaration: Code;
22
26
  /**
23
- * Optional property in the object type's filter.
27
+ * Optional property in the ObjectType's filter.
24
28
  */
25
29
  abstract readonly filterProperty: Maybe<{
26
30
  readonly name: string;
@@ -38,6 +42,12 @@ export declare abstract class AbstractProperty<TypeT extends Pick<Type, "express
38
42
  resolve: Code;
39
43
  type: Code;
40
44
  }>;
45
+ /**
46
+ * Parameter to include in the expression of the ObjectType passed to its hash function.
47
+ *
48
+ * Only specified if different from declaration.
49
+ */
50
+ abstract readonly hashFunctionParameter: Code;
41
51
  /**
42
52
  * zod object key: schema.
43
53
  */
@@ -65,6 +75,14 @@ export declare abstract class AbstractProperty<TypeT extends Pick<Type, "express
65
75
  * Is the property's type the ObjectType or does its type indirectly reference the ObjectType?
66
76
  */
67
77
  abstract readonly recursive: boolean;
78
+ /**
79
+ * TypeScript object describing this type, for runtime use.
80
+ */
81
+ abstract readonly schema: Maybe<Code>;
82
+ /**
83
+ * TypeScript type describing .schema.
84
+ */
85
+ abstract readonly schemaType: Maybe<Code>;
68
86
  /**
69
87
  * Property type
70
88
  . */
@@ -73,18 +91,12 @@ export declare abstract class AbstractProperty<TypeT extends Pick<Type, "express
73
91
  configuration: TsGenerator.Configuration;
74
92
  logger: Logger;
75
93
  name: string;
76
- objectType: ObjectType;
94
+ objectType: {
95
+ readonly name: Maybe<string>;
96
+ };
77
97
  reusables: Reusables;
78
98
  type: TypeT;
79
99
  });
80
- /**
81
- * TypeScript object describing this type, for runtime use.
82
- */
83
- get schema(): Maybe<Code>;
84
- /**
85
- * Helper to compose the result of schema along the type hierarchy.
86
- */
87
- protected get schemaInitializers(): readonly Code[];
88
100
  /**
89
101
  * Expression to access the value of this property on an object instance. May evaluate a thunk.
90
102
  */
@@ -115,10 +127,10 @@ export declare abstract class AbstractProperty<TypeT extends Pick<Type, "express
115
127
  abstract fromRdfResourceValuesInitializer(parameters: {
116
128
  variables: {
117
129
  context: Code;
130
+ focusResource: Code;
118
131
  graph: Code;
119
132
  objectSet: Code;
120
133
  preferredLanguages: Code;
121
- resource: Code;
122
134
  };
123
135
  }): Maybe<Code>;
124
136
  /**
@@ -1,13 +1,5 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Maybe } from "purify-ts";
8
- import { Memoize } from "typescript-memoize";
9
1
  import { rdfjsTermExpression } from "../rdfjsTermExpression.js";
10
- import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
2
+ import { code } from "../ts-poet-wrapper.js";
11
3
  export class AbstractProperty {
12
4
  configuration;
13
5
  logger;
@@ -34,18 +26,6 @@ export class AbstractProperty {
34
26
  snippets: this.reusables.snippets,
35
27
  });
36
28
  }
37
- /**
38
- * TypeScript object describing this type, for runtime use.
39
- */
40
- get schema() {
41
- return Maybe.of(code `{ ${joinCode(this.schemaInitializers.concat(), { on: ", " })} }`);
42
- }
43
- /**
44
- * Helper to compose the result of schema along the type hierarchy.
45
- */
46
- get schemaInitializers() {
47
- return [code `kind: ${literalOf(this.kind)}`];
48
- }
49
29
  /**
50
30
  * Expression to access the value of this property on an object instance. May evaluate a thunk.
51
31
  */
@@ -54,7 +34,4 @@ export class AbstractProperty {
54
34
  }
55
35
  rdfjsTermExpression;
56
36
  }
57
- __decorate([
58
- Memoize()
59
- ], AbstractProperty.prototype, "schema", null);
60
37
  //# sourceMappingURL=AbstractProperty.js.map
@@ -2,20 +2,24 @@ import { Maybe } from "purify-ts";
2
2
  import { type Code } from "../ts-poet-wrapper.js";
3
3
  import { AbstractProperty } from "./AbstractProperty.js";
4
4
  export declare class DiscriminantProperty extends AbstractProperty<DiscriminantProperty.Type> {
5
- readonly constructorParameter: Maybe<Code>;
5
+ readonly constructorParameter: AbstractProperty<DiscriminantProperty.Type>["constructorParameter"];
6
+ readonly declaration: Code;
6
7
  readonly filterProperty: AbstractProperty<DiscriminantProperty.Type>["filterProperty"];
7
8
  readonly graphqlField: AbstractProperty<DiscriminantProperty.Type>["graphqlField"];
9
+ readonly hashFunctionParameter: Code;
10
+ readonly jsonName = "@type";
11
+ readonly jsonSignature: Maybe<Code>;
8
12
  readonly kind = "Discriminant";
9
13
  readonly mutable = false;
10
14
  readonly recursive = false;
11
- constructor({ type, ...superParameters }: {
12
- type: DiscriminantProperty.Type;
13
- } & ConstructorParameters<typeof AbstractProperty>[0]);
14
- get declaration(): Code;
15
- get jsonName(): string;
15
+ readonly schema: Maybe<Code>;
16
+ readonly schemaType: Maybe<Code>;
17
+ readonly value: string;
18
+ constructor({ value, ...superParameters }: {
19
+ value: string;
20
+ } & Omit<ConstructorParameters<typeof AbstractProperty>[0], "type">);
16
21
  get jsonSchema(): AbstractProperty<DiscriminantProperty.Type>["jsonSchema"];
17
- get jsonSignature(): Maybe<Code>;
18
- get schema(): Maybe<Code>;
22
+ get values(): readonly string[];
19
23
  private get constValue();
20
24
  constructorInitializer(): Maybe<Code>;
21
25
  fromJsonInitializer(): Maybe<Code>;
@@ -30,18 +34,12 @@ export declare class DiscriminantProperty extends AbstractProperty<DiscriminantP
30
34
  }
31
35
  export declare namespace DiscriminantProperty {
32
36
  class Type {
37
+ readonly value: string;
33
38
  readonly filterFunction: Code;
34
- readonly mutable: boolean;
35
- readonly descendantValues: readonly string[];
36
- readonly ownValues: readonly string[];
37
- constructor({ descendantValues, mutable, ownValues, }: {
38
- descendantValues: readonly string[];
39
- mutable: boolean;
40
- ownValues: readonly string[];
41
- });
39
+ readonly mutable = false;
40
+ constructor(value: string);
42
41
  get expression(): Code;
43
42
  get schema(): Code;
44
- get values(): string[];
45
43
  }
46
44
  }
47
45
  //# sourceMappingURL=DiscriminantProperty.d.ts.map
@@ -6,43 +6,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Maybe } from "purify-ts";
8
8
  import { Memoize } from "typescript-memoize";
9
- import { arrayOf, code, literalOf } from "../ts-poet-wrapper.js";
9
+ import { code, literalOf } from "../ts-poet-wrapper.js";
10
10
  import { AbstractProperty } from "./AbstractProperty.js";
11
11
  export class DiscriminantProperty extends AbstractProperty {
12
12
  constructorParameter = Maybe.empty();
13
+ declaration = code `readonly ${this.name}: ${this.type.expression};`;
13
14
  filterProperty = Maybe.empty();
14
15
  graphqlField = Maybe.empty();
16
+ hashFunctionParameter = code `readonly ${this.name}?: ${this.type.expression};`;
17
+ jsonName = "@type";
18
+ jsonSignature = Maybe.of(code `readonly "${this.jsonName}": ${this.type.expression}`);
15
19
  kind = "Discriminant";
16
20
  mutable = false;
17
21
  recursive = false;
18
- constructor({ type, ...superParameters }) {
19
- super({ ...superParameters, type });
20
- }
21
- get declaration() {
22
- return code `readonly ${this.name}: ${this.type.expression};`;
23
- }
24
- get jsonName() {
25
- return "@type";
22
+ schema = Maybe.empty();
23
+ schemaType = Maybe.empty();
24
+ value;
25
+ constructor({ value, ...superParameters }) {
26
+ super({ ...superParameters, type: new DiscriminantProperty.Type(value) });
27
+ this.value = value;
26
28
  }
27
29
  get jsonSchema() {
28
30
  return Maybe.of({
29
31
  key: this.jsonName,
30
- schema: this.type.values.length > 1
31
- ? code `${this.reusables.imports.z}.enum(${arrayOf(...this.type.values)})`
32
- : code `${this.reusables.imports.z}.literal(${literalOf(this.type.values[0])})`,
32
+ schema: code `${this.reusables.imports.z}.literal(${literalOf(this.value)})`,
33
33
  });
34
34
  }
35
- get jsonSignature() {
36
- return Maybe.of(code `readonly "${this.jsonName}": ${this.type.expression}`);
37
- }
38
- get schema() {
39
- return Maybe.empty();
35
+ get values() {
36
+ return [this.value];
40
37
  }
41
- // protected override get schemaInitializers(): readonly Code[] {
42
- // return super.schemaInitializers.concat(code`type: ${this.type.schema}`);
43
- // }
44
38
  get constValue() {
45
- return code `${literalOf(this.objectType.discriminantValue)} as const`;
39
+ return code `${literalOf(this.value)} as const`;
46
40
  }
47
41
  constructorInitializer() {
48
42
  return Maybe.empty();
@@ -54,15 +48,11 @@ export class DiscriminantProperty extends AbstractProperty {
54
48
  return Maybe.empty();
55
49
  }
56
50
  hashStatements({ variables, }) {
57
- if (this.objectType.parentObjectTypes.length > 0) {
58
- return [];
59
- }
60
- return [code `${variables.hasher}.update(${variables.value});`];
51
+ return [
52
+ code `if (${variables.value}) { ${variables.hasher}.update(${variables.value}); }`,
53
+ ];
61
54
  }
62
55
  jsonUiSchemaElement({ variables, }) {
63
- if (this.objectType.parentObjectTypes.length > 0) {
64
- return Maybe.empty();
65
- }
66
56
  const scope = code `\`\${${variables.scopePrefix}}/properties/${this.jsonName}\``;
67
57
  return Maybe.of(code `{ rule: { condition: { schema: { const: ${this.constValue} }, scope: ${scope} }, effect: "HIDE" }, scope: ${scope}, type: "Control" }`);
68
58
  }
@@ -82,42 +72,25 @@ export class DiscriminantProperty extends AbstractProperty {
82
72
  return Maybe.empty();
83
73
  }
84
74
  }
85
- __decorate([
86
- Memoize()
87
- ], DiscriminantProperty.prototype, "jsonName", null);
88
75
  __decorate([
89
76
  Memoize()
90
77
  ], DiscriminantProperty.prototype, "jsonSchema", null);
91
78
  __decorate([
92
79
  Memoize()
93
- ], DiscriminantProperty.prototype, "jsonSignature", null);
80
+ ], DiscriminantProperty.prototype, "values", null);
94
81
  (function (DiscriminantProperty) {
95
82
  class Type {
83
+ value;
96
84
  filterFunction = code `nonextant`;
97
- mutable;
98
- descendantValues;
99
- ownValues;
100
- constructor({ descendantValues, mutable, ownValues, }) {
101
- this.descendantValues = descendantValues;
102
- this.mutable = mutable;
103
- this.ownValues = ownValues;
85
+ mutable = false;
86
+ constructor(value) {
87
+ this.value = value;
104
88
  }
105
89
  get expression() {
106
- return code `${this.values.map((name) => `"${name}"`).join(" | ")}`;
90
+ return code `${literalOf(this.value)}`;
107
91
  }
108
92
  get schema() {
109
93
  throw new Error("should never be called");
110
- // const initializers: Record<string, unknown> = {};
111
- // if (this.descendantValues.length > 0) {
112
- // initializers["descendantValues"] = this.descendantValues;
113
- // }
114
- // if (this.ownValues.length > 0) {
115
- // initializers["ownValues"] = this.ownValues;
116
- // }
117
- // return code`${initializers}`;
118
- }
119
- get values() {
120
- return this.ownValues.concat(this.descendantValues);
121
94
  }
122
95
  }
123
96
  __decorate([
@@ -126,9 +99,6 @@ __decorate([
126
99
  __decorate([
127
100
  Memoize()
128
101
  ], Type.prototype, "schema", null);
129
- __decorate([
130
- Memoize()
131
- ], Type.prototype, "values", null);
132
102
  DiscriminantProperty.Type = Type;
133
103
  })(DiscriminantProperty || (DiscriminantProperty = {}));
134
104
  //# sourceMappingURL=DiscriminantProperty.js.map
@@ -8,17 +8,23 @@ export declare class IdentifierProperty extends AbstractProperty<BlankNodeType |
8
8
  readonly kind = "Identifier";
9
9
  readonly mutable = false;
10
10
  readonly recursive = false;
11
- get constructorParameter(): Maybe<Code>;
11
+ get constructorParameter(): Maybe<{
12
+ hasQuestionToken: boolean;
13
+ signature: Code;
14
+ }>;
12
15
  get declaration(): Code;
13
16
  get filterProperty(): Maybe<{
14
17
  name: string;
15
18
  type: Code;
16
19
  }>;
17
20
  get graphqlField(): AbstractProperty<IdentifierType>["graphqlField"];
21
+ get hashFunctionParameter(): Code;
18
22
  get jsonSchema(): AbstractProperty<IdentifierType>["jsonSchema"];
19
23
  get jsonSignature(): Maybe<Code>;
20
- protected get schemaInitializers(): readonly Code[];
24
+ get schema(): Maybe<Code>;
25
+ get schemaType(): Maybe<Code>;
21
26
  private get typeExpression();
27
+ private get typeSchemaVariable();
22
28
  accessExpression({ variables, }: Parameters<AbstractProperty<BlankNodeType | IdentifierType | IriType>["accessExpression"]>[0]): Code;
23
29
  constructorInitializer({ variables, }: Parameters<AbstractProperty<IdentifierType>["constructorInitializer"]>[0]): Maybe<Code>;
24
30
  fromJsonInitializer({ variables, }: Parameters<AbstractProperty<IdentifierType>["fromJsonInitializer"]>[0]): Maybe<Code>;
@@ -17,17 +17,20 @@ export class IdentifierProperty extends AbstractProperty {
17
17
  recursive = false;
18
18
  get constructorParameter() {
19
19
  let hasQuestionToken = false;
20
- const typeNames = [code `(() => ${this.typeExpression})`];
20
+ const typeExpressions = [code `(() => ${this.typeExpression})`];
21
21
  for (const type of this.type.conversionFunction.unsafeCoerce()
22
22
  .sourceTypes) {
23
- if (type.typeof === "undefined") {
23
+ if (type.jsType.typeof === "undefined") {
24
24
  hasQuestionToken = true;
25
25
  }
26
26
  else {
27
- typeNames.push(code `${type.expression}`);
27
+ typeExpressions.push(code `${type.expression}`);
28
28
  }
29
29
  }
30
- return Maybe.of(code `readonly ${this.name}${hasQuestionToken ? "?" : ""}: ${joinCode(typeNames, { on: "|" })};`);
30
+ return Maybe.of({
31
+ hasQuestionToken,
32
+ signature: code `readonly ${this.name}${hasQuestionToken ? "?" : ""}: ${joinCode(typeExpressions, { on: "|" })};`,
33
+ });
31
34
  }
32
35
  get declaration() {
33
36
  return code `readonly ${this.name}: () => ${this.typeExpression};`;
@@ -45,10 +48,13 @@ export class IdentifierProperty extends AbstractProperty {
45
48
  args: Maybe.empty(),
46
49
  description: Maybe.empty(),
47
50
  name: `_${this.name.substring(syntheticNamePrefix.length)}`,
48
- resolve: code `(source) => ${this.typeExpression}.stringify(${this.accessExpression({ variables: { object: code `source` } })})`,
49
- type: this.type.graphqlType.name,
51
+ resolve: code `(source) => ${this.type.stringifyFunction}(${this.accessExpression({ variables: { object: code `source` } })})`,
52
+ type: this.type.graphqlType.expression,
50
53
  });
51
54
  }
55
+ get hashFunctionParameter() {
56
+ return code `readonly ${this.name}?: () => ${this.typeExpression};`;
57
+ }
52
58
  get jsonSchema() {
53
59
  let schema;
54
60
  if (this.type.in_.length > 0 && this.type.kind === "Iri") {
@@ -70,14 +76,25 @@ export class IdentifierProperty extends AbstractProperty {
70
76
  }
71
77
  return Maybe.of(code `readonly "@id": string`);
72
78
  }
73
- get schemaInitializers() {
74
- return super.schemaInitializers.concat(code `type: ${this.type.schema}`);
79
+ get schema() {
80
+ return Maybe.of(code `{ ${joinCode([code `kind: ${literalOf(this.kind)}`, code `type: ${this.type.schema}`], { on: ", " })} }`);
81
+ }
82
+ get schemaType() {
83
+ return Maybe.of(code `{ ${joinCode([
84
+ code `readonly kind: ${literalOf(this.kind)}`,
85
+ code `readonly type: ${this.type.schemaType}`,
86
+ ], { on: ", " })} }`);
75
87
  }
76
88
  get typeExpression() {
77
- return this.objectType.alias
89
+ return this.objectType.name
78
90
  .map((objectTypeAlias) => code `${objectTypeAlias}.Identifier`)
79
91
  .orDefault(this.type.expression);
80
92
  }
93
+ get typeSchemaVariable() {
94
+ return this.objectType.name
95
+ .map((name) => code `${name}.schema.properties.${this.name}.type`)
96
+ .orDefaultLazy(() => this.type.schema);
97
+ }
81
98
  accessExpression({ variables, }) {
82
99
  return code `${variables.object}.${this.name}()`;
83
100
  }
@@ -106,16 +123,26 @@ export class IdentifierProperty extends AbstractProperty {
106
123
  })}`);
107
124
  }
108
125
  fromRdfResourceValuesInitializer({ variables, }) {
109
- return Maybe.of(code `${this.name}: ${this.type.fromRdfResourceValuesExpression({
110
- variables: {
111
- ...variables,
112
- propertyPath: this.rdfjsTermExpression(rdf.subject),
113
- resourceValues: code `${this.reusables.imports.Right}(new ${this.reusables.imports.Resource}.Value(${{ dataFactory: this.reusables.imports.dataFactory, focusResource: variables.resource, propertyPath: this.rdfjsTermExpression(rdf.subject), term: code `${variables.resource}.identifier` }}).toValues())`,
114
- },
115
- })}.chain(values => values.head())`);
126
+ const options = {
127
+ context: variables.context,
128
+ graph: variables.graph,
129
+ focusResource: variables.focusResource,
130
+ preferredLanguages: variables.preferredLanguages,
131
+ propertyPath: this.rdfjsTermExpression(rdf.subject),
132
+ schema: this.typeSchemaVariable,
133
+ };
134
+ if (this.configuration.features.has("ObjectSet")) {
135
+ options["objectSet"] = variables.objectSet;
136
+ }
137
+ return Maybe.of(code `${this.name}: ${this.type.fromRdfResourceValuesFunction}(
138
+ new ${this.reusables.imports.Resource}.Value(${{ dataFactory: this.reusables.imports.dataFactory, focusResource: variables.focusResource, propertyPath: this.rdfjsTermExpression(rdf.subject), term: code `${variables.focusResource}.identifier` }}).toValues(),
139
+ ${options}
140
+ ).chain(values => values.head())`);
116
141
  }
117
142
  hashStatements({ variables, }) {
118
- return [code `${variables.hasher}.update(${variables.value}.value);`];
143
+ return [
144
+ code `if (${variables.value}) { ${variables.hasher}.update(${variables.value}().value); }`,
145
+ ];
119
146
  }
120
147
  jsonUiSchemaElement({ variables, }) {
121
148
  return Maybe.of(code `{ label: "Identifier", scope: \`\${${variables.scopePrefix}}/properties/@id\`, type: "Control" }`);
@@ -131,9 +158,7 @@ export class IdentifierProperty extends AbstractProperty {
131
158
  ignoreRdfType: true, // Unused
132
159
  preferredLanguages: variables.preferredLanguages,
133
160
  propertyPatterns: code `[]`,
134
- schema: this.objectType.alias
135
- .map((objectTypeAlias) => code `${objectTypeAlias}.schema.properties.${this.name}.type`)
136
- .orDefault(this.type.schema),
161
+ schema: this.typeSchemaVariable,
137
162
  valueVariable: variables.focusIdentifier,
138
163
  variablePrefix: variables.variablePrefix, // Unused
139
164
  }})`,
@@ -176,6 +201,9 @@ __decorate([
176
201
  __decorate([
177
202
  Memoize()
178
203
  ], IdentifierProperty.prototype, "graphqlField", null);
204
+ __decorate([
205
+ Memoize()
206
+ ], IdentifierProperty.prototype, "hashFunctionParameter", null);
179
207
  __decorate([
180
208
  Memoize()
181
209
  ], IdentifierProperty.prototype, "jsonSchema", null);
@@ -0,0 +1,4 @@
1
+ import type { ObjectType } from "../ObjectType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectType_createFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_createFunctionExpression.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { invariant } from "ts-invariant";
2
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
3
+ export function ObjectType_createFunctionExpression() {
4
+ const parametersVariable = code `parameters${this.constructorParameters.hasQuestionToken ? "?" : ""}`;
5
+ const propertyInitializers = this.properties.flatMap((property) => property
6
+ .constructorInitializer({
7
+ variables: { parameters: parametersVariable },
8
+ })
9
+ .toList());
10
+ invariant(propertyInitializers.length > 0);
11
+ let returnExpression = code `${this.reusables.snippets.sequenceRecord}({ ${joinCode(propertyInitializers, { on: "," })} })`;
12
+ this.discriminantProperty.ifJust((discriminantProperty) => {
13
+ returnExpression = code `${returnExpression}.map(properties => ({ ...properties, ${discriminantProperty.name}: ${literalOf(discriminantProperty.value)} as const }))`;
14
+ });
15
+ const monkeyPatchMethods = {};
16
+ if (this.configuration.features.has("Object.toJson")) {
17
+ monkeyPatchMethods["toJson"] = this.toJsonFunction;
18
+ }
19
+ if (this.configuration.features.has("Object.toString")) {
20
+ monkeyPatchMethods[`${this.configuration.syntheticNamePrefix}toString`] =
21
+ this.toStringFunction;
22
+ }
23
+ if (Object.keys(monkeyPatchMethods).length > 0) {
24
+ returnExpression = code `${returnExpression}.map(object => ${this.reusables.snippets.monkeyPatchObject}(object, ${monkeyPatchMethods}))`;
25
+ }
26
+ return code `((parameters${this.name.map(() => code ``).orDefaultLazy(() => code `: ${this.constructorParameters.type.expression}`)}) => ${returnExpression})`;
27
+ }
28
+ //# sourceMappingURL=ObjectType_createFunctionExpression.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectType } from "../ObjectType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectType_equalsFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_equalsFunctionExpression.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function ObjectType_equalsFunctionExpression() {
3
+ const chain = [];
4
+ for (const property of this.properties) {
5
+ if (property.kind === "Discriminant") {
6
+ continue;
7
+ }
8
+ chain.push(code `(${property.type.equalsFunction})(${property.accessExpression({ variables: { object: code `left` } })}, ${property.accessExpression({ variables: { object: code `right` } })}).mapLeft(propertyValuesUnequal => ({ left, right, propertyName: "${property.name}", propertyValuesUnequal, type: "property" as const }))`);
9
+ }
10
+ return code `\
11
+ ((left, right) =>
12
+ ${joinCode(chain.map((chainPart, chainPartI) => chainPartI === 0 ? chainPart : code `chain(() => ${chainPart})`), { on: "." })}
13
+ )`;
14
+ }
15
+ //# sourceMappingURL=ObjectType_equalsFunctionExpression.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectType } from "../ObjectType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectType_filterFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_filterFunctionExpression.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function ObjectType_filterFunctionExpression() {
3
+ const statements = [];
4
+ for (const property of this.properties) {
5
+ property.filterProperty.ifJust(({ name }) => {
6
+ statements.push(code `if (filter.${name} !== undefined && !${property.type.filterFunction}(filter.${name}, ${property.accessExpression({ variables: { object: code `value` } })})) { return false; }`);
7
+ });
8
+ }
9
+ statements.push(code `return true;`);
10
+ return code `((filter, value) => { ${joinCode(statements)} })`;
11
+ }
12
+ //# sourceMappingURL=ObjectType_filterFunctionExpression.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectType } from "../ObjectType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectType_filterTypeExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_filterTypeExpression.d.ts.map