@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
@@ -5,52 +5,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { PropertyPath } from "@rdfx/resource";
8
- import { NTriplesIdentifier } from "@rdfx/string";
9
- import genericToposort from "toposort";
10
8
  import { invariant } from "ts-invariant";
11
9
  import { Memoize } from "typescript-memoize";
12
10
  import { AbstractType } from "./AbstractType.js";
13
11
  import { arrayEquals } from "./equals.js";
14
12
  import { Type } from "./Type.js";
15
- export class ObjectType extends AbstractType {
13
+ export class StructType extends AbstractType {
16
14
  /**
17
- * Ancestor (parents, their parents, ad nauseum) ObjectTypes of this ObjectType.
15
+ * Fields of this StructType.
18
16
  *
19
17
  * Mutable to support cycle-handling logic in the compiler.
20
18
  */
21
- #ancestorObjectTypes = [];
19
+ #fields = [];
20
+ fieldNames = new Set();
22
21
  /**
23
- * Immediate child ObjectTypes of this ObjectType.
24
- *
25
- * Mutable to support cycle-handling logic in the compiler.
26
- */
27
- #childObjectTypes = [];
28
- /**
29
- * Descendant (children, their children, ad nauseum) ObjectTypes of this ObjectType.
30
- *
31
- * Mutable to support cycle-handling logic in the compiler.
32
- */
33
- #descendantObjectTypes = [];
34
- /**
35
- * Immediate parent ObjectTypes of this Object types.
36
- *
37
- * Mutable to support cycle-handling logic in the compiler.
38
- */
39
- #parentObjectTypes = [];
40
- /**
41
- * Properties of this ObjectType.
42
- *
43
- * Mutable to support cycle-handling logic in the compiler.
44
- */
45
- #properties = [];
46
- /**
47
- * If true, the code for this ObjectType is defined externally and should not be generated.
22
+ * If true, the code for this StructType is defined externally and should not be generated.
48
23
  *
49
24
  * Defaults to false.
50
25
  */
51
26
  extern;
52
27
  /**
53
- * The expected rdf:type of instances of this ObjectType.
28
+ * The expected rdf:type of instances of this StructType.
54
29
  *
55
30
  * This is usually the identifier of an sh:NodeShape that is also an rdfs:Class (i.e., a node shape with implicit
56
31
  * class targets).
@@ -63,7 +38,7 @@ export class ObjectType extends AbstractType {
63
38
  /**
64
39
  * Type discriminant.
65
40
  */
66
- kind = "Object";
41
+ kind = "Struct";
67
42
  nodeKinds = nodeKinds;
68
43
  /**
69
44
  * Was this type synthesized or did it come from SHACL?
@@ -79,7 +54,7 @@ export class ObjectType extends AbstractType {
79
54
  /**
80
55
  * TypeScript imports to add to generated code.
81
56
  *
82
- * This is often used in conjunction with extern=true to import the extern'd ObjectType code in order for generated
57
+ * This is often used in conjunction with extern=true to import the extern'd StructType code in order for generated
83
58
  * code to reference it.
84
59
  *
85
60
  * import { MyType } from "./MyType.js"
@@ -94,48 +69,26 @@ export class ObjectType extends AbstractType {
94
69
  this.toRdfTypes = toRdfTypes;
95
70
  this.tsImports = tsImports;
96
71
  }
97
- get ancestorObjectTypes() {
98
- return this.#ancestorObjectTypes;
99
- }
100
- get childObjectTypes() {
101
- return this.#childObjectTypes;
102
- }
103
- get descendantObjectTypes() {
104
- return this.#descendantObjectTypes;
105
- }
106
- get parentObjectTypes() {
107
- return this.#parentObjectTypes;
108
- }
109
- get properties() {
110
- return this.#properties;
72
+ get fields() {
73
+ return this.#fields;
111
74
  }
112
75
  get recursive() {
113
- return this.properties.some((property) => property.recursive);
114
- }
115
- addAncestorObjectTypes(...ancestorObjectTypes) {
116
- this.#ancestorObjectTypes.push(...ancestorObjectTypes);
117
- }
118
- addChildObjectTypes(...childObjectTypes) {
119
- this.#childObjectTypes.push(...childObjectTypes);
120
- }
121
- addDescendantObjectTypes(...descendantObjectTypes) {
122
- this.#descendantObjectTypes.push(...descendantObjectTypes);
123
- }
124
- addParentObjectTypes(...parentObjectTypes) {
125
- this.#parentObjectTypes.push(...parentObjectTypes);
76
+ return this.fields.some((field) => field.recursive);
126
77
  }
127
- addProperties(...properties) {
128
- this.#properties.push(...properties);
129
- for (const property of properties) {
130
- invariant(Object.is(property.objectType, this));
78
+ addFields(...fields) {
79
+ for (const field of fields) {
80
+ invariant(Object.is(field.structType, this), "field has unexpected .structType");
81
+ invariant(!this.fieldNames.has(field.name), `${field.structType.shapeIdentifier}: duplicate field name: ${field.name}`);
82
+ this.#fields.push(field);
83
+ this.fieldNames.add(field.name);
131
84
  }
132
85
  }
133
86
  equals(other) {
134
87
  // Don't recurse
135
88
  return this.shapeIdentifier.equals(other.shapeIdentifier);
136
89
  }
137
- sortProperties() {
138
- this.#properties.sort((left, right) => {
90
+ sortFields() {
91
+ this.#fields.sort((left, right) => {
139
92
  if (left.order < right.order) {
140
93
  return -1;
141
94
  }
@@ -150,18 +103,14 @@ export class ObjectType extends AbstractType {
150
103
  ...super.toJSON(),
151
104
  fromRdfType: this.fromRdfType.extract(),
152
105
  identifierType: this.identifierType.toJSON(),
153
- parentObjectTypes: this.parentObjectTypes.length > 0
154
- ? this.parentObjectTypes.map((parentObjectType) => parentObjectType.name.extract() ??
155
- parentObjectType.shapeIdentifier)
156
- : undefined,
157
106
  synthetic: this.synthetic ? true : undefined,
158
107
  toRdfTypes: this.toRdfTypes.length > 0 ? this.toRdfTypes : undefined,
159
108
  };
160
109
  }
161
110
  }
162
111
  const nodeKinds = new Set(["BlankNode", "IRI"]);
163
- (function (ObjectType) {
164
- class Property {
112
+ (function (StructType) {
113
+ class Field {
165
114
  /**
166
115
  * Documentation comment from rdfs:comment.
167
116
  */
@@ -171,7 +120,7 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
171
120
  */
172
121
  description;
173
122
  /**
174
- * Should the property and its value be displayed in a toString()-type representation?
123
+ * Should the field and its value be displayed in a toString()-type representation?
175
124
  */
176
125
  display;
177
126
  /**
@@ -179,42 +128,42 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
179
128
  */
180
129
  label;
181
130
  /**
182
- * The property should be mutable in generated code i.e., it should be re-assignable. The property value may or may
131
+ * The field should be mutable in generated code i.e., it should be re-assignable. The field value may or may
183
132
  * not be mutable.
184
133
  */
185
134
  mutable;
186
135
  /**
187
- * Name of this property, derived from sh:name or shaclmate:name.
136
+ * Name of this field, derived from sh:name or shaclmate:name.
188
137
  */
189
138
  name;
190
139
  /**
191
- * Object type this property belongs to.
192
- */
193
- objectType;
194
- /**
195
- * Relative order of this property, derived from sh:order.
140
+ * Relative order of this field, derived from sh:order.
196
141
  */
197
142
  order;
198
143
  /**
199
- * SHACL property path (https://www.w3.org/TR/shacl/#property-paths)
144
+ * SHACL property path (https://www.w3.org/TR/shacl/#field-paths)
200
145
  */
201
146
  path;
202
147
  /**
203
- * Identifier of the property shape.
148
+ * Identifier of the field shape.
204
149
  */
205
150
  shapeIdentifier;
206
151
  /**
207
- * Type of this property.
152
+ * StructType this field belongs to.
153
+ */
154
+ structType;
155
+ /**
156
+ * Type of this field.
208
157
  */
209
158
  type;
210
- constructor({ comment, description, display, label, mutable, name, objectType, order, path, shapeIdentifier, type, }) {
159
+ constructor({ comment, description, display, label, mutable, name, order, path, shapeIdentifier, structType, type, }) {
211
160
  this.comment = comment;
212
161
  this.description = description;
213
162
  this.display = display;
214
163
  this.label = label;
215
164
  this.mutable = mutable;
216
165
  this.name = name;
217
- this.objectType = objectType;
166
+ this.structType = structType;
218
167
  this.order = order;
219
168
  this.path = path;
220
169
  this.shapeIdentifier = shapeIdentifier;
@@ -224,35 +173,35 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
224
173
  return this.shapeIdentifier.equals(other.shapeIdentifier);
225
174
  }
226
175
  /**
227
- * Does the property directly or indirectly reference the ObjectType itself?
176
+ * Does the field directly or indirectly reference the StructType itself?
228
177
  */
229
178
  get recursive() {
230
179
  const DEBUG = false;
231
- const rootObjectType = this.objectType;
232
- const rootProperty = this;
180
+ const rootField = this;
181
+ const rootStructType = this.structType;
233
182
  function helper(stack) {
234
183
  const currentStackFrame = stack.at(-1);
235
- const { objectType, property, propertyType } = currentStackFrame;
184
+ const { field, fieldType, structType } = currentStackFrame;
236
185
  if (DEBUG) {
237
186
  process.stderr.write(`${[
238
187
  stack.length.toString(),
239
- rootObjectType,
240
- rootProperty,
241
- objectType,
242
- property,
243
- propertyType
244
- ? `[${propertyType.map(Type.toString).join(", ")}]`
188
+ rootField,
189
+ rootStructType,
190
+ field,
191
+ fieldType
192
+ ? `[${fieldType.map(Type.toString).join(", ")}]`
245
193
  : "undefined",
194
+ structType,
246
195
  ].join(",")}\n`);
247
196
  }
248
197
  for (const lowerStackFrame of stack.slice(0, -1)) {
249
- if (!Type.equals(currentStackFrame.objectType, lowerStackFrame.objectType)) {
198
+ if (!Type.equals(currentStackFrame.structType, lowerStackFrame.structType)) {
250
199
  continue;
251
200
  }
252
- if (!currentStackFrame.property.equals(lowerStackFrame.property)) {
201
+ if (!currentStackFrame.field.equals(lowerStackFrame.field)) {
253
202
  continue;
254
203
  }
255
- if (!arrayEquals(Type.equals)(currentStackFrame.propertyType ?? [], lowerStackFrame.propertyType ?? [])) {
204
+ if (!arrayEquals(Type.equals)(currentStackFrame.fieldType ?? [], lowerStackFrame.fieldType ?? [])) {
256
205
  continue;
257
206
  }
258
207
  // We've seen this combination before and don't want to recurse further, to avoid infinite recursion
@@ -261,49 +210,49 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
261
210
  }
262
211
  return true;
263
212
  }
264
- if (!propertyType) {
213
+ if (!fieldType) {
265
214
  return helper(stack.concat({
266
- objectType,
267
- property,
268
- propertyType: [property.type],
215
+ field,
216
+ fieldType: [field.type],
217
+ structType,
269
218
  }));
270
219
  }
271
- invariant(propertyType.length > 0);
272
- const currentPropertyType = propertyType.at(-1);
273
- switch (currentPropertyType.kind) {
220
+ invariant(fieldType.length > 0);
221
+ const currentFieldType = fieldType.at(-1);
222
+ switch (currentFieldType.kind) {
274
223
  case "BlankNode":
275
224
  case "Identifier":
276
225
  case "Iri":
277
226
  case "Literal":
278
227
  case "Term":
279
228
  return false;
280
- case "LazyObjectOption":
281
- case "LazyObjectSet":
282
- case "LazyObject": {
229
+ case "LazyOption":
230
+ case "LazySet":
231
+ case "Lazy": {
283
232
  if (helper(stack.concat({
284
- objectType,
285
- property,
286
- propertyType: propertyType.concat(currentPropertyType.partialType),
233
+ field,
234
+ fieldType: fieldType.concat(currentFieldType.partialType),
235
+ structType,
287
236
  }))) {
288
237
  return true;
289
238
  }
290
239
  if (helper(stack.concat({
291
- objectType,
292
- property,
293
- propertyType: propertyType.concat(currentPropertyType.resolveType),
240
+ field,
241
+ fieldType: fieldType.concat(currentFieldType.resolveType),
242
+ structType,
294
243
  }))) {
295
244
  return true;
296
245
  }
297
246
  return false;
298
247
  }
299
- case "Object": {
248
+ case "Struct": {
300
249
  if (DEBUG) {
301
- process.stderr.write(`recurse into ${currentPropertyType}`);
250
+ process.stderr.write(`recurse into ${currentFieldType}`);
302
251
  }
303
- for (const property of currentPropertyType.properties) {
252
+ for (const field of currentFieldType.fields) {
304
253
  if (helper(stack.concat({
305
- objectType: currentPropertyType,
306
- property,
254
+ structType: currentFieldType,
255
+ field,
307
256
  }))) {
308
257
  return true;
309
258
  }
@@ -313,13 +262,13 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
313
262
  case "Intersection":
314
263
  case "Union": {
315
264
  if (DEBUG) {
316
- process.stderr.write(`recurse into ${currentPropertyType}`);
265
+ process.stderr.write(`recurse into ${currentFieldType}`);
317
266
  }
318
- for (const member of currentPropertyType.members) {
267
+ for (const member of currentFieldType.members) {
319
268
  if (helper(stack.concat({
320
- objectType,
321
- property,
322
- propertyType: propertyType.concat(member.type),
269
+ field,
270
+ fieldType: fieldType.concat(member.type),
271
+ structType,
323
272
  }))) {
324
273
  return true;
325
274
  }
@@ -331,13 +280,13 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
331
280
  case "Option":
332
281
  case "Set":
333
282
  return helper(stack.concat({
334
- objectType,
335
- property,
336
- propertyType: propertyType.concat(currentPropertyType.itemType),
283
+ field,
284
+ fieldType: fieldType.concat(currentFieldType.itemType),
285
+ structType,
337
286
  }));
338
287
  }
339
288
  }
340
- return helper([{ objectType: rootObjectType, property: rootProperty }]);
289
+ return helper([{ structType: rootStructType, field: rootField }]);
341
290
  }
342
291
  toJSON() {
343
292
  return {
@@ -359,31 +308,7 @@ const nodeKinds = new Set(["BlankNode", "IRI"]);
359
308
  }
360
309
  __decorate([
361
310
  Memoize()
362
- ], Property.prototype, "recursive", null);
363
- ObjectType.Property = Property;
364
- })(ObjectType || (ObjectType = {}));
365
- (function (ObjectType) {
366
- function toposort(objectTypes) {
367
- const objectTypesByShapeIdentifier = {};
368
- const objectTypeGraphNodes = [];
369
- const objectTypeGraphEdges = [];
370
- for (const objectType of objectTypes) {
371
- const objectTypeShapeIdentifier = NTriplesIdentifier.stringify(objectType.shapeIdentifier);
372
- invariant(!objectTypesByShapeIdentifier[objectTypeShapeIdentifier]);
373
- objectTypesByShapeIdentifier[objectTypeShapeIdentifier] = objectType;
374
- objectTypeGraphNodes.push(objectTypeShapeIdentifier);
375
- for (const parentAstObjectType of objectType.parentObjectTypes) {
376
- objectTypeGraphEdges.push([
377
- objectTypeShapeIdentifier,
378
- NTriplesIdentifier.stringify(parentAstObjectType.shapeIdentifier),
379
- ]);
380
- }
381
- }
382
- return genericToposort
383
- .array(objectTypeGraphNodes, objectTypeGraphEdges)
384
- .map((objectTypeIdentifier) => objectTypesByShapeIdentifier[objectTypeIdentifier])
385
- .reverse();
386
- }
387
- ObjectType.toposort = toposort;
388
- })(ObjectType || (ObjectType = {}));
389
- //# sourceMappingURL=ObjectType.js.map
311
+ ], Field.prototype, "recursive", null);
312
+ StructType.Field = Field;
313
+ })(StructType || (StructType = {}));
314
+ //# sourceMappingURL=StructType.js.map
@@ -0,0 +1,4 @@
1
+ import type { StructType } from "./StructType.js";
2
+ import type { UnionType } from "./UnionType.js";
3
+ export type StructUnionType = UnionType<UnionType<StructType> | StructType>;
4
+ //# sourceMappingURL=StructUnionType.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StructUnionType.js.map
@@ -3,17 +3,17 @@ import type { DefaultValueType } from "./DefaultValueType.js";
3
3
  import type { IdentifierType } from "./IdentifierType.js";
4
4
  import type { IntersectionType } from "./IntersectionType.js";
5
5
  import type { IriType } from "./IriType.js";
6
- import type { LazyObjectOptionType } from "./LazyObjectOptionType.js";
7
- import type { LazyObjectSetType } from "./LazyObjectSetType.js";
8
- import type { LazyObjectType } from "./LazyObjectType.js";
6
+ import type { LazyOptionType } from "./LazyOptionType.js";
7
+ import type { LazySetType } from "./LazySetType.js";
8
+ import type { LazyType } from "./LazyType.js";
9
9
  import type { ListType } from "./ListType.js";
10
10
  import type { LiteralType } from "./LiteralType.js";
11
- import type { ObjectType } from "./ObjectType.js";
12
11
  import type { OptionType } from "./OptionType.js";
13
12
  import type { SetType } from "./SetType.js";
13
+ import type { StructType } from "./StructType.js";
14
14
  import type { TermType } from "./TermType.js";
15
15
  import type { UnionType } from "./UnionType.js";
16
- export type Type = BlankNodeType | DefaultValueType | IdentifierType | IntersectionType | IriType | LazyObjectOptionType | LazyObjectSetType | LazyObjectType | ListType | LiteralType | ObjectType | OptionType | SetType | TermType | UnionType;
16
+ export type Type = BlankNodeType | DefaultValueType | IdentifierType | IntersectionType | IriType | LazyOptionType | LazySetType | LazyType | ListType | LiteralType | StructType | OptionType | SetType | TermType | UnionType;
17
17
  export declare namespace Type {
18
18
  function equals(left: Type, right: Type): boolean;
19
19
  }
package/dist/ast/Type.js CHANGED
@@ -17,15 +17,15 @@ export var Type;
17
17
  return left.equals(right);
18
18
  case "Literal":
19
19
  return left.equals(right);
20
- case "LazyObjectOption":
20
+ case "LazyOption":
21
21
  return left.equals(right);
22
- case "LazyObjectSet":
22
+ case "LazySet":
23
23
  return left.equals(right);
24
- case "LazyObject":
24
+ case "Lazy":
25
25
  return left.equals(right);
26
26
  case "List":
27
27
  return left.equals(right);
28
- case "Object":
28
+ case "Struct":
29
29
  return left.equals(right);
30
30
  case "Option":
31
31
  return left.equals(right);
@@ -1,12 +1,12 @@
1
1
  import type { Maybe } from "purify-ts";
2
2
  import { AbstractCompoundType } from "./AbstractCompoundType.js";
3
- import type { ObjectUnionType } from "./ObjectUnionType.js";
3
+ import type { StructUnionType } from "./StructUnionType.js";
4
4
  /**
5
5
  * A disjunction/union of types, corresponding to an sh:xone.
6
6
  */
7
7
  export declare class UnionType<MemberTypeT extends UnionType.MemberType = UnionType.MemberType> extends AbstractCompoundType<UnionType.Member<MemberTypeT>, MemberTypeT> {
8
8
  readonly kind = "Union";
9
- isObjectUnionType(): this is ObjectUnionType;
9
+ isStructUnionType(): this is StructUnionType;
10
10
  toJSON(): {
11
11
  members: {
12
12
  discriminantValue: string | number | undefined;
@@ -4,10 +4,10 @@ import { AbstractCompoundType } from "./AbstractCompoundType.js";
4
4
  */
5
5
  export class UnionType extends AbstractCompoundType {
6
6
  kind = "Union";
7
- isObjectUnionType() {
7
+ isStructUnionType() {
8
8
  return (this.members.length > 0 &&
9
- this.members.every((member) => member.type.kind === "Object" ||
10
- (member.type.kind === "Union" && member.type.isObjectUnionType())));
9
+ this.members.every((member) => member.type.kind === "Struct" ||
10
+ (member.type.kind === "Union" && member.type.isStructUnionType())));
11
11
  }
12
12
  toJSON() {
13
13
  return {
@@ -4,17 +4,17 @@ export * from "./DefaultValueType.js";
4
4
  export * from "./IdentifierType.js";
5
5
  export * from "./IntersectionType.js";
6
6
  export * from "./IriType.js";
7
- export * from "./LazyObjectOptionType.js";
8
- export * from "./LazyObjectSetType.js";
9
- export * from "./LazyObjectType.js";
7
+ export * from "./LazyOptionType.js";
8
+ export * from "./LazySetType.js";
9
+ export * from "./LazyType.js";
10
10
  export * from "./ListType.js";
11
11
  export * from "./LiteralType.js";
12
- export * from "./ObjectCompoundType.js";
13
- export * from "./ObjectIntersectionType.js";
14
- export * from "./ObjectType.js";
15
- export * from "./ObjectUnionType.js";
16
12
  export * from "./OptionType.js";
17
13
  export * from "./SetType.js";
14
+ export * from "./StructCompoundType.js";
15
+ export * from "./StructIntersectionType.js";
16
+ export * from "./StructType.js";
17
+ export * from "./StructUnionType.js";
18
18
  export * from "./TermType.js";
19
19
  export * from "./Type.js";
20
20
  export * from "./UnionType.js";
package/dist/ast/index.js CHANGED
@@ -4,17 +4,17 @@ export * from "./DefaultValueType.js";
4
4
  export * from "./IdentifierType.js";
5
5
  export * from "./IntersectionType.js";
6
6
  export * from "./IriType.js";
7
- export * from "./LazyObjectOptionType.js";
8
- export * from "./LazyObjectSetType.js";
9
- export * from "./LazyObjectType.js";
7
+ export * from "./LazyOptionType.js";
8
+ export * from "./LazySetType.js";
9
+ export * from "./LazyType.js";
10
10
  export * from "./ListType.js";
11
11
  export * from "./LiteralType.js";
12
- export * from "./ObjectCompoundType.js";
13
- export * from "./ObjectIntersectionType.js";
14
- export * from "./ObjectType.js";
15
- export * from "./ObjectUnionType.js";
16
12
  export * from "./OptionType.js";
17
13
  export * from "./SetType.js";
14
+ export * from "./StructCompoundType.js";
15
+ export * from "./StructIntersectionType.js";
16
+ export * from "./StructType.js";
17
+ export * from "./StructUnionType.js";
18
18
  export * from "./TermType.js";
19
19
  export * from "./Type.js";
20
20
  export * from "./UnionType.js";
@@ -1,9 +1,13 @@
1
1
  export class AstJsonGenerator {
2
2
  generate(ast) {
3
3
  return JSON.stringify({
4
- objectTypes: ast.namedObjectTypes.map((objectType) => ({
5
- ...objectType.toJSON(),
6
- properties: objectType.properties.map((property) => property.toJSON()),
4
+ namedTypes: ast.namedTypes.map((namedType) => ({
5
+ ...namedType.toJSON(),
6
+ ...(namedType.kind === "Struct"
7
+ ? {
8
+ properties: namedType.fields.map((property) => property.toJSON()),
9
+ }
10
+ : {}),
7
11
  })),
8
12
  }, undefined, 2);
9
13
  }