@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
@@ -0,0 +1,14 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function ObjectType_toJsonFunctionExpression() {
3
+ return code `\
4
+ ((${this.thisVariable}) => JSON.parse(JSON.stringify({ ${joinCode(this.properties.flatMap((property) => property
5
+ .toJsonInitializer({
6
+ variables: {
7
+ value: property.accessExpression({
8
+ variables: { object: this.thisVariable },
9
+ }),
10
+ },
11
+ })
12
+ .toList()), { on: "," })} } satisfies ${this.jsonType().expression})))`;
13
+ }
14
+ //# sourceMappingURL=ObjectType_toJsonFunctionExpression.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_toRdfResourceFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_toRdfResourceFunctionExpression.d.ts.map
@@ -1,11 +1,7 @@
1
1
  import { rdf } from "@tpluscode/rdf-ns-builders";
2
- import { Maybe } from "purify-ts";
3
2
  import { code, joinCode } from "../ts-poet-wrapper.js";
4
- export function ObjectType_toRdfResourceFunctionDeclaration() {
5
- if (!this.configuration.features.has("Object.toRdf")) {
6
- return Maybe.empty();
7
- }
8
- const statements = this.parentObjectTypes.map((parentObjectType) => code `${parentObjectType.alias.unsafeCoerce()}._toRdfResource({ ...parameters, ignoreRdfType: true });`);
3
+ export function ObjectType_toRdfResourceFunctionExpression() {
4
+ const statements = [];
9
5
  if (this.toRdfTypes.length > 0) {
10
6
  statements.push(code `if (!${variables.ignoreRdfType}) { ${joinCode(this.toRdfTypes.map((toRdfType) => code `${variables.resource}.add(${this.rdfjsTermExpression(rdf.type)}, ${this.reusables.imports.dataFactory}.namedNode("${toRdfType.value}"), ${variables.graph});`), { on: " " })} }`);
11
7
  }
@@ -22,12 +18,10 @@ export function ObjectType_toRdfResourceFunctionDeclaration() {
22
18
  }));
23
19
  }
24
20
  statements.push(code `return ${variables.resource};`);
25
- return Maybe.of(code `\
26
- export const _toRdfResource: ${this.reusables.snippets._ToRdfResourceFunction}<${this.identifierTypeAlias}, ${this.expression}> = (parameters) => {
27
- ${joinCode(statements)}
28
- }
29
-
30
- export const toRdfResource = ${this.reusables.snippets.wrap_ToRdfResourceFunction}(_toRdfResource);`);
21
+ return code `\
22
+ ((parameters) => {
23
+ ${joinCode(statements)}
24
+ })`;
31
25
  }
32
26
  const variables = {
33
27
  ignoreRdfType: code `parameters.ignoreRdfType`,
@@ -36,4 +30,4 @@ const variables = {
36
30
  resource: code `parameters.resource`,
37
31
  resourceSet: code `parameters.resourceSet`,
38
32
  };
39
- //# sourceMappingURL=ObjectType_toRdfResourceFunctionDeclaration.js.map
33
+ //# sourceMappingURL=ObjectType_toRdfResourceFunctionExpression.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_toStringFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_toStringFunctionExpression.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { code } from "../ts-poet-wrapper.js";
2
+ export function ObjectType_toStringFunctionExpression() {
3
+ return this.name
4
+ .map((name) => code `((${this.thisVariable}) => \`${name}(\${JSON.stringify(toStringRecord(${this.thisVariable}))})\`)`)
5
+ .orDefault(code `((${this.thisVariable}) => JSON.stringify(${this.toStringRecordExpression({ variables: { value: this.thisVariable } })}))`);
6
+ }
7
+ //# sourceMappingURL=ObjectType_toStringFunctionExpression.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_toStringRecordFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_toStringRecordFunctionExpression.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { code } from "../ts-poet-wrapper.js";
2
+ export function ObjectType_toStringRecordFunctionExpression() {
3
+ return code `((${this.thisVariable}) => ${this.toStringRecordExpression({ variables: { value: this.thisVariable } })})`;
4
+ }
5
+ //# sourceMappingURL=ObjectType_toStringRecordFunctionExpression.js.map
@@ -1,5 +1,4 @@
1
- import { Maybe } from "purify-ts";
2
1
  import type { ObjectType } from "../ObjectType.js";
3
2
  import { type Code } from "../ts-poet-wrapper.js";
4
- export declare function ObjectType_valueSparqlConstructTriplesFunctionDeclaration(this: ObjectType): Maybe<Code>;
5
- //# sourceMappingURL=ObjectType_valueSparqlConstructTriplesFunctionDeclaration.d.ts.map
3
+ export declare function ObjectType_valueSparqlConstructTriplesFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_valueSparqlConstructTriplesFunctionExpression.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { code } from "../ts-poet-wrapper.js";
2
+ import { ObjectType_focusSparqlConstructTriplesFunctionExpression } from "./ObjectType_focusSparqlConstructTriplesFunctionExpression.js";
3
+ export function ObjectType_valueSparqlConstructTriplesFunctionExpression() {
4
+ return code `\
5
+ (({ filter, ignoreRdfType, valueVariable, variablePrefix }) =>
6
+ ${this.name.map((name) => code `${name}.focusSparqlConstructTriples`).orDefaultLazy(() => ObjectType_focusSparqlConstructTriplesFunctionExpression.call(this))}({ filter, focusIdentifier: valueVariable, ignoreRdfType, variablePrefix }))`;
7
+ }
8
+ //# sourceMappingURL=ObjectType_valueSparqlConstructTriplesFunctionExpression.js.map
@@ -1,5 +1,4 @@
1
- import { Maybe } from "purify-ts";
2
1
  import type { ObjectType } from "../ObjectType.js";
3
2
  import { type Code } from "../ts-poet-wrapper.js";
4
- export declare function ObjectType_valueSparqlWherePatternsFunctionDeclaration(this: ObjectType): Maybe<Code>;
5
- //# sourceMappingURL=ObjectType_valueSparqlWherePatternsFunctionDeclaration.d.ts.map
3
+ export declare function ObjectType_valueSparqlWherePatternsFunctionExpression(this: ObjectType): Code;
4
+ //# sourceMappingURL=ObjectType_valueSparqlWherePatternsFunctionExpression.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { code } from "../ts-poet-wrapper.js";
2
+ import { ObjectType_focusSparqlWherePatternsFunctionExpression } from "./ObjectType_focusSparqlWherePatternsFunctionExpression.js";
3
+ export function ObjectType_valueSparqlWherePatternsFunctionExpression() {
4
+ return code `\
5
+ (({ filter, ignoreRdfType, preferredLanguages, propertyPatterns, valueVariable, variablePrefix }) =>
6
+ (propertyPatterns as readonly ${this.reusables.snippets.SparqlPattern}[]).concat(
7
+ ${this.name.map((name) => code `${name}.focusSparqlWherePatterns`).orDefaultLazy(() => ObjectType_focusSparqlWherePatternsFunctionExpression.call(this))}({ filter, focusIdentifier: valueVariable, ignoreRdfType, preferredLanguages, variablePrefix })
8
+ ))`;
9
+ }
10
+ //# sourceMappingURL=ObjectType_valueSparqlWherePatternsFunctionExpression.js.map
@@ -21,16 +21,23 @@ export declare class ShaclProperty<TypeT extends Type> extends AbstractProperty<
21
21
  path: PropertyPath;
22
22
  recursive: boolean;
23
23
  } & ConstructorParameters<typeof AbstractProperty<TypeT>>[0]);
24
- get constructorParameter(): Maybe<Code>;
24
+ get constructorParameter(): Maybe<{
25
+ hasQuestionToken: boolean;
26
+ signature: Code;
27
+ }>;
25
28
  get declaration(): Code;
26
29
  get filterProperty(): Maybe<{
27
30
  name: string;
28
31
  type: Code;
29
32
  }>;
30
33
  get graphqlField(): AbstractProperty<TypeT>["graphqlField"];
34
+ get hashFunctionParameter(): Code;
31
35
  get jsonSchema(): AbstractProperty<TypeT>["jsonSchema"];
32
36
  get jsonSignature(): Maybe<Code>;
33
- protected get schemaInitializers(): readonly Code[];
37
+ get schema(): Maybe<Code>;
38
+ get schemaType(): Maybe<Code>;
39
+ private get schemaVariable();
40
+ private get typeSchemaVariable();
34
41
  constructorInitializer({ variables, }: Parameters<AbstractProperty<TypeT>["constructorInitializer"]>[0]): Maybe<Code>;
35
42
  fromJsonInitializer({ variables, }: Parameters<AbstractProperty<TypeT>["fromJsonInitializer"]>[0]): Maybe<Code>;
36
43
  fromRdfResourceValuesInitializer({ variables, }: Parameters<AbstractProperty<TypeT>["fromRdfResourceValuesInitializer"]>[0]): Maybe<Code>;
@@ -31,31 +31,36 @@ export class ShaclProperty extends AbstractProperty {
31
31
  get constructorParameter() {
32
32
  const conversionFunction = this.type.conversionFunction.extract();
33
33
  if (!conversionFunction) {
34
- return Maybe.of(code `readonly ${this.name}: ${this.type.expression};`);
34
+ return Maybe.of({
35
+ hasQuestionToken: false,
36
+ signature: code `readonly ${this.name}: ${this.type.expression};`,
37
+ });
35
38
  }
36
39
  let hasQuestionToken = false;
37
- const typeNames = [];
40
+ const typeExpressions = [];
38
41
  for (const type of conversionFunction.sourceTypes) {
39
- if (type.typeof === "undefined") {
42
+ if (type.jsType.typeof === "undefined") {
40
43
  hasQuestionToken = true;
41
44
  }
42
45
  else {
43
- typeNames.push(code `${type.expression}`);
46
+ typeExpressions.push(code `${type.expression}`);
44
47
  }
45
48
  }
46
- return Maybe.of(code `readonly ${this.name}${hasQuestionToken ? "?" : ""}: ${joinCode(typeNames, { on: "|" })};`);
49
+ return Maybe.of({
50
+ hasQuestionToken,
51
+ signature: code `readonly ${this.name}${hasQuestionToken ? "?" : ""}: ${joinCode(typeExpressions, { on: "|" })};`,
52
+ });
47
53
  }
48
54
  get declaration() {
49
- const lhs = [];
50
- if (!this.mutable) {
51
- lhs.push(code `readonly`);
52
- }
53
- lhs.push(code `${this.name}`);
54
- return code `${this.comment
55
+ let declaration = code `${!this.mutable ? "readonly " : ""}${this.name}: ${this.type.expression};`;
56
+ this.comment
55
57
  .alt(this.description)
56
58
  .alt(this.label)
57
59
  .map(tsComment)
58
- .orDefault("")}${joinCode(lhs, { on: " " })}: ${this.type.expression};`;
60
+ .ifJust((comment) => {
61
+ declaration = code `${comment}${declaration}`;
62
+ });
63
+ return declaration;
59
64
  }
60
65
  get filterProperty() {
61
66
  return Maybe.of({
@@ -71,9 +76,12 @@ export class ShaclProperty extends AbstractProperty {
71
76
  description: this.comment.map(JSON.stringify),
72
77
  name: this.name,
73
78
  resolve: code `(source, ${argsVariable}) => ${this.type.graphqlResolveExpression({ variables: { args: argsVariable, value: code `source.${this.name}` } })}`,
74
- type: this.type.graphqlType.name,
79
+ type: this.type.graphqlType.expression,
75
80
  });
76
81
  }
82
+ get hashFunctionParameter() {
83
+ return this.declaration;
84
+ }
77
85
  get jsonSchema() {
78
86
  let schema = this.type.jsonSchema({
79
87
  context: "property",
@@ -95,22 +103,41 @@ export class ShaclProperty extends AbstractProperty {
95
103
  }
96
104
  get jsonSignature() {
97
105
  const typeJsonType = this.type.jsonType();
98
- return Maybe.of(code `${!this.mutable ? "readonly " : ""}${this.name}${typeJsonType.optional ? "?" : ""}: ${typeJsonType.requiredName}`);
106
+ return Maybe.of(code `${!this.mutable ? "readonly " : ""}${this.name}${typeJsonType.optional ? "?" : ""}: ${typeJsonType.requiredExpression}`);
99
107
  }
100
- get schemaInitializers() {
101
- const initializers = super.schemaInitializers.concat();
108
+ get schema() {
109
+ const initializers = [code `kind: ${literalOf(this.kind)}`];
102
110
  if (this.configuration.features.has("Object.fromRdf") ||
103
111
  this.configuration.features.has("Object.toRdf")) {
104
112
  initializers.push(code `path: ${this.propertyPathToCode(this.path)}`);
105
113
  }
106
114
  // Use a getter if the type is recursive or the type is an object type, which may have forward references in the file
107
- if (this.recursive || this.type.referencesObjectType) {
115
+ if (this.recursive || this.type.referencesNamedType) {
108
116
  initializers.push(code `get type() { return ${this.type.schema}; }`);
109
117
  }
110
118
  else {
111
119
  initializers.push(code `type: ${this.type.schema}`);
112
120
  }
113
- return initializers;
121
+ return Maybe.of(code `{ ${joinCode(initializers, { on: ", " })} }`);
122
+ }
123
+ get schemaType() {
124
+ const initializers = [code `readonly kind: ${literalOf(this.kind)}`];
125
+ if (this.configuration.features.has("Object.fromRdf") ||
126
+ this.configuration.features.has("Object.toRdf")) {
127
+ initializers.push(code `readonly path: ${this.reusables.snippets.PropertyPath}`);
128
+ }
129
+ initializers.push(code `readonly type: ${this.type.schemaType}`);
130
+ return Maybe.of(code `{ ${joinCode(initializers, { on: ", " })} }`);
131
+ }
132
+ get schemaVariable() {
133
+ return this.objectType.name
134
+ .map((name) => code `${name}.schema.properties.${this.name}`)
135
+ .orDefaultLazy(() => this.schema.unsafeCoerce());
136
+ }
137
+ get typeSchemaVariable() {
138
+ return this.objectType.name
139
+ .map((name) => code `${name}.schema.properties.${this.name}.type`)
140
+ .orDefaultLazy(() => this.type.schema);
114
141
  }
115
142
  constructorInitializer({ variables, }) {
116
143
  const parameterVariable = code `${variables.parameters}.${this.name}`;
@@ -118,13 +145,13 @@ export class ShaclProperty extends AbstractProperty {
118
145
  const validationFunction = this.type.validationFunction.extract();
119
146
  let rhs;
120
147
  if (conversionFunction && validationFunction) {
121
- rhs = code `${conversionFunction}(${parameterVariable}).chain(value => ${validationFunction}(${this.objectType.alias.unsafeCoerce()}.schema.properties.${this.name}.type, value))`;
148
+ rhs = code `${conversionFunction}(${parameterVariable}).chain(value => ${validationFunction}(${this.typeSchemaVariable}, value))`;
122
149
  }
123
150
  else if (conversionFunction) {
124
151
  rhs = code `${conversionFunction}(${parameterVariable})`;
125
152
  }
126
153
  else if (validationFunction) {
127
- rhs = code `${validationFunction}(${this.objectType.alias.unsafeCoerce()}.schema.properties.${this.name}.type, ${parameterVariable})`;
154
+ rhs = code `${validationFunction}(${this.typeSchemaVariable}, ${parameterVariable})`;
128
155
  }
129
156
  else {
130
157
  rhs = code `${this.reusables.imports.Either}.of(${parameterVariable})`;
@@ -137,22 +164,22 @@ export class ShaclProperty extends AbstractProperty {
137
164
  })}`);
138
165
  }
139
166
  fromRdfResourceValuesInitializer({ variables, }) {
140
- // Assume the property has the correct range and ignore the object's RDF type.
141
- // This also accommodates the case where the object of a property is a dangling identifier that's not the
142
- // subject of any statements.
143
- return Maybe.of(code `${this.name}: ${this.reusables.snippets.shaclPropertyFromRdf}(${{
167
+ const parameters = {
168
+ context: variables.context,
144
169
  graph: variables.graph,
145
- resource: variables.resource,
146
- propertySchema: code `schema.properties.${this.name}`,
147
- typeFromRdf: code `((resourceValues) => ${this.type.fromRdfResourceValuesExpression({
148
- variables: {
149
- ...variables,
150
- ignoreRdfType: true,
151
- propertyPath: code `${this.objectType.alias.unsafeCoerce()}.schema.properties.${this.name}.path`,
152
- resourceValues: code `resourceValues`,
153
- },
154
- })})`,
155
- }})`);
170
+ focusResource: variables.focusResource,
171
+ // Assume the property has the correct range and ignore the object's RDF type.
172
+ // This also accommodates the case where the object of a property is a dangling identifier that's not the
173
+ // subject of any statements.
174
+ ignoreRdfType: true,
175
+ preferredLanguages: variables.preferredLanguages,
176
+ propertySchema: this.schemaVariable,
177
+ typeFromRdfResourceValues: this.type.fromRdfResourceValuesFunction,
178
+ };
179
+ if (this.configuration.features.has("ObjectSet")) {
180
+ parameters["objectSet"] = variables.objectSet;
181
+ }
182
+ return Maybe.of(code `${this.name}: ${this.reusables.snippets.shaclPropertyFromRdf}<${this.type.expression}, ${this.type.schemaType}>(${parameters})`);
156
183
  }
157
184
  hashStatements({ variables, }) {
158
185
  return [
@@ -173,7 +200,7 @@ export class ShaclProperty extends AbstractProperty {
173
200
  focusIdentifier: variables.focusIdentifier,
174
201
  ignoreRdfType: true,
175
202
  propertyName: this.name,
176
- propertySchema: code `schema.properties.${this.name}`,
203
+ propertySchema: this.schemaVariable,
177
204
  typeSparqlConstructTriples: this.type.valueSparqlConstructTriplesFunction,
178
205
  variablePrefix: variables.variablePrefix,
179
206
  }})`);
@@ -188,7 +215,7 @@ export class ShaclProperty extends AbstractProperty {
188
215
  ignoreRdfType: true,
189
216
  preferredLanguages: variables.preferredLanguages,
190
217
  propertyName: this.name,
191
- propertySchema: code `schema.properties.${this.name}`,
218
+ propertySchema: this.schemaVariable,
192
219
  typeSparqlWherePatterns: this.type.valueSparqlWherePatternsFunction,
193
220
  variablePrefix: variables.variablePrefix,
194
221
  }})`,
@@ -209,7 +236,9 @@ export class ShaclProperty extends AbstractProperty {
209
236
  default:
210
237
  return [];
211
238
  }
212
- const propertyPath = code `${this.objectType.alias.unsafeCoerce()}.schema.properties.${this.name}.path`;
239
+ const propertyPath = this.objectType.name
240
+ .map(() => code `${this.schemaVariable}.path`)
241
+ .orDefault(this.propertyPathToCode(this.path));
213
242
  return [
214
243
  code `${variables.resource}.add(${propertyPath}, ${this.type.toRdfResourceValuesExpression({
215
244
  variables: { ...variables, propertyPath },
@@ -255,4 +284,7 @@ __decorate([
255
284
  __decorate([
256
285
  Memoize()
257
286
  ], ShaclProperty.prototype, "jsonSignature", null);
287
+ __decorate([
288
+ Memoize()
289
+ ], ShaclProperty.prototype, "schemaVariable", null);
258
290
  //# sourceMappingURL=ShaclProperty.js.map
@@ -1,7 +1,8 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
- export const snippets_BooleanSchema = ({ syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}BooleanSchema`, code `\
3
- interface ${syntheticNamePrefix}BooleanSchema<T extends boolean> {
4
- readonly in?: readonly T[];
2
+ export const snippets_BooleanSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}BooleanSchema`, code `\
3
+ interface ${syntheticNamePrefix}BooleanSchema<BooleanT extends boolean> {
4
+ readonly hasValues?: readonly ${imports.Literal}[];
5
+ readonly in?: readonly BooleanT[];
5
6
  readonly kind: "Boolean";
6
7
  }`);
7
8
  //# sourceMappingURL=snippets_BooleanSchema.js.map
@@ -1,7 +1,8 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
- export const snippets_DateSchema = ({ syntheticNamePrefix }) => conditionalOutput(`${syntheticNamePrefix}DateSchema`, code `\
2
+ export const snippets_DateSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}DateSchema`, code `\
3
3
  interface ${syntheticNamePrefix}DateSchema {
4
- in?: readonly Date[];
5
- kind: "Date" | "DateTime",
4
+ readonly hasValues?: readonly ${imports.Literal}[];
5
+ readonly in?: readonly Date[];
6
+ readonly kind: "Date" | "DateTime",
6
7
  }`);
7
8
  //# sourceMappingURL=snippets_DateSchema.js.map
@@ -1,7 +1,7 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
- export const snippets_DefaultValueSchema = ({ syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}DefaultValueSchema`, code `\
3
- interface ${syntheticNamePrefix}DefaultValueSchema<DefaultValueT, ItemSchemaT> {
4
- readonly defaultValue: DefaultValueT;
2
+ export const snippets_DefaultValueSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}DefaultValueSchema`, code `\
3
+ interface ${syntheticNamePrefix}DefaultValueSchema<ItemSchemaT> {
4
+ readonly defaultValue: ${imports.Literal} | ${imports.NamedNode};
5
5
  readonly itemType: ItemSchemaT;
6
6
  readonly kind: "DefaultValue";
7
7
  }`);
@@ -1,15 +1,16 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
2
  export const snippets_FromRdfResourceValuesFunction = ({ configuration, imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}FromRdfResourceValuesFunction`, code `\
3
- export type ${syntheticNamePrefix}FromRdfResourceValuesFunction<T> = (
4
- resourceValues: ${imports.Either}<Error, ${imports.Resource}.Values>,
3
+ export type ${syntheticNamePrefix}FromRdfResourceValuesFunction<ValueT, ValueSchemaT> = (
4
+ resourceValues: ${imports.Resource}.Values,
5
5
  options: {
6
6
  context?: unknown;
7
7
  graph?: Exclude<${imports.Quad_Graph}, ${imports.Variable}>;
8
+ focusResource: ${imports.Resource};
8
9
  ignoreRdfType?: boolean;
9
- ${configuration.features.has("ObjectSet") ? code `objectSet?: ${syntheticNamePrefix}ObjectSet;` : ""}
10
+ ${configuration.features.has("ObjectSet") ? code `objectSet: ${syntheticNamePrefix}ObjectSet;` : ""}
10
11
  preferredLanguages?: readonly string[];
11
12
  propertyPath: ${syntheticNamePrefix}PropertyPath;
12
- resource: ${imports.Resource};
13
+ schema: ValueSchemaT;
13
14
  }
14
- ) => ${imports.Either}<Error, ${imports.Resource}.Values<T>>;`);
15
+ ) => ${imports.Either}<Error, ${imports.Resource}.Values<ValueT>>;`);
15
16
  //# sourceMappingURL=snippets_FromRdfResourceValuesFunction.js.map
@@ -1,6 +1,7 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
- export const snippets_IdentifierSchema = ({ syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}IdentifierSchema`, code `\
2
+ export const snippets_IdentifierSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}IdentifierSchema`, code `\
3
3
  interface ${syntheticNamePrefix}IdentifierSchema {
4
+ readonly hasValues?: readonly ${imports.NamedNode}[];
4
5
  readonly kind: "Identifier";
5
6
  }`);
6
7
  //# sourceMappingURL=snippets_IdentifierSchema.js.map
@@ -1,6 +1,7 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
2
  export const snippets_IriSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}IriSchema`, code `\
3
3
  interface ${syntheticNamePrefix}IriSchema<IriT extends string = string> {
4
+ readonly hasValues?: readonly ${imports.NamedNode}[];
4
5
  readonly in?: readonly ${imports.NamedNode}<IriT>[];
5
6
  readonly kind: "Iri";
6
7
  }`);
@@ -0,0 +1,3 @@
1
+ import type { SnippetFactory } from "../SnippetFactory.js";
2
+ export declare const snippets_Lazy: SnippetFactory;
3
+ //# sourceMappingURL=snippets_Lazy.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
+ export const snippets_Lazy = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}Lazy`, code `\
3
+ /**
4
+ * Type of lazy properties that return a single required value. This is a class instead of an interface so it can be instanceof'd elsewhere.
5
+ */
6
+ export class ${syntheticNamePrefix}Lazy<PartialT, ResolvedT> {
7
+ readonly partial: PartialT;
8
+ private readonly resolver: (partial: PartialT, options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, ResolvedT>>;
9
+
10
+ constructor({ partial, resolver }: {
11
+ partial: PartialT
12
+ resolver: (partial: PartialT, options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, ResolvedT>>,
13
+ }) {
14
+ this.partial = partial;
15
+ this.resolver = resolver;
16
+ }
17
+
18
+ resolve(options?: { preferredLanguages?: readonly string[] }): Promise<${imports.Either}<Error, ResolvedT>> {
19
+ return this.resolver(this.partial, options);
20
+ }
21
+ }`);
22
+ //# sourceMappingURL=snippets_Lazy.js.map
@@ -0,0 +1,3 @@
1
+ import type { SnippetFactory } from "../SnippetFactory.js";
2
+ export declare const snippets_LazyOption: SnippetFactory;
3
+ //# sourceMappingURL=snippets_LazyOption.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
+ export const snippets_LazyOption = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}LazyOption`, code `\
3
+ /**
4
+ * Type of lazy properties that return a single optional value. This is a class instead of an interface so it can be instanceof'd elsewhere.
5
+ */
6
+ export class ${syntheticNamePrefix}LazyOption<PartialT, ResolvedT> {
7
+ readonly partial: ${imports.Maybe}<PartialT>;
8
+ private readonly resolver: (partial: PartialT, options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, ResolvedT>>;
9
+
10
+ constructor({ partial, resolver }: {
11
+ partial: ${imports.Maybe}<PartialT>
12
+ resolver: (partial: PartialT, options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, ResolvedT>>,
13
+ }) {
14
+ this.partial = partial;
15
+ this.resolver = resolver;
16
+ }
17
+
18
+ async resolve(options?: { preferredLanguages?: readonly string[] }): Promise<${imports.Either}<Error, ${imports.Maybe}<ResolvedT>>> {
19
+ if (this.partial.isNothing()) {
20
+ return ${imports.Right}(${imports.Maybe}.empty());
21
+ }
22
+ return (await this.resolver(this.partial.unsafeCoerce(), options)).map(${imports.Maybe}.of);
23
+ }
24
+ }`);
25
+ //# sourceMappingURL=snippets_LazyOption.js.map
@@ -0,0 +1,3 @@
1
+ import type { SnippetFactory } from "../SnippetFactory.js";
2
+ export declare const snippets_LazySet: SnippetFactory;
3
+ //# sourceMappingURL=snippets_LazySet.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
+ export const snippets_LazySet = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}LazySet`, code `\
3
+ /**
4
+ * Type of lazy properties that return a set of values. This is a class instead of an interface so it can be instanceof'd elsewhere.
5
+ */
6
+ export class ${syntheticNamePrefix}LazySet<PartialT, ResolvedT> {
7
+ readonly partials: readonly PartialT[];
8
+ private readonly resolver: (partials: readonly PartialT[], options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, readonly ResolvedT[]>>;
9
+
10
+ constructor({ partials, resolver }: {
11
+ partials: readonly PartialT[]
12
+ resolver: (partials: readonly PartialT[], options?: { preferredLanguages?: readonly string[] }) => Promise<${imports.Either}<Error, readonly ResolvedT[]>>,
13
+ }) {
14
+ this.partials = partials;
15
+ this.resolver = resolver;
16
+ }
17
+
18
+ get length(): number {
19
+ return this.partials.length;
20
+ }
21
+
22
+ async resolve(options?: { limit?: number; offset?: number; preferredLanguages?: readonly string[] }): Promise<${imports.Either}<Error, readonly ResolvedT[]>> {
23
+ if (this.partials.length === 0) {
24
+ return ${imports.Right}([]);
25
+ }
26
+
27
+ const limit = options?.limit ?? Number.MAX_SAFE_INTEGER;
28
+ if (limit <= 0) {
29
+ return ${imports.Right}([]);
30
+ }
31
+
32
+ let offset = options?.offset ?? 0;
33
+ if (offset < 0) {
34
+ offset = 0;
35
+ }
36
+
37
+ return await this.resolver(this.partials.slice(offset, offset + limit), { preferredLanguages: options?.preferredLanguages });
38
+ }
39
+ }`);
40
+ //# sourceMappingURL=snippets_LazySet.js.map
@@ -1,6 +1,4 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
2
  export const snippets_LiteralFilter = ({ imports, snippets, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}LiteralFilter`, code `\
3
- interface ${syntheticNamePrefix}LiteralFilter extends Omit<${snippets.TermFilter}, "in" | "type"> {
4
- readonly in?: readonly ${imports.Literal}[];
5
- }`);
3
+ type ${syntheticNamePrefix}LiteralFilter = Omit<${snippets.TermFilter}<${imports.Literal}>, "typeIn">;`);
6
4
  //# sourceMappingURL=snippets_LiteralFilter.js.map
@@ -1,6 +1,7 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
2
  export const snippets_LiteralSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}LiteralSchema`, code `\
3
3
  interface ${syntheticNamePrefix}LiteralSchema {
4
+ readonly hasValues?: readonly ${imports.Literal}[];
4
5
  readonly in?: readonly ${imports.Literal}[];
5
6
  readonly kind: "Literal";
6
7
  readonly languageIn?: readonly string[];
@@ -1,6 +1,7 @@
1
1
  import { code, conditionalOutput } from "../ts-poet-wrapper.js";
2
- export const snippets_NumericSchema = ({ syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}NumericSchema`, code `\
2
+ export const snippets_NumericSchema = ({ imports, syntheticNamePrefix, }) => conditionalOutput(`${syntheticNamePrefix}NumericSchema`, code `\
3
3
  interface ${syntheticNamePrefix}NumericSchema<T> {
4
+ readonly hasValues?: readonly ${imports.Literal}[];
4
5
  readonly in?: readonly T[];
5
6
  readonly kind: "BigDecimal" | "BigInt" | "Float" | "Int";
6
7
  }`);
@@ -19,17 +19,15 @@ export function filter(_filter: Filter, _value: ${syntheticNamePrefix}PropertyPa
19
19
  if (configuration.features.has("Object.fromRdf")) {
20
20
  companionDeclarations.push(code `\
21
21
  export const fromRdfResource: ${snippets.FromRdfResourceFunction}<${syntheticNamePrefix}PropertyPath> = ${imports.RdfxResourcePropertyPath}.fromResource;`, code `\
22
- export const fromRdfResourceValues: ${snippets.FromRdfResourceValuesFunction}<${syntheticNamePrefix}PropertyPath> = (values, options) =>
23
- values.chain((values) =>
24
- values.chainMap((value) =>
25
- value
26
- .toResource()
27
- .chain((resource) => fromRdfResource(resource, options)),
28
- ),
22
+ export const fromRdfResourceValues: ${snippets.FromRdfResourceValuesFunction}<${syntheticNamePrefix}PropertyPath, object> = (values, options) =>
23
+ values.chainMap((value) =>
24
+ value
25
+ .toResource()
26
+ .chain((resource) => fromRdfResource(resource, options)),
29
27
  );`);
30
28
  }
31
29
  if (configuration.features.has("Object.schema")) {
32
- companionDeclarations.push(code `export const schema: Readonly<object> = {}`);
30
+ companionDeclarations.push(code `export const schema: Readonly<object> = {};`, code `export type Schema = typeof schema;`);
33
31
  }
34
32
  if (configuration.features.has("Object.toRdf")) {
35
33
  companionDeclarations.push(code `\