@shaclmate/compiler 4.0.29 → 4.0.31
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.
- package/dist/_ShapesGraphToAstTransformer/shapeAstTypeName.js +0 -4
- package/dist/generators/ts/AbstractCollectionType.js +13 -15
- package/dist/generators/ts/AbstractDateType.js +6 -8
- package/dist/generators/ts/AbstractIdentifierType.d.ts +1 -1
- package/dist/generators/ts/AbstractIdentifierType.js +9 -5
- package/dist/generators/ts/AbstractLazyObjectType.d.ts +2 -3
- package/dist/generators/ts/AbstractLazyObjectType.js +2 -5
- package/dist/generators/ts/AbstractLiteralType.js +2 -3
- package/dist/generators/ts/AbstractNamedUnionType.js +39 -41
- package/dist/generators/ts/AbstractNumericType.js +8 -11
- package/dist/generators/ts/AbstractPrimitiveType.js +1 -2
- package/dist/generators/ts/AbstractTermType.js +12 -14
- package/dist/generators/ts/AbstractType.d.ts +9 -2
- package/dist/generators/ts/AbstractType.js +15 -5
- package/dist/generators/ts/AbstractUnionType.d.ts +3 -0
- package/dist/generators/ts/AbstractUnionType.js +37 -28
- package/dist/generators/ts/BigDecimalType.d.ts +3 -3
- package/dist/generators/ts/BigDecimalType.js +24 -21
- package/dist/generators/ts/BigIntType.d.ts +1 -1
- package/dist/generators/ts/BigIntType.js +9 -5
- package/dist/generators/ts/BlankNodeType.js +9 -11
- package/dist/generators/ts/BooleanType.d.ts +1 -1
- package/dist/generators/ts/BooleanType.js +13 -11
- package/dist/generators/ts/DateTimeType.d.ts +1 -1
- package/dist/generators/ts/DateTimeType.js +14 -3
- package/dist/generators/ts/DateType.d.ts +1 -1
- package/dist/generators/ts/DateType.js +14 -3
- package/dist/generators/ts/DefaultValueType.js +5 -8
- package/dist/generators/ts/FloatType.d.ts +1 -1
- package/dist/generators/ts/FloatType.js +13 -2
- package/dist/generators/ts/IdentifierType.js +9 -11
- package/dist/generators/ts/{imports.d.ts → Imports.d.ts} +3 -3
- package/dist/generators/ts/Imports.js +41 -0
- package/dist/generators/ts/IntType.d.ts +1 -1
- package/dist/generators/ts/IntType.js +13 -2
- package/dist/generators/ts/IriType.js +15 -20
- package/dist/generators/ts/LazyObjectOptionType.d.ts +8 -8
- package/dist/generators/ts/LazyObjectOptionType.js +21 -26
- package/dist/generators/ts/LazyObjectSetType.d.ts +5 -1
- package/dist/generators/ts/LazyObjectSetType.js +12 -20
- package/dist/generators/ts/LazyObjectType.d.ts +5 -1
- package/dist/generators/ts/LazyObjectType.js +20 -18
- package/dist/generators/ts/ListType.js +12 -15
- package/dist/generators/ts/LiteralType.js +8 -10
- package/dist/generators/ts/NamedObjectType.d.ts +1 -3
- package/dist/generators/ts/NamedObjectType.js +33 -32
- package/dist/generators/ts/NamedObjectUnionType.js +37 -29
- package/dist/generators/ts/OptionType.js +13 -15
- package/dist/generators/ts/Reusables.d.ts +11 -0
- package/dist/generators/ts/Reusables.js +14 -0
- package/dist/generators/ts/SetType.js +4 -6
- package/dist/generators/ts/Snippet.d.ts +3 -0
- package/dist/generators/ts/Snippet.js +2 -0
- package/dist/generators/ts/SnippetFactory.d.ts +14 -0
- package/dist/generators/ts/SnippetFactory.js +2 -0
- package/dist/generators/ts/Snippets.d.ts +126 -0
- package/dist/generators/ts/Snippets.js +825 -0
- package/dist/generators/ts/StringType.d.ts +2 -2
- package/dist/generators/ts/StringType.js +14 -12
- package/dist/generators/ts/TermType.js +14 -17
- package/dist/generators/ts/TsGenerator.d.ts +7 -1
- package/dist/generators/ts/TsGenerator.js +90 -14
- package/dist/generators/ts/TypeFactory.d.ts +4 -1
- package/dist/generators/ts/TypeFactory.js +29 -3
- package/dist/generators/ts/ZodGenerator.d.ts +1 -0
- package/dist/generators/ts/ZodGenerator.js +10 -8
- package/dist/generators/ts/_NamedObjectType/AbstractProperty.d.ts +9 -4
- package/dist/generators/ts/_NamedObjectType/AbstractProperty.js +10 -1
- package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.d.ts +2 -2
- package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.js +17 -24
- package/dist/generators/ts/_NamedObjectType/IdentifierProperty.d.ts +1 -1
- package/dist/generators/ts/_NamedObjectType/IdentifierProperty.js +10 -14
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_createFunctionDeclaration.js +3 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_equalsFunctionDeclaration.js +2 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_filterFunctionDeclaration.js +1 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_filterTypeDeclaration.js +2 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlConstructTriplesFunctionDeclaration.js +7 -11
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlWherePatternsFunctionDeclaration.js +11 -15
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromJsonFunctionDeclaration.js +21 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceFunctionDeclaration.js +83 -8
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceValuesFunctionDeclaration.js +2 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfTypeVariableStatement.js +1 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_graphqlTypeVariableStatement.js +1 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_hashFunctionDeclarations.js +4 -6
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonParseFunctionDeclaration.js +3 -5
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonSchemaFunctionDeclaration.js +1 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonTypeAliasDeclaration.js +1 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonUiSchemaFunctionDeclaration.js +1 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_schemaVariableStatement.js +2 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.d.ts +2 -0
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.js +4 -7
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts +2 -0
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.js +2 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toJsonFunctionDeclaration.js +2 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toRdfResourceFunctionDeclaration.js +14 -23
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toStringFunctionDeclarations.js +4 -5
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlConstructTriplesFunctionDeclaration.js +2 -4
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlWherePatternsFunctionDeclaration.js +3 -5
- package/dist/generators/ts/_NamedObjectType/ShaclProperty.d.ts +1 -1
- package/dist/generators/ts/_NamedObjectType/ShaclProperty.js +12 -15
- package/dist/generators/ts/_NamedObjectType/identifierTypeDeclarations.js +4 -5
- package/dist/generators/ts/_snippets/snippets_BlankNodeFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_BlankNodeFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_BlankNodeSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_BlankNodeSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_BooleanFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_BooleanFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_BooleanSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_BooleanSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_CollectionFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_CollectionFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_CollectionSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_CollectionSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_DateFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_DateFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_DateSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_DateSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.js +1 -3
- package/dist/generators/ts/_snippets/snippets_EqualsResult.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_EqualsResult.js +1 -3
- package/dist/generators/ts/_snippets/snippets_FocusSparqlConstructTriplesFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_FocusSparqlConstructTriplesFunction.js +1 -3
- package/dist/generators/ts/_snippets/snippets_FocusSparqlWherePatternsFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_FocusSparqlWherePatternsFunction.js +2 -5
- package/dist/generators/ts/_snippets/snippets_FromRdfResourceFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_FromRdfResourceFunction.js +1 -3
- package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_FromRdfResourceValuesFunction.js +1 -3
- package/dist/generators/ts/_snippets/snippets_Hasher.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_Hasher.js +1 -2
- package/dist/generators/ts/_snippets/snippets_IdentifierFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_IdentifierFilter.js +1 -3
- package/dist/generators/ts/_snippets/snippets_IdentifierSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_IdentifierSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_IdentifierSet.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_IdentifierSet.js +1 -3
- package/dist/generators/ts/_snippets/snippets_IriFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_IriFilter.js +1 -3
- package/dist/generators/ts/_snippets/snippets_IriSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_IriSchema.js +1 -3
- package/dist/generators/ts/_snippets/snippets_LazyObject.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_LazyObject.js +1 -3
- package/dist/generators/ts/_snippets/snippets_LazyObjectOption.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_LazyObjectOption.js +1 -3
- package/dist/generators/ts/_snippets/snippets_LazyObjectSet.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_LazyObjectSet.js +1 -3
- package/dist/generators/ts/_snippets/snippets_LiteralFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_LiteralFilter.js +2 -5
- package/dist/generators/ts/_snippets/snippets_LiteralSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_LiteralSchema.js +1 -3
- package/dist/generators/ts/_snippets/snippets_MaybeFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_MaybeFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_MaybeSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_MaybeSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_NumericFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_NumericFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_NumericSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_NumericSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_PropertyPath.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_PropertyPath.js +8 -13
- package/dist/generators/ts/_snippets/snippets_RdfVocabularies.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_RdfVocabularies.js +1 -3
- package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.js +2 -4
- package/dist/generators/ts/_snippets/snippets_SparqlFilterPattern.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_SparqlFilterPattern.js +1 -3
- package/dist/generators/ts/_snippets/snippets_SparqlPattern.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_SparqlPattern.js +1 -4
- package/dist/generators/ts/_snippets/snippets_SparqlPattern_isSolutionGenerating.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_SparqlPattern_isSolutionGenerating.js +2 -4
- package/dist/generators/ts/_snippets/snippets_StringFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_StringFilter.js +1 -2
- package/dist/generators/ts/_snippets/snippets_StringSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_StringSchema.js +1 -2
- package/dist/generators/ts/_snippets/snippets_TermFilter.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_TermFilter.js +1 -3
- package/dist/generators/ts/_snippets/snippets_TermSchema.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_TermSchema.js +1 -3
- package/dist/generators/ts/_snippets/snippets_ToRdfResourceFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_ToRdfResourceFunction.js +9 -5
- package/dist/generators/ts/_snippets/snippets_ToRdfResourceValuesFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_ToRdfResourceValuesFunction.js +5 -6
- package/dist/generators/ts/_snippets/snippets_UnwrapR.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_UnwrapR.js +1 -3
- package/dist/generators/ts/_snippets/snippets_ValueSparqlConstructTriplesFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_ValueSparqlConstructTriplesFunction.js +1 -3
- package/dist/generators/ts/_snippets/snippets_ValueSparqlWherePatternsFunction.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_ValueSparqlWherePatternsFunction.js +3 -6
- package/dist/generators/ts/_snippets/snippets__FromRdfResourceFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets__FromRdfResourceFunction.js +13 -0
- package/dist/generators/ts/_snippets/snippets__ToRdfResourceFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets__ToRdfResourceFunction.js +12 -0
- package/dist/generators/ts/_snippets/snippets_arrayEquals.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_arrayEquals.js +7 -10
- package/dist/generators/ts/_snippets/snippets_arrayIntersection.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_arrayIntersection.js +1 -2
- package/dist/generators/ts/_snippets/snippets_bigDecimalLiteral.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_bigDecimalLiteral.js +2 -5
- package/dist/generators/ts/_snippets/snippets_bigDecimalSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_bigDecimalSparqlWherePatterns.js +11 -19
- package/dist/generators/ts/_snippets/snippets_blankNodeSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_blankNodeSparqlWherePatterns.js +2 -6
- package/dist/generators/ts/_snippets/snippets_booleanEquals.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_booleanEquals.js +4 -6
- package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.js +5 -12
- package/dist/generators/ts/_snippets/snippets_compactRecord.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_compactRecord.js +1 -2
- package/dist/generators/ts/_snippets/snippets_dateEquals.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_dateEquals.js +4 -6
- package/dist/generators/ts/_snippets/snippets_dateSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_dateSparqlWherePatterns.js +9 -17
- package/dist/generators/ts/_snippets/snippets_decodeBigDecimalLiteral.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_decodeBigDecimalLiteral.js +1 -3
- package/dist/generators/ts/_snippets/snippets_deduplicateSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_deduplicateSparqlPatterns.js +3 -5
- package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +3 -7
- package/dist/generators/ts/_snippets/snippets_filterArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterArray.js +2 -4
- package/dist/generators/ts/_snippets/snippets_filterBigDecimal.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterBigDecimal.js +2 -5
- package/dist/generators/ts/_snippets/snippets_filterBlankNode.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterBlankNode.js +2 -5
- package/dist/generators/ts/_snippets/snippets_filterBoolean.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterBoolean.js +2 -4
- package/dist/generators/ts/_snippets/snippets_filterDate.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterDate.js +2 -4
- package/dist/generators/ts/_snippets/snippets_filterIdentifier.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterIdentifier.js +2 -5
- package/dist/generators/ts/_snippets/snippets_filterIri.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterIri.js +2 -5
- package/dist/generators/ts/_snippets/snippets_filterLiteral.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterLiteral.js +3 -7
- package/dist/generators/ts/_snippets/snippets_filterMaybe.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterMaybe.js +2 -5
- package/dist/generators/ts/_snippets/snippets_filterNumeric.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterNumeric.js +2 -4
- package/dist/generators/ts/_snippets/snippets_filterString.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterString.js +2 -4
- package/dist/generators/ts/_snippets/snippets_filterTerm.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_filterTerm.js +2 -5
- package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_fromRdfLanguageIn.js +1 -3
- package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_fromRdfPreferredLanguages.js +1 -3
- package/dist/generators/ts/_snippets/snippets_identifierSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_identifierSparqlWherePatterns.js +4 -10
- package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.js +5 -12
- package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.js +1 -2
- package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.js +1 -2
- package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.js +1 -2
- package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.js +1 -2
- package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.js +1 -2
- package/dist/generators/ts/_snippets/snippets_liftSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_liftSparqlPatterns.js +4 -7
- package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.js +6 -12
- package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.js +9 -18
- package/dist/generators/ts/_snippets/snippets_literalFactory.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_literalFactory.js +1 -3
- package/dist/generators/ts/_snippets/snippets_literalSchemaSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_literalSchemaSparqlPatterns.js +7 -13
- package/dist/generators/ts/_snippets/snippets_literalSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_literalSparqlWherePatterns.js +3 -8
- package/dist/generators/ts/_snippets/snippets_maybeEquals.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_maybeEquals.js +5 -8
- package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.js +2 -6
- package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.js +4 -9
- package/dist/generators/ts/_snippets/snippets_normalizeSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_normalizeSparqlWherePatterns.js +9 -14
- package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_numericSparqlWherePatterns.js +9 -17
- package/dist/generators/ts/_snippets/snippets_parseBlankNode.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_parseBlankNode.js +2 -5
- package/dist/generators/ts/_snippets/snippets_parseIdentifier.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_parseIdentifier.js +1 -3
- package/dist/generators/ts/_snippets/snippets_parseIri.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_parseIri.js +2 -5
- package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.js +2 -6
- package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.js +3 -8
- package/dist/generators/ts/_snippets/snippets_shaclPropertyFromRdf.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_shaclPropertyFromRdf.js +2 -5
- package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.js +4 -9
- package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.js +8 -15
- package/dist/generators/ts/_snippets/snippets_sortSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_sortSparqlPatterns.js +5 -7
- package/dist/generators/ts/_snippets/snippets_sparqlInstancesOfPattern.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_sparqlInstancesOfPattern.js +3 -6
- package/dist/generators/ts/_snippets/snippets_sparqlPropertyPath.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_sparqlPropertyPath.js +3 -6
- package/dist/generators/ts/_snippets/snippets_sparqlValueInPattern.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_sparqlValueInPattern.js +3 -7
- package/dist/generators/ts/_snippets/snippets_strictEquals.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_strictEquals.js +4 -6
- package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.js +7 -15
- package/dist/generators/ts/_snippets/snippets_termFilterSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_termFilterSparqlPatterns.js +4 -9
- package/dist/generators/ts/_snippets/snippets_termSchemaSparqlPatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_termSchemaSparqlPatterns.js +6 -11
- package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.d.ts +2 -1
- package/dist/generators/ts/_snippets/snippets_termSparqlWherePatterns.js +3 -9
- package/dist/generators/ts/_snippets/snippets_wrap_FromRdfResourceFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_wrap_FromRdfResourceFunction.js +10 -0
- package/dist/generators/ts/_snippets/snippets_wrap_ToRdfResourceFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_wrap_ToRdfResourceFunction.js +14 -0
- package/dist/generators/ts/graphqlSchemaVariableStatement.d.ts +2 -1
- package/dist/generators/ts/graphqlSchemaVariableStatement.js +13 -14
- package/dist/generators/ts/objectSetDeclarations.d.ts +2 -1
- package/dist/generators/ts/objectSetDeclarations.js +3 -3
- package/dist/generators/ts/objectSetInterfaceDeclaration.d.ts +2 -1
- package/dist/generators/ts/objectSetInterfaceDeclaration.js +4 -5
- package/dist/generators/ts/objectSetMethodSignatures.d.ts +2 -1
- package/dist/generators/ts/objectSetMethodSignatures.js +4 -5
- package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.d.ts +2 -1
- package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.js +49 -51
- package/dist/generators/ts/rdfjsTermExpression.d.ts +6 -2
- package/dist/generators/ts/rdfjsTermExpression.js +13 -15
- package/dist/generators/ts/sparqlObjectSetClassDeclaration.d.ts +2 -1
- package/dist/generators/ts/sparqlObjectSetClassDeclaration.js +43 -45
- package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.d.ts +2 -1
- package/dist/generators/ts/unsupportedObjectSetMethodDeclarations.js +6 -7
- package/dist/input/ShapesGraph.d.ts +4 -4
- package/dist/input/ShapesGraph.js +4 -4
- package/dist/input/generated.d.ts +184 -267
- package/dist/input/generated.js +721 -779
- package/package.json +2 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromJsonFunctionDeclaration.d.ts +0 -5
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromJsonFunctionDeclaration.js +0 -38
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromRdfResourceFunctionDeclaration.d.ts +0 -5
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_propertiesFromRdfResourceFunctionDeclaration.js +0 -101
- package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfResourceFunction.d.ts +0 -2
- package/dist/generators/ts/_snippets/snippets_PropertiesFromRdfResourceFunction.js +0 -15
- package/dist/generators/ts/imports.js +0 -41
- package/dist/generators/ts/snippets.d.ts +0 -110
- package/dist/generators/ts/snippets.js +0 -217
- package/dist/generators/ts/synthesizeUberObjectUnionType.d.ts +0 -11
- package/dist/generators/ts/synthesizeUberObjectUnionType.js +0 -68
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { imports } from "./imports.js";
|
|
2
1
|
import { objectSetMethodSignatures } from "./objectSetMethodSignatures.js";
|
|
3
|
-
import { snippets } from "./snippets.js";
|
|
4
2
|
import { syntheticNamePrefix } from "./syntheticNamePrefix.js";
|
|
5
3
|
import { code, joinCode } from "./ts-poet-wrapper.js";
|
|
6
4
|
import { unsupportedObjectSetMethodDeclarations } from "./unsupportedObjectSetMethodDeclarations.js";
|
|
7
5
|
export function rdfjsDatasetObjectSetClassDeclaration({ namedObjectTypes, namedObjectUnionTypes, }) {
|
|
8
6
|
const namedObjectTypeType = code `\
|
|
9
7
|
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
filter: (filter: ObjectFilterT, value: ObjectT) => boolean;
|
|
9
|
+
fromRdfResource: ${this.reusables.snippets.FromRdfResourceFunction}<ObjectT>;
|
|
10
|
+
fromRdfTypes: readonly ${this.reusables.imports.NamedNode}[]
|
|
13
11
|
}`;
|
|
14
12
|
const parameters = {
|
|
15
13
|
query: `query?: ${syntheticNamePrefix}ObjectSet.Query<ObjectFilterT, ObjectIdentifierT>`,
|
|
@@ -17,16 +15,16 @@ export function rdfjsDatasetObjectSetClassDeclaration({ namedObjectTypes, namedO
|
|
|
17
15
|
const typeParameters = {
|
|
18
16
|
ObjectT: code `ObjectT extends { readonly $identifier: () => ObjectIdentifierT }`,
|
|
19
17
|
ObjectFilterT: code `ObjectFilterT`,
|
|
20
|
-
ObjectIdentifierT: code `ObjectIdentifierT extends ${imports.BlankNode} | ${imports.NamedNode}`,
|
|
18
|
+
ObjectIdentifierT: code `ObjectIdentifierT extends ${this.reusables.imports.BlankNode} | ${this.reusables.imports.NamedNode}`,
|
|
21
19
|
};
|
|
22
20
|
return code `\
|
|
23
21
|
export class ${syntheticNamePrefix}RdfjsDatasetObjectSet implements ${syntheticNamePrefix}ObjectSet {
|
|
24
|
-
|
|
25
|
-
readonly #
|
|
22
|
+
readonly #dataset: ${this.reusables.imports.DatasetCore} | (() => ${this.reusables.imports.DatasetCore});
|
|
23
|
+
readonly #graph?: Exclude<${this.reusables.imports.Quad_Graph}, ${this.reusables.imports.Variable}>;
|
|
26
24
|
|
|
27
|
-
constructor(dataset: ${imports.DatasetCore} | (() => ${imports.DatasetCore}), options?: { graph?: Exclude<${imports.Quad_Graph}, ${imports.Variable}> }) {
|
|
25
|
+
constructor(dataset: ${this.reusables.imports.DatasetCore} | (() => ${this.reusables.imports.DatasetCore}), options?: { graph?: Exclude<${this.reusables.imports.Quad_Graph}, ${this.reusables.imports.Variable}> }) {
|
|
28
26
|
this.#dataset = dataset;
|
|
29
|
-
this
|
|
27
|
+
this.#graph = options?.graph;
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
protected ${syntheticNamePrefix}dataset(): DatasetCore {
|
|
@@ -36,18 +34,18 @@ export class ${syntheticNamePrefix}RdfjsDatasetObjectSet implements ${syntheticN
|
|
|
36
34
|
return this.#dataset();
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
protected ${syntheticNamePrefix}resourceSet(): ${imports.ResourceSet} {
|
|
40
|
-
return new ${imports.ResourceSet}({ dataFactory: ${imports.dataFactory}, dataset: this.${syntheticNamePrefix}dataset() });
|
|
37
|
+
protected ${syntheticNamePrefix}resourceSet(): ${this.reusables.imports.ResourceSet} {
|
|
38
|
+
return new ${this.reusables.imports.ResourceSet}({ dataFactory: ${this.reusables.imports.dataFactory}, dataset: this.${syntheticNamePrefix}dataset() });
|
|
41
39
|
}
|
|
42
40
|
|
|
43
41
|
${joinCode([
|
|
44
42
|
...[...namedObjectTypes, ...namedObjectUnionTypes].flatMap((namedObjectType) => {
|
|
45
43
|
if (!namedObjectType.features.has("rdf")) {
|
|
46
|
-
return Object.values(unsupportedObjectSetMethodDeclarations({
|
|
44
|
+
return Object.values(unsupportedObjectSetMethodDeclarations.call(this, {
|
|
47
45
|
namedObjectType,
|
|
48
46
|
}));
|
|
49
47
|
}
|
|
50
|
-
const methodSignatures = objectSetMethodSignatures({
|
|
48
|
+
const methodSignatures = objectSetMethodSignatures.call(this, {
|
|
51
49
|
namedObjectType,
|
|
52
50
|
});
|
|
53
51
|
const delegatingMethods = [
|
|
@@ -58,7 +56,7 @@ async ${methodSignatures.object.name}(${methodSignatures.object.parameters}): ${
|
|
|
58
56
|
}`,
|
|
59
57
|
// objectSync
|
|
60
58
|
code `\
|
|
61
|
-
${methodSignatures.object.name}Sync(${methodSignatures.object.parameters}): ${imports.Either}<Error, ${namedObjectType.name}> {
|
|
59
|
+
${methodSignatures.object.name}Sync(${methodSignatures.object.parameters}): ${this.reusables.imports.Either}<Error, ${namedObjectType.name}> {
|
|
62
60
|
return this.${methodSignatures.objects.name}Sync({ identifiers: [identifier], preferredLanguages: options?.preferredLanguages }).map(objects => objects[0]);
|
|
63
61
|
}`,
|
|
64
62
|
// objectCount
|
|
@@ -68,7 +66,7 @@ async ${methodSignatures.objectCount.name}(${methodSignatures.objectCount.parame
|
|
|
68
66
|
}`,
|
|
69
67
|
// objectCountSync
|
|
70
68
|
code `\
|
|
71
|
-
${methodSignatures.objectCount.name}Sync(${methodSignatures.objectCount.parameters}): ${imports.Either}<Error, number> {
|
|
69
|
+
${methodSignatures.objectCount.name}Sync(${methodSignatures.objectCount.parameters}): ${this.reusables.imports.Either}<Error, number> {
|
|
72
70
|
return this.${methodSignatures.objects.name}Sync(query).map(objects => objects.length);
|
|
73
71
|
}`,
|
|
74
72
|
// objectIdentifiers
|
|
@@ -78,7 +76,7 @@ async ${methodSignatures.objectIdentifiers.name}(${methodSignatures.objectIdenti
|
|
|
78
76
|
}`,
|
|
79
77
|
// objectIdentifiersSync
|
|
80
78
|
code `\
|
|
81
|
-
${methodSignatures.objectIdentifiers.name}Sync(${methodSignatures.objectIdentifiers.parameters}): ${imports.Either}<Error, readonly ${namedObjectType.identifierTypeAlias}[]> {
|
|
79
|
+
${methodSignatures.objectIdentifiers.name}Sync(${methodSignatures.objectIdentifiers.parameters}): ${this.reusables.imports.Either}<Error, readonly ${namedObjectType.identifierTypeAlias}[]> {
|
|
82
80
|
return this.${methodSignatures.objects.name}Sync(query).map(objects => objects.map(object => object.${syntheticNamePrefix}identifier()));
|
|
83
81
|
}`,
|
|
84
82
|
// objects
|
|
@@ -92,18 +90,18 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
92
90
|
const fromRdfTypes = namedObjectType.fromRdfTypeVariable
|
|
93
91
|
.toList()
|
|
94
92
|
.concat(namedObjectType.descendantFromRdfTypeVariables);
|
|
95
|
-
return code `{
|
|
93
|
+
return code `{ filter: ${filterFunction}, fromRdfResource: ${namedObjectType.name}.fromRdfResource, fromRdfTypes: ${fromRdfTypes.length > 0 ? code `[${joinCode(fromRdfTypes, { on: ", " })}]` : "[]"} }`;
|
|
96
94
|
};
|
|
97
95
|
switch (namedObjectType.kind) {
|
|
98
96
|
case "NamedObjectType": {
|
|
99
97
|
return delegatingMethods.concat(code `\
|
|
100
|
-
${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${imports.Either}<Error, readonly ${namedObjectType.name}[]> {
|
|
98
|
+
${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${this.reusables.imports.Either}<Error, readonly ${namedObjectType.name}[]> {
|
|
101
99
|
return this.#objectsSync<${namedObjectType.name}, ${namedObjectType.filterType}, ${namedObjectType.identifierTypeAlias}>(${runtimeObjectType(namedObjectType.filterFunction, namedObjectType)}, query);
|
|
102
100
|
}`);
|
|
103
101
|
}
|
|
104
102
|
case "NamedObjectUnionType":
|
|
105
103
|
return delegatingMethods.concat(code `\
|
|
106
|
-
${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${imports.Either}<Error, readonly ${namedObjectType.name}[]> {
|
|
104
|
+
${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${this.reusables.imports.Either}<Error, readonly ${namedObjectType.name}[]> {
|
|
107
105
|
return this.#objectUnionsSync<${namedObjectType.name}, ${namedObjectType.filterType}, ${namedObjectType.identifierTypeAlias}>([
|
|
108
106
|
${joinCode(namedObjectType.members.map((member) => runtimeObjectType(namedObjectType.filterFunction, member.type)), { on: ", " })}
|
|
109
107
|
], query);
|
|
@@ -116,28 +114,28 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
116
114
|
...(namedObjectTypes.length > 0
|
|
117
115
|
? [
|
|
118
116
|
code `\
|
|
119
|
-
#objectsSync<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(namedObjectType: ${namedObjectTypeType}, ${parameters.query}): ${imports.Either}<Error, readonly ObjectT[]> {
|
|
120
|
-
const graph = query?.graph ?? this
|
|
117
|
+
#objectsSync<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(namedObjectType: ${namedObjectTypeType}, ${parameters.query}): ${this.reusables.imports.Either}<Error, readonly ObjectT[]> {
|
|
118
|
+
const graph = query?.graph ?? this.#graph;
|
|
121
119
|
|
|
122
120
|
const limit = query?.limit ?? Number.MAX_SAFE_INTEGER;
|
|
123
|
-
if (limit <= 0) { return ${imports.Right}([]); }
|
|
121
|
+
if (limit <= 0) { return ${this.reusables.imports.Right}([]); }
|
|
124
122
|
|
|
125
123
|
let offset = query?.offset ?? 0;
|
|
126
124
|
if (offset < 0) { offset = 0; }
|
|
127
125
|
|
|
128
|
-
const fromRdfResourceOptions: Parameters<${snippets.FromRdfResourceFunction}<ObjectT>>[1] = { graph, objectSet: this, preferredLanguages: query?.preferredLanguages };
|
|
126
|
+
const fromRdfResourceOptions: Parameters<${this.reusables.snippets.FromRdfResourceFunction}<ObjectT>>[1] = { graph, objectSet: this, preferredLanguages: query?.preferredLanguages };
|
|
129
127
|
|
|
130
|
-
let resources: { object?: ObjectT, resource: ${imports.Resource} }[];
|
|
128
|
+
let resources: { object?: ObjectT, resource: ${this.reusables.imports.Resource} }[];
|
|
131
129
|
const resourceSet = this.${syntheticNamePrefix}resourceSet(); // Access once, in case it's instantiated lazily
|
|
132
130
|
let sortResources: boolean;
|
|
133
131
|
if (query?.identifiers) {
|
|
134
132
|
resources = query.identifiers.map(identifier => ({ resource: resourceSet.resource(identifier) }));
|
|
135
133
|
sortResources = false;
|
|
136
|
-
} else if (namedObjectType
|
|
137
|
-
const identifierSet = new ${snippets.IdentifierSet}();
|
|
134
|
+
} else if (namedObjectType.fromRdfTypes.length > 0) {
|
|
135
|
+
const identifierSet = new ${this.reusables.snippets.IdentifierSet}();
|
|
138
136
|
resources = [];
|
|
139
137
|
sortResources = true;
|
|
140
|
-
for (const fromRdfType of namedObjectType
|
|
138
|
+
for (const fromRdfType of namedObjectType.fromRdfTypes) {
|
|
141
139
|
for (const resource of resourceSet.instancesOf(fromRdfType, { graph })) {
|
|
142
140
|
if (!identifierSet.has(resource.identifier)) {
|
|
143
141
|
identifierSet.add(resource.identifier);
|
|
@@ -146,7 +144,7 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
146
144
|
}
|
|
147
145
|
}
|
|
148
146
|
} else {
|
|
149
|
-
const identifierSet = new ${snippets.IdentifierSet}();
|
|
147
|
+
const identifierSet = new ${this.reusables.snippets.IdentifierSet}();
|
|
150
148
|
resources = [];
|
|
151
149
|
sortResources = true;
|
|
152
150
|
for (const quad of resourceSet.dataset) {
|
|
@@ -168,7 +166,7 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
168
166
|
identifierSet.add(quad.subject);
|
|
169
167
|
const resource = resourceSet.resource(quad.subject);
|
|
170
168
|
// Eagerly eliminate the majority of resources that won't match the object type
|
|
171
|
-
namedObjectType
|
|
169
|
+
namedObjectType.fromRdfResource(resource, fromRdfResourceOptions).ifRight(object => {
|
|
172
170
|
resources.push({ object, resource });
|
|
173
171
|
});
|
|
174
172
|
}
|
|
@@ -183,54 +181,54 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
183
181
|
const objects: ObjectT[] = [];
|
|
184
182
|
for (let { object, resource } of resources) {
|
|
185
183
|
if (!object) {
|
|
186
|
-
const objectEither = namedObjectType
|
|
184
|
+
const objectEither = namedObjectType.fromRdfResource(resource, fromRdfResourceOptions);
|
|
187
185
|
if (objectEither.isLeft()) {
|
|
188
186
|
return objectEither;
|
|
189
187
|
}
|
|
190
188
|
object = objectEither.unsafeCoerce();
|
|
191
189
|
}
|
|
192
190
|
|
|
193
|
-
if (query?.filter && !namedObjectType
|
|
191
|
+
if (query?.filter && !namedObjectType.filter(query.filter, object)) {
|
|
194
192
|
continue;
|
|
195
193
|
}
|
|
196
194
|
|
|
197
195
|
if (objectI++ >= offset) {
|
|
198
196
|
objects.push(object);
|
|
199
197
|
if (objects.length === limit) {
|
|
200
|
-
return ${imports.Right}(objects);
|
|
198
|
+
return ${this.reusables.imports.Right}(objects);
|
|
201
199
|
}
|
|
202
200
|
}
|
|
203
201
|
}
|
|
204
|
-
return ${imports.Right}(objects);
|
|
202
|
+
return ${this.reusables.imports.Right}(objects);
|
|
205
203
|
}`,
|
|
206
204
|
]
|
|
207
205
|
: []),
|
|
208
206
|
...(namedObjectUnionTypes.length > 0
|
|
209
207
|
? [
|
|
210
208
|
code `\
|
|
211
|
-
#objectUnionsSync<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(namedObjectTypes: readonly ${namedObjectTypeType}[], ${parameters.query}): ${imports.Either}<Error, readonly ObjectT[]> {
|
|
212
|
-
const graph = query?.graph ?? this
|
|
209
|
+
#objectUnionsSync<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(namedObjectTypes: readonly ${namedObjectTypeType}[], ${parameters.query}): ${this.reusables.imports.Either}<Error, readonly ObjectT[]> {
|
|
210
|
+
const graph = query?.graph ?? this.#graph;
|
|
213
211
|
|
|
214
212
|
const limit = query?.limit ?? Number.MAX_SAFE_INTEGER;
|
|
215
|
-
if (limit <= 0) { return ${imports.Right}([]); }
|
|
213
|
+
if (limit <= 0) { return ${this.reusables.imports.Right}([]); }
|
|
216
214
|
|
|
217
215
|
let offset = query?.offset ?? 0;
|
|
218
216
|
if (offset < 0) { offset = 0; }
|
|
219
217
|
|
|
220
|
-
const fromRdfResourceOptions: Parameters<${snippets.FromRdfResourceFunction}<ObjectT>>[1] = { graph, objectSet: this, preferredLanguages: query?.preferredLanguages };
|
|
218
|
+
const fromRdfResourceOptions: Parameters<${this.reusables.snippets.FromRdfResourceFunction}<ObjectT>>[1] = { graph, objectSet: this, preferredLanguages: query?.preferredLanguages };
|
|
221
219
|
|
|
222
|
-
let resources: { object?: ObjectT, namedObjectType?: ${namedObjectTypeType}, resource: ${imports.Resource} }[];
|
|
220
|
+
let resources: { object?: ObjectT, namedObjectType?: ${namedObjectTypeType}, resource: ${this.reusables.imports.Resource} }[];
|
|
223
221
|
const resourceSet = this.${syntheticNamePrefix}resourceSet(); // Access once, in case it's instantiated lazily
|
|
224
222
|
let sortResources: boolean;
|
|
225
223
|
if (query?.identifiers) {
|
|
226
224
|
resources = query.identifiers.map(identifier => ({ resource: resourceSet.resource(identifier) }));
|
|
227
225
|
sortResources = false;
|
|
228
|
-
} else if (namedObjectTypes.every(namedObjectType => namedObjectType
|
|
229
|
-
const identifierSet = new ${snippets.IdentifierSet}();
|
|
226
|
+
} else if (namedObjectTypes.every(namedObjectType => namedObjectType.fromRdfTypes.length > 0)) {
|
|
227
|
+
const identifierSet = new ${this.reusables.snippets.IdentifierSet}();
|
|
230
228
|
resources = [];
|
|
231
229
|
sortResources = true;
|
|
232
230
|
for (const namedObjectType of namedObjectTypes) {
|
|
233
|
-
for (const fromRdfType of namedObjectType
|
|
231
|
+
for (const fromRdfType of namedObjectType.fromRdfTypes) {
|
|
234
232
|
for (const resource of resourceSet.instancesOf(fromRdfType, { graph })) {
|
|
235
233
|
if (!identifierSet.has(resource.identifier)) {
|
|
236
234
|
identifierSet.add(resource.identifier);
|
|
@@ -240,7 +238,7 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
240
238
|
}
|
|
241
239
|
}
|
|
242
240
|
} else {
|
|
243
|
-
const identifierSet = new ${snippets.IdentifierSet}();
|
|
241
|
+
const identifierSet = new ${this.reusables.snippets.IdentifierSet}();
|
|
244
242
|
resources = [];
|
|
245
243
|
sortResources = true;
|
|
246
244
|
for (const quad of resourceSet.dataset) {
|
|
@@ -263,7 +261,7 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
263
261
|
// Eagerly eliminate the majority of resources that won't match the object types
|
|
264
262
|
const resource = resourceSet.resource(quad.subject);
|
|
265
263
|
for (const namedObjectType of namedObjectTypes) {
|
|
266
|
-
if (namedObjectType
|
|
264
|
+
if (namedObjectType.fromRdfResource(resource, fromRdfResourceOptions).ifRight(object => {
|
|
267
265
|
resources.push({ object, namedObjectType, resource });
|
|
268
266
|
}).isRight()) {
|
|
269
267
|
break;
|
|
@@ -281,13 +279,13 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
281
279
|
const objects: ObjectT[] = [];
|
|
282
280
|
for (let { object, namedObjectType, resource } of resources) {
|
|
283
281
|
if (!object) {
|
|
284
|
-
let objectEither: ${imports.Either}<Error, ObjectT>;
|
|
282
|
+
let objectEither: ${this.reusables.imports.Either}<Error, ObjectT>;
|
|
285
283
|
if (namedObjectType) {
|
|
286
|
-
objectEither = namedObjectType
|
|
284
|
+
objectEither = namedObjectType.fromRdfResource(resource, fromRdfResourceOptions);
|
|
287
285
|
} else {
|
|
288
|
-
objectEither = ${imports.Left}(new Error("no object types"));
|
|
286
|
+
objectEither = ${this.reusables.imports.Left}(new Error("no object types"));
|
|
289
287
|
for (const tryObjectType of namedObjectTypes) {
|
|
290
|
-
objectEither = tryObjectType
|
|
288
|
+
objectEither = tryObjectType.fromRdfResource(resource, fromRdfResourceOptions);
|
|
291
289
|
if (objectEither.isRight()) {
|
|
292
290
|
namedObjectType = tryObjectType;
|
|
293
291
|
break;
|
|
@@ -303,18 +301,18 @@ ${methodSignatures.objects.name}Sync(${methodSignatures.objects.parameters}): ${
|
|
|
303
301
|
throw new Error("namedObjectType should be set here");
|
|
304
302
|
}
|
|
305
303
|
|
|
306
|
-
if (query?.filter && !namedObjectType
|
|
304
|
+
if (query?.filter && !namedObjectType.filter(query.filter, object)) {
|
|
307
305
|
continue;
|
|
308
306
|
}
|
|
309
307
|
|
|
310
308
|
if (objectI++ >= offset) {
|
|
311
309
|
objects.push(object);
|
|
312
310
|
if (objects.length === limit) {
|
|
313
|
-
return ${imports.Right}(objects);
|
|
311
|
+
return ${this.reusables.imports.Right}(objects);
|
|
314
312
|
}
|
|
315
313
|
}
|
|
316
314
|
}
|
|
317
|
-
return ${imports.Right}(objects);
|
|
315
|
+
return ${this.reusables.imports.Right}(objects);
|
|
318
316
|
}`,
|
|
319
317
|
]
|
|
320
318
|
: []),
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { BlankNode, Literal, NamedNode, Variable } from "@rdfjs/types";
|
|
2
2
|
import type { Logger } from "ts-log";
|
|
3
|
+
import type { Imports } from "./Imports.js";
|
|
4
|
+
import type { Snippets } from "./Snippets.js";
|
|
3
5
|
import { type Code } from "./ts-poet-wrapper.js";
|
|
4
|
-
export declare function rdfjsTermExpression(
|
|
6
|
+
export declare function rdfjsTermExpression(this: {
|
|
7
|
+
imports: Imports;
|
|
5
8
|
logger: Logger;
|
|
6
|
-
|
|
9
|
+
snippets: Snippets;
|
|
10
|
+
}, rdfjsTerm: Omit<BlankNode, "equals"> | Omit<Literal, "equals"> | Omit<NamedNode, "equals"> | Omit<Variable, "equals">): Code;
|
|
7
11
|
//# sourceMappingURL=rdfjsTermExpression.d.ts.map
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { rdf, rdfs, xsd } from "@tpluscode/rdf-ns-builders";
|
|
2
|
-
import { snippets_RdfVocabularies } from "./_snippets/snippets_RdfVocabularies.js";
|
|
3
|
-
import { imports } from "./imports.js";
|
|
4
2
|
import { code, literalOf } from "./ts-poet-wrapper.js";
|
|
5
|
-
export function rdfjsTermExpression(rdfjsTerm
|
|
3
|
+
export function rdfjsTermExpression(rdfjsTerm) {
|
|
6
4
|
switch (rdfjsTerm.termType) {
|
|
7
5
|
case "BlankNode":
|
|
8
|
-
return code `${imports.dataFactory}.blankNode(${literalOf(rdfjsTerm.value)})`;
|
|
6
|
+
return code `${this.imports.dataFactory}.blankNode(${literalOf(rdfjsTerm.value)})`;
|
|
9
7
|
case "Literal":
|
|
10
8
|
if (rdfjsTerm.datatype.equals(xsd.string)) {
|
|
11
9
|
if (rdfjsTerm.language.length === 0) {
|
|
12
|
-
return code `${imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)})`;
|
|
10
|
+
return code `${this.imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)})`;
|
|
13
11
|
}
|
|
14
|
-
return code `${imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)}, ${literalOf(rdfjsTerm.language)})`;
|
|
12
|
+
return code `${this.imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)}, ${literalOf(rdfjsTerm.language)})`;
|
|
15
13
|
}
|
|
16
|
-
return code `${imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)}, ${rdfjsTermExpression(rdfjsTerm.datatype
|
|
14
|
+
return code `${this.imports.dataFactory}.literal(${literalOf(rdfjsTerm.value)}, ${rdfjsTermExpression.call(this, rdfjsTerm.datatype)})`;
|
|
17
15
|
case "NamedNode": {
|
|
18
16
|
if (rdfjsTerm.value.startsWith(rdf[""].value)) {
|
|
19
17
|
const unqualifiedName = rdfjsTerm.value.substring(rdf[""].value.length);
|
|
@@ -23,18 +21,18 @@ export function rdfjsTermExpression(rdfjsTerm, { logger }) {
|
|
|
23
21
|
case "rest":
|
|
24
22
|
case "subject":
|
|
25
23
|
case "type":
|
|
26
|
-
return code `${
|
|
24
|
+
return code `${this.snippets.RdfVocabularies}.rdf.${unqualifiedName}`;
|
|
27
25
|
default:
|
|
28
|
-
logger.warn("unrecognized rdf IRI: %s", rdfjsTerm.value);
|
|
26
|
+
this.logger.warn("unrecognized rdf IRI: %s", rdfjsTerm.value);
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
29
|
else if (rdfjsTerm.value.startsWith(rdfs[""].value)) {
|
|
32
30
|
const unqualifiedName = rdfjsTerm.value.substring(rdfs[""].value.length);
|
|
33
31
|
switch (unqualifiedName) {
|
|
34
32
|
case "subClassOf":
|
|
35
|
-
return code `${
|
|
33
|
+
return code `${this.snippets.RdfVocabularies}.rdfs.${unqualifiedName}`;
|
|
36
34
|
default:
|
|
37
|
-
logger.warn("unrecognized rdfs IRI: %s", rdfjsTerm.value);
|
|
35
|
+
this.logger.warn("unrecognized rdfs IRI: %s", rdfjsTerm.value);
|
|
38
36
|
}
|
|
39
37
|
}
|
|
40
38
|
else if (rdfjsTerm.value.startsWith(xsd[""].value)) {
|
|
@@ -60,15 +58,15 @@ export function rdfjsTermExpression(rdfjsTerm, { logger }) {
|
|
|
60
58
|
case "unsignedInt":
|
|
61
59
|
case "unsignedLong":
|
|
62
60
|
case "unsignedShort":
|
|
63
|
-
return code `${
|
|
61
|
+
return code `${this.snippets.RdfVocabularies}.xsd.${unqualifiedName}`;
|
|
64
62
|
default:
|
|
65
|
-
logger.warn("unrecognized xsd IRI: %s", rdfjsTerm.value);
|
|
63
|
+
this.logger.warn("unrecognized xsd IRI: %s", rdfjsTerm.value);
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
|
-
return code `${imports.dataFactory}.namedNode(${literalOf(rdfjsTerm.value)})`;
|
|
66
|
+
return code `${this.imports.dataFactory}.namedNode(${literalOf(rdfjsTerm.value)})`;
|
|
69
67
|
}
|
|
70
68
|
case "Variable":
|
|
71
|
-
return code `${imports.dataFactory}.variable!(${literalOf(rdfjsTerm.value)})`;
|
|
69
|
+
return code `${this.imports.dataFactory}.variable!(${literalOf(rdfjsTerm.value)})`;
|
|
72
70
|
}
|
|
73
71
|
}
|
|
74
72
|
//# sourceMappingURL=rdfjsTermExpression.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { NamedObjectType } from "./NamedObjectType.js";
|
|
2
2
|
import type { NamedObjectUnionType } from "./NamedObjectUnionType.js";
|
|
3
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
3
4
|
import { type Code } from "./ts-poet-wrapper.js";
|
|
4
|
-
export declare function sparqlObjectSetClassDeclaration({ namedObjectTypes, namedObjectUnionTypes, }: {
|
|
5
|
+
export declare function sparqlObjectSetClassDeclaration(this: TsGenerator, { namedObjectTypes, namedObjectUnionTypes, }: {
|
|
5
6
|
namedObjectTypes: readonly NamedObjectType[];
|
|
6
7
|
namedObjectUnionTypes: readonly NamedObjectUnionType[];
|
|
7
8
|
}): Code;
|
|
@@ -1,45 +1,43 @@
|
|
|
1
|
-
import { imports } from "./imports.js";
|
|
2
1
|
import { objectSetMethodSignatures } from "./objectSetMethodSignatures.js";
|
|
3
|
-
import { snippets } from "./snippets.js";
|
|
4
2
|
import { syntheticNamePrefix } from "./syntheticNamePrefix.js";
|
|
5
3
|
import { code, joinCode } from "./ts-poet-wrapper.js";
|
|
6
4
|
import { unsupportedObjectSetMethodDeclarations } from "./unsupportedObjectSetMethodDeclarations.js";
|
|
7
5
|
export function sparqlObjectSetClassDeclaration({ namedObjectTypes, namedObjectUnionTypes, }) {
|
|
8
6
|
const parameters = {
|
|
9
7
|
constructObjectType: code `namedObjectType: {\
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
focusSparqlWherePatterns: ${this.reusables.snippets.FocusSparqlWherePatternsFunction}<ObjectFilterT>;
|
|
9
|
+
fromRdfResource: ${this.reusables.snippets.FromRdfResourceFunction}<ObjectT>;
|
|
10
|
+
sparqlConstructQueryString: (parameters: { filter?: ObjectFilterT; subject: ${this.reusables.imports.NamedNode} | ${this.reusables.imports.Variable}; } & Omit<${this.reusables.imports.sparqljs}.ConstructQuery, "prefixes" | "queryType" | "type"> & ${this.reusables.imports.sparqljs}.GeneratorOptions) => string;
|
|
13
11
|
}`,
|
|
14
12
|
query: code `query?: ${syntheticNamePrefix}SparqlObjectSet.Query<ObjectFilterT, ObjectIdentifierT>`,
|
|
15
|
-
selectObjectTypeType: code `namedObjectType: {
|
|
13
|
+
selectObjectTypeType: code `namedObjectType: { focusSparqlWherePatterns: ${this.reusables.snippets.FocusSparqlWherePatternsFunction}<ObjectFilterT> }`,
|
|
16
14
|
};
|
|
17
|
-
const sparqlClientType = code `{ queryBindings: (query: string) => Promise<readonly Record<string, ${imports.BlankNode} | ${imports.Literal} | ${imports.NamedNode}>[]>; queryQuads: (query: string) => Promise<readonly ${imports.Quad}[]>; }`;
|
|
15
|
+
const sparqlClientType = code `{ queryBindings: (query: string) => Promise<readonly Record<string, ${this.reusables.imports.BlankNode} | ${this.reusables.imports.Literal} | ${this.reusables.imports.NamedNode}>[]>; queryQuads: (query: string) => Promise<readonly ${this.reusables.imports.Quad}[]>; }`;
|
|
18
16
|
const typeParameters = {
|
|
19
17
|
ObjectT: code `ObjectT extends { readonly $identifier: () => ObjectIdentifierT }`,
|
|
20
18
|
ObjectFilterT: code `ObjectFilterT`,
|
|
21
|
-
ObjectIdentifierT: code `ObjectIdentifierT extends ${imports.BlankNode} | ${imports.NamedNode}`,
|
|
19
|
+
ObjectIdentifierT: code `ObjectIdentifierT extends ${this.reusables.imports.BlankNode} | ${this.reusables.imports.NamedNode}`,
|
|
22
20
|
};
|
|
23
21
|
return code `\
|
|
24
22
|
export class ${syntheticNamePrefix}SparqlObjectSet implements ${syntheticNamePrefix}ObjectSet {
|
|
25
|
-
readonly #countVariable = ${imports.dataFactory}.variable!("count");;
|
|
26
|
-
readonly #graph?: Exclude<${imports.Quad_Graph}, ${imports.Variable}>;
|
|
27
|
-
readonly #objectVariable = ${imports.dataFactory}.variable!("object");
|
|
23
|
+
readonly #countVariable = ${this.reusables.imports.dataFactory}.variable!("count");;
|
|
24
|
+
readonly #graph?: Exclude<${this.reusables.imports.Quad_Graph}, ${this.reusables.imports.Variable}>;
|
|
25
|
+
readonly #objectVariable = ${this.reusables.imports.dataFactory}.variable!("object");
|
|
28
26
|
readonly #sparqlClient: ${sparqlClientType};
|
|
29
|
-
readonly #sparqlGenerator = new ${imports.sparqljs}.Generator();
|
|
27
|
+
readonly #sparqlGenerator = new ${this.reusables.imports.sparqljs}.Generator();
|
|
30
28
|
|
|
31
|
-
constructor(sparqlClient: ${sparqlClientType}, options?: { graph?: Exclude<${imports.Quad_Graph}, ${imports.Variable}> }) {
|
|
29
|
+
constructor(sparqlClient: ${sparqlClientType}, options?: { graph?: Exclude<${this.reusables.imports.Quad_Graph}, ${this.reusables.imports.Variable}> }) {
|
|
32
30
|
this.#graph = options?.graph;
|
|
33
31
|
this.#sparqlClient = sparqlClient;
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
${joinCode([...namedObjectTypes, ...namedObjectUnionTypes].flatMap((namedObjectType) => {
|
|
37
35
|
if (!namedObjectType.features.has("sparql")) {
|
|
38
|
-
return Object.values(unsupportedObjectSetMethodDeclarations({
|
|
36
|
+
return Object.values(unsupportedObjectSetMethodDeclarations.call(this, {
|
|
39
37
|
namedObjectType,
|
|
40
38
|
}));
|
|
41
39
|
}
|
|
42
|
-
const methodSignatures = objectSetMethodSignatures({
|
|
40
|
+
const methodSignatures = objectSetMethodSignatures.call(this, {
|
|
43
41
|
namedObjectType,
|
|
44
42
|
queryT: `${syntheticNamePrefix}SparqlObjectSet.Query`,
|
|
45
43
|
});
|
|
@@ -64,29 +62,29 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
64
62
|
];
|
|
65
63
|
}), { on: "\n\n" })}
|
|
66
64
|
|
|
67
|
-
#mapBindingsToCount(bindings: readonly Record<string, ${imports.BlankNode} | ${imports.Literal} | ${imports.NamedNode}>[], variable: string): ${imports.Either}<Error, number> {
|
|
65
|
+
#mapBindingsToCount(bindings: readonly Record<string, ${this.reusables.imports.BlankNode} | ${this.reusables.imports.Literal} | ${this.reusables.imports.NamedNode}>[], variable: string): ${this.reusables.imports.Either}<Error, number> {
|
|
68
66
|
if (bindings.length === 0) {
|
|
69
|
-
return ${imports.Left}(new Error("empty result rows"));
|
|
67
|
+
return ${this.reusables.imports.Left}(new Error("empty result rows"));
|
|
70
68
|
}
|
|
71
69
|
if (bindings.length > 1) {
|
|
72
|
-
return ${imports.Left}(new Error("more than one result row"));
|
|
70
|
+
return ${this.reusables.imports.Left}(new Error("more than one result row"));
|
|
73
71
|
}
|
|
74
72
|
const count = bindings[0][variable];
|
|
75
73
|
if (count === undefined) {
|
|
76
|
-
return ${imports.Left}(new Error("no 'count' variable in result row"));
|
|
74
|
+
return ${this.reusables.imports.Left}(new Error("no 'count' variable in result row"));
|
|
77
75
|
}
|
|
78
76
|
if (count.termType !== "Literal") {
|
|
79
|
-
return ${imports.Left}(new Error("'count' variable is not a Literal"));
|
|
77
|
+
return ${this.reusables.imports.Left}(new Error("'count' variable is not a Literal"));
|
|
80
78
|
}
|
|
81
79
|
const parsedCount = Number.parseInt(count.value, 10);
|
|
82
80
|
if (Number.isNaN(parsedCount)) {
|
|
83
|
-
return ${imports.Left}(new Error("'count' variable is NaN"));
|
|
81
|
+
return ${this.reusables.imports.Left}(new Error("'count' variable is NaN"));
|
|
84
82
|
}
|
|
85
|
-
return ${imports.Right}(parsedCount);
|
|
83
|
+
return ${this.reusables.imports.Right}(parsedCount);
|
|
86
84
|
}
|
|
87
85
|
|
|
88
|
-
#mapBindingsToIdentifiers(bindings: readonly Record<string, ${imports.BlankNode} | ${imports.Literal} | ${imports.NamedNode}>[], variable: string): readonly ${imports.NamedNode}[] {
|
|
89
|
-
const identifiers: ${imports.NamedNode}[] = [];
|
|
86
|
+
#mapBindingsToIdentifiers(bindings: readonly Record<string, ${this.reusables.imports.BlankNode} | ${this.reusables.imports.Literal} | ${this.reusables.imports.NamedNode}>[], variable: string): readonly ${this.reusables.imports.NamedNode}[] {
|
|
87
|
+
const identifiers: ${this.reusables.imports.NamedNode}[] = [];
|
|
90
88
|
for (const bindings_ of bindings) {
|
|
91
89
|
const identifier = bindings_[variable];
|
|
92
90
|
if (
|
|
@@ -99,14 +97,14 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
99
97
|
return identifiers;
|
|
100
98
|
}
|
|
101
99
|
|
|
102
|
-
async #objectIdentifiers<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): Promise<${imports.Either}<Error, readonly ObjectIdentifierT[]>> {
|
|
100
|
+
async #objectIdentifiers<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): Promise<${this.reusables.imports.Either}<Error, readonly ObjectIdentifierT[]>> {
|
|
103
101
|
if (query?.identifiers) {
|
|
104
|
-
return ${imports.Right}(query.identifiers);
|
|
102
|
+
return ${this.reusables.imports.Right}(query.identifiers);
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
const limit = query?.limit ?? Number.MAX_SAFE_INTEGER;
|
|
108
106
|
if (limit <= 0) {
|
|
109
|
-
return ${imports.Right}([]);
|
|
107
|
+
return ${this.reusables.imports.Right}([]);
|
|
110
108
|
}
|
|
111
109
|
|
|
112
110
|
let offset = query?.offset ?? 0;
|
|
@@ -116,7 +114,7 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
116
114
|
|
|
117
115
|
const wherePatterns = this.#wherePatterns(namedObjectType, query);
|
|
118
116
|
if (wherePatterns.length === 0) {
|
|
119
|
-
return ${imports.Left}(new Error("no SPARQL WHERE patterns for identifiers"));
|
|
117
|
+
return ${this.reusables.imports.Left}(new Error("no SPARQL WHERE patterns for identifiers"));
|
|
120
118
|
}
|
|
121
119
|
|
|
122
120
|
const selectQueryString = \
|
|
@@ -132,7 +130,7 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
132
130
|
where: wherePatterns.concat()
|
|
133
131
|
});
|
|
134
132
|
|
|
135
|
-
return ${imports.EitherAsync}(async () =>
|
|
133
|
+
return ${this.reusables.imports.EitherAsync}(async () =>
|
|
136
134
|
this.#mapBindingsToIdentifiers(
|
|
137
135
|
await this.#sparqlClient.queryBindings(selectQueryString),
|
|
138
136
|
this.#objectVariable.value,
|
|
@@ -140,20 +138,20 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
140
138
|
);
|
|
141
139
|
}
|
|
142
140
|
|
|
143
|
-
async #objects<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.constructObjectType}, ${parameters.query}): Promise<${imports.Either}<Error, readonly ObjectT[]>> {
|
|
144
|
-
return ${imports.EitherAsync}(async ({ liftEither }) => {
|
|
141
|
+
async #objects<${typeParameters.ObjectT}, ${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.constructObjectType}, ${parameters.query}): Promise<${this.reusables.imports.Either}<Error, readonly ObjectT[]>> {
|
|
142
|
+
return ${this.reusables.imports.EitherAsync}(async ({ liftEither }) => {
|
|
145
143
|
const identifiers = await liftEither(await this.#objectIdentifiers<ObjectFilterT, ObjectIdentifierT>(namedObjectType, query));
|
|
146
144
|
if (identifiers.length === 0) {
|
|
147
145
|
return [];
|
|
148
146
|
}
|
|
149
147
|
|
|
150
|
-
const constructQueryString = namedObjectType
|
|
148
|
+
const constructQueryString = namedObjectType.sparqlConstructQueryString({
|
|
151
149
|
subject: this.#objectVariable,
|
|
152
150
|
where: [{
|
|
153
151
|
type: "values" as const,
|
|
154
152
|
values: identifiers.map((identifier) => {
|
|
155
|
-
const valuePatternRow: ${imports.sparqljs}.ValuePatternRow = {};
|
|
156
|
-
valuePatternRow["?object"] = identifier as ${imports.NamedNode};
|
|
153
|
+
const valuePatternRow: ${this.reusables.imports.sparqljs}.ValuePatternRow = {};
|
|
154
|
+
valuePatternRow["?object"] = identifier as ${this.reusables.imports.NamedNode};
|
|
157
155
|
return valuePatternRow;
|
|
158
156
|
}),
|
|
159
157
|
}]
|
|
@@ -161,19 +159,19 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
161
159
|
|
|
162
160
|
const quads = await this.#sparqlClient.queryQuads(constructQueryString);
|
|
163
161
|
|
|
164
|
-
const dataset = ${imports.datasetFactory}.dataset(quads.concat());
|
|
162
|
+
const dataset = ${this.reusables.imports.datasetFactory}.dataset(quads.concat());
|
|
165
163
|
const objects: ObjectT[] = [];
|
|
166
164
|
for (const identifier of identifiers) {
|
|
167
|
-
objects.push(await liftEither(namedObjectType
|
|
165
|
+
objects.push(await liftEither(namedObjectType.fromRdfResource(new ${this.reusables.imports.Resource}({ dataFactory: ${this.reusables.imports.dataFactory}, dataset: dataset, identifier: identifier as ${this.reusables.imports.NamedNode} }), { objectSet: this, preferredLanguages: query?.preferredLanguages })));
|
|
168
166
|
}
|
|
169
167
|
return objects;
|
|
170
168
|
});
|
|
171
169
|
}
|
|
172
170
|
|
|
173
|
-
async #objectCount<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): Promise<${imports.Either}<Error, number>> {
|
|
171
|
+
async #objectCount<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): Promise<${this.reusables.imports.Either}<Error, number>> {
|
|
174
172
|
const wherePatterns = this.#wherePatterns(namedObjectType, query);
|
|
175
173
|
if (wherePatterns.length === 0) {
|
|
176
|
-
return ${imports.Left}(new Error("no SPARQL WHERE patterns for count"));
|
|
174
|
+
return ${this.reusables.imports.Left}(new Error("no SPARQL WHERE patterns for count"));
|
|
177
175
|
}
|
|
178
176
|
|
|
179
177
|
const selectQueryString = \
|
|
@@ -195,7 +193,7 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
195
193
|
where: wherePatterns.concat()
|
|
196
194
|
});
|
|
197
195
|
|
|
198
|
-
return ${imports.EitherAsync}(async ({ liftEither }) =>
|
|
196
|
+
return ${this.reusables.imports.EitherAsync}(async ({ liftEither }) =>
|
|
199
197
|
liftEither(
|
|
200
198
|
this.#mapBindingsToCount(
|
|
201
199
|
await this.#sparqlClient.queryBindings(selectQueryString),
|
|
@@ -205,17 +203,17 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
205
203
|
);
|
|
206
204
|
}
|
|
207
205
|
|
|
208
|
-
#wherePatterns<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): readonly ${imports.sparqljs}.Pattern[] {
|
|
206
|
+
#wherePatterns<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}>(${parameters.selectObjectTypeType}, ${parameters.query}): readonly ${this.reusables.imports.sparqljs}.Pattern[] {
|
|
209
207
|
// Patterns should be most to least specific.
|
|
210
|
-
let patterns: ${imports.sparqljs}.Pattern[] = [];
|
|
208
|
+
let patterns: ${this.reusables.imports.sparqljs}.Pattern[] = [];
|
|
211
209
|
|
|
212
210
|
if (query?.where) {
|
|
213
211
|
patterns = patterns.concat(query.where(this.#objectVariable));
|
|
214
212
|
}
|
|
215
213
|
|
|
216
|
-
patterns = patterns.concat(namedObjectType
|
|
214
|
+
patterns = patterns.concat(namedObjectType.focusSparqlWherePatterns({ filter: query?.filter, focusIdentifier: this.#objectVariable, ignoreRdfType: false, preferredLanguages: query?.preferredLanguages, variablePrefix: this.#objectVariable.value }));
|
|
217
215
|
|
|
218
|
-
patterns = ${snippets.normalizeSparqlWherePatterns}(patterns).concat();
|
|
216
|
+
patterns = ${this.reusables.snippets.normalizeSparqlWherePatterns}(patterns).concat();
|
|
219
217
|
|
|
220
218
|
const graph = query?.graph ?? this.#graph;
|
|
221
219
|
if (graph) {
|
|
@@ -227,12 +225,12 @@ async ${methodSignatures.objects.name}(${methodSignatures.objects.parameters}):
|
|
|
227
225
|
}
|
|
228
226
|
}
|
|
229
227
|
// Union of all graphs: { ... patterns covering default graph ... } UNION { GRAPH ?g { ... patterns covering named graphs ... } }
|
|
230
|
-
return [{ patterns: [{ patterns, type: "group" }, { name: ${imports.dataFactory}.variable!("g"), patterns, type: "graph" }], type: "union" }];
|
|
228
|
+
return [{ patterns: [{ patterns, type: "group" }, { name: ${this.reusables.imports.dataFactory}.variable!("g"), patterns, type: "graph" }], type: "union" }];
|
|
231
229
|
}
|
|
232
230
|
}
|
|
233
231
|
|
|
234
232
|
export namespace ${syntheticNamePrefix}SparqlObjectSet {
|
|
235
|
-
export type Query<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}> = ${syntheticNamePrefix}ObjectSet.Query<ObjectFilterT, ObjectIdentifierT> & { readonly order?: (objectVariable: ${imports.Variable}) => readonly ${imports.sparqljs}.Ordering[]; readonly where?: (objectVariable: ${imports.Variable}) => readonly ${imports.sparqljs}.Pattern[] };
|
|
233
|
+
export type Query<${typeParameters.ObjectFilterT}, ${typeParameters.ObjectIdentifierT}> = ${syntheticNamePrefix}ObjectSet.Query<ObjectFilterT, ObjectIdentifierT> & { readonly order?: (objectVariable: ${this.reusables.imports.Variable}) => readonly ${this.reusables.imports.sparqljs}.Ordering[]; readonly where?: (objectVariable: ${this.reusables.imports.Variable}) => readonly ${this.reusables.imports.sparqljs}.Pattern[] };
|
|
236
234
|
}`;
|
|
237
235
|
}
|
|
238
236
|
//# sourceMappingURL=sparqlObjectSetClassDeclaration.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { NamedObjectType } from "./NamedObjectType.js";
|
|
2
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
2
3
|
import { type Code } from "./ts-poet-wrapper.js";
|
|
3
|
-
export declare function unsupportedObjectSetMethodDeclarations({ namedObjectType, }: {
|
|
4
|
+
export declare function unsupportedObjectSetMethodDeclarations(this: TsGenerator, { namedObjectType, }: {
|
|
4
5
|
namedObjectType: {
|
|
5
6
|
readonly filterType: Code;
|
|
6
7
|
readonly identifierTypeAlias: Code;
|