@shaclmate/compiler 4.0.59 → 4.0.61

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 (61) hide show
  1. package/dist/generators/ts/DefaultValueType.d.ts +6 -6
  2. package/dist/generators/ts/DiscriminatedUnionType.d.ts +3 -53
  3. package/dist/generators/ts/DiscriminatedUnionType.js +46 -430
  4. package/dist/generators/ts/ObjectDiscriminatedUnionType.d.ts +0 -8
  5. package/dist/generators/ts/ObjectDiscriminatedUnionType.js +17 -152
  6. package/dist/generators/ts/TsGenerator.d.ts +4 -0
  7. package/dist/generators/ts/TsGenerator.js +6 -0
  8. package/dist/generators/ts/TypeFactory.js +0 -1
  9. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_Discriminant.d.ts +30 -0
  10. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_Discriminant.js +2 -0
  11. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_equalsFunctionExpression.d.ts +5 -0
  12. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_equalsFunctionExpression.js +12 -0
  13. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterFunctionExpression.d.ts +5 -0
  14. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterFunctionExpression.js +24 -0
  15. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterTypeExpression.d.ts +5 -0
  16. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterTypeExpression.js +10 -0
  17. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromJsonFunctionExpression.d.ts +5 -0
  18. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromJsonFunctionExpression.js +14 -0
  19. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromRdfResourceValuesFunctionExpression.d.ts +5 -0
  20. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromRdfResourceValuesFunctionExpression.js +22 -0
  21. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_hashFunctionExpression.d.ts +5 -0
  22. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_hashFunctionExpression.js +9 -0
  23. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inferDiscriminant.d.ts +8 -0
  24. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inferDiscriminant.js +133 -0
  25. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inlineExpression.d.ts +5 -0
  26. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inlineExpression.js +31 -0
  27. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonSchemaExpression.d.ts +5 -0
  28. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonSchemaExpression.js +32 -0
  29. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonTypeLiteral.d.ts +5 -0
  30. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonTypeLiteral.js +26 -0
  31. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_schemaTypeExpression.d.ts +5 -0
  32. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_schemaTypeExpression.js +11 -0
  33. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toJsonFunctionExpression.d.ts +5 -0
  34. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toJsonFunctionExpression.js +10 -0
  35. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.d.ts +5 -0
  36. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.js +30 -0
  37. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toStringFunctionExpression.d.ts +5 -0
  38. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toStringFunctionExpression.js +12 -0
  39. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.d.ts +5 -0
  40. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.js +13 -0
  41. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.d.ts +5 -0
  42. package/dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.js +13 -0
  43. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.d.ts +4 -0
  44. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.js +13 -0
  45. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.d.ts +4 -0
  46. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.js +32 -0
  47. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.d.ts +4 -0
  48. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.js +17 -0
  49. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.d.ts +4 -0
  50. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.js +19 -0
  51. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_identifierTypeDeclarations.d.ts +4 -0
  52. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_identifierTypeDeclarations.js +14 -0
  53. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.d.ts +4 -0
  54. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.js +16 -0
  55. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_schemaVariableStatement.d.ts +4 -0
  56. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_schemaVariableStatement.js +42 -0
  57. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.d.ts +4 -0
  58. package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.js +15 -0
  59. package/dist/generators/ts/_ObjectType/ObjectType_DiscriminantProperty.d.ts +4 -4
  60. package/dist/generators/ts/_ObjectType/ObjectType_DiscriminantProperty.js +15 -3
  61. package/package.json +59 -8
@@ -0,0 +1,5 @@
1
+ import { AbstractType } from "../AbstractType.js";
2
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
3
+ import type { Type } from "../Type.js";
4
+ export declare function DiscriminatedUnionType_jsonTypeLiteral<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): AbstractType.JsonType;
5
+ //# sourceMappingURL=DiscriminatedUnionType_jsonTypeLiteral.d.ts.map
@@ -0,0 +1,26 @@
1
+ import { AbstractType } from "../AbstractType.js";
2
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
3
+ export function DiscriminatedUnionType_jsonTypeLiteral() {
4
+ const discriminant = this.discriminant; // To get type narrowing to work
5
+ switch (discriminant.kind) {
6
+ case "Extrinsic":
7
+ return new AbstractType.JsonType(code `(${joinCode(this.members.map(({ jsonType, primaryDiscriminantValue }) => code `{ ${discriminant.name}: ${literalOf(primaryDiscriminantValue)}, value: ${jsonType} }`), { on: "|" })})`);
8
+ case "Hybrid":
9
+ return new AbstractType.JsonType(code `(${joinCode(this.members.map(({ jsonType, primaryDiscriminantValue }, memberI) => {
10
+ switch (discriminant.memberValues[memberI].kind) {
11
+ case "Extrinsic":
12
+ return code `{ ${discriminant.name}: ${literalOf(primaryDiscriminantValue)}, value: ${jsonType} }`;
13
+ case "Intrinsic":
14
+ return code `${jsonType}`;
15
+ default:
16
+ throw new Error();
17
+ }
18
+ }), { on: "|" })})`);
19
+ case "Intrinsic":
20
+ case "Typeof":
21
+ return new AbstractType.JsonType(joinCode(this.members.map(({ jsonType }) => code `${jsonType}`), { on: "|" }));
22
+ default:
23
+ throw discriminant;
24
+ }
25
+ }
26
+ //# sourceMappingURL=DiscriminatedUnionType_jsonTypeLiteral.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_schemaTypeExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_schemaTypeExpression.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_schemaTypeExpression() {
3
+ return code `${{
4
+ kind: this.kind,
5
+ members: code `{ ${joinCode(this.members.map(({ type, primaryDiscriminantValue }) => code `readonly ${literalOf(primaryDiscriminantValue)}: ${{
6
+ discriminantValues: code `readonly (number | string)[]`,
7
+ type: type.schemaType,
8
+ }}`), { on: ";" })} }`,
9
+ }}`;
10
+ }
11
+ //# sourceMappingURL=DiscriminatedUnionType_schemaTypeExpression.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_toJsonFunctionExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_toJsonFunctionExpression.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_toJsonFunctionExpression() {
3
+ return code `\
4
+ ((value: ${this.expression}): ${this.jsonType().expression} => {
5
+ ${joinCode(this.members.map(({ typeCheck, typeToJsonExpression, unwrap, wrap }) => code `if (${typeCheck(code `value`)}) { return ${wrap(typeToJsonExpression(unwrap(code `value`)))}; }`))}
6
+
7
+ throw new Error("unable to serialize to JSON");
8
+ })`;
9
+ }
10
+ //# sourceMappingURL=DiscriminatedUnionType_toJsonFunctionExpression.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_toRdfResourceValuesFunctionExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.d.ts.map
@@ -0,0 +1,30 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_toRdfResourceValuesFunctionExpression() {
3
+ return code `\
4
+ (((value, _options): (${joinCode([...this.toRdfResourceValueTypes].map((toRdfResourceValueType) => {
5
+ switch (toRdfResourceValueType) {
6
+ case "BlankNode":
7
+ return code `${this.reusables.imports.BlankNode}`;
8
+ case "Literal":
9
+ return code `${this.reusables.imports.Literal}`;
10
+ case "NamedNode":
11
+ return code `${this.reusables.imports.NamedNode}`;
12
+ default:
13
+ toRdfResourceValueType;
14
+ throw new Error();
15
+ }
16
+ }), { on: " | " })})[] => {
17
+ ${joinCode(this.members.map(({ type, unwrap, typeCheck }) => code `if (${typeCheck(code `value`)}) { return ${type.toRdfResourceValuesExpression({
18
+ variables: {
19
+ graph: code `_options.graph`,
20
+ propertyPath: code `_options.propertyPath`,
21
+ resource: code `_options.resource`,
22
+ resourceSet: code `_options.resourceSet`,
23
+ value: unwrap(code `value`),
24
+ },
25
+ })}; }`))}
26
+
27
+ throw new Error("unable to serialize to RDF");
28
+ }) satisfies ${this.reusables.snippets.ToRdfResourceValuesFunction}<${this.expression}>)`;
29
+ }
30
+ //# sourceMappingURL=DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_toStringFunctionExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_toStringFunctionExpression.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { code, joinCode } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_toStringFunctionExpression() {
3
+ return code `\
4
+ ((value: ${this.expression}): string => {
5
+ ${joinCode(this.members.map(({ type, typeCheck, unwrap }) => code `if (${typeCheck(code `value`)}) { return ${type.toStringExpression({
6
+ variables: { value: unwrap(code `value`) },
7
+ })}; }`))}
8
+
9
+ throw new Error("unable to serialize to string");
10
+ })`;
11
+ }
12
+ //# sourceMappingURL=DiscriminatedUnionType_toStringFunctionExpression.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression() {
3
+ return code `\
4
+ ((({ ignoreRdfType, filter, schema, ...otherParameters }) => {
5
+ let triples: ${this.reusables.imports.sparqljs}.Triple[] = [];
6
+
7
+ ${joinCode(this.members.map(({ type, primaryDiscriminantValue }) => code `\
8
+ triples = triples.concat(${type.valueSparqlConstructTriplesFunction}({ ...otherParameters, filter: filter?.on?.[${literalOf(primaryDiscriminantValue)}], ignoreRdfType: false, schema: schema.members[${literalOf(primaryDiscriminantValue)}].type }));`))}
9
+
10
+ return triples;
11
+ }) satisfies ${this.reusables.snippets.ValueSparqlConstructTriplesFunction}<${this.filterType}, ${this.schemaType}>)`;
12
+ }
13
+ //# sourceMappingURL=DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.js.map
@@ -0,0 +1,5 @@
1
+ import type { DiscriminatedUnionType } from "../DiscriminatedUnionType.js";
2
+ import type { Type } from "../Type.js";
3
+ import { type Code } from "../ts-poet-wrapper.js";
4
+ export declare function DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression<MemberTypeT extends Type>(this: DiscriminatedUnionType<MemberTypeT>): Code;
5
+ //# sourceMappingURL=DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
2
+ export function DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression() {
3
+ return code `\
4
+ ((({ filter, schema, ...otherParameters }) => {
5
+ const unionPatterns: ${this.reusables.imports.sparqljs}.GroupPattern[] = [];
6
+
7
+ ${joinCode(this.members.map(({ type, primaryDiscriminantValue }) => code `\
8
+ unionPatterns.push({ patterns: ${type.valueSparqlWherePatternsFunction}({ ...otherParameters, filter: filter?.on?.[${literalOf(primaryDiscriminantValue)}], ignoreRdfType: false, schema: schema.members[${literalOf(primaryDiscriminantValue)}].type }).concat(), type: "group" });`))}
9
+
10
+ return [{ patterns: unionPatterns, type: "union" }];
11
+ }) satisfies ${this.reusables.snippets.ValueSparqlWherePatternsFunction}<${this.filterType}, ${this.schemaType}>)`;
12
+ }
13
+ //# sourceMappingURL=DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { pascalCase } from "change-case";
2
+ import { singleEntryRecord } from "../singleEntryRecord.js";
3
+ import { code, joinCode } from "../ts-poet-wrapper.js";
4
+ export function ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration() {
5
+ if (!this.configuration.features.has("Object.SPARQL")) {
6
+ return {};
7
+ }
8
+ return singleEntryRecord(`focusSparqlConstructTriples`, code `\
9
+ export function focusSparqlConstructTriples({ filter, focusIdentifier, variablePrefix }: { filter: ${this.filterType} | undefined; focusIdentifier: ${this.reusables.imports.NamedNode} | ${this.reusables.imports.Variable}; ignoreRdfType: boolean; variablePrefix: string }): readonly ${this.reusables.imports.sparqljs}.Triple[] {
10
+ return [${joinCode(this.members.map((member) => code `...${member.type.name.unsafeCoerce()}.focusSparqlConstructTriples({ filter: filter?.on?.${member.type.name.unsafeCoerce()}, focusIdentifier, ignoreRdfType: false, variablePrefix: \`\${variablePrefix}${pascalCase(member.type.name.unsafeCoerce())}\` }).concat()`), { on: ", " })}];
11
+ }`);
12
+ }
13
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { pascalCase } from "change-case";
2
+ import { singleEntryRecord } from "../singleEntryRecord.js";
3
+ import { code, joinCode, literalOf } from "../ts-poet-wrapper.js";
4
+ export function ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration() {
5
+ if (!this.configuration.features.has("Object.SPARQL")) {
6
+ return {};
7
+ }
8
+ return singleEntryRecord(`focusSparqlWherePatterns`, code `\
9
+ export function focusSparqlWherePatterns({ filter, focusIdentifier, preferredLanguages, variablePrefix }: { filter: ${this.filterType} | undefined; focusIdentifier: ${this.reusables.imports.NamedNode} | ${this.reusables.imports.Variable}; ignoreRdfType: boolean; preferredLanguages: readonly string[] | undefined; variablePrefix: string }): readonly ${this.reusables.snippets.SparqlPattern}[] {
10
+ ${joinCode([
11
+ code `let patterns: ${this.reusables.snippets.SparqlPattern}[] = [];`,
12
+ code `\
13
+ if (focusIdentifier.termType === "Variable") {
14
+ patterns = patterns.concat(${this.identifierType.unsafeCoerce().valueSparqlWherePatternsFunction}({
15
+ filter: filter?.${this.configuration.syntheticNamePrefix}identifier,
16
+ ignoreRdfType: false,
17
+ preferredLanguages,
18
+ propertyPatterns: [],
19
+ schema: ${this.identifierType.unsafeCoerce().schema},
20
+ valueVariable: focusIdentifier,
21
+ variablePrefix,
22
+ }));
23
+ }`,
24
+ code `patterns.push({ patterns: [${joinCode(this.members.map((member) => code `${{
25
+ patterns: code `${member.type.name.unsafeCoerce()}.focusSparqlWherePatterns({ filter: filter?.on?.${member.type.name.unsafeCoerce()}, focusIdentifier, ignoreRdfType: false, preferredLanguages, variablePrefix: \`\${variablePrefix}${pascalCase(member.type.name.unsafeCoerce())}\` }).concat()`,
26
+ type: literalOf("group"),
27
+ }}`), { on: ", " })}], type: "union" });`,
28
+ code `return patterns;`,
29
+ ])}
30
+ }`);
31
+ }
32
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { singleEntryRecord } from "../singleEntryRecord.js";
2
+ import { code } from "../ts-poet-wrapper.js";
3
+ export function ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration() {
4
+ if (!this.configuration.features.has("Object.fromRdf")) {
5
+ return {};
6
+ }
7
+ const name = this.name.unsafeCoerce();
8
+ return singleEntryRecord(`fromRdfResource`, code `\
9
+ export const fromRdfResource: ${this.reusables.snippets.FromRdfResourceFunction}<${name}> = (resource, options) =>
10
+ ${this.members.reduce((expression, member) => {
11
+ const memberTypeExpression = code `(${member.type.name.unsafeCoerce()}.fromRdfResource(resource, { ...options, ignoreRdfType: false }) as ${this.reusables.imports.Either}<Error, ${name}>)`;
12
+ return expression !== null
13
+ ? code `${expression}.altLazy(() => ${memberTypeExpression})`
14
+ : memberTypeExpression;
15
+ }, null)};`);
16
+ }
17
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_graphqlTypeVariableStatement(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { singleEntryRecord } from "../singleEntryRecord.js";
2
+ import { code, joinCode } from "../ts-poet-wrapper.js";
3
+ export function ObjectDiscriminatedUnionType_graphqlTypeVariableStatement() {
4
+ if (!this.configuration.features.has("GraphQL")) {
5
+ return {};
6
+ }
7
+ if (this.synthetic) {
8
+ return {};
9
+ }
10
+ const name = this.name.unsafeCoerce();
11
+ return singleEntryRecord(`GraphQL`, code `\
12
+ export const GraphQL = new ${this.reusables.imports.GraphQLUnionType}(${{
13
+ description: this.comment.map(JSON.stringify).extract(),
14
+ name: name,
15
+ resolveType: code `(value: ${name}) => value.${this.configuration.syntheticNamePrefix}type`,
16
+ types: code `[${joinCode(this.members.map((member) => member.type.graphqlType.nullableExpression), { on: ", " })}]`,
17
+ }});`);
18
+ }
19
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_identifierTypeDeclarations(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_identifierTypeDeclarations.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { singleEntryRecord } from "../singleEntryRecord.js";
2
+ import { code } from "../ts-poet-wrapper.js";
3
+ export function ObjectDiscriminatedUnionType_identifierTypeDeclarations() {
4
+ if (!this.configuration.features.has("Object.type")) {
5
+ return {};
6
+ }
7
+ return singleEntryRecord(`Identifier`, code `\
8
+ export type Identifier = ${this.identifierType.unsafeCoerce().expression};
9
+ export namespace Identifier {
10
+ export const parse = ${this.identifierType.unsafeCoerce().parseFunction};
11
+ export const stringify = ${this.identifierType.unsafeCoerce().stringifyFunction};
12
+ }`);
13
+ }
14
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_identifierTypeDeclarations.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_isTypeFunctionDeclaration(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { singleEntryRecord } from "../singleEntryRecord.js";
2
+ import { code, joinCode } from "../ts-poet-wrapper.js";
3
+ export function ObjectDiscriminatedUnionType_isTypeFunctionDeclaration() {
4
+ if (!this.configuration.features.has("Object.type")) {
5
+ return {};
6
+ }
7
+ const name = this.name.unsafeCoerce();
8
+ if (name === `${this.configuration.syntheticNamePrefix}Object`) {
9
+ return {};
10
+ }
11
+ return singleEntryRecord(`is${name}`, code `\
12
+ export function is${name}(object: ${this.configuration.syntheticNamePrefix}Object): object is ${name} {
13
+ return ${joinCode(this.members.map((member) => code `${member.type.name.unsafeCoerce()}.is${member.type.name.unsafeCoerce()}(object)`), { on: " || " })};
14
+ }`);
15
+ }
16
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_schemaVariableStatement(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_schemaVariableStatement.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { PropertyPath } from "@rdfx/resource";
2
+ import { singleEntryRecord } from "../singleEntryRecord.js";
3
+ import { code, joinCode } from "../ts-poet-wrapper.js";
4
+ export function ObjectDiscriminatedUnionType_schemaVariableStatement() {
5
+ if (!this.configuration.features.has("Object.schema")) {
6
+ return {};
7
+ }
8
+ const commonPropertiesByName = {};
9
+ this.members.forEach((member, memberI) => {
10
+ for (const memberTypeProperty of member.type.properties) {
11
+ if (memberTypeProperty.kind !== "Shacl") {
12
+ continue;
13
+ }
14
+ let commonProperty = commonPropertiesByName[memberTypeProperty.name];
15
+ if (commonProperty) {
16
+ if (PropertyPath.equals(commonProperty.property.path, memberTypeProperty.path)) {
17
+ commonProperty.memberTypesWithProperty[memberI] = true;
18
+ }
19
+ }
20
+ else {
21
+ commonPropertiesByName[memberTypeProperty.name] = commonProperty = {
22
+ memberTypesWithProperty: new Array(this.members.length).fill(false),
23
+ property: memberTypeProperty,
24
+ };
25
+ commonProperty.memberTypesWithProperty[memberI] = true;
26
+ }
27
+ }
28
+ });
29
+ const propertiesObject = [];
30
+ for (const name of Object.keys(commonPropertiesByName).toSorted()) {
31
+ const { memberTypesWithProperty, property } = commonPropertiesByName[name];
32
+ if (!memberTypesWithProperty.every((value) => value)) {
33
+ continue;
34
+ }
35
+ property.schema.ifJust((propertySchema) => {
36
+ propertiesObject.push(code `${property.name}: ${propertySchema}`);
37
+ });
38
+ }
39
+ return singleEntryRecord(`schema`, code `\
40
+ export const schema = { ${joinCode(this.schemaInitializers.concat(code `properties: { ${joinCode(propertiesObject, { on: ", " })} }`), { on: ", " })} } as const;`);
41
+ }
42
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_schemaVariableStatement.js.map
@@ -0,0 +1,4 @@
1
+ import type { ObjectDiscriminatedUnionType } from "../ObjectDiscriminatedUnionType.js";
2
+ import { type Code } from "../ts-poet-wrapper.js";
3
+ export declare function ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration(this: ObjectDiscriminatedUnionType): Record<string, Code>;
4
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { singleEntryRecord } from "../singleEntryRecord.js";
2
+ import { code, joinCode } from "../ts-poet-wrapper.js";
3
+ export function ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration() {
4
+ if (!this.configuration.features.has("Object.toRdf")) {
5
+ return {};
6
+ }
7
+ const name = this.name.unsafeCoerce();
8
+ return singleEntryRecord(`toRdfResource`, code `\
9
+ export const toRdfResource: ${this.reusables.snippets.ToRdfResourceFunction}<${name}> = (object, options) => {
10
+ ${joinCode(this.members
11
+ .map((member) => code `if (${member.type.name.unsafeCoerce()}.is${member.type.name.unsafeCoerce()}(object)) { return ${member.type.name.unsafeCoerce()}.toRdfResource(object, options); }`)
12
+ .concat(code `throw new Error("unrecognized type");`))}
13
+ };`);
14
+ }
15
+ //# sourceMappingURL=ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.js.map
@@ -7,18 +7,18 @@ export declare class ObjectType_DiscriminantProperty extends ObjectType_Abstract
7
7
  readonly filterProperty: ObjectType_AbstractProperty<ObjectType_DiscriminantProperty.Type>["filterProperty"];
8
8
  readonly graphqlField: ObjectType_AbstractProperty<ObjectType_DiscriminantProperty.Type>["graphqlField"];
9
9
  readonly hashFunctionParameter: Code;
10
- readonly jsonName = "@type";
11
- readonly jsonSignature: Maybe<Code>;
12
10
  readonly kind = "Discriminant";
13
11
  readonly mutable = false;
14
12
  readonly recursive = false;
15
13
  readonly schema: Maybe<Code>;
16
14
  readonly schemaType: Maybe<Code>;
17
15
  readonly value: string;
18
- constructor({ value, ...superParameters }: {
16
+ constructor({ configuration, value, ...superParameters }: {
19
17
  value: string;
20
- } & Omit<ConstructorParameters<typeof ObjectType_AbstractProperty>[0], "type">);
18
+ } & Omit<ConstructorParameters<typeof ObjectType_AbstractProperty>[0], "name" | "type">);
19
+ get jsonName(): string;
21
20
  get jsonSchema(): ObjectType_AbstractProperty<ObjectType_DiscriminantProperty.Type>["jsonSchema"];
21
+ get jsonSignature(): Maybe<Code>;
22
22
  get values(): readonly string[];
23
23
  private get constValue();
24
24
  constructorInitializer(): Maybe<Code>;
@@ -14,27 +14,33 @@ export class ObjectType_DiscriminantProperty extends ObjectType_AbstractProperty
14
14
  filterProperty = Maybe.empty();
15
15
  graphqlField = Maybe.empty();
16
16
  hashFunctionParameter = code `readonly ${this.name}?: ${this.type.expression};`;
17
- jsonName = "@type";
18
- jsonSignature = Maybe.of(code `readonly "${this.jsonName}": ${this.type.expression}`);
19
17
  kind = "Discriminant";
20
18
  mutable = false;
21
19
  recursive = false;
22
20
  schema = Maybe.empty();
23
21
  schemaType = Maybe.empty();
24
22
  value;
25
- constructor({ value, ...superParameters }) {
23
+ constructor({ configuration, value, ...superParameters }) {
26
24
  super({
27
25
  ...superParameters,
26
+ configuration,
27
+ name: configuration.objectDiscriminantProperty.name,
28
28
  type: new ObjectType_DiscriminantProperty.Type(value),
29
29
  });
30
30
  this.value = value;
31
31
  }
32
+ get jsonName() {
33
+ return this.configuration.objectDiscriminantProperty.jsonName;
34
+ }
32
35
  get jsonSchema() {
33
36
  return Maybe.of({
34
37
  key: this.jsonName,
35
38
  schema: code `${this.reusables.imports.z}.literal(${literalOf(this.value)})`,
36
39
  });
37
40
  }
41
+ get jsonSignature() {
42
+ return Maybe.of(code `readonly "${this.jsonName}": ${this.type.expression}`);
43
+ }
38
44
  get values() {
39
45
  return [this.value];
40
46
  }
@@ -75,9 +81,15 @@ export class ObjectType_DiscriminantProperty extends ObjectType_AbstractProperty
75
81
  return Maybe.empty();
76
82
  }
77
83
  }
84
+ __decorate([
85
+ Memoize()
86
+ ], ObjectType_DiscriminantProperty.prototype, "jsonName", null);
78
87
  __decorate([
79
88
  Memoize()
80
89
  ], ObjectType_DiscriminantProperty.prototype, "jsonSchema", null);
90
+ __decorate([
91
+ Memoize()
92
+ ], ObjectType_DiscriminantProperty.prototype, "jsonSignature", null);
81
93
  __decorate([
82
94
  Memoize()
83
95
  ], ObjectType_DiscriminantProperty.prototype, "values", null);
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "dependencies": {
3
- "@shaclmate/shacl-ast": "4.0.59",
3
+ "@shaclmate/shacl-ast": "4.0.61",
4
4
  "@rdfjs/dataset": "~2.0.2",
5
5
  "@rdfjs/prefix-map": "~0.1.2",
6
6
  "@rdfjs/term-map": "~2.0.2",
7
7
  "@rdfjs/term-set": "~2.0.3",
8
8
  "@rdfjs/types": "~2.0.1",
9
- "@rdfx/data-factory": "0.0.29",
10
- "@rdfx/literal": "0.0.29",
11
- "@rdfx/resource": "0.0.29",
12
- "@rdfx/string": "0.0.29",
9
+ "@rdfx/data-factory": "0.0.30",
10
+ "@rdfx/literal": "0.0.30",
11
+ "@rdfx/resource": "0.0.30",
12
+ "@rdfx/string": "0.0.30",
13
13
  "@sindresorhus/base62": "~0.1.0",
14
14
  "@tpluscode/rdf-ns-builders": "~4.3.0",
15
15
  "@types/rdfjs__dataset": "~2.0.7",
@@ -22,12 +22,13 @@
22
22
  "purify-ts": "~2.1.4",
23
23
  "reserved-identifiers": "~1.0.0",
24
24
  "ts-invariant": "~0.10.3",
25
+ "ts-log": "~3.0.2",
25
26
  "ts-poet": "~6.12.0",
26
27
  "typescript-memoize": "~1.1.1"
27
28
  },
28
29
  "devDependencies": {
29
- "@types/n3": "~1.26.0",
30
- "n3": "~1.26.0"
30
+ "@rdfx/fs": "0.0.30",
31
+ "@rdfx/serializers": "0.0.30"
31
32
  },
32
33
  "files": [
33
34
  "dist/Compiler.d.ts",
@@ -238,6 +239,56 @@
238
239
  "dist/generators/ts/_AbstractType/AbstractType_JsType.js",
239
240
  "dist/generators/ts/_AbstractType/AbstractType_JsonType.d.ts",
240
241
  "dist/generators/ts/_AbstractType/AbstractType_JsonType.js",
242
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_Discriminant.d.ts",
243
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_Discriminant.js",
244
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_equalsFunctionExpression.d.ts",
245
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_equalsFunctionExpression.js",
246
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterFunctionExpression.d.ts",
247
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterFunctionExpression.js",
248
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterTypeExpression.d.ts",
249
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_filterTypeExpression.js",
250
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromJsonFunctionExpression.d.ts",
251
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromJsonFunctionExpression.js",
252
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromRdfResourceValuesFunctionExpression.d.ts",
253
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_fromRdfResourceValuesFunctionExpression.js",
254
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_hashFunctionExpression.d.ts",
255
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_hashFunctionExpression.js",
256
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inferDiscriminant.d.ts",
257
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inferDiscriminant.js",
258
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inlineExpression.d.ts",
259
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_inlineExpression.js",
260
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonSchemaExpression.d.ts",
261
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonSchemaExpression.js",
262
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonTypeLiteral.d.ts",
263
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_jsonTypeLiteral.js",
264
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_schemaTypeExpression.d.ts",
265
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_schemaTypeExpression.js",
266
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toJsonFunctionExpression.d.ts",
267
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toJsonFunctionExpression.js",
268
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.d.ts",
269
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toRdfResourceValuesFunctionExpression.js",
270
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toStringFunctionExpression.d.ts",
271
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_toStringFunctionExpression.js",
272
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.d.ts",
273
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlConstructTriplesFunctionExpression.js",
274
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.d.ts",
275
+ "dist/generators/ts/_DiscriminatedUnionType/DiscriminatedUnionType_valueSparqlWherePatternsFunctionExpression.js",
276
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.d.ts",
277
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlConstructTriplesFunctionDeclaration.js",
278
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.d.ts",
279
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_focusSparqlWherePatternsFunctionDeclaration.js",
280
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.d.ts",
281
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_fromRdfResourceFunctionDeclaration.js",
282
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.d.ts",
283
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.js",
284
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_identifierTypeDeclarations.d.ts",
285
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_identifierTypeDeclarations.js",
286
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.d.ts",
287
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_isTypeFunctionDeclaration.js",
288
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_schemaVariableStatement.d.ts",
289
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_schemaVariableStatement.js",
290
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.d.ts",
291
+ "dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_toRdfResourceFunctionDeclaration.js",
241
292
  "dist/generators/ts/_ObjectType/ObjectType_AbstractProperty.d.ts",
242
293
  "dist/generators/ts/_ObjectType/ObjectType_AbstractProperty.js",
243
294
  "dist/generators/ts/_ObjectType/ObjectType_DiscriminantProperty.d.ts",
@@ -670,5 +721,5 @@
670
721
  },
671
722
  "type": "module",
672
723
  "types": "./dist/index.d.ts",
673
- "version": "4.0.59"
724
+ "version": "4.0.61"
674
725
  }