@commitspark/graphql-api 2.0.0-beta.4 → 2.0.0-beta.5
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/CHANGELOG.md +32 -0
- package/README.md +147 -80
- package/dist/cjs/graphql/errors.d.ts +3 -2
- package/dist/cjs/graphql/errors.d.ts.map +1 -1
- package/dist/cjs/graphql/errors.js +11 -1
- package/dist/cjs/graphql/errors.js.map +1 -1
- package/dist/cjs/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/input-type-generator.js +5 -10
- package/dist/cjs/graphql/input-type-generator.js.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts +5 -5
- package/dist/cjs/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.js +45 -7
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/commit-message.d.ts +11 -0
- package/dist/cjs/graphql/resolvers/commit-message.d.ts.map +1 -0
- package/dist/cjs/graphql/resolvers/commit-message.js +22 -0
- package/dist/cjs/graphql/resolvers/commit-message.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +2 -2
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +3 -3
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js +7 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +1 -1
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +34 -28
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +28 -23
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +25 -18
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +5 -5
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/types.d.ts +9 -1
- package/dist/cjs/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-generator.js +9 -8
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +7 -7
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.js +2 -2
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-validator.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-validator.js +16 -0
- package/dist/cjs/graphql/schema-validator.js.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/cache.d.ts +3 -0
- package/dist/cjs/persistence/cache.d.ts.map +1 -1
- package/dist/cjs/persistence/cache.js +8 -17
- package/dist/cjs/persistence/cache.js.map +1 -1
- package/dist/cjs/persistence/commit-with-retry.d.ts +16 -0
- package/dist/cjs/persistence/commit-with-retry.d.ts.map +1 -0
- package/dist/cjs/persistence/commit-with-retry.js +39 -0
- package/dist/cjs/persistence/commit-with-retry.js.map +1 -0
- package/dist/cjs/persistence/git-adapter-call.d.ts +10 -0
- package/dist/cjs/persistence/git-adapter-call.d.ts.map +1 -0
- package/dist/cjs/persistence/git-adapter-call.js +29 -0
- package/dist/cjs/persistence/git-adapter-call.js.map +1 -0
- package/dist/cjs/persistence/persistence.d.ts +11 -0
- package/dist/cjs/persistence/persistence.d.ts.map +1 -1
- package/dist/cjs/persistence/persistence.js +37 -2
- package/dist/cjs/persistence/persistence.js.map +1 -1
- package/dist/esm/graphql/errors.d.ts +3 -2
- package/dist/esm/graphql/errors.d.ts.map +1 -1
- package/dist/esm/graphql/errors.js +10 -0
- package/dist/esm/graphql/errors.js.map +1 -1
- package/dist/esm/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/esm/graphql/input-type-generator.js +6 -11
- package/dist/esm/graphql/input-type-generator.js.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.d.ts +5 -5
- package/dist/esm/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.js +43 -6
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/commit-message.d.ts +11 -0
- package/dist/esm/graphql/resolvers/commit-message.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/commit-message.js +19 -0
- package/dist/esm/graphql/resolvers/commit-message.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +3 -3
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +4 -4
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +2 -2
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +35 -29
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +30 -25
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +27 -20
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +6 -6
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/types.d.ts +9 -1
- package/dist/esm/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/esm/graphql/schema-generator.d.ts.map +1 -1
- package/dist/esm/graphql/schema-generator.js +11 -10
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +8 -8
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +3 -3
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/graphql/schema-validator.d.ts.map +1 -1
- package/dist/esm/graphql/schema-validator.js +17 -1
- package/dist/esm/graphql/schema-validator.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/cache.d.ts +3 -0
- package/dist/esm/persistence/cache.d.ts.map +1 -1
- package/dist/esm/persistence/cache.js +6 -15
- package/dist/esm/persistence/cache.js.map +1 -1
- package/dist/esm/persistence/commit-with-retry.d.ts +16 -0
- package/dist/esm/persistence/commit-with-retry.d.ts.map +1 -0
- package/dist/esm/persistence/commit-with-retry.js +35 -0
- package/dist/esm/persistence/commit-with-retry.js.map +1 -0
- package/dist/esm/persistence/git-adapter-call.d.ts +10 -0
- package/dist/esm/persistence/git-adapter-call.d.ts.map +1 -0
- package/dist/esm/persistence/git-adapter-call.js +24 -0
- package/dist/esm/persistence/git-adapter-call.js.map +1 -0
- package/dist/esm/persistence/persistence.d.ts +11 -0
- package/dist/esm/persistence/persistence.d.ts.map +1 -1
- package/dist/esm/persistence/persistence.js +36 -3
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/package.json +8 -5
- package/src/graphql/errors.ts +2 -1
- package/src/graphql/input-type-generator.ts +5 -15
- package/src/graphql/queries-mutations-generator.ts +51 -10
- package/src/graphql/resolvers/commit-message.ts +34 -0
- package/src/graphql/resolvers/field-resolvers/version-resolver.ts +8 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +40 -29
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +44 -30
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +37 -18
- package/src/graphql/resolvers/types.ts +18 -1
- package/src/graphql/schema-generator.ts +12 -8
- package/src/graphql/schema-validator.ts +21 -0
- package/src/persistence/cache.ts +7 -13
- package/src/persistence/commit-with-retry.ts +47 -0
- package/src/persistence/git-adapter-call.ts +27 -0
- package/src/persistence/persistence.ts +50 -0
|
@@ -19,13 +19,13 @@ async function validateEntryReferences(entryType, context, data) {
|
|
|
19
19
|
referencedTypeName = await (0, persistence_ts_1.getTypeById)(context, reference.id);
|
|
20
20
|
}
|
|
21
21
|
catch {
|
|
22
|
-
throw (0, errors_ts_1.createError)(`Failed to resolve entry reference "${reference.id}".`,
|
|
22
|
+
throw (0, errors_ts_1.createError)(`Failed to resolve entry reference "${reference.id}".`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
|
|
23
23
|
fieldName: reference.fieldName,
|
|
24
24
|
fieldValue: reference.id,
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
if (!isPermittedReferenceType(referencedTypeName, reference.fieldType)) {
|
|
28
|
-
throw (0, errors_ts_1.createError)(`Reference with ID "${reference.id}" points to entry of incompatible type "${referencedTypeName}".`,
|
|
28
|
+
throw (0, errors_ts_1.createError)(`Reference with ID "${reference.id}" points to entry of incompatible type "${referencedTypeName}".`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
|
|
29
29
|
fieldName: reference.fieldName,
|
|
30
30
|
fieldValue: reference.id,
|
|
31
31
|
});
|
|
@@ -48,7 +48,7 @@ function buildReferencedByIndex(schema, entriesRecord) {
|
|
|
48
48
|
if (!(0, graphql_1.isObjectType)(entryType) ||
|
|
49
49
|
!(0, directive_util_ts_1.hasDirective)(entryType, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
|
|
50
50
|
throw (0, errors_ts_1.createError)(`Entry "${entry.id}" is of type "${entry.metadata.type}", which is not a type with directive ` +
|
|
51
|
-
`@${directive_util_ts_1.ENTRY_DIRECTIVE_NAME} in the schema.`,
|
|
51
|
+
`@${directive_util_ts_1.ENTRY_DIRECTIVE_NAME} in the schema.`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
52
52
|
typeName: entry.metadata.type,
|
|
53
53
|
fieldValue: entry.id,
|
|
54
54
|
});
|
|
@@ -76,7 +76,7 @@ function getReferencesInObjectFields(type, data) {
|
|
|
76
76
|
}
|
|
77
77
|
// expect our object type to hold EntryData (i.e. an object)
|
|
78
78
|
if (!(0, util_ts_1.isEntryData)(data) || data === null) {
|
|
79
|
-
throw (0, errors_ts_1.createError)(`Expected object as data for type "${type.name}".`,
|
|
79
|
+
throw (0, errors_ts_1.createError)(`Expected object as data for type "${type.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
80
80
|
typeName: type.name,
|
|
81
81
|
fieldValue: data,
|
|
82
82
|
});
|
|
@@ -92,7 +92,7 @@ function getReferencesInField(fieldName, type, data) {
|
|
|
92
92
|
}
|
|
93
93
|
if ((0, graphql_1.isListType)(type)) {
|
|
94
94
|
if (!Array.isArray(data)) {
|
|
95
|
-
throw (0, errors_ts_1.createError)(`Expected array as data for field "${fieldName}".`,
|
|
95
|
+
throw (0, errors_ts_1.createError)(`Expected array as data for field "${fieldName}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
96
96
|
fieldName: fieldName,
|
|
97
97
|
fieldValue: data,
|
|
98
98
|
});
|
|
@@ -109,7 +109,7 @@ function getReferencesInField(fieldName, type, data) {
|
|
|
109
109
|
.find((concreteFieldType) => concreteFieldType.name === requestedUnionTypeName);
|
|
110
110
|
if (!concreteFieldUnionType) {
|
|
111
111
|
throw (0, errors_ts_1.createError)(`Type "${requestedUnionTypeName}" found in field data is not a valid type for ` +
|
|
112
|
-
`union type "${type.name}".`,
|
|
112
|
+
`union type "${type.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
113
113
|
typeName: type.name,
|
|
114
114
|
fieldName: fieldName,
|
|
115
115
|
fieldValue: data,
|
|
@@ -130,7 +130,7 @@ function createEntryReference(fieldName, fieldType, data) {
|
|
|
130
130
|
data === null ||
|
|
131
131
|
!('id' in data) ||
|
|
132
132
|
typeof data.id !== 'string') {
|
|
133
|
-
throw (0, errors_ts_1.createError)(`Expected key "id" with value of type string in data of field "${fieldName}" of type "${fieldType.name}".`,
|
|
133
|
+
throw (0, errors_ts_1.createError)(`Expected key "id" with value of type string in data of field "${fieldName}" of type "${fieldType.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
134
134
|
typeName: fieldType.name,
|
|
135
135
|
fieldName: fieldName,
|
|
136
136
|
fieldValue: data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":";;AAoCA,0DA8BC;AAED,wDAeC;AAnFD,qCAUgB;AAEhB,qEAA8D;AAE9D,6DAG6B;AAC7B,2DAAwE;AACxE,6DAA0D;AAC1D,4CAAqD;AAErD,wCAAwC;AAUxC,gHAAgH;AAChH,wBAAwB;AACxB,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAoC,CAAA;AAEpE,KAAK,UAAU,uBAAuB,CAC3C,SAA4B,EAC5B,OAAsB,EACtB,IAAe;IAEf,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,kBAAkB,CAAA;QACtB,IAAI,CAAC;YACH,kBAAkB,GAAG,MAAM,IAAA,4BAAW,EAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAA,uBAAW,EACf,sCAAsC,SAAS,CAAC,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ exports.getUnionValue = getUnionValue;
|
|
|
5
5
|
const errors_ts_1 = require("../errors.js");
|
|
6
6
|
function getUnionTypeNameFromFieldValue(fieldValue) {
|
|
7
7
|
if (typeof fieldValue !== 'object' || fieldValue === null) {
|
|
8
|
-
throw (0, errors_ts_1.createError)(`Expected object value in order to determine union type name.`,
|
|
8
|
+
throw (0, errors_ts_1.createError)(`Expected object value in order to determine union type name.`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
9
9
|
fieldValue: fieldValue,
|
|
10
10
|
});
|
|
11
11
|
}
|
|
@@ -15,7 +15,7 @@ function getUnionTypeNameFromFieldValue(fieldValue) {
|
|
|
15
15
|
}
|
|
16
16
|
function getUnionValue(fieldValue) {
|
|
17
17
|
if (typeof fieldValue !== 'object' || fieldValue === null) {
|
|
18
|
-
throw (0, errors_ts_1.createError)(`Expected object value in order to determine union value.`,
|
|
18
|
+
throw (0, errors_ts_1.createError)(`Expected object value in order to determine union value.`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
19
19
|
fieldValue: fieldValue,
|
|
20
20
|
});
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":";;AAGA,wEAcC;AAED,sCAaC;AA/BD,4CAAqD;AAErD,SAAgB,8BAA8B,CAAC,UAAmB;IAChE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAA,uBAAW,EACf,8DAA8D,
|
|
1
|
+
{"version":3,"file":"union-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":";;AAGA,wEAcC;AAED,sCAaC;AA/BD,4CAAqD;AAErD,SAAgB,8BAA8B,CAAC,UAAmB;IAChE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAA,uBAAW,EACf,8DAA8D,EAC9D,qBAAS,CAAC,mBAAmB,EAC7B;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,qEAAqE;IACrE,2CAA2C;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,SAAgB,aAAa,CAAC,UAAmB;IAC/C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAA,uBAAW,EACf,0DAA0D,EAC1D,qBAAS,CAAC,mBAAmB,EAC7B;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,OAAQ,UAAwC,CAAC,QAAQ,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,
|
|
1
|
+
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAMd,MAAM,SAAS,CAAA;AAyEhB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAMnE"}
|
|
@@ -35,8 +35,24 @@ function checkSearchableDirectiveOnlyOnStringFields(schema) {
|
|
|
35
35
|
}
|
|
36
36
|
return '';
|
|
37
37
|
}
|
|
38
|
+
function checkEntryTypesHaveIdField(schema) {
|
|
39
|
+
for (const type of Object.values(schema.getTypeMap())) {
|
|
40
|
+
if (!(0, graphql_1.isObjectType)(type) || !(0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const idField = type.getFields()['id'];
|
|
44
|
+
if (idField === undefined ||
|
|
45
|
+
!(0, graphql_1.isNonNullType)(idField.type) ||
|
|
46
|
+
!(0, graphql_1.isScalarType)(idField.type.ofType) ||
|
|
47
|
+
idField.type.ofType.name !== 'ID') {
|
|
48
|
+
return `Type "${type.name}" must have a field "id" of type "ID!" to use "@${directive_util_ts_1.ENTRY_DIRECTIVE_NAME}" directive.`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
38
53
|
function getValidationResult(schema) {
|
|
39
54
|
const results = [];
|
|
55
|
+
results.push(checkEntryTypesHaveIdField(schema));
|
|
40
56
|
results.push(checkUnionMembersConsistentUseOfEntryDirective(schema));
|
|
41
57
|
results.push(checkSearchableDirectiveOnlyOnStringFields(schema));
|
|
42
58
|
return results.filter((result) => result !== '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorCode = void 0;
|
|
3
4
|
exports.createClient = createClient;
|
|
4
5
|
const client_ts_1 = require("./client.js");
|
|
6
|
+
const errors_ts_1 = require("./graphql/errors.js");
|
|
7
|
+
Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return errors_ts_1.ErrorCode; } });
|
|
5
8
|
const cache_ts_1 = require("./persistence/cache.js");
|
|
6
9
|
async function createClient(gitAdapter, options = {}) {
|
|
7
10
|
const repositoryCache = (0, cache_ts_1.createCacheHandler)();
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAwCA,oCAYC;AApDD,2CAOoB;AAGpB,mDAA8D;AA0B5D,0FA1BO,qBAAS,OA0BP;AAzBX,qDAA2D;AA6BpD,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,UAAyB,EAAE;IAE3B,MAAM,eAAe,GAAG,IAAA,6BAAkB,GAAE,CAAA;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC3C,OAAO;QACL,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CACvB,IAAA,uBAAW,EAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QAClE,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CACrB,IAAA,qBAAS,EAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;KACjE,CAAA;AACH,CAAC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Entry } from '@commitspark/git-adapter';
|
|
2
2
|
import { ApolloContext } from '../client.ts';
|
|
3
|
+
type ContentHash = string;
|
|
3
4
|
export interface EntriesRecord {
|
|
4
5
|
byId: Map<string, Entry>;
|
|
5
6
|
byType: Map<string, Entry[]>;
|
|
7
|
+
hashById: Map<string, ContentHash>;
|
|
6
8
|
}
|
|
7
9
|
export interface RepositoryCacheHandler {
|
|
8
10
|
getEntriesRecord: (context: ApolloContext, ref: string) => Promise<EntriesRecord>;
|
|
9
11
|
getSchema: (context: ApolloContext, ref: string) => Promise<string>;
|
|
10
12
|
}
|
|
11
13
|
export declare const createCacheHandler: (cacheSize?: number) => RepositoryCacheHandler;
|
|
14
|
+
export {};
|
|
12
15
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAK5C,KAAK,WAAW,GAAG,MAAM,CAAA;AAQzB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAE5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CACnC;AAOD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,CAChB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,aAAa,CAAC,CAAA;IAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACpE;AAsLD,eAAO,MAAM,kBAAkB,GAC7B,YAAW,MAA0B,KACpC,sBAoBF,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createCacheHandler = void 0;
|
|
4
|
-
const git_adapter_1 = require("@commitspark/git-adapter");
|
|
5
4
|
const errors_ts_1 = require("../graphql/errors.js");
|
|
5
|
+
const git_adapter_call_ts_1 = require("./git-adapter-call.js");
|
|
6
6
|
const MAX_CACHE_ENTRIES = 50;
|
|
7
7
|
// intentionally not async so that the same in-flight promise is returned to all callers
|
|
8
8
|
const getEntriesRecordByRef = (entriesCache, contentCache, inflightEntries, cacheSize, context, ref) => {
|
|
@@ -22,7 +22,7 @@ const getEntriesRecordByRef = (entriesCache, contentCache, inflightEntries, cach
|
|
|
22
22
|
return fetchPromise;
|
|
23
23
|
};
|
|
24
24
|
const fetchAndCacheEntries = async (entriesCache, contentCache, cacheSize, context, ref) => {
|
|
25
|
-
const entryHashes = await callGitAdapter(() => context.gitAdapter.getEntryHashes(ref));
|
|
25
|
+
const entryHashes = await (0, git_adapter_call_ts_1.callGitAdapter)(() => context.gitAdapter.getEntryHashes(ref));
|
|
26
26
|
// hold on to known content now, as it may be evicted from the content cache while missing content is fetched
|
|
27
27
|
const contentByHash = new Map();
|
|
28
28
|
const idsToFetchByHash = new Map();
|
|
@@ -37,19 +37,21 @@ const fetchAndCacheEntries = async (entriesCache, contentCache, cacheSize, conte
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
if (idsToFetchByHash.size > 0) {
|
|
40
|
-
const fetchedEntries = await callGitAdapter(() => context.gitAdapter.getEntriesByIds(ref, [...idsToFetchByHash.values()]));
|
|
40
|
+
const fetchedEntries = await (0, git_adapter_call_ts_1.callGitAdapter)(() => context.gitAdapter.getEntriesByIds(ref, [...idsToFetchByHash.values()]));
|
|
41
41
|
const fetchedEntriesById = new Map(fetchedEntries.map((entry) => [entry.id, entry]));
|
|
42
42
|
for (const [hash, id] of idsToFetchByHash) {
|
|
43
43
|
const fetchedEntry = fetchedEntriesById.get(id);
|
|
44
44
|
if (fetchedEntry === undefined) {
|
|
45
|
-
throw (0, errors_ts_1.createError)(`Git adapter did not return requested entry "${id}".`,
|
|
45
|
+
throw (0, errors_ts_1.createError)(`Git adapter did not return requested entry "${id}".`, errors_ts_1.ErrorCode.INTERNAL_ERROR, {});
|
|
46
46
|
}
|
|
47
47
|
contentByHash.set(hash, createEntryContent(fetchedEntry));
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
const entriesById = new Map();
|
|
51
51
|
const entriesByType = new Map();
|
|
52
|
+
const hashesById = new Map();
|
|
52
53
|
for (const { id, hash } of entryHashes) {
|
|
54
|
+
hashesById.set(id, hash);
|
|
53
55
|
const entry = {
|
|
54
56
|
id: id,
|
|
55
57
|
...contentByHash.get(hash),
|
|
@@ -63,6 +65,7 @@ const fetchAndCacheEntries = async (entriesCache, contentCache, cacheSize, conte
|
|
|
63
65
|
entriesRecord: {
|
|
64
66
|
byType: entriesByType,
|
|
65
67
|
byId: entriesById,
|
|
68
|
+
hashById: hashesById,
|
|
66
69
|
},
|
|
67
70
|
contentHashes: [...contentByHash.keys()],
|
|
68
71
|
};
|
|
@@ -100,18 +103,6 @@ const removeUnreferencedContent = (entriesCache, contentCache) => {
|
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
};
|
|
103
|
-
const callGitAdapter = async (operation) => {
|
|
104
|
-
try {
|
|
105
|
-
return await operation();
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
if (err instanceof git_adapter_1.GitAdapterError) {
|
|
109
|
-
throw (0, errors_ts_1.createError)(err.message, err.code, {});
|
|
110
|
-
}
|
|
111
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
112
|
-
throw (0, errors_ts_1.createError)(message, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
106
|
const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
|
|
116
107
|
const schemaCacheRecord = schemaCache.get(ref);
|
|
117
108
|
if (schemaCacheRecord !== undefined) {
|
|
@@ -120,7 +111,7 @@ const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
|
|
|
120
111
|
schemaCache.set(ref, schemaCacheRecord);
|
|
121
112
|
return schemaCacheRecord;
|
|
122
113
|
}
|
|
123
|
-
const schemaString = await callGitAdapter(() => context.gitAdapter.getSchema(ref));
|
|
114
|
+
const schemaString = await (0, git_adapter_call_ts_1.callGitAdapter)(() => context.gitAdapter.getSchema(ref));
|
|
124
115
|
schemaCache.set(ref, schemaString);
|
|
125
116
|
if (schemaCache.size > cacheSize) {
|
|
126
117
|
// get first map key (oldest)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CommitDraft } from '@commitspark/git-adapter';
|
|
2
|
+
import { ApolloContext } from '../client.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Commits a draft that `createDraft` validates against the current commit of the request, guaranteeing that the
|
|
5
|
+
* draft is only committed on top of the exact commit it was validated against.
|
|
6
|
+
*
|
|
7
|
+
* Git adapters only move a branch if it still points to `parentSha` and otherwise throw `CONFLICT`. As most adapters
|
|
8
|
+
* can only check this for the branch as a whole, any concurrent commit to the branch between reading and committing
|
|
9
|
+
* leads to `CONFLICT`, even if it changed unrelated entries. In this case, the current commit of the request is moved
|
|
10
|
+
* to the new branch head and the draft is created and validated again, including expected entry versions and
|
|
11
|
+
* references, so that only actual conflicts are reported to the caller.
|
|
12
|
+
*
|
|
13
|
+
* Errors thrown by `createDraft` are not retried, as the draft was validated against the latest known state.
|
|
14
|
+
*/
|
|
15
|
+
export declare const commitWithRetry: (context: ApolloContext, createDraft: () => Promise<CommitDraft>) => Promise<void>;
|
|
16
|
+
//# sourceMappingURL=commit-with-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-with-retry.d.ts","sourceRoot":"","sources":["../../../src/persistence/commit-with-retry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAGZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAK5C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,aAAa,EACtB,aAAa,MAAM,OAAO,CAAC,WAAW,CAAC,KACtC,OAAO,CAAC,IAAI,CAqBd,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.commitWithRetry = void 0;
|
|
4
|
+
const git_adapter_1 = require("@commitspark/git-adapter");
|
|
5
|
+
const git_adapter_call_ts_1 = require("./git-adapter-call.js");
|
|
6
|
+
const MAX_COMMIT_ATTEMPTS = 3;
|
|
7
|
+
/**
|
|
8
|
+
* Commits a draft that `createDraft` validates against the current commit of the request, guaranteeing that the
|
|
9
|
+
* draft is only committed on top of the exact commit it was validated against.
|
|
10
|
+
*
|
|
11
|
+
* Git adapters only move a branch if it still points to `parentSha` and otherwise throw `CONFLICT`. As most adapters
|
|
12
|
+
* can only check this for the branch as a whole, any concurrent commit to the branch between reading and committing
|
|
13
|
+
* leads to `CONFLICT`, even if it changed unrelated entries. In this case, the current commit of the request is moved
|
|
14
|
+
* to the new branch head and the draft is created and validated again, including expected entry versions and
|
|
15
|
+
* references, so that only actual conflicts are reported to the caller.
|
|
16
|
+
*
|
|
17
|
+
* Errors thrown by `createDraft` are not retried, as the draft was validated against the latest known state.
|
|
18
|
+
*/
|
|
19
|
+
const commitWithRetry = async (context, createDraft) => {
|
|
20
|
+
for (let attempt = 1;; attempt++) {
|
|
21
|
+
const commitDraft = await createDraft();
|
|
22
|
+
try {
|
|
23
|
+
const commit = await context.gitAdapter.createCommit(commitDraft);
|
|
24
|
+
context.setCurrentHash(commit.commitHash);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
const isConflict = err instanceof git_adapter_1.GitAdapterError &&
|
|
29
|
+
err.code === git_adapter_1.ErrorCode.CONFLICT;
|
|
30
|
+
if (!isConflict || attempt >= MAX_COMMIT_ATTEMPTS) {
|
|
31
|
+
throw (0, git_adapter_call_ts_1.toGraphQLError)(err);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const headCommitHash = await (0, git_adapter_call_ts_1.callGitAdapter)(() => context.gitAdapter.getLatestCommitHash(context.branch));
|
|
35
|
+
context.setCurrentHash(headCommitHash);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.commitWithRetry = commitWithRetry;
|
|
39
|
+
//# sourceMappingURL=commit-with-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-with-retry.js","sourceRoot":"","sources":["../../../src/persistence/commit-with-retry.ts"],"names":[],"mappings":";;;AAAA,0DAIiC;AAEjC,+DAAsE;AAEtE,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAE7B;;;;;;;;;;;GAWG;AACI,MAAM,eAAe,GAAG,KAAK,EAClC,OAAsB,EACtB,WAAuC,EACxB,EAAE;IACjB,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE,CAAA;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;YACjE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,UAAU,GACd,GAAG,YAAY,6BAAe;gBAC9B,GAAG,CAAC,IAAI,KAAK,uBAAmB,CAAC,QAAQ,CAAA;YAC3C,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,mBAAmB,EAAE,CAAC;gBAClD,MAAM,IAAA,oCAAc,EAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAA,oCAAc,EAAC,GAAG,EAAE,CAC/C,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CACvD,CAAA;QACD,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AAxBY,QAAA,eAAe,mBAwB3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
/**
|
|
3
|
+
* Converts an error thrown by a Git adapter to a GraphQL error, keeping the error code of a `GitAdapterError`.
|
|
4
|
+
*/
|
|
5
|
+
export declare const toGraphQLError: (err: unknown) => GraphQLError;
|
|
6
|
+
/**
|
|
7
|
+
* Runs a Git adapter operation and converts thrown errors to GraphQL errors.
|
|
8
|
+
*/
|
|
9
|
+
export declare const callGitAdapter: <T>(operation: () => Promise<T>) => Promise<T>;
|
|
10
|
+
//# sourceMappingURL=git-adapter-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-adapter-call.d.ts","sourceRoot":"","sources":["../../../src/persistence/git-adapter-call.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,YAM7C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,EACpC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC,CAAC,CAMX,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callGitAdapter = exports.toGraphQLError = void 0;
|
|
4
|
+
const git_adapter_1 = require("@commitspark/git-adapter");
|
|
5
|
+
const errors_ts_1 = require("../graphql/errors.js");
|
|
6
|
+
/**
|
|
7
|
+
* Converts an error thrown by a Git adapter to a GraphQL error, keeping the error code of a `GitAdapterError`.
|
|
8
|
+
*/
|
|
9
|
+
const toGraphQLError = (err) => {
|
|
10
|
+
if (err instanceof git_adapter_1.GitAdapterError) {
|
|
11
|
+
return (0, errors_ts_1.createError)(err.message, err.code, {});
|
|
12
|
+
}
|
|
13
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
14
|
+
return (0, errors_ts_1.createError)(message, errors_ts_1.ErrorCode.INTERNAL_ERROR, {});
|
|
15
|
+
};
|
|
16
|
+
exports.toGraphQLError = toGraphQLError;
|
|
17
|
+
/**
|
|
18
|
+
* Runs a Git adapter operation and converts thrown errors to GraphQL errors.
|
|
19
|
+
*/
|
|
20
|
+
const callGitAdapter = async (operation) => {
|
|
21
|
+
try {
|
|
22
|
+
return await operation();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
throw (0, exports.toGraphQLError)(err);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.callGitAdapter = callGitAdapter;
|
|
29
|
+
//# sourceMappingURL=git-adapter-call.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-adapter-call.js","sourceRoot":"","sources":["../../../src/persistence/git-adapter-call.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AAE1D,oDAA6D;AAE7D;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,GAAY,EAAgB,EAAE;IAC3D,IAAI,GAAG,YAAY,6BAAe,EAAE,CAAC;QACnC,OAAO,IAAA,uBAAW,EAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChE,OAAO,IAAA,uBAAW,EAAC,OAAO,EAAE,qBAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED;;GAEG;AACI,MAAM,cAAc,GAAG,KAAK,EACjC,SAA2B,EACf,EAAE;IACd,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B"}
|
|
@@ -4,4 +4,15 @@ export declare function getTypeById(context: ApolloContext, id: string): Promise
|
|
|
4
4
|
export declare function findById(context: ApolloContext, id: string): Promise<Entry>;
|
|
5
5
|
export declare function findByType(context: ApolloContext, type: string): Promise<Entry[]>;
|
|
6
6
|
export declare function findByTypeId(context: ApolloContext, type: string, id: string): Promise<Entry>;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the version of an entry, which is the content hash of the entry reported by the Git adapter. It changes
|
|
9
|
+
* whenever the stored entry changes.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getEntryVersion(context: ApolloContext, id: string): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Throws `CONFLICT` if an expected version is given and the entry has a different version at the current commit of
|
|
14
|
+
* the request. This lets callers detect that an entry was changed by someone else since they read it, e.g. while a
|
|
15
|
+
* user was editing the entry, instead of overwriting these changes.
|
|
16
|
+
*/
|
|
17
|
+
export declare function assertExpectedVersion(context: ApolloContext, id: string, expectedVersion: string | null | undefined): Promise<void>;
|
|
7
18
|
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAchB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,EAAE,CAAC,CAMlB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAehB"}
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAchB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,EAAE,CAAC,CAMlB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAehB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -4,6 +4,8 @@ exports.getTypeById = getTypeById;
|
|
|
4
4
|
exports.findById = findById;
|
|
5
5
|
exports.findByType = findByType;
|
|
6
6
|
exports.findByTypeId = findByTypeId;
|
|
7
|
+
exports.getEntryVersion = getEntryVersion;
|
|
8
|
+
exports.assertExpectedVersion = assertExpectedVersion;
|
|
7
9
|
const errors_ts_1 = require("../graphql/errors.js");
|
|
8
10
|
async function getTypeById(context, id) {
|
|
9
11
|
const requestedEntry = await findById(context, id);
|
|
@@ -13,7 +15,7 @@ async function findById(context, id) {
|
|
|
13
15
|
const entriesRecord = await context.repositoryCache.getEntriesRecord(context, context.getCurrentHash());
|
|
14
16
|
const requestedEntry = entriesRecord.byId.get(id);
|
|
15
17
|
if (requestedEntry === undefined) {
|
|
16
|
-
throw (0, errors_ts_1.createError)(`No entry with ID "${id}" exists.`,
|
|
18
|
+
throw (0, errors_ts_1.createError)(`No entry with ID "${id}" exists.`, errors_ts_1.ErrorCode.NOT_FOUND, {
|
|
17
19
|
argumentName: 'id',
|
|
18
20
|
argumentValue: id,
|
|
19
21
|
});
|
|
@@ -27,7 +29,7 @@ async function findByType(context, type) {
|
|
|
27
29
|
async function findByTypeId(context, type, id) {
|
|
28
30
|
const entryById = await findById(context, id);
|
|
29
31
|
if (entryById === undefined || entryById.metadata.type !== type) {
|
|
30
|
-
throw (0, errors_ts_1.createError)(`No entry of type "${type}" with ID "${id}" exists.`,
|
|
32
|
+
throw (0, errors_ts_1.createError)(`No entry of type "${type}" with ID "${id}" exists.`, errors_ts_1.ErrorCode.NOT_FOUND, {
|
|
31
33
|
typeName: type,
|
|
32
34
|
argumentName: 'id',
|
|
33
35
|
argumentValue: id,
|
|
@@ -35,4 +37,37 @@ async function findByTypeId(context, type, id) {
|
|
|
35
37
|
}
|
|
36
38
|
return entryById;
|
|
37
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Returns the version of an entry, which is the content hash of the entry reported by the Git adapter. It changes
|
|
42
|
+
* whenever the stored entry changes.
|
|
43
|
+
*/
|
|
44
|
+
async function getEntryVersion(context, id) {
|
|
45
|
+
const entriesRecord = await context.repositoryCache.getEntriesRecord(context, context.getCurrentHash());
|
|
46
|
+
const version = entriesRecord.hashById.get(id);
|
|
47
|
+
if (version === undefined) {
|
|
48
|
+
throw (0, errors_ts_1.createError)(`No entry with ID "${id}" exists.`, errors_ts_1.ErrorCode.NOT_FOUND, {
|
|
49
|
+
argumentName: 'id',
|
|
50
|
+
argumentValue: id,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return version;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Throws `CONFLICT` if an expected version is given and the entry has a different version at the current commit of
|
|
57
|
+
* the request. This lets callers detect that an entry was changed by someone else since they read it, e.g. while a
|
|
58
|
+
* user was editing the entry, instead of overwriting these changes.
|
|
59
|
+
*/
|
|
60
|
+
async function assertExpectedVersion(context, id, expectedVersion) {
|
|
61
|
+
if (expectedVersion === undefined || expectedVersion === null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const currentVersion = await getEntryVersion(context, id);
|
|
65
|
+
if (currentVersion !== expectedVersion) {
|
|
66
|
+
throw (0, errors_ts_1.createError)(`Entry with ID "${id}" has been changed: expected version "${expectedVersion}" but current version is ` +
|
|
67
|
+
`"${currentVersion}".`, errors_ts_1.ErrorCode.CONFLICT, {
|
|
68
|
+
argumentName: 'expectedVersion',
|
|
69
|
+
argumentValue: expectedVersion,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
38
73
|
//# sourceMappingURL=persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":";;AAIA,kCAMC;AAED,4BAiBC;AAED,gCASC;AAED,oCAmBC;
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { GraphQLError } from 'graphql';
|
|
2
2
|
import { ErrorCode as GitAdapterErrorCode } from '@commitspark/git-adapter';
|
|
3
3
|
import { ErrorCode as SearchAdapterErrorCode } from '@commitspark/search-adapter';
|
|
4
|
-
export declare
|
|
4
|
+
export declare enum ErrorCode {
|
|
5
5
|
BAD_USER_INPUT = "BAD_USER_INPUT",
|
|
6
6
|
NOT_FOUND = "NOT_FOUND",
|
|
7
7
|
BAD_REPOSITORY_DATA = "BAD_REPOSITORY_DATA",
|
|
8
8
|
BAD_SCHEMA = "BAD_SCHEMA",
|
|
9
9
|
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
10
|
-
IN_USE = "IN_USE"
|
|
10
|
+
IN_USE = "IN_USE",
|
|
11
|
+
CONFLICT = "CONFLICT"
|
|
11
12
|
}
|
|
12
13
|
export interface ErrorMetadata {
|
|
13
14
|
typeName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEjF,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEjF,oBAAY,SAAS;IACnB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,mBAAmB,wBAAwB;IAC3C,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,MAAM,SAAS,GAAG,mBAAmB,GAAG,sBAAsB,EAC9D,UAAU,aAAa,KACtB,YAiBF,CAAA"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { GraphQLError } from 'graphql';
|
|
2
|
+
export var ErrorCode;
|
|
3
|
+
(function (ErrorCode) {
|
|
4
|
+
ErrorCode["BAD_USER_INPUT"] = "BAD_USER_INPUT";
|
|
5
|
+
ErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
6
|
+
ErrorCode["BAD_REPOSITORY_DATA"] = "BAD_REPOSITORY_DATA";
|
|
7
|
+
ErrorCode["BAD_SCHEMA"] = "BAD_SCHEMA";
|
|
8
|
+
ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
9
|
+
ErrorCode["IN_USE"] = "IN_USE";
|
|
10
|
+
ErrorCode["CONFLICT"] = "CONFLICT";
|
|
11
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
2
12
|
export const createError = (message, code, metaData) => {
|
|
3
13
|
const serializedFieldValue = typeof metaData.fieldValue === 'object' ||
|
|
4
14
|
Array.isArray(metaData.fieldValue)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAItC,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,oCAAuB,CAAA;IACvB,wDAA2C,CAAA;IAC3C,sCAAyB,CAAA;IACzB,8CAAiC,CAAA;IACjC,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;AACvB,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAWD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAA8D,EAC9D,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-type-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EAEjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"input-type-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EAEjB,gBAAgB,EAMjB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAkC3D,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM,EAAE,CAeV;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,iBAAiB,EAAE,GAC/B,MAAM,EAAE,CA2BV;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAAE,GAC7B,MAAM,EAAE,CAcV"}
|