@ductape/sdk 0.1.12 → 0.1.14

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 (109) hide show
  1. package/dist/api/services/cloudApi.service.d.ts +3 -1
  2. package/dist/api/services/cloudApi.service.js +11 -2
  3. package/dist/api/services/cloudApi.service.js.map +1 -1
  4. package/dist/api/services/webhooksApi.service.js +6 -4
  5. package/dist/api/services/webhooksApi.service.js.map +1 -1
  6. package/dist/apps/services/app.service.d.ts +4 -0
  7. package/dist/apps/services/app.service.js +37 -0
  8. package/dist/apps/services/app.service.js.map +1 -1
  9. package/dist/brokers/brokers.service.js +23 -1
  10. package/dist/brokers/brokers.service.js.map +1 -1
  11. package/dist/brokers/utils/broker.util.js +4 -1
  12. package/dist/brokers/utils/broker.util.js.map +1 -1
  13. package/dist/brokers/utils/providers/azure-servicebus.service.d.ts +17 -0
  14. package/dist/brokers/utils/providers/azure-servicebus.service.js +51 -0
  15. package/dist/brokers/utils/providers/azure-servicebus.service.js.map +1 -0
  16. package/dist/cloud/cloud-api.util.d.ts +1 -1
  17. package/dist/cloud/cloud-api.util.js +21 -3
  18. package/dist/cloud/cloud-api.util.js.map +1 -1
  19. package/dist/cloud/cloud-broker-link.util.js +32 -11
  20. package/dist/cloud/cloud-broker-link.util.js.map +1 -1
  21. package/dist/cloud/cloud-database-link.util.js +8 -11
  22. package/dist/cloud/cloud-database-link.util.js.map +1 -1
  23. package/dist/cloud/cloud-graph-link.util.d.ts +12 -0
  24. package/dist/cloud/cloud-graph-link.util.js +61 -0
  25. package/dist/cloud/cloud-graph-link.util.js.map +1 -0
  26. package/dist/cloud/cloud-runtime.util.js +8 -1
  27. package/dist/cloud/cloud-runtime.util.js.map +1 -1
  28. package/dist/cloud/cloud-service-map.util.d.ts +3 -0
  29. package/dist/cloud/cloud-service-map.util.js +52 -0
  30. package/dist/cloud/cloud-service-map.util.js.map +1 -0
  31. package/dist/cloud/cloud-vector-link.util.d.ts +12 -0
  32. package/dist/cloud/cloud-vector-link.util.js +60 -0
  33. package/dist/cloud/cloud-vector-link.util.js.map +1 -0
  34. package/dist/cloud/cloud.service.d.ts +2 -1
  35. package/dist/cloud/cloud.service.js +3 -0
  36. package/dist/cloud/cloud.service.js.map +1 -1
  37. package/dist/cloud/index.d.ts +3 -0
  38. package/dist/cloud/index.js +8 -1
  39. package/dist/cloud/index.js.map +1 -1
  40. package/dist/cloud/types/cloud.types.d.ts +13 -3
  41. package/dist/database/databases.service.js +27 -10
  42. package/dist/database/databases.service.js.map +1 -1
  43. package/dist/database/types/connection.interface.d.ts +3 -0
  44. package/dist/graph/adapters/adapter.factory.js +4 -0
  45. package/dist/graph/adapters/adapter.factory.js.map +1 -1
  46. package/dist/graph/adapters/cosmos-gremlin.adapter.d.ts +12 -0
  47. package/dist/graph/adapters/cosmos-gremlin.adapter.js +125 -0
  48. package/dist/graph/adapters/cosmos-gremlin.adapter.js.map +1 -0
  49. package/dist/graph/adapters/index.d.ts +2 -0
  50. package/dist/graph/adapters/index.js +5 -1
  51. package/dist/graph/adapters/index.js.map +1 -1
  52. package/dist/graph/adapters/neptune.adapter.d.ts +4 -4
  53. package/dist/graph/adapters/neptune.adapter.js.map +1 -1
  54. package/dist/graph/adapters/spanner-graph.adapter.d.ts +68 -0
  55. package/dist/graph/adapters/spanner-graph.adapter.js +220 -0
  56. package/dist/graph/adapters/spanner-graph.adapter.js.map +1 -0
  57. package/dist/graph/graphs.service.js +36 -20
  58. package/dist/graph/graphs.service.js.map +1 -1
  59. package/dist/graph/types/connection.interface.d.ts +4 -0
  60. package/dist/graph/types/enums.d.ts +2 -0
  61. package/dist/graph/types/enums.js +2 -0
  62. package/dist/graph/types/enums.js.map +1 -1
  63. package/dist/index.d.ts +17 -0
  64. package/dist/index.js +26 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/logs/logs.types.d.ts +5 -1
  67. package/dist/logs/logs.types.js +2 -0
  68. package/dist/logs/logs.types.js.map +1 -1
  69. package/dist/products/services/products.service.d.ts +13 -0
  70. package/dist/products/services/products.service.js +201 -104
  71. package/dist/products/services/products.service.js.map +1 -1
  72. package/dist/products/validators/joi-validators/create.productGraph.validator.js +8 -0
  73. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  74. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +28 -5
  75. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  76. package/dist/products/validators/joi-validators/create.productVector.validator.js +8 -0
  77. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -1
  78. package/dist/resilience/fallback.service.js +11 -6
  79. package/dist/resilience/fallback.service.js.map +1 -1
  80. package/dist/resilience/quota.service.d.ts +1 -1
  81. package/dist/resilience/quota.service.js +48 -10
  82. package/dist/resilience/quota.service.js.map +1 -1
  83. package/dist/resilience/resilience-mapping.utils.d.ts +5 -0
  84. package/dist/resilience/resilience-mapping.utils.js +53 -0
  85. package/dist/resilience/resilience-mapping.utils.js.map +1 -0
  86. package/dist/types/productsBuilder.types.d.ts +12 -0
  87. package/dist/types/productsBuilder.types.js +6 -0
  88. package/dist/types/productsBuilder.types.js.map +1 -1
  89. package/dist/vector/adapters/azure-search.adapter.d.ts +25 -0
  90. package/dist/vector/adapters/azure-search.adapter.js +217 -0
  91. package/dist/vector/adapters/azure-search.adapter.js.map +1 -0
  92. package/dist/vector/adapters/index.d.ts +3 -0
  93. package/dist/vector/adapters/index.js +7 -1
  94. package/dist/vector/adapters/index.js.map +1 -1
  95. package/dist/vector/adapters/opensearch.adapter.d.ts +25 -0
  96. package/dist/vector/adapters/opensearch.adapter.js +224 -0
  97. package/dist/vector/adapters/opensearch.adapter.js.map +1 -0
  98. package/dist/vector/adapters/vertex-vector-search.adapter.d.ts +29 -0
  99. package/dist/vector/adapters/vertex-vector-search.adapter.js +178 -0
  100. package/dist/vector/adapters/vertex-vector-search.adapter.js.map +1 -0
  101. package/dist/vector/types/enums.d.ts +6 -0
  102. package/dist/vector/types/enums.js +6 -0
  103. package/dist/vector/types/enums.js.map +1 -1
  104. package/dist/vector/vector-database.service.d.ts +6 -0
  105. package/dist/vector/vector-database.service.js +30 -16
  106. package/dist/vector/vector-database.service.js.map +1 -1
  107. package/dist/vector/vector.service.js +6 -0
  108. package/dist/vector/vector.service.js.map +1 -1
  109. package/package.json +8 -2
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpannerGraphAdapter = void 0;
4
+ /**
5
+ * GCP Spanner Graph adapter — openCypher/GQL via @google-cloud/spanner.
6
+ * Implements core node/query operations; advanced graph analytics delegate to raw GQL.
7
+ */
8
+ const spanner_1 = require("@google-cloud/spanner");
9
+ const base_adapter_1 = require("./base.adapter");
10
+ const enums_1 = require("../types/enums");
11
+ const graph_error_1 = require("../utils/graph-error");
12
+ function parseSpannerConnectionUrl(url) {
13
+ const match = url.match(/^spanner:\/\/([^/]+)\/([^/]+)\/([^/?#]+)/i);
14
+ if (!match)
15
+ return null;
16
+ return {
17
+ projectId: match[1],
18
+ instanceId: match[2],
19
+ databaseId: match[3],
20
+ graphName: 'ductape',
21
+ };
22
+ }
23
+ function gqlEscape(value) {
24
+ return value.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
25
+ }
26
+ class SpannerGraphAdapter extends base_adapter_1.BaseGraphAdapter {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.graphType = enums_1.GraphType.SPANNER_GRAPH;
30
+ this.supportedFeatures = new Set([enums_1.GraphFeature.SCHEMA_INDEXES]);
31
+ this.spanner = null;
32
+ this.database = null;
33
+ this.graphName = 'ductape';
34
+ }
35
+ unsupported(method) {
36
+ throw graph_error_1.GraphError.unsupportedOperationError(method, enums_1.GraphType.SPANNER_GRAPH);
37
+ }
38
+ async connect(options) {
39
+ const opts = (options.options || {});
40
+ const parsed = parseSpannerConnectionUrl(options.connectionUrl) ||
41
+ {
42
+ projectId: String(opts.projectId || ''),
43
+ instanceId: String(opts.instanceId || opts.instance || ''),
44
+ databaseId: String(options.database || opts.databaseName || 'ductape'),
45
+ graphName: String(options.graphName || opts.graphName || 'ductape'),
46
+ };
47
+ if (!parsed.projectId || !parsed.instanceId || !parsed.databaseId) {
48
+ throw graph_error_1.GraphError.configurationError('Spanner Graph requires spanner://project/instance/database URL or projectId/instanceId/database options');
49
+ }
50
+ const credentials = opts.credentials;
51
+ this.spanner = new spanner_1.Spanner(Object.assign({ projectId: parsed.projectId }, (credentials ? { credentials } : {})));
52
+ this.database = this.spanner.instance(parsed.instanceId).database(parsed.databaseId);
53
+ this.graphName = parsed.graphName || 'ductape';
54
+ this.connectionOptions = options;
55
+ this.connectionUrl = options.connectionUrl;
56
+ await this.database.run({ sql: 'SELECT 1' });
57
+ this.connected = true;
58
+ return { connected: true, type: enums_1.GraphType.SPANNER_GRAPH, latency: 0 };
59
+ }
60
+ async testConnection(options) {
61
+ const start = Date.now();
62
+ try {
63
+ await this.connect(options);
64
+ await this.disconnect();
65
+ return { connected: true, type: enums_1.GraphType.SPANNER_GRAPH, latency: Date.now() - start };
66
+ }
67
+ catch (error) {
68
+ return {
69
+ connected: false,
70
+ type: enums_1.GraphType.SPANNER_GRAPH,
71
+ latency: Date.now() - start,
72
+ error: error.message,
73
+ };
74
+ }
75
+ }
76
+ async disconnect() {
77
+ this.database = null;
78
+ this.spanner = null;
79
+ this.connected = false;
80
+ }
81
+ async runGql(gql) {
82
+ if (!this.database)
83
+ throw graph_error_1.GraphError.connectionError('Not connected to Spanner');
84
+ const [rows] = await this.database.run({
85
+ sql: `GRAPH ${this.graphName} ${gql}`,
86
+ });
87
+ return rows.map((row) => row.toJSON());
88
+ }
89
+ async createNode(options) {
90
+ var _a;
91
+ const label = ((_a = options.labels) === null || _a === void 0 ? void 0 : _a[0]) || 'Node';
92
+ const props = options.properties || {};
93
+ const id = String(props.id || `node_${Date.now()}`);
94
+ const propEntries = Object.entries(props)
95
+ .map(([k, v]) => `${k}: '${gqlEscape(String(v))}'`)
96
+ .join(', ');
97
+ await this.runGql(`CREATE (n:${label} {id: '${gqlEscape(id)}'${propEntries ? `, ${propEntries}` : ''}})`);
98
+ return {
99
+ node: {
100
+ id,
101
+ labels: [label],
102
+ properties: Object.assign(Object.assign({}, props), { id }),
103
+ },
104
+ created: true,
105
+ };
106
+ }
107
+ async findNodes(options) {
108
+ var _a;
109
+ const label = (_a = options.labels) === null || _a === void 0 ? void 0 : _a[0];
110
+ const limit = options.limit || 100;
111
+ const gql = label
112
+ ? `MATCH (n:${label}) RETURN n LIMIT ${limit}`
113
+ : `MATCH (n) RETURN n LIMIT ${limit}`;
114
+ const rows = await this.runGql(gql);
115
+ const nodes = rows.map((row, i) => {
116
+ var _a;
117
+ return ({
118
+ id: String(((_a = row.n) === null || _a === void 0 ? void 0 : _a.id) || i),
119
+ labels: label ? [label] : [],
120
+ properties: row.n,
121
+ });
122
+ });
123
+ return { nodes, total: nodes.length };
124
+ }
125
+ async findNodeById(id) {
126
+ const rows = await this.runGql(`MATCH (n) WHERE n.id = '${gqlEscape(id)}' RETURN n LIMIT 1`);
127
+ if (!rows.length)
128
+ return null;
129
+ return {
130
+ id,
131
+ labels: [],
132
+ properties: rows[0].n,
133
+ };
134
+ }
135
+ async updateNode(options) {
136
+ const props = options.properties || {};
137
+ for (const [key, value] of Object.entries(props)) {
138
+ await this.runGql(`MATCH (n) WHERE n.id = '${gqlEscape(String(options.id))}' SET n.${key} = '${gqlEscape(String(value))}'`);
139
+ }
140
+ const node = await this.findNodeById(String(options.id));
141
+ return { node: node, updated: true };
142
+ }
143
+ async deleteNode(options) {
144
+ await this.runGql(`MATCH (n) WHERE n.id = '${gqlEscape(String(options.id))}' DETACH DELETE n`);
145
+ return { deleted: true, id: String(options.id) };
146
+ }
147
+ async mergeNode(options) {
148
+ var _a;
149
+ const matchId = String(((_a = options.matchProperties) === null || _a === void 0 ? void 0 : _a.id) || '');
150
+ const existing = matchId ? await this.findNodeById(matchId) : null;
151
+ if (existing) {
152
+ return { node: existing, created: false };
153
+ }
154
+ const createResult = await this.createNode({
155
+ labels: options.labels,
156
+ properties: (options.onCreate || options.matchProperties),
157
+ });
158
+ return Object.assign(Object.assign({}, createResult), { created: true });
159
+ }
160
+ async query(options) {
161
+ const gql = String(options.query || '');
162
+ const rows = await this.runGql(gql);
163
+ return { records: rows };
164
+ }
165
+ async countNodes() {
166
+ var _a;
167
+ const rows = await this.runGql('MATCH (n) RETURN count(n) AS cnt');
168
+ return { count: Number(((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.cnt) || 0) };
169
+ }
170
+ async countRelationships() {
171
+ var _a;
172
+ const rows = await this.runGql('MATCH ()-[r]->() RETURN count(r) AS cnt');
173
+ return { count: Number(((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.cnt) || 0) };
174
+ }
175
+ async getStatistics() {
176
+ const nodes = await this.countNodes();
177
+ const rels = await this.countRelationships();
178
+ return {
179
+ nodeCount: nodes.count,
180
+ relationshipCount: rels.count,
181
+ };
182
+ }
183
+ // --- Stubs: use query() for advanced operations ---
184
+ async addLabels() { return this.unsupported('addLabels'); }
185
+ async removeLabels() { return this.unsupported('removeLabels'); }
186
+ async setLabels() { return this.unsupported('setLabels'); }
187
+ async createRelationship() { return this.unsupported('createRelationship'); }
188
+ async findRelationships() { return this.unsupported('findRelationships'); }
189
+ async findRelationshipById() { return this.unsupported('findRelationshipById'); }
190
+ async updateRelationship() { return this.unsupported('updateRelationship'); }
191
+ async deleteRelationship() { return this.unsupported('deleteRelationship'); }
192
+ async mergeRelationship() { return this.unsupported('mergeRelationship'); }
193
+ async traverse() { return this.unsupported('traverse'); }
194
+ async shortestPath() { return this.unsupported('shortestPath'); }
195
+ async allPaths() { return this.unsupported('allPaths'); }
196
+ async getNeighborhood() { return this.unsupported('getNeighborhood'); }
197
+ async findConnectedComponents() { return this.unsupported('findConnectedComponents'); }
198
+ async fullTextSearch() { return this.unsupported('fullTextSearch'); }
199
+ async vectorSearch() { return this.unsupported('vectorSearch'); }
200
+ async createNodeIndex() { return this.unsupported('createNodeIndex'); }
201
+ async createNodeConstraint() { return this.unsupported('createNodeConstraint'); }
202
+ async createRelationshipIndex() { return this.unsupported('createRelationshipIndex'); }
203
+ async listIndexes() { return this.unsupported('listIndexes'); }
204
+ async listConstraints() { return this.unsupported('listConstraints'); }
205
+ async dropIndex() { return this.unsupported('dropIndex'); }
206
+ async dropConstraint() { return this.unsupported('dropConstraint'); }
207
+ async listLabels() { return { labels: [] }; }
208
+ async listRelationshipTypes() { return { types: [] }; }
209
+ async beginTransaction() {
210
+ return { id: 'spanner', status: enums_1.GraphTransactionStatus.ACTIVE, startTime: new Date() };
211
+ }
212
+ async commitTransaction() { }
213
+ async rollbackTransaction() { }
214
+ buildWhereClause() { return {}; }
215
+ parseError(error) {
216
+ return error instanceof Error ? error : new Error(String(error));
217
+ }
218
+ }
219
+ exports.SpannerGraphAdapter = SpannerGraphAdapter;
220
+ //# sourceMappingURL=spanner-graph.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spanner-graph.adapter.js","sourceRoot":"","sources":["../../../src/graph/adapters/spanner-graph.adapter.ts"],"names":[],"mappings":"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"}
@@ -287,16 +287,24 @@ class GraphService {
287
287
  tag: graphConfig.tag,
288
288
  description: graphConfig.description,
289
289
  type: graphConfig.type,
290
- envs: processedEnvs.map((env) => ({
291
- slug: env.slug,
292
- connection_url: env.connection_url,
293
- description: env.description,
294
- database: env.database,
295
- graphName: env.graphName,
296
- region: env.region,
297
- username: env.username,
298
- password: env.password,
299
- })),
290
+ envs: processedEnvs.map((env) => {
291
+ var _a;
292
+ return ({
293
+ slug: env.slug,
294
+ connection_url: env.connection_url,
295
+ description: env.description,
296
+ database: env.database,
297
+ graphName: env.graphName,
298
+ region: env.region,
299
+ username: env.username,
300
+ password: env.password,
301
+ cloud: env.cloud,
302
+ instance: env.instance,
303
+ authMode: (_a = env.authMode) !== null && _a !== void 0 ? _a : (env.cloud ? 'cloud_connection' : undefined),
304
+ cloudConnectionId: env.cloudConnectionId,
305
+ iamAuth: env.iamAuth,
306
+ });
307
+ }),
300
308
  };
301
309
  await builder.createGraph(productGraph);
302
310
  }
@@ -502,16 +510,24 @@ class GraphService {
502
510
  name: updates.name,
503
511
  description: updates.description,
504
512
  type: updates.type,
505
- envs: (_a = updates.envs) === null || _a === void 0 ? void 0 : _a.map((env) => ({
506
- slug: env.slug,
507
- connection_url: env.connection_url,
508
- description: env.description,
509
- database: env.database,
510
- graphName: env.graphName,
511
- region: env.region,
512
- username: env.username,
513
- password: env.password,
514
- })),
513
+ envs: (_a = updates.envs) === null || _a === void 0 ? void 0 : _a.map((env) => {
514
+ var _a;
515
+ return ({
516
+ slug: env.slug,
517
+ connection_url: env.connection_url,
518
+ description: env.description,
519
+ database: env.database,
520
+ graphName: env.graphName,
521
+ region: env.region,
522
+ username: env.username,
523
+ password: env.password,
524
+ cloud: env.cloud,
525
+ instance: env.instance,
526
+ authMode: (_a = env.authMode) !== null && _a !== void 0 ? _a : (env.cloud ? 'cloud_connection' : undefined),
527
+ cloudConnectionId: env.cloudConnectionId,
528
+ iamAuth: env.iamAuth,
529
+ });
530
+ }),
515
531
  };
516
532
  await builder.updateGraph(graphTag, productGraphUpdates);
517
533
  }