quidproquo-actionprocessor-awslambda 0.0.229 → 0.0.231

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/lib/commonjs/getActionProcessor/core/event/eventBridgeEvent/recurringSchedule/getEventGetRecordsActionProcessor.js +1 -1
  2. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneActionType.d.ts +3 -0
  3. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneActionType.js +7 -0
  4. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionRequester.d.ts +3 -0
  5. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionRequester.js +15 -0
  6. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionTypes.d.ts +15 -0
  7. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionTypes.js +2 -0
  8. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/index.d.ts +3 -0
  9. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/actions/index.js +19 -0
  10. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/getGraphDatabaseForNeptuneGetEndpointsActionProcessor.d.ts +2 -0
  11. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/getGraphDatabaseForNeptuneGetEndpointsActionProcessor.js +35 -0
  12. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/index.d.ts +2 -0
  13. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/index.js +17 -0
  14. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/index.d.ts +2 -0
  15. package/lib/commonjs/getActionProcessor/core/graphDatabase/customActions/index.js +18 -0
  16. package/lib/commonjs/getActionProcessor/core/graphDatabase/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +2 -0
  17. package/lib/commonjs/getActionProcessor/core/graphDatabase/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +22 -0
  18. package/lib/commonjs/getActionProcessor/core/graphDatabase/getGraphDatabaseInternalFieldNamesActionProcessor.d.ts +2 -0
  19. package/lib/commonjs/getActionProcessor/core/graphDatabase/getGraphDatabaseInternalFieldNamesActionProcessor.js +30 -0
  20. package/lib/commonjs/getActionProcessor/core/graphDatabase/index.d.ts +2 -0
  21. package/lib/commonjs/getActionProcessor/core/graphDatabase/index.js +18 -0
  22. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/askRunNeptuneOpenCypherQuery.d.ts +2 -0
  23. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/askRunNeptuneOpenCypherQuery.js +27 -0
  24. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertAnyNeptuneResultToAnyGraphResult.d.ts +3 -0
  25. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertAnyNeptuneResultToAnyGraphResult.js +20 -0
  26. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneCypherResponseToCypherResponse.d.ts +3 -0
  27. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneCypherResponseToCypherResponse.js +11 -0
  28. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneNodeResultToGraphNodeResult.d.ts +3 -0
  29. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneNodeResultToGraphNodeResult.js +13 -0
  30. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneQueryResultToGraphQueryResult.d.ts +3 -0
  31. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneQueryResultToGraphQueryResult.js +11 -0
  32. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneRelationshipResultToGraphRelationshipResult.d.ts +3 -0
  33. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneRelationshipResultToGraphRelationshipResult.js +15 -0
  34. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/index.d.ts +3 -0
  35. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/index.js +19 -0
  36. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneNodeResult.d.ts +2 -0
  37. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneNodeResult.js +7 -0
  38. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneRelationshipResult.d.ts +2 -0
  39. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneRelationshipResult.js +12 -0
  40. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneScalarResult.d.ts +2 -0
  41. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneScalarResult.js +7 -0
  42. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/index.d.ts +1 -0
  43. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/index.js +17 -0
  44. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/types/index.d.ts +1 -0
  45. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/types/index.js +17 -0
  46. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/types/neptune.d.ts +26 -0
  47. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/types/neptune.js +2 -0
  48. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/utils/convertQpqQueryToNeptune.d.ts +1 -0
  49. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/utils/convertQpqQueryToNeptune.js +8 -0
  50. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/utils/index.d.ts +1 -0
  51. package/lib/commonjs/getActionProcessor/core/graphDatabase/stories/utils/index.js +17 -0
  52. package/lib/commonjs/getActionProcessor/core/index.d.ts +1 -0
  53. package/lib/commonjs/getActionProcessor/core/index.js +3 -1
  54. package/lib/commonjs/getActionProcessor/index.js +1 -1
  55. package/lib/commonjs/lambdaHandlers/helpers/getQpqLambdaRuntimeForEvent.js +2 -1
  56. package/lib/commonjs/logic/neptune/getNeptuneEndpoints.d.ts +2 -0
  57. package/lib/commonjs/logic/neptune/getNeptuneEndpoints.js +35 -0
  58. package/lib/commonjs/logic/neptune/index.d.ts +1 -0
  59. package/lib/commonjs/logic/neptune/index.js +17 -0
  60. package/lib/esm/getActionProcessor/core/event/eventBridgeEvent/recurringSchedule/getEventGetRecordsActionProcessor.js +1 -1
  61. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneActionType.d.ts +3 -0
  62. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneActionType.js +4 -0
  63. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionRequester.d.ts +3 -0
  64. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionRequester.js +11 -0
  65. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionTypes.d.ts +15 -0
  66. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/GraphDatabaseForNeptuneGetEndpointsActionTypes.js +1 -0
  67. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/index.d.ts +3 -0
  68. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/actions/index.js +3 -0
  69. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/getGraphDatabaseForNeptuneGetEndpointsActionProcessor.d.ts +2 -0
  70. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/getGraphDatabaseForNeptuneGetEndpointsActionProcessor.js +20 -0
  71. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/index.d.ts +2 -0
  72. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/getActionProcessor/index.js +4 -0
  73. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/index.d.ts +2 -0
  74. package/lib/esm/getActionProcessor/core/graphDatabase/customActions/index.js +2 -0
  75. package/lib/esm/getActionProcessor/core/graphDatabase/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +2 -0
  76. package/lib/esm/getActionProcessor/core/graphDatabase/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +7 -0
  77. package/lib/esm/getActionProcessor/core/graphDatabase/getGraphDatabaseInternalFieldNamesActionProcessor.d.ts +2 -0
  78. package/lib/esm/getActionProcessor/core/graphDatabase/getGraphDatabaseInternalFieldNamesActionProcessor.js +15 -0
  79. package/lib/esm/getActionProcessor/core/graphDatabase/index.d.ts +2 -0
  80. package/lib/esm/getActionProcessor/core/graphDatabase/index.js +6 -0
  81. package/lib/esm/getActionProcessor/core/graphDatabase/stories/askRunNeptuneOpenCypherQuery.d.ts +2 -0
  82. package/lib/esm/getActionProcessor/core/graphDatabase/stories/askRunNeptuneOpenCypherQuery.js +23 -0
  83. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertAnyNeptuneResultToAnyGraphResult.d.ts +3 -0
  84. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertAnyNeptuneResultToAnyGraphResult.js +16 -0
  85. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneCypherResponseToCypherResponse.d.ts +3 -0
  86. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneCypherResponseToCypherResponse.js +7 -0
  87. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneNodeResultToGraphNodeResult.d.ts +3 -0
  88. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneNodeResultToGraphNodeResult.js +9 -0
  89. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneQueryResultToGraphQueryResult.d.ts +3 -0
  90. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneQueryResultToGraphQueryResult.js +10 -0
  91. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneRelationshipResultToGraphRelationshipResult.d.ts +3 -0
  92. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/askConvertNeptuneRelationshipResultToGraphRelationshipResult.js +11 -0
  93. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/index.d.ts +3 -0
  94. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/index.js +3 -0
  95. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneNodeResult.d.ts +2 -0
  96. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneNodeResult.js +3 -0
  97. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneRelationshipResult.d.ts +2 -0
  98. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneRelationshipResult.js +8 -0
  99. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneScalarResult.d.ts +2 -0
  100. package/lib/esm/getActionProcessor/core/graphDatabase/stories/converters/utils/isNeptuneScalarResult.js +3 -0
  101. package/lib/esm/getActionProcessor/core/graphDatabase/stories/index.d.ts +1 -0
  102. package/lib/esm/getActionProcessor/core/graphDatabase/stories/index.js +1 -0
  103. package/lib/esm/getActionProcessor/core/graphDatabase/stories/types/index.d.ts +1 -0
  104. package/lib/esm/getActionProcessor/core/graphDatabase/stories/types/index.js +1 -0
  105. package/lib/esm/getActionProcessor/core/graphDatabase/stories/types/neptune.d.ts +26 -0
  106. package/lib/esm/getActionProcessor/core/graphDatabase/stories/types/neptune.js +1 -0
  107. package/lib/esm/getActionProcessor/core/graphDatabase/stories/utils/convertQpqQueryToNeptune.d.ts +1 -0
  108. package/lib/esm/getActionProcessor/core/graphDatabase/stories/utils/convertQpqQueryToNeptune.js +4 -0
  109. package/lib/esm/getActionProcessor/core/graphDatabase/stories/utils/index.d.ts +1 -0
  110. package/lib/esm/getActionProcessor/core/graphDatabase/stories/utils/index.js +1 -0
  111. package/lib/esm/getActionProcessor/core/index.d.ts +1 -0
  112. package/lib/esm/getActionProcessor/core/index.js +3 -0
  113. package/lib/esm/getActionProcessor/index.js +1 -3
  114. package/lib/esm/lambdaHandlers/helpers/getQpqLambdaRuntimeForEvent.js +3 -0
  115. package/lib/esm/logic/neptune/getNeptuneEndpoints.d.ts +2 -0
  116. package/lib/esm/logic/neptune/getNeptuneEndpoints.js +22 -0
  117. package/lib/esm/logic/neptune/index.d.ts +1 -0
  118. package/lib/esm/logic/neptune/index.js +1 -0
  119. package/package.json +6 -5
@@ -32,6 +32,7 @@ __exportStar(require("./eventBus"), exports);
32
32
  __exportStar(require("./system"), exports);
33
33
  __exportStar(require("./config"), exports);
34
34
  __exportStar(require("./event"), exports);
35
+ __exportStar(require("./graphDatabase"), exports);
35
36
  const file_1 = require("./file");
36
37
  const keyValueStore_1 = require("./keyValueStore");
37
38
  const queue_1 = require("./queue");
@@ -40,7 +41,8 @@ const eventBus_1 = require("./eventBus");
40
41
  const system_1 = require("./system");
41
42
  const config_1 = require("./config");
42
43
  const event_1 = require("./event");
44
+ const graphDatabase_1 = require("./graphDatabase");
43
45
  const getCoreActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
44
- return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, file_1.getFileActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, keyValueStore_1.getKeyValueStoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, queue_1.getQueueActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, userDirectory_1.getUserDirectoryActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, eventBus_1.getEventBusActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, system_1.getSystemActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, config_1.getConfigActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, event_1.getApiGatewayApiEventEventProcessor)(qpqConfig, dynamicModuleLoader))));
46
+ return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, file_1.getFileActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, keyValueStore_1.getKeyValueStoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, queue_1.getQueueActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, userDirectory_1.getUserDirectoryActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, eventBus_1.getEventBusActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, system_1.getSystemActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, config_1.getConfigActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, event_1.getApiGatewayApiEventEventProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, graphDatabase_1.getGraphDatabaseActionProcessor)(qpqConfig, dynamicModuleLoader))));
45
47
  });
46
48
  exports.getCoreActionProcessor = getCoreActionProcessor;
@@ -28,7 +28,7 @@ const core_1 = require("./core");
28
28
  const webserver_1 = require("./webserver");
29
29
  const quidproquo_actionprocessor_node_1 = require("quidproquo-actionprocessor-node");
30
30
  const getAwsActionProcessors = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
31
- const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, quidproquo_actionprocessor_node_1.getCoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, quidproquo_actionprocessor_node_1.getWebserverActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, core_1.getCoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, webserver_1.getWebserverActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, quidproquo_actionprocessor_node_1.getCustomActionActionProcessor)(qpqConfig, dynamicModuleLoader)));
31
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, quidproquo_actionprocessor_node_1.getCoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, quidproquo_actionprocessor_node_1.getWebserverActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, core_1.getCoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, webserver_1.getWebserverActionProcessor)(qpqConfig, dynamicModuleLoader)));
32
32
  return storyActionProcessor;
33
33
  });
34
34
  exports.getAwsActionProcessors = getAwsActionProcessors;
@@ -15,6 +15,7 @@ const logger_1 = require("./logger");
15
15
  const quidproquo_core_1 = require("quidproquo-core");
16
16
  const getRuntimeCorrelation_1 = require("./getRuntimeCorrelation");
17
17
  const getActionProcessor_1 = require("../../getActionProcessor");
18
+ const quidproquo_actionprocessor_node_1 = require("quidproquo-actionprocessor-node");
18
19
  const isSnsEvent = (event) => {
19
20
  if (event && typeof event === 'object') {
20
21
  const possibleSnsEvent = event;
@@ -27,7 +28,7 @@ const getQpqLambdaRuntimeForEvent = (runtimeType, getStorySession, getActionProc
27
28
  console.log('tick: ', JSON.stringify(event, null, 2));
28
29
  const logger = (0, logger_1.getLogger)(qpqConfig);
29
30
  const resolveStory = (0, quidproquo_core_1.createRuntime)(qpqConfig, getStorySession(event), () => __awaiter(void 0, void 0, void 0, function* () {
30
- return (Object.assign(Object.assign({}, (yield (0, getActionProcessor_1.getAwsActionProcessors)(qpqConfig, dynamicModuleLoader))), (yield getActionProcessorList(qpqConfig, dynamicModuleLoader))));
31
+ return (Object.assign(Object.assign(Object.assign({}, (yield (0, getActionProcessor_1.getAwsActionProcessors)(qpqConfig, dynamicModuleLoader))), (yield getActionProcessorList(qpqConfig, dynamicModuleLoader))), (yield (0, quidproquo_actionprocessor_node_1.getCustomActionActionProcessor)(qpqConfig, dynamicModuleLoader))));
31
32
  }), () => new Date().toISOString(), logger, (0, getRuntimeCorrelation_1.getRuntimeCorrelation)(qpqConfig), runtimeType, dynamicModuleLoader);
32
33
  const processEvent = () => __awaiter(void 0, void 0, void 0, function* () {
33
34
  const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [event, context]);
@@ -0,0 +1,2 @@
1
+ import { GraphDatabaseEndpoints } from '../../getActionProcessor/core/graphDatabase/customActions/actions';
2
+ export declare const getNeptuneEndpoints: (clusterIdentifier: string, region: string) => Promise<GraphDatabaseEndpoints>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getNeptuneEndpoints = void 0;
13
+ const client_neptune_1 = require("@aws-sdk/client-neptune");
14
+ const createAwsClient_1 = require("../createAwsClient");
15
+ const getNeptuneEndpoints = (clusterIdentifier, region) => __awaiter(void 0, void 0, void 0, function* () {
16
+ const neptuneClient = (0, createAwsClient_1.createAwsClient)(client_neptune_1.NeptuneClient, { region });
17
+ const command = new client_neptune_1.DescribeDBClustersCommand({
18
+ DBClusterIdentifier: clusterIdentifier,
19
+ });
20
+ try {
21
+ const response = yield neptuneClient.send(command);
22
+ if (response.DBClusters && response.DBClusters.length > 0) {
23
+ const cluster = response.DBClusters[0];
24
+ const writeEndpoint = cluster.Endpoint && cluster.Port ? `https://${cluster.Endpoint}:${cluster.Port}` : undefined;
25
+ const readEndpoint = cluster.ReaderEndpoint && cluster.Port ? `https://${cluster.ReaderEndpoint}:${cluster.Port}` : undefined;
26
+ return { writeEndpoint, readEndpoint };
27
+ }
28
+ return {};
29
+ }
30
+ catch (error) {
31
+ console.error('Error fetching Neptune cluster endpoints:', error);
32
+ throw new Error(`Failed to retrieve Neptune endpoints: ${error}`);
33
+ }
34
+ });
35
+ exports.getNeptuneEndpoints = getNeptuneEndpoints;
@@ -0,0 +1 @@
1
+ export * from './getNeptuneEndpoints';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getNeptuneEndpoints"), exports);
@@ -4,7 +4,7 @@ const getProcessGetRecords = (qpqConfig) => {
4
4
  const internalEventRecord = {
5
5
  time: eventBridgeEvent.time,
6
6
  correlation: context.awsRequestId,
7
- detail: eventBridgeEvent.detail,
7
+ metadata: eventBridgeEvent.detail,
8
8
  };
9
9
  return actionResult([internalEventRecord]);
10
10
  };
@@ -0,0 +1,3 @@
1
+ export declare enum GraphDatabaseForNeptuneActionType {
2
+ GetEndpoints = "@quidproquo-actionprocessor-awslambda/GraphDatabaseForNeptuneActionType/GetEndpoints"
3
+ }
@@ -0,0 +1,4 @@
1
+ export var GraphDatabaseForNeptuneActionType;
2
+ (function (GraphDatabaseForNeptuneActionType) {
3
+ GraphDatabaseForNeptuneActionType["GetEndpoints"] = "@quidproquo-actionprocessor-awslambda/GraphDatabaseForNeptuneActionType/GetEndpoints";
4
+ })(GraphDatabaseForNeptuneActionType || (GraphDatabaseForNeptuneActionType = {}));
@@ -0,0 +1,3 @@
1
+ import { GraphDatabaseForNeptuneGetEndpointsActionRequester } from './GraphDatabaseForNeptuneGetEndpointsActionTypes';
2
+ export declare const GraphDatabaseForNeptuneGetEndpointsErrorTypeEnum: {};
3
+ export declare function askGraphDatabaseForNeptuneGetEndpoints(graphDatabaseName: string): GraphDatabaseForNeptuneGetEndpointsActionRequester;
@@ -0,0 +1,11 @@
1
+ import { createErrorEnumForAction } from 'quidproquo-core';
2
+ import { GraphDatabaseForNeptuneActionType } from './GraphDatabaseForNeptuneActionType';
3
+ export const GraphDatabaseForNeptuneGetEndpointsErrorTypeEnum = createErrorEnumForAction(GraphDatabaseForNeptuneActionType.GetEndpoints, []);
4
+ export function* askGraphDatabaseForNeptuneGetEndpoints(graphDatabaseName) {
5
+ return yield {
6
+ type: GraphDatabaseForNeptuneActionType.GetEndpoints,
7
+ payload: {
8
+ graphDatabaseName,
9
+ },
10
+ };
11
+ }
@@ -0,0 +1,15 @@
1
+ import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';
2
+ import { GraphDatabaseForNeptuneActionType } from './GraphDatabaseForNeptuneActionType';
3
+ export type GraphDatabaseEndpoints = {
4
+ readEndpoint?: string;
5
+ writeEndpoint?: string;
6
+ };
7
+ export interface GraphDatabaseForNeptuneGetEndpointsActionPayload {
8
+ graphDatabaseName: string;
9
+ }
10
+ export interface GraphDatabaseForNeptuneGetEndpointsAction extends Action<GraphDatabaseForNeptuneGetEndpointsActionPayload> {
11
+ type: GraphDatabaseForNeptuneActionType.GetEndpoints;
12
+ payload: GraphDatabaseForNeptuneGetEndpointsActionPayload;
13
+ }
14
+ export type GraphDatabaseForNeptuneGetEndpointsActionProcessor = ActionProcessor<GraphDatabaseForNeptuneGetEndpointsAction, GraphDatabaseEndpoints>;
15
+ export type GraphDatabaseForNeptuneGetEndpointsActionRequester = ActionRequester<GraphDatabaseForNeptuneGetEndpointsAction, GraphDatabaseEndpoints>;
@@ -0,0 +1,3 @@
1
+ export * from './GraphDatabaseForNeptuneActionType';
2
+ export * from './GraphDatabaseForNeptuneGetEndpointsActionRequester';
3
+ export * from './GraphDatabaseForNeptuneGetEndpointsActionTypes';
@@ -0,0 +1,3 @@
1
+ export * from './GraphDatabaseForNeptuneActionType';
2
+ export * from './GraphDatabaseForNeptuneGetEndpointsActionRequester';
3
+ export * from './GraphDatabaseForNeptuneGetEndpointsActionTypes';
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getGraphDatabaseForNeptuneGetEndpointsActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,20 @@
1
+ import { actionResult, qpqCoreUtils, actionResultErrorFromCaughtError, } from 'quidproquo-core';
2
+ import { getConfigRuntimeResourceNameFromConfig } from '../../../../../awsNamingUtils';
3
+ import { GraphDatabaseForNeptuneActionType } from '../actions';
4
+ import { getNeptuneEndpoints } from '../../../../../logic/neptune';
5
+ const getProcessGetEndpoints = (qpqConfig) => {
6
+ return async ({ graphDatabaseName }) => {
7
+ const region = qpqCoreUtils.getApplicationModuleDeployRegion(qpqConfig);
8
+ const databaseName = getConfigRuntimeResourceNameFromConfig(graphDatabaseName, qpqConfig);
9
+ try {
10
+ const endpoints = await getNeptuneEndpoints(databaseName, region);
11
+ return actionResult(endpoints);
12
+ }
13
+ catch (error) {
14
+ return actionResultErrorFromCaughtError(error, {});
15
+ }
16
+ };
17
+ };
18
+ export const getGraphDatabaseForNeptuneGetEndpointsActionProcessor = async (qpqConfig) => ({
19
+ [GraphDatabaseForNeptuneActionType.GetEndpoints]: getProcessGetEndpoints(qpqConfig),
20
+ });
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getGraphDatabaseForNeptuneActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,4 @@
1
+ import { getGraphDatabaseForNeptuneGetEndpointsActionProcessor } from './getGraphDatabaseForNeptuneGetEndpointsActionProcessor';
2
+ export const getGraphDatabaseForNeptuneActionProcessor = async (qpqConfig, dynamicModuleLoader) => ({
3
+ ...(await getGraphDatabaseForNeptuneGetEndpointsActionProcessor(qpqConfig, dynamicModuleLoader)),
4
+ });
@@ -0,0 +1,2 @@
1
+ export * from './actions';
2
+ export * from './getActionProcessor';
@@ -0,0 +1,2 @@
1
+ export * from './actions';
2
+ export * from './getActionProcessor';
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getGraphDatabaseExecuteOpenCypherQueryActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,7 @@
1
+ import { GraphDatabaseActionType, getProcessCustomImplementation, } from 'quidproquo-core';
2
+ import { getGraphDatabaseForNeptuneActionProcessor } from './customActions';
3
+ import { randomGuid } from '../../../awsLambdaUtils';
4
+ import { askRunNeptuneOpenCypherQuery } from './stories';
5
+ export const getGraphDatabaseExecuteOpenCypherQueryActionProcessor = async (qpqConfig) => ({
6
+ [GraphDatabaseActionType.ExecuteOpenCypherQuery]: getProcessCustomImplementation(qpqConfig, askRunNeptuneOpenCypherQuery, 'Neptune Cypher Query', getGraphDatabaseForNeptuneActionProcessor, () => new Date().toISOString(), randomGuid),
7
+ });
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getGraphDatabaseInternalFieldNamesActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,15 @@
1
+ import { GraphDatabaseActionType, actionResult, } from 'quidproquo-core';
2
+ const getProcessInternalFieldNames = (qpqConfig) => {
3
+ return async () => {
4
+ return actionResult({
5
+ internalEndNode: '`~end`',
6
+ internalId: '`~id`',
7
+ internalLabel: '`~label`',
8
+ internalStartNode: '`~start`',
9
+ internalType: '`~type`',
10
+ });
11
+ };
12
+ };
13
+ export const getGraphDatabaseInternalFieldNamesActionProcessor = async (qpqConfig) => ({
14
+ [GraphDatabaseActionType.InternalFieldNames]: getProcessInternalFieldNames(qpqConfig),
15
+ });
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getGraphDatabaseActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,6 @@
1
+ import { getGraphDatabaseExecuteOpenCypherQueryActionProcessor } from './getGraphDatabaseExecuteOpenCypherQueryActionProcessor';
2
+ import { getGraphDatabaseInternalFieldNamesActionProcessor } from './getGraphDatabaseInternalFieldNamesActionProcessor';
3
+ export const getGraphDatabaseActionProcessor = async (qpqConfig, dynamicModuleLoader) => ({
4
+ ...(await getGraphDatabaseExecuteOpenCypherQueryActionProcessor(qpqConfig, dynamicModuleLoader)),
5
+ ...(await getGraphDatabaseInternalFieldNamesActionProcessor(qpqConfig, dynamicModuleLoader)),
6
+ });
@@ -0,0 +1,2 @@
1
+ import { AskResponse, GraphCypherResponse, GraphDatabaseExecuteOpenCypherQueryActionPayload } from 'quidproquo-core';
2
+ export declare function askRunNeptuneOpenCypherQuery({ graphDatabaseName, openCypherQuery, params, instance, }: GraphDatabaseExecuteOpenCypherQueryActionPayload): AskResponse<GraphCypherResponse>;
@@ -0,0 +1,23 @@
1
+ import { ErrorTypeEnum, askNetworkRequest, askThrowError, GraphDatabaseInstanceType, } from 'quidproquo-core';
2
+ import { askGraphDatabaseForNeptuneGetEndpoints } from '../customActions';
3
+ import { askConvertNeptuneCypherResponseToCypherResponse } from './converters/askConvertNeptuneCypherResponseToCypherResponse';
4
+ import { convertQpqQueryToNeptune } from './utils';
5
+ export function* askRunNeptuneOpenCypherQuery({ graphDatabaseName, openCypherQuery, params, instance, }) {
6
+ const graphEndpoints = yield* askGraphDatabaseForNeptuneGetEndpoints(graphDatabaseName);
7
+ const graphEndpoint = instance === GraphDatabaseInstanceType.Read ? graphEndpoints.readEndpoint : graphEndpoints.writeEndpoint;
8
+ if (!graphEndpoint) {
9
+ return yield* askThrowError(ErrorTypeEnum.GenericError, `No [${instance}] endpoint found`);
10
+ }
11
+ const neptuneQuery = convertQpqQueryToNeptune(openCypherQuery);
12
+ const response = yield* askNetworkRequest('POST', `${graphEndpoint}/openCypher`, {
13
+ body: { query: neptuneQuery, parameters: params },
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ Accept: 'application/json',
17
+ },
18
+ });
19
+ if (response.status < 200 || response.status >= 300) {
20
+ return yield* askThrowError(ErrorTypeEnum.GenericError, 'Unable to query database');
21
+ }
22
+ return yield* askConvertNeptuneCypherResponseToCypherResponse(response.data);
23
+ }
@@ -0,0 +1,3 @@
1
+ import { AnyGraphResult, AskResponse } from 'quidproquo-core';
2
+ import { AnyNeptuneResult } from '../types';
3
+ export declare function askConvertAnyNeptuneResultToAnyGraphResult(anyNeptuneResult: AnyNeptuneResult): AskResponse<AnyGraphResult>;
@@ -0,0 +1,16 @@
1
+ import { ErrorTypeEnum, askThrowError } from 'quidproquo-core';
2
+ import { askConvertNeptuneNodeResultToGraphNodeResult } from './askConvertNeptuneNodeResultToGraphNodeResult';
3
+ import { askConvertNeptuneRelationshipResultToGraphRelationshipResult } from './askConvertNeptuneRelationshipResultToGraphRelationshipResult';
4
+ import { isNeptuneScalarResult, isNeptuneNodeResult, isNeptuneRelationshipResult } from './utils';
5
+ export function* askConvertAnyNeptuneResultToAnyGraphResult(anyNeptuneResult) {
6
+ if (isNeptuneScalarResult(anyNeptuneResult)) {
7
+ return anyNeptuneResult;
8
+ }
9
+ if (isNeptuneNodeResult(anyNeptuneResult)) {
10
+ return yield* askConvertNeptuneNodeResultToGraphNodeResult(anyNeptuneResult);
11
+ }
12
+ if (isNeptuneRelationshipResult(anyNeptuneResult)) {
13
+ return yield* askConvertNeptuneRelationshipResultToGraphRelationshipResult(anyNeptuneResult);
14
+ }
15
+ return yield* askThrowError(ErrorTypeEnum.GenericError, 'Unable to convert neptune query result');
16
+ }
@@ -0,0 +1,3 @@
1
+ import { AskResponse, GraphCypherResponse } from 'quidproquo-core';
2
+ import { NeptuneCypherResponse } from '../types';
3
+ export declare function askConvertNeptuneCypherResponseToCypherResponse(neptuneCypherResponse: NeptuneCypherResponse): AskResponse<GraphCypherResponse>;
@@ -0,0 +1,7 @@
1
+ import { askMap } from 'quidproquo-core';
2
+ import { askConvertNeptuneQueryResultToGraphQueryResult } from './askConvertNeptuneQueryResultToGraphQueryResult';
3
+ export function* askConvertNeptuneCypherResponseToCypherResponse(neptuneCypherResponse) {
4
+ return {
5
+ results: yield* askMap(neptuneCypherResponse.results, askConvertNeptuneQueryResultToGraphQueryResult),
6
+ };
7
+ }
@@ -0,0 +1,3 @@
1
+ import { AskResponse, GraphNodeResult } from 'quidproquo-core';
2
+ import { NeptuneNodeResult } from '../types';
3
+ export declare function askConvertNeptuneNodeResultToGraphNodeResult(neptuneNodeResult: NeptuneNodeResult): AskResponse<GraphNodeResult>;
@@ -0,0 +1,9 @@
1
+ import { GraphEntityType } from 'quidproquo-core';
2
+ export function* askConvertNeptuneNodeResultToGraphNodeResult(neptuneNodeResult) {
3
+ return {
4
+ $entityType: GraphEntityType.Node,
5
+ $id: neptuneNodeResult['~id'],
6
+ $labels: neptuneNodeResult['~labels'],
7
+ $properties: neptuneNodeResult['~properties'],
8
+ };
9
+ }
@@ -0,0 +1,3 @@
1
+ import { AskResponse, GraphQueryResult } from 'quidproquo-core';
2
+ import { NeptuneQueryResult } from '../types';
3
+ export declare function askConvertNeptuneQueryResultToGraphQueryResult(neptuneQueryResult: NeptuneQueryResult): AskResponse<GraphQueryResult>;
@@ -0,0 +1,10 @@
1
+ import { askReduce } from 'quidproquo-core';
2
+ import { askConvertAnyNeptuneResultToAnyGraphResult } from './askConvertAnyNeptuneResultToAnyGraphResult';
3
+ export function* askConvertNeptuneQueryResultToGraphQueryResult(neptuneQueryResult) {
4
+ return yield* askReduce(Object.keys(neptuneQueryResult), {}, function* askConvertKeyValue(acc, key, index) {
5
+ return {
6
+ ...acc,
7
+ [key]: yield* askConvertAnyNeptuneResultToAnyGraphResult(neptuneQueryResult[key]),
8
+ };
9
+ });
10
+ }
@@ -0,0 +1,3 @@
1
+ import { AskResponse, GraphRelationshipResult } from 'quidproquo-core';
2
+ import { NeptuneRelationshipResult } from '../types';
3
+ export declare function askConvertNeptuneRelationshipResultToGraphRelationshipResult(neptuneRelationshipResult: NeptuneRelationshipResult): AskResponse<GraphRelationshipResult>;
@@ -0,0 +1,11 @@
1
+ import { GraphEntityType } from 'quidproquo-core';
2
+ export function* askConvertNeptuneRelationshipResultToGraphRelationshipResult(neptuneRelationshipResult) {
3
+ return {
4
+ $entityType: GraphEntityType.Relationship,
5
+ $id: neptuneRelationshipResult['~id'],
6
+ $start: neptuneRelationshipResult['~start'],
7
+ $end: neptuneRelationshipResult['~end'],
8
+ $type: neptuneRelationshipResult['~type'],
9
+ $properties: neptuneRelationshipResult['~properties'],
10
+ };
11
+ }
@@ -0,0 +1,3 @@
1
+ export * from './isNeptuneNodeResult';
2
+ export * from './isNeptuneRelationshipResult';
3
+ export * from './isNeptuneScalarResult';
@@ -0,0 +1,3 @@
1
+ export * from './isNeptuneNodeResult';
2
+ export * from './isNeptuneRelationshipResult';
3
+ export * from './isNeptuneScalarResult';
@@ -0,0 +1,2 @@
1
+ import { AnyNeptuneResult, NeptuneNodeResult } from '../../types';
2
+ export declare function isNeptuneNodeResult(anyNeptuneResult: AnyNeptuneResult): anyNeptuneResult is NeptuneNodeResult;
@@ -0,0 +1,3 @@
1
+ export function isNeptuneNodeResult(anyNeptuneResult) {
2
+ return typeof anyNeptuneResult === 'object' && anyNeptuneResult !== null && anyNeptuneResult['~entityType'] === 'node';
3
+ }
@@ -0,0 +1,2 @@
1
+ import { AnyNeptuneResult, NeptuneRelationshipResult } from '../../types';
2
+ export declare function isNeptuneRelationshipResult(anyNeptuneResult: AnyNeptuneResult): anyNeptuneResult is NeptuneRelationshipResult;
@@ -0,0 +1,8 @@
1
+ export function isNeptuneRelationshipResult(anyNeptuneResult) {
2
+ return (typeof anyNeptuneResult === 'object' &&
3
+ anyNeptuneResult !== null &&
4
+ anyNeptuneResult['~entityType'] === 'relationship' &&
5
+ typeof anyNeptuneResult['~start'] === 'string' &&
6
+ typeof anyNeptuneResult['~end'] === 'string' &&
7
+ typeof anyNeptuneResult['~type'] === 'string');
8
+ }
@@ -0,0 +1,2 @@
1
+ import { AnyNeptuneResult, NeptuneScalarResult } from '../../types';
2
+ export declare function isNeptuneScalarResult(anyNeptuneResult: AnyNeptuneResult): anyNeptuneResult is NeptuneScalarResult;
@@ -0,0 +1,3 @@
1
+ export function isNeptuneScalarResult(anyNeptuneResult) {
2
+ return typeof anyNeptuneResult !== 'object' || anyNeptuneResult === null;
3
+ }
@@ -0,0 +1 @@
1
+ export * from './askRunNeptuneOpenCypherQuery';
@@ -0,0 +1 @@
1
+ export * from './askRunNeptuneOpenCypherQuery';
@@ -0,0 +1 @@
1
+ export * from './neptune';
@@ -0,0 +1 @@
1
+ export * from './neptune';
@@ -0,0 +1,26 @@
1
+ export interface NeptuneGraphEntity {
2
+ '~id': string;
3
+ '~properties': Record<string, any>;
4
+ }
5
+ export interface NeptuneNodeResult extends NeptuneGraphEntity {
6
+ '~entityType': 'node';
7
+ '~labels': string[];
8
+ }
9
+ export interface NeptuneRelationshipResult extends NeptuneGraphEntity {
10
+ '~entityType': 'relationship';
11
+ '~start': string;
12
+ '~end': string;
13
+ '~type': string;
14
+ }
15
+ export type NeptuneScalarResult = number | string | boolean | null;
16
+ export type AnyNeptuneResult = NeptuneNodeResult | NeptuneRelationshipResult | NeptuneScalarResult;
17
+ export interface NeptuneQueryResult {
18
+ [key: string]: AnyNeptuneResult;
19
+ }
20
+ export interface NeptuneCypherRequest {
21
+ query: string;
22
+ parameters?: Record<string, any>;
23
+ }
24
+ export interface NeptuneCypherResponse {
25
+ results: NeptuneQueryResult[];
26
+ }
@@ -0,0 +1 @@
1
+ export declare function convertQpqQueryToNeptune(query: string): string;
@@ -0,0 +1,4 @@
1
+ // Neptune: Replace qpqElementId(n) with n.`~id`
2
+ export function convertQpqQueryToNeptune(query) {
3
+ return query.replace(/qpqElementId\((.*?)\)/g, '$1.`~id`');
4
+ }
@@ -0,0 +1 @@
1
+ export * from './convertQpqQueryToNeptune';
@@ -0,0 +1 @@
1
+ export * from './convertQpqQueryToNeptune';
@@ -6,5 +6,6 @@ export * from './eventBus';
6
6
  export * from './system';
7
7
  export * from './config';
8
8
  export * from './event';
9
+ export * from './graphDatabase';
9
10
  import { ActionProcessorListResolver } from 'quidproquo-core';
10
11
  export declare const getCoreActionProcessor: ActionProcessorListResolver;
@@ -6,6 +6,7 @@ export * from './eventBus';
6
6
  export * from './system';
7
7
  export * from './config';
8
8
  export * from './event';
9
+ export * from './graphDatabase';
9
10
  import { getFileActionProcessor } from './file';
10
11
  import { getKeyValueStoreActionProcessor } from './keyValueStore';
11
12
  import { getQueueActionProcessor } from './queue';
@@ -14,6 +15,7 @@ import { getEventBusActionProcessor } from './eventBus';
14
15
  import { getSystemActionProcessor } from './system';
15
16
  import { getConfigActionProcessor } from './config';
16
17
  import { getApiGatewayApiEventEventProcessor } from './event';
18
+ import { getGraphDatabaseActionProcessor } from './graphDatabase';
17
19
  export const getCoreActionProcessor = async (qpqConfig, dynamicModuleLoader) => ({
18
20
  ...(await getFileActionProcessor(qpqConfig, dynamicModuleLoader)),
19
21
  ...(await getKeyValueStoreActionProcessor(qpqConfig, dynamicModuleLoader)),
@@ -23,4 +25,5 @@ export const getCoreActionProcessor = async (qpqConfig, dynamicModuleLoader) =>
23
25
  ...(await getSystemActionProcessor(qpqConfig, dynamicModuleLoader)),
24
26
  ...(await getConfigActionProcessor(qpqConfig, dynamicModuleLoader)),
25
27
  ...(await getApiGatewayApiEventEventProcessor(qpqConfig, dynamicModuleLoader)),
28
+ ...(await getGraphDatabaseActionProcessor(qpqConfig, dynamicModuleLoader)),
26
29
  });
@@ -1,14 +1,12 @@
1
1
  import { getCoreActionProcessor as getAwsCoreActionProcessor } from './core';
2
2
  import { getWebserverActionProcessor as getAwsWebserverActionProcessor } from './webserver';
3
- import { getCoreActionProcessor as getNodeCoreActionProcessor, getWebserverActionProcessor as getNodeWebserverActionProcessor, getCustomActionActionProcessor, } from 'quidproquo-actionprocessor-node';
3
+ import { getCoreActionProcessor as getNodeCoreActionProcessor, getWebserverActionProcessor as getNodeWebserverActionProcessor, } from 'quidproquo-actionprocessor-node';
4
4
  export const getAwsActionProcessors = async (qpqConfig, dynamicModuleLoader) => {
5
5
  const storyActionProcessor = {
6
6
  ...(await getNodeCoreActionProcessor(qpqConfig, dynamicModuleLoader)),
7
7
  ...(await getNodeWebserverActionProcessor(qpqConfig, dynamicModuleLoader)),
8
8
  ...(await getAwsCoreActionProcessor(qpqConfig, dynamicModuleLoader)),
9
9
  ...(await getAwsWebserverActionProcessor(qpqConfig, dynamicModuleLoader)),
10
- // Always done last, so they can ovveride the default ones if the user wants.
11
- ...(await getCustomActionActionProcessor(qpqConfig, dynamicModuleLoader)),
12
10
  };
13
11
  return storyActionProcessor;
14
12
  };
@@ -3,6 +3,7 @@ import { getLogger } from './logger';
3
3
  import { askProcessEvent, createRuntime, } from 'quidproquo-core';
4
4
  import { getRuntimeCorrelation } from './getRuntimeCorrelation';
5
5
  import { getAwsActionProcessors } from '../../getActionProcessor';
6
+ import { getCustomActionActionProcessor } from 'quidproquo-actionprocessor-node';
6
7
  const isSnsEvent = (event) => {
7
8
  if (event && typeof event === 'object') {
8
9
  const possibleSnsEvent = event;
@@ -17,6 +18,8 @@ export const getQpqLambdaRuntimeForEvent = (runtimeType, getStorySession, getAct
17
18
  const resolveStory = createRuntime(qpqConfig, getStorySession(event), async () => ({
18
19
  ...(await getAwsActionProcessors(qpqConfig, dynamicModuleLoader)),
19
20
  ...(await getActionProcessorList(qpqConfig, dynamicModuleLoader)),
21
+ // Always done last, so they can ovveride the default ones if the user wants.
22
+ ...(await getCustomActionActionProcessor(qpqConfig, dynamicModuleLoader)),
20
23
  }), () => new Date().toISOString(), logger, getRuntimeCorrelation(qpqConfig), runtimeType, dynamicModuleLoader);
21
24
  const processEvent = async () => {
22
25
  const result = await resolveStory(askProcessEvent, [event, context]);
@@ -0,0 +1,2 @@
1
+ import { GraphDatabaseEndpoints } from '../../getActionProcessor/core/graphDatabase/customActions/actions';
2
+ export declare const getNeptuneEndpoints: (clusterIdentifier: string, region: string) => Promise<GraphDatabaseEndpoints>;
@@ -0,0 +1,22 @@
1
+ import { NeptuneClient, DescribeDBClustersCommand } from '@aws-sdk/client-neptune';
2
+ import { createAwsClient } from '../createAwsClient';
3
+ export const getNeptuneEndpoints = async (clusterIdentifier, region) => {
4
+ const neptuneClient = createAwsClient(NeptuneClient, { region });
5
+ const command = new DescribeDBClustersCommand({
6
+ DBClusterIdentifier: clusterIdentifier,
7
+ });
8
+ try {
9
+ const response = await neptuneClient.send(command);
10
+ if (response.DBClusters && response.DBClusters.length > 0) {
11
+ const cluster = response.DBClusters[0];
12
+ const writeEndpoint = cluster.Endpoint && cluster.Port ? `https://${cluster.Endpoint}:${cluster.Port}` : undefined;
13
+ const readEndpoint = cluster.ReaderEndpoint && cluster.Port ? `https://${cluster.ReaderEndpoint}:${cluster.Port}` : undefined;
14
+ return { writeEndpoint, readEndpoint };
15
+ }
16
+ return {};
17
+ }
18
+ catch (error) {
19
+ console.error('Error fetching Neptune cluster endpoints:', error);
20
+ throw new Error(`Failed to retrieve Neptune endpoints: ${error}`);
21
+ }
22
+ };
@@ -0,0 +1 @@
1
+ export * from './getNeptuneEndpoints';
@@ -0,0 +1 @@
1
+ export * from './getNeptuneEndpoints';