@commitspark/graphql-api 1.0.0 → 2.0.0-beta.2

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 (119) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +87 -4
  3. package/dist/cjs/client.d.ts +4 -2
  4. package/dist/cjs/client.js +4 -2
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/graphql/errors.d.ts +3 -2
  7. package/dist/cjs/graphql/errors.js.map +1 -1
  8. package/dist/cjs/graphql/input-type-generator.js +2 -1
  9. package/dist/cjs/graphql/input-type-generator.js.map +1 -1
  10. package/dist/cjs/graphql/queries-mutations-generator.d.ts +8 -1
  11. package/dist/cjs/graphql/queries-mutations-generator.js +19 -0
  12. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
  13. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +2 -1
  14. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  15. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +2 -0
  16. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +74 -0
  17. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -0
  18. package/dist/cjs/graphql/resolvers/types.d.ts +6 -0
  19. package/dist/cjs/graphql/schema-analyzer.js +2 -1
  20. package/dist/cjs/graphql/schema-analyzer.js.map +1 -1
  21. package/dist/cjs/graphql/schema-generator.js +7 -1
  22. package/dist/cjs/graphql/schema-generator.js.map +1 -1
  23. package/dist/cjs/graphql/schema-root-type-generator.d.ts +2 -2
  24. package/dist/cjs/graphql/schema-root-type-generator.js +2 -1
  25. package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
  26. package/dist/cjs/graphql/schema-utils/directive-util.d.ts +4 -0
  27. package/dist/cjs/graphql/schema-utils/directive-util.js +10 -0
  28. package/dist/cjs/graphql/schema-utils/directive-util.js.map +1 -0
  29. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +3 -1
  30. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  31. package/dist/cjs/graphql/schema-utils/entry-type-util.d.ts +1 -2
  32. package/dist/cjs/graphql/schema-utils/entry-type-util.js +2 -6
  33. package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
  34. package/dist/cjs/graphql/schema-utils/searchable-field-util.d.ts +4 -0
  35. package/dist/cjs/graphql/schema-utils/searchable-field-util.js +79 -0
  36. package/dist/cjs/graphql/schema-utils/searchable-field-util.js.map +1 -0
  37. package/dist/cjs/graphql/schema-validator.js +21 -3
  38. package/dist/cjs/graphql/schema-validator.js.map +1 -1
  39. package/dist/cjs/index.d.ts +9 -2
  40. package/dist/cjs/index.js +4 -3
  41. package/dist/cjs/index.js.map +1 -1
  42. package/dist/cjs/persistence/cache.js +76 -27
  43. package/dist/cjs/persistence/cache.js.map +1 -1
  44. package/dist/esm/client.js +4 -2
  45. package/dist/esm/client.js.map +1 -1
  46. package/dist/esm/graphql/errors.js.map +1 -1
  47. package/dist/esm/graphql/input-type-generator.js +3 -2
  48. package/dist/esm/graphql/input-type-generator.js.map +1 -1
  49. package/dist/esm/graphql/queries-mutations-generator.js +18 -0
  50. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
  51. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +3 -2
  52. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  53. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +70 -0
  54. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -0
  55. package/dist/esm/graphql/schema-analyzer.js +2 -1
  56. package/dist/esm/graphql/schema-analyzer.js.map +1 -1
  57. package/dist/esm/graphql/schema-generator.js +8 -2
  58. package/dist/esm/graphql/schema-generator.js.map +1 -1
  59. package/dist/esm/graphql/schema-root-type-generator.js +2 -1
  60. package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
  61. package/dist/esm/graphql/schema-utils/directive-util.js +6 -0
  62. package/dist/esm/graphql/schema-utils/directive-util.js.map +1 -0
  63. package/dist/esm/graphql/schema-utils/entry-reference-util.js +4 -2
  64. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  65. package/dist/esm/graphql/schema-utils/entry-type-util.js +2 -5
  66. package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
  67. package/dist/esm/graphql/schema-utils/searchable-field-util.js +76 -0
  68. package/dist/esm/graphql/schema-utils/searchable-field-util.js.map +1 -0
  69. package/dist/esm/graphql/schema-validator.js +22 -4
  70. package/dist/esm/graphql/schema-validator.js.map +1 -1
  71. package/dist/esm/index.js +4 -3
  72. package/dist/esm/index.js.map +1 -1
  73. package/dist/esm/persistence/cache.js +76 -27
  74. package/dist/esm/persistence/cache.js.map +1 -1
  75. package/dist/types/client.d.ts +4 -2
  76. package/dist/types/client.d.ts.map +1 -1
  77. package/dist/types/graphql/errors.d.ts +3 -2
  78. package/dist/types/graphql/errors.d.ts.map +1 -1
  79. package/dist/types/graphql/input-type-generator.d.ts.map +1 -1
  80. package/dist/types/graphql/queries-mutations-generator.d.ts +8 -1
  81. package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
  82. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
  83. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +3 -0
  84. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +1 -0
  85. package/dist/types/graphql/resolvers/types.d.ts +6 -0
  86. package/dist/types/graphql/resolvers/types.d.ts.map +1 -1
  87. package/dist/types/graphql/schema-analyzer.d.ts.map +1 -1
  88. package/dist/types/graphql/schema-generator.d.ts.map +1 -1
  89. package/dist/types/graphql/schema-root-type-generator.d.ts +2 -2
  90. package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -1
  91. package/dist/types/graphql/schema-utils/directive-util.d.ts +5 -0
  92. package/dist/types/graphql/schema-utils/directive-util.d.ts.map +1 -0
  93. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
  94. package/dist/types/graphql/schema-utils/entry-type-util.d.ts +1 -2
  95. package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
  96. package/dist/types/graphql/schema-utils/searchable-field-util.d.ts +5 -0
  97. package/dist/types/graphql/schema-utils/searchable-field-util.d.ts.map +1 -0
  98. package/dist/types/graphql/schema-validator.d.ts.map +1 -1
  99. package/dist/types/index.d.ts +9 -2
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/dist/types/persistence/cache.d.ts.map +1 -1
  102. package/package.json +3 -2
  103. package/src/client.ts +6 -0
  104. package/src/graphql/errors.ts +3 -2
  105. package/src/graphql/input-type-generator.ts +5 -4
  106. package/src/graphql/queries-mutations-generator.ts +31 -1
  107. package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +5 -4
  108. package/src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts +110 -0
  109. package/src/graphql/resolvers/types.ts +8 -0
  110. package/src/graphql/schema-analyzer.ts +6 -1
  111. package/src/graphql/schema-generator.ts +13 -1
  112. package/src/graphql/schema-root-type-generator.ts +3 -0
  113. package/src/graphql/schema-utils/directive-util.ts +15 -0
  114. package/src/graphql/schema-utils/entry-reference-util.ts +6 -2
  115. package/src/graphql/schema-utils/entry-type-util.ts +2 -11
  116. package/src/graphql/schema-utils/searchable-field-util.ts +130 -0
  117. package/src/graphql/schema-validator.ts +37 -7
  118. package/src/index.ts +25 -4
  119. package/src/persistence/cache.ts +115 -28
@@ -2,66 +2,104 @@ import { GitAdapterError } from '@commitspark/git-adapter';
2
2
  import { createError } from "../graphql/errors.js";
3
3
  const MAX_CACHE_ENTRIES = 50;
4
4
  // intentionally not async so that the same in-flight promise is returned to all callers
5
- const getEntriesRecordByRef = (entriesCache, inflightEntries, cacheSize, context, ref) => {
5
+ const getEntriesRecordByRef = (entriesCache, contentCache, inflightEntries, cacheSize, context, ref) => {
6
6
  const cacheRecord = entriesCache.get(ref);
7
7
  if (cacheRecord !== undefined) {
8
8
  // move map key back to end of list (newest)
9
9
  entriesCache.delete(ref);
10
10
  entriesCache.set(ref, cacheRecord);
11
- return Promise.resolve(cacheRecord);
11
+ return Promise.resolve(cacheRecord.entriesRecord);
12
12
  }
13
13
  const inflightPromise = inflightEntries.get(ref);
14
14
  if (inflightPromise) {
15
15
  return inflightPromise;
16
16
  }
17
- const fetchPromise = fetchAndCacheEntries(entriesCache, cacheSize, context, ref).finally(() => inflightEntries.delete(ref));
17
+ const fetchPromise = fetchAndCacheEntries(entriesCache, contentCache, cacheSize, context, ref).finally(() => inflightEntries.delete(ref));
18
18
  inflightEntries.set(ref, fetchPromise);
19
19
  return fetchPromise;
20
20
  };
21
- const fetchAndCacheEntries = async (entriesCache, cacheSize, context, ref) => {
22
- let allEntries;
23
- try {
24
- allEntries = await context.gitAdapter.getEntries(ref);
21
+ const fetchAndCacheEntries = async (entriesCache, contentCache, cacheSize, context, ref) => {
22
+ const entryHashes = await callGitAdapter(() => context.gitAdapter.getEntryHashes(ref));
23
+ // hold on to known content now, as it may be evicted from the content cache while missing content is fetched
24
+ const contentByHash = new Map();
25
+ const idsToFetchByHash = new Map();
26
+ for (const { id, hash } of entryHashes) {
27
+ const content = contentCache.get(hash);
28
+ if (content !== undefined) {
29
+ contentByHash.set(hash, content);
30
+ }
31
+ else if (!idsToFetchByHash.has(hash)) {
32
+ // entries with equal hash have equal content, so fetching one of them is sufficient
33
+ idsToFetchByHash.set(hash, id);
34
+ }
25
35
  }
26
- catch (err) {
27
- if (err instanceof GitAdapterError) {
28
- throw createError(err.message, err.code, {});
36
+ if (idsToFetchByHash.size > 0) {
37
+ const fetchedEntries = await callGitAdapter(() => context.gitAdapter.getEntriesByIds(ref, [...idsToFetchByHash.values()]));
38
+ const fetchedEntriesById = new Map(fetchedEntries.map((entry) => [entry.id, entry]));
39
+ for (const [hash, id] of idsToFetchByHash) {
40
+ const fetchedEntry = fetchedEntriesById.get(id);
41
+ if (fetchedEntry === undefined) {
42
+ throw createError(`Git adapter did not return requested entry "${id}".`, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
43
+ }
44
+ contentByHash.set(hash, createEntryContent(fetchedEntry));
29
45
  }
30
- const message = err instanceof Error ? err.message : String(err);
31
- throw createError(message, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
32
46
  }
33
- const entriesById = new Map(allEntries.map((entry) => [entry.id, entry]));
47
+ const entriesById = new Map();
34
48
  const entriesByType = new Map();
35
- for (const entry of allEntries) {
49
+ for (const { id, hash } of entryHashes) {
50
+ const entry = {
51
+ id: id,
52
+ ...contentByHash.get(hash),
53
+ };
54
+ entriesById.set(id, entry);
36
55
  const existingEntriesOfType = entriesByType.get(entry.metadata.type) || [];
37
56
  existingEntriesOfType.push(entry);
38
57
  entriesByType.set(entry.metadata.type, existingEntriesOfType);
39
58
  }
40
59
  const newCacheRecord = {
41
- byType: entriesByType,
42
- byId: entriesById,
60
+ entriesRecord: {
61
+ byType: entriesByType,
62
+ byId: entriesById,
63
+ },
64
+ contentHashes: [...contentByHash.keys()],
43
65
  };
66
+ for (const [hash, content] of contentByHash) {
67
+ contentCache.set(hash, content);
68
+ }
44
69
  entriesCache.set(ref, newCacheRecord);
45
70
  if (entriesCache.size > cacheSize) {
46
71
  // get first map key (oldest)
47
72
  const oldestKey = entriesCache.keys().next().value;
48
73
  if (oldestKey !== undefined) {
49
74
  entriesCache.delete(oldestKey);
75
+ removeUnreferencedContent(entriesCache, contentCache);
50
76
  }
51
77
  }
52
- return newCacheRecord;
78
+ return newCacheRecord.entriesRecord;
53
79
  };
54
- const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
55
- const schemaCacheRecord = schemaCache.get(ref);
56
- if (schemaCacheRecord !== undefined) {
57
- // move map key back to end of list (newest)
58
- schemaCache.delete(ref);
59
- schemaCache.set(ref, schemaCacheRecord);
60
- return schemaCacheRecord;
80
+ const createEntryContent = (entry) => {
81
+ const content = { metadata: entry.metadata };
82
+ if (entry.data !== undefined) {
83
+ content.data = entry.data;
61
84
  }
62
- let schemaString;
85
+ return content;
86
+ };
87
+ const removeUnreferencedContent = (entriesCache, contentCache) => {
88
+ const referencedHashes = new Set();
89
+ for (const cacheRecord of entriesCache.values()) {
90
+ for (const hash of cacheRecord.contentHashes) {
91
+ referencedHashes.add(hash);
92
+ }
93
+ }
94
+ for (const hash of contentCache.keys()) {
95
+ if (!referencedHashes.has(hash)) {
96
+ contentCache.delete(hash);
97
+ }
98
+ }
99
+ };
100
+ const callGitAdapter = async (operation) => {
63
101
  try {
64
- schemaString = await context.gitAdapter.getSchema(ref);
102
+ return await operation();
65
103
  }
66
104
  catch (err) {
67
105
  if (err instanceof GitAdapterError) {
@@ -70,6 +108,16 @@ const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
70
108
  const message = err instanceof Error ? err.message : String(err);
71
109
  throw createError(message, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
72
110
  }
111
+ };
112
+ const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
113
+ const schemaCacheRecord = schemaCache.get(ref);
114
+ if (schemaCacheRecord !== undefined) {
115
+ // move map key back to end of list (newest)
116
+ schemaCache.delete(ref);
117
+ schemaCache.set(ref, schemaCacheRecord);
118
+ return schemaCacheRecord;
119
+ }
120
+ const schemaString = await callGitAdapter(() => context.gitAdapter.getSchema(ref));
73
121
  schemaCache.set(ref, schemaString);
74
122
  if (schemaCache.size > cacheSize) {
75
123
  // get first map key (oldest)
@@ -82,10 +130,11 @@ const getSchemaStringByRef = async (schemaCache, cacheSize, context, ref) => {
82
130
  };
83
131
  export const createCacheHandler = (cacheSize = MAX_CACHE_ENTRIES) => {
84
132
  const entriesCache = new Map();
133
+ const contentCache = new Map();
85
134
  const schemaCache = new Map();
86
135
  const inflightEntries = new Map();
87
136
  return {
88
- getEntriesRecord: (...args) => getEntriesRecordByRef(entriesCache, inflightEntries, cacheSize, ...args),
137
+ getEntriesRecord: (...args) => getEntriesRecordByRef(entriesCache, contentCache, inflightEntries, cacheSize, ...args),
89
138
  getSchema: (...args) => getSchemaStringByRef(schemaCache, cacheSize, ...args),
90
139
  };
91
140
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { DocumentNode, GraphQLFormattedError, TypedQueryDocumentNode } from 'graphql';
2
2
  import { GitAdapter } from '@commitspark/git-adapter';
3
+ import { SearchAdapter } from '@commitspark/search-adapter';
3
4
  import { GraphQLRequest } from '@apollo/server';
4
5
  import { RepositoryCacheHandler } from './persistence/cache.ts';
5
6
  export type VariableValues = {
@@ -8,11 +9,12 @@ export type VariableValues = {
8
9
  export type ApolloExecuteOperationRequest<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues> = Omit<GraphQLRequest<TVariables>, 'query'> & {
9
10
  query?: string | DocumentNode | TypedQueryDocumentNode<TData, TVariables>;
10
11
  };
11
- export declare const postGraphQL: <TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>) => Promise<GraphQLResponse<TData | null>>;
12
- export declare const getSchema: (gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string) => Promise<SchemaResponse>;
12
+ export declare const postGraphQL: <TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(gitAdapter: GitAdapter, searchAdapter: SearchAdapter | undefined, repositoryCache: RepositoryCacheHandler, ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>) => Promise<GraphQLResponse<TData | null>>;
13
+ export declare const getSchema: (gitAdapter: GitAdapter, searchAdapter: SearchAdapter | undefined, repositoryCache: RepositoryCacheHandler, ref: string) => Promise<SchemaResponse>;
13
14
  export interface ApolloContext {
14
15
  branch: string;
15
16
  gitAdapter: GitAdapter;
17
+ searchAdapter?: SearchAdapter;
16
18
  getCurrentHash(): string;
17
19
  setCurrentHash(sha: string): void;
18
20
  repositoryCache: RepositoryCacheHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAGL,cAAc,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,6BAA6B,CACvC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,IAChD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;CAC1E,CAAA;AAED,eAAO,MAAM,WAAW,GACtB,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,YAAY,UAAU,EACtB,iBAAiB,sBAAsB,EACvC,KAAK,MAAM,EACX,SAAS,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,KACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAuCvC,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,YAAY,UAAU,EACtB,iBAAiB,sBAAsB,EACvC,KAAK,MAAM,KACV,OAAO,CAAC,cAAc,CAuBxB,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,IAAI,MAAM,CAAA;IACxB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,eAAe,EAAE,sBAAsB,CAAA;CACxC;AAED,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAA;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAGL,cAAc,EACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAExD,MAAM,MAAM,6BAA6B,CACvC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,IAChD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;CAC1E,CAAA;AAED,eAAO,MAAM,WAAW,GACtB,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,YAAY,UAAU,EACtB,eAAe,aAAa,GAAG,SAAS,EACxC,iBAAiB,sBAAsB,EACvC,KAAK,MAAM,EACX,SAAS,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,KACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAwCvC,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,YAAY,UAAU,EACtB,eAAe,aAAa,GAAG,SAAS,EACxC,iBAAiB,sBAAsB,EACvC,KAAK,MAAM,KACV,OAAO,CAAC,cAAc,CAwBxB,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,cAAc,IAAI,MAAM,CAAA;IACxB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,eAAe,EAAE,sBAAsB,CAAA;CACxC;AAED,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAA;CACzD;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb"}
@@ -1,5 +1,6 @@
1
1
  import { GraphQLError } from 'graphql';
2
- import { ErrorCode as AdapterErrorCode } from '@commitspark/git-adapter';
2
+ import { ErrorCode as GitAdapterErrorCode } from '@commitspark/git-adapter';
3
+ import { ErrorCode as SearchAdapterErrorCode } from '@commitspark/search-adapter';
3
4
  export declare const enum ErrorCode {
4
5
  BAD_USER_INPUT = "BAD_USER_INPUT",
5
6
  NOT_FOUND = "NOT_FOUND",
@@ -16,5 +17,5 @@ export interface ErrorMetadata {
16
17
  argumentValue?: unknown;
17
18
  schema?: string;
18
19
  }
19
- export declare const createError: (message: string, code: ErrorCode | AdapterErrorCode, metaData: ErrorMetadata) => GraphQLError;
20
+ export declare const createError: (message: string, code: ErrorCode | GitAdapterErrorCode | SearchAdapterErrorCode, metaData: ErrorMetadata) => GraphQLError;
20
21
  //# sourceMappingURL=errors.d.ts.map
@@ -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,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAExE,0BAAkB,SAAS;IACzB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,mBAAmB,wBAAwB;IAC3C,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,MAAM,WAAW;CAClB;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,gBAAgB,EAClC,UAAU,aAAa,KACtB,YAiBF,CAAA"}
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,0BAAkB,SAAS;IACzB,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,mBAAmB,wBAAwB;IAC3C,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,MAAM,WAAW;CAClB;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 +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,EAOjB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAiC3D,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM,EAAE,CAiBV;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,iBAAiB,EAAE,GAC/B,MAAM,EAAE,CA8BV;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAAE,GAC7B,MAAM,EAAE,CAoBV"}
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,EAOjB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAkC3D,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM,EAAE,CAiBV;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,iBAAiB,EAAE,GAC/B,MAAM,EAAE,CA8BV;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAAE,GAC7B,MAAM,EAAE,CAoBV"}
@@ -1,8 +1,15 @@
1
1
  import { EntryData } from '@commitspark/git-adapter';
2
2
  import { GraphQLObjectType } from 'graphql';
3
- import { QueryMutationResolver } from './resolvers/types.ts';
3
+ import { QueryMutationResolver, SearchQueryResolver } from './resolvers/types.ts';
4
4
  export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
5
5
  export declare function generateTypeNameQuery(): GeneratedQuery;
6
+ export declare function generateSearchQuery(): GeneratedSearchQuery;
7
+ export interface GeneratedSearchQuery {
8
+ name: string;
9
+ schemaString: string;
10
+ typeDefinitionString: string;
11
+ resolver: SearchQueryResolver;
12
+ }
6
13
  export interface GeneratedSchema {
7
14
  queryEvery: GeneratedQuery;
8
15
  queryById: GeneratedQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAO3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,CAmGnB;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAStD;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAA;IAC1B,SAAS,EAAE,cAAc,CAAA;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,qBAAqB,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;CAClE"}
1
+ {"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAQ3C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAE7B,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,CAmGnB;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAStD;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,CAiB1D;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,QAAQ,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAA;IAC1B,SAAS,EAAE,cAAc,CAAA;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,qBAAqB,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;CAClE"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-default-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAiB1C,eAAO,MAAM,wBAAwB,EAAE,aA6GtC,CAAA"}
1
+ {"version":3,"file":"field-default-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAkB1C,eAAO,MAAM,wBAAwB,EAAE,aA6GtC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { SearchQueryResolver } from '../types.ts';
2
+ export declare const querySearchResolver: SearchQueryResolver;
3
+ //# sourceMappingURL=query-search-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-search-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKjD,eAAO,MAAM,mBAAmB,EAAE,mBA6EjC,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { ApolloContext } from '../../client.ts';
2
2
  import { GraphQLFieldResolver, GraphQLNamedType, GraphQLTypeResolver } from 'graphql';
3
3
  import { EntryData } from '@commitspark/git-adapter';
4
+ import { SearchHit } from '@commitspark/search-adapter';
4
5
  import { RecursiveArray } from './field-resolvers/types.ts';
5
6
  export interface QueryMutationResolverContext extends ApolloContext {
6
7
  type: GraphQLNamedType;
@@ -15,6 +16,11 @@ type UnionTypeResolverSourceData = EntryData & {
15
16
  id?: string;
16
17
  __typename: string;
17
18
  };
19
+ export type SearchQueryResolver = GraphQLFieldResolver<unknown, ApolloContext, {
20
+ query: string;
21
+ types?: string[] | null;
22
+ first?: number | null;
23
+ }, Promise<SearchHit[]>>;
18
24
  export type ContextInjectionResolver = GraphQLFieldResolver<EntryData, ApolloContext, Record<string, unknown>, Promise<RecursiveArray<EntryData>>>;
19
25
  export {};
20
26
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE,IAAI,EAAE,gBAAgB,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI,oBAAoB,CAClE,OAAO,EACP,4BAA4B,EAC5B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EACvD,OAAO,CAAC,UAAU,CAAC,CACpB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CACjD,2BAA2B,EAC3B,aAAa,CACd,CAAA;AAED,KAAK,2BAA2B,GAAG,SAAS,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CACzD,SAAS,EACT,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CACnC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE,IAAI,EAAE,gBAAgB,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI,oBAAoB,CAClE,OAAO,EACP,4BAA4B,EAC5B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EACvD,OAAO,CAAC,UAAU,CAAC,CACpB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CACjD,2BAA2B,EAC3B,aAAa,CACd,CAAA;AAED,KAAK,2BAA2B,GAAG,SAAS,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CACpD,OAAO,EACP,aAAa,EACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACjE,OAAO,CAAC,SAAS,EAAE,CAAC,CACrB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CACzD,SAAS,EACT,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CACnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-analyzer.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAIjB,MAAM,SAAS,CAAA;AAGhB,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAoCzE;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;IACxC,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,cAAc,EAAE,oBAAoB,EAAE,CAAA;IACtC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B"}
1
+ {"version":3,"file":"schema-analyzer.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAIjB,MAAM,SAAS,CAAA;AAIhB,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAwCzE;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;IACxC,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,cAAc,EAAE,oBAAoB,EAAE,CAAA;IACtC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAa5C,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CA2HtC"}
1
+ {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAc5C,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAqItC"}
@@ -1,3 +1,3 @@
1
- import { GeneratedQuery, GeneratedSchema } from './queries-mutations-generator.ts';
2
- export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery): string;
1
+ import { GeneratedQuery, GeneratedSchema, GeneratedSearchQuery } from './queries-mutations-generator.ts';
2
+ export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery, searchQuery: GeneratedSearchQuery | undefined): string;
3
3
  //# sourceMappingURL=schema-root-type-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-root-type-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EAChB,MAAM,kCAAkC,CAAA;AAEzC,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,EACnC,SAAS,EAAE,cAAc,GACxB,MAAM,CA6BR"}
1
+ {"version":3,"file":"schema-root-type-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,kCAAkC,CAAA;AAEzC,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,EACnC,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,oBAAoB,GAAG,SAAS,GAC5C,MAAM,CA8BR"}
@@ -0,0 +1,5 @@
1
+ import { GraphQLField, GraphQLNamedType } from 'graphql';
2
+ export declare const ENTRY_DIRECTIVE_NAME = "Entry";
3
+ export declare const SEARCHABLE_DIRECTIVE_NAME = "Searchable";
4
+ export declare function hasDirective(typeOrField: GraphQLNamedType | GraphQLField<unknown, unknown>, directiveName: string): boolean;
5
+ //# sourceMappingURL=directive-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/directive-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAExD,eAAO,MAAM,oBAAoB,UAAU,CAAA;AAC3C,eAAO,MAAM,yBAAyB,eAAe,CAAA;AAErD,wBAAgB,YAAY,CAC1B,WAAW,EAAE,gBAAgB,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAC9D,aAAa,EAAE,MAAM,GACpB,OAAO,CAMT"}
@@ -1 +1 @@
1
- {"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAOlB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA0G/C,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CA0InB"}
1
+ {"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAOlB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA2G/C,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CA6InB"}
@@ -1,5 +1,4 @@
1
- import { GraphQLNullableType, GraphQLObjectType, GraphQLUnionType } from 'graphql';
2
- export declare function hasEntryDirective(type: GraphQLObjectType): boolean;
1
+ import { GraphQLNullableType, GraphQLUnionType } from 'graphql';
3
2
  export declare function isUnionOfEntryTypes(type: GraphQLUnionType): boolean;
4
3
  export declare function buildsOnTypeWithEntryDirective(type: GraphQLNullableType): boolean;
5
4
  //# sourceMappingURL=entry-type-util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAOlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAInE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAWT"}
1
+ {"version":3,"file":"entry-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAGhB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAInE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAWT"}
@@ -0,0 +1,5 @@
1
+ import { GraphQLSchema } from 'graphql';
2
+ import { Entry } from '@commitspark/git-adapter';
3
+ import { SearchableFieldValue } from '@commitspark/search-adapter';
4
+ export declare function extractSearchableFieldValues(schema: GraphQLSchema, entries: Iterable<Entry>): SearchableFieldValue[];
5
+ //# sourceMappingURL=searchable-field-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchable-field-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/searchable-field-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAMd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAWlE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GACvB,oBAAoB,EAAE,CAkBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,SAAS,CAAA;AAgC/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAInE"}
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAKd,MAAM,SAAS,CAAA;AAsDhB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAKnE"}
@@ -1,10 +1,17 @@
1
1
  import { ApolloExecuteOperationRequest, GraphQLResponse, SchemaResponse, VariableValues } from './client.ts';
2
2
  import { GitAdapter } from '@commitspark/git-adapter';
3
+ import { SearchAdapter } from '@commitspark/search-adapter';
3
4
  import { ErrorCode, ErrorMetadata } from './graphql/errors.ts';
4
5
  interface Client {
5
6
  postGraphQL<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>): Promise<GraphQLResponse<TData | null>>;
6
7
  getSchema(ref: string): Promise<SchemaResponse>;
7
8
  }
8
- export { Client, GraphQLResponse, SchemaResponse, ErrorCode, ErrorMetadata };
9
- export declare function createClient(gitAdapter: GitAdapter): Promise<Client>;
9
+ interface ClientOptions {
10
+ /**
11
+ * Enables query `_search` when set.
12
+ */
13
+ searchAdapter?: SearchAdapter;
14
+ }
15
+ export { Client, ClientOptions, GraphQLResponse, SchemaResponse, ErrorCode, ErrorMetadata, };
16
+ export declare function createClient(gitAdapter: GitAdapter, options?: ClientOptions): Promise<Client>;
10
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,eAAe,EAEf,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG9D,UAAU,MAAM;IACd,WAAW,CACT,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChD;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AAE5E,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,eAAe,EAEf,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG9D,UAAU,MAAM;IACd,WAAW,CACT,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChD;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,GACd,CAAA;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CASjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQ5C,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;CAC7B;AAED,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;AAwHD,eAAO,MAAM,kBAAkB,GAC7B,YAAW,MAA0B,KACpC,sBAaF,CAAA"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAY5C,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;CAC7B;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;AA+LD,eAAO,MAAM,kBAAkB,GAC7B,YAAW,MAA0B,KACpC,sBAoBF,CAAA"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "gitops",
10
10
  "api"
11
11
  ],
12
- "version": "1.0.0",
12
+ "version": "2.0.0-beta.2",
13
13
  "license": "ISC",
14
14
  "private": false,
15
15
  "files": [
@@ -44,7 +44,8 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@apollo/server": "^5.2.0",
47
- "@commitspark/git-adapter": "^1.0.0",
47
+ "@commitspark/git-adapter": "^2.0.0-beta.1",
48
+ "@commitspark/search-adapter": "^1.0.0-beta.1",
48
49
  "@graphql-tools/schema": "^9.0.0",
49
50
  "@graphql-tools/utils": "^9.0.0"
50
51
  },
package/src/client.ts CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  TypedQueryDocumentNode,
7
7
  } from 'graphql'
8
8
  import { GitAdapter } from '@commitspark/git-adapter'
9
+ import { SearchAdapter } from '@commitspark/search-adapter'
9
10
  import {
10
11
  ApolloServer,
11
12
  ApolloServerOptions,
@@ -27,6 +28,7 @@ export const postGraphQL = async <
27
28
  TVariables extends VariableValues = VariableValues,
28
29
  >(
29
30
  gitAdapter: GitAdapter,
31
+ searchAdapter: SearchAdapter | undefined,
30
32
  repositoryCache: RepositoryCacheHandler,
31
33
  ref: string,
32
34
  request: ApolloExecuteOperationRequest<TData, TVariables>,
@@ -35,6 +37,7 @@ export const postGraphQL = async <
35
37
  const context: ApolloContext = {
36
38
  branch: ref,
37
39
  gitAdapter: gitAdapter,
40
+ searchAdapter: searchAdapter,
38
41
  getCurrentHash(): string {
39
42
  return currentHash
40
43
  },
@@ -73,6 +76,7 @@ export const postGraphQL = async <
73
76
 
74
77
  export const getSchema = async (
75
78
  gitAdapter: GitAdapter,
79
+ searchAdapter: SearchAdapter | undefined,
76
80
  repositoryCache: RepositoryCacheHandler,
77
81
  ref: string,
78
82
  ): Promise<SchemaResponse> => {
@@ -80,6 +84,7 @@ export const getSchema = async (
80
84
  const context: ApolloContext = {
81
85
  branch: ref,
82
86
  gitAdapter: gitAdapter,
87
+ searchAdapter: searchAdapter,
83
88
  getCurrentHash(): string {
84
89
  return currentHash
85
90
  },
@@ -103,6 +108,7 @@ export const getSchema = async (
103
108
  export interface ApolloContext {
104
109
  branch: string
105
110
  gitAdapter: GitAdapter
111
+ searchAdapter?: SearchAdapter
106
112
  getCurrentHash(): string
107
113
  setCurrentHash(sha: string): void
108
114
  repositoryCache: RepositoryCacheHandler
@@ -1,5 +1,6 @@
1
1
  import { GraphQLError } from 'graphql'
2
- import { ErrorCode as AdapterErrorCode } from '@commitspark/git-adapter'
2
+ import { ErrorCode as GitAdapterErrorCode } from '@commitspark/git-adapter'
3
+ import { ErrorCode as SearchAdapterErrorCode } from '@commitspark/search-adapter'
3
4
 
4
5
  export const enum ErrorCode {
5
6
  BAD_USER_INPUT = 'BAD_USER_INPUT',
@@ -21,7 +22,7 @@ export interface ErrorMetadata {
21
22
 
22
23
  export const createError = (
23
24
  message: string,
24
- code: ErrorCode | AdapterErrorCode,
25
+ code: ErrorCode | GitAdapterErrorCode | SearchAdapterErrorCode,
25
26
  metaData: ErrorMetadata,
26
27
  ): GraphQLError => {
27
28
  const serializedFieldValue =
@@ -14,10 +14,11 @@ import {
14
14
  isUnionType,
15
15
  } from 'graphql'
16
16
  import { SchemaAnalyzerResult } from './schema-analyzer.ts'
17
+ import { buildsOnTypeWithEntryDirective } from './schema-utils/entry-type-util.ts'
17
18
  import {
18
- buildsOnTypeWithEntryDirective,
19
- hasEntryDirective,
20
- } from './schema-utils/entry-type-util.ts'
19
+ ENTRY_DIRECTIVE_NAME,
20
+ hasDirective,
21
+ } from './schema-utils/directive-util.ts'
21
22
 
22
23
  function generateFieldInputTypeString(type: GraphQLNullableType): string {
23
24
  if (isListType(type)) {
@@ -25,7 +26,7 @@ function generateFieldInputTypeString(type: GraphQLNullableType): string {
25
26
  } else if (isNonNullType(type)) {
26
27
  return `${generateFieldInputTypeString(type.ofType)}!`
27
28
  } else if (isObjectType(type)) {
28
- if (hasEntryDirective(type)) {
29
+ if (hasDirective(type, ENTRY_DIRECTIVE_NAME)) {
29
30
  return `${type.name}IdInput`
30
31
  } else {
31
32
  return `${type.name}Input`
@@ -6,7 +6,11 @@ import { mutationCreateResolver } from './resolvers/query-mutation-resolvers/mut
6
6
  import { mutationUpdateResolver } from './resolvers/query-mutation-resolvers/mutation-update-resolver.ts'
7
7
  import { mutationDeleteResolver } from './resolvers/query-mutation-resolvers/mutation-delete-resolver.ts'
8
8
  import { queryTypeByIdResolver } from './resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts'
9
- import { QueryMutationResolver } from './resolvers/types.ts'
9
+ import { querySearchResolver } from './resolvers/query-mutation-resolvers/query-search-resolver.ts'
10
+ import {
11
+ QueryMutationResolver,
12
+ SearchQueryResolver,
13
+ } from './resolvers/types.ts'
10
14
 
11
15
  export function generateQueriesAndMutations(
12
16
  entryDirectiveTypes: GraphQLObjectType[],
@@ -122,6 +126,32 @@ export function generateTypeNameQuery(): GeneratedQuery {
122
126
  }
123
127
  }
124
128
 
129
+ export function generateSearchQuery(): GeneratedSearchQuery {
130
+ const searchQueryName = '_search'
131
+ const searchHitTypeName = '_SearchHit'
132
+
133
+ return {
134
+ name: searchQueryName,
135
+ schemaString: `${searchQueryName}(query: String!, types: [String!], first: Int): [${searchHitTypeName}!]!`,
136
+ typeDefinitionString: `type ${searchHitTypeName} {
137
+ entryId: ID!
138
+ entryType: String!
139
+ fieldPath: String!
140
+ score: Float!
141
+ snippet: String!
142
+ }
143
+ `,
144
+ resolver: querySearchResolver,
145
+ }
146
+ }
147
+
148
+ export interface GeneratedSearchQuery {
149
+ name: string
150
+ schemaString: string
151
+ typeDefinitionString: string
152
+ resolver: SearchQueryResolver
153
+ }
154
+
125
155
  export interface GeneratedSchema {
126
156
  queryEvery: GeneratedQuery
127
157
  queryById: GeneratedQuery
@@ -7,10 +7,11 @@ import {
7
7
  isObjectType,
8
8
  isUnionType,
9
9
  } from 'graphql'
10
+ import { buildsOnTypeWithEntryDirective } from '../../schema-utils/entry-type-util.ts'
10
11
  import {
11
- buildsOnTypeWithEntryDirective,
12
- hasEntryDirective,
13
- } from '../../schema-utils/entry-type-util.ts'
12
+ ENTRY_DIRECTIVE_NAME,
13
+ hasDirective,
14
+ } from '../../schema-utils/directive-util.ts'
14
15
  import { resolveEntryReference } from './entry-reference-resolver.ts'
15
16
  import { resolveUnionValue } from './union-value-resolver.ts'
16
17
  import { createError, ErrorCode } from '../../errors.ts'
@@ -116,7 +117,7 @@ export const resolveFieldDefaultValue: FieldResolver = async (
116
117
  }
117
118
  }
118
119
 
119
- if (hasEntryDirective(context.currentType)) {
120
+ if (hasDirective(context.currentType, ENTRY_DIRECTIVE_NAME)) {
120
121
  return resolveEntryReference(fieldValue, args, context, info)
121
122
  }
122
123