@encodeagent/platform-helper-data 1.2510.1041539 → 1.2510.1231638

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 (49) hide show
  1. package/dist/{azure-cosmosdb → cosmosdb}/index.d.ts +5 -3
  2. package/dist/cosmosdb/index.d.ts.map +1 -0
  3. package/dist/{azure-cosmosdb → cosmosdb}/index.js +84 -8
  4. package/dist/cosmosdb/index.js.map +1 -0
  5. package/dist/cosmosdb/query-builder.d.ts +10 -0
  6. package/dist/cosmosdb/query-builder.d.ts.map +1 -0
  7. package/dist/cosmosdb/query-builder.js +123 -0
  8. package/dist/cosmosdb/query-builder.js.map +1 -0
  9. package/dist/{aws-dynamodb → dynamodb}/index.d.ts +3 -2
  10. package/dist/dynamodb/index.d.ts.map +1 -0
  11. package/dist/{aws-dynamodb → dynamodb}/index.js +40 -2
  12. package/dist/dynamodb/index.js.map +1 -0
  13. package/dist/firestore/index.d.ts +8 -0
  14. package/dist/firestore/index.d.ts.map +1 -0
  15. package/dist/firestore/index.js +48 -0
  16. package/dist/firestore/index.js.map +1 -0
  17. package/dist/index.d.ts +3 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +9 -7
  20. package/dist/index.js.map +1 -1
  21. package/dist/mongodb/index.d.ts +12 -0
  22. package/dist/mongodb/index.d.ts.map +1 -0
  23. package/dist/mongodb/index.js +156 -0
  24. package/dist/mongodb/index.js.map +1 -0
  25. package/dist/util.d.ts +112 -0
  26. package/dist/util.d.ts.map +1 -0
  27. package/dist/util.js +40 -0
  28. package/dist/util.js.map +1 -0
  29. package/dist/wrapper/index.d.ts +21 -6
  30. package/dist/wrapper/index.d.ts.map +1 -1
  31. package/dist/wrapper/index.js +143 -46
  32. package/dist/wrapper/index.js.map +1 -1
  33. package/package.json +4 -5
  34. package/dist/aws-dynamodb/index.d.ts.map +0 -1
  35. package/dist/aws-dynamodb/index.js.map +0 -1
  36. package/dist/azure-cosmosdb/index.d.ts.map +0 -1
  37. package/dist/azure-cosmosdb/index.js.map +0 -1
  38. package/dist/gcp-firestore/index.d.ts +0 -7
  39. package/dist/gcp-firestore/index.d.ts.map +0 -1
  40. package/dist/gcp-firestore/index.js +0 -17
  41. package/dist/gcp-firestore/index.js.map +0 -1
  42. package/dist/mongo/index.d.ts +0 -7
  43. package/dist/mongo/index.d.ts.map +0 -1
  44. package/dist/mongo/index.js +0 -17
  45. package/dist/mongo/index.js.map +0 -1
  46. package/dist/types.d.ts +0 -46
  47. package/dist/types.d.ts.map +0 -1
  48. package/dist/types.js +0 -12
  49. package/dist/types.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Azure Cosmos DB implementation
3
3
  */
4
- import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, IRetrieveFromCloudServiceProps } from '../types';
4
+ import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, ICreateResult, ICreateProps, IRetrieveProps, IQueryProps, IQueryResult } from '../util';
5
5
  /**
6
6
  * Create Azure Cosmos DB connection
7
7
  * @param props Connection properties with URI and key
@@ -11,7 +11,9 @@ export declare function connect(props: IConnectionForServiceProps): Promise<ICon
11
11
  /**
12
12
  * Retrieve document by ID from Azure Cosmos DB
13
13
  * @param props Retrieve properties with client, collection (container), and id
14
- * @returns Promise<IRetrieveResult<T>>
14
+ * @returns Promise<IRetrieveResult>
15
15
  */
16
- export declare function retrieve<T>(props: IRetrieveFromCloudServiceProps): Promise<IRetrieveResult<T>>;
16
+ export declare function retrieve(props: IRetrieveProps): Promise<IRetrieveResult>;
17
+ export declare function query(props: IQueryProps): Promise<IQueryResult>;
18
+ export declare function create(props: ICreateProps): Promise<ICreateResult>;
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cosmosdb/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAgB,WAAW,EAAE,YAAY,EAA2B,MAAM,SAAS,CAAC;AAMxM;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgC3F;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAgD9E;AAGD,wBAAsB,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA+CrE;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAkCxE"}
@@ -5,9 +5,13 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.connect = connect;
7
7
  exports.retrieve = retrieve;
8
+ exports.query = query;
9
+ exports.create = create;
8
10
  const platform_helper_util_1 = require("@encodeagent/platform-helper-util");
11
+ const util_1 = require("../util");
9
12
  const cosmos_1 = require("@azure/cosmos");
10
- const ENGINE = "azure-cosmosdb";
13
+ const query_builder_1 = require("./query-builder");
14
+ const ENGINE = "cosmosdb";
11
15
  /**
12
16
  * Create Azure Cosmos DB connection
13
17
  * @param props Connection properties with URI and key
@@ -45,19 +49,22 @@ async function connect(props) {
45
49
  /**
46
50
  * Retrieve document by ID from Azure Cosmos DB
47
51
  * @param props Retrieve properties with client, collection (container), and id
48
- * @returns Promise<IRetrieveResult<T>>
52
+ * @returns Promise<IRetrieveResult>
49
53
  */
50
54
  async function retrieve(props) {
51
55
  try {
52
56
  const { client, id, partitionKey, databaseId, containerId } = props;
57
+ const errorResult = (0, util_1.validateDatabaseSetting)({
58
+ databaseId,
59
+ containerId,
60
+ checkDatabaseId: true,
61
+ checkContainerId: true
62
+ });
63
+ if (errorResult) {
64
+ return errorResult;
65
+ }
53
66
  // Get database and container references
54
67
  const database = client.database(databaseId);
55
- if (!databaseId) {
56
- return {
57
- engine: ENGINE,
58
- error: 'The databaseId or process.env.DATABASE_ID is required'
59
- };
60
- }
61
68
  const container = database.container(containerId);
62
69
  if ((0, platform_helper_util_1.isNonEmptyString)(partitionKey)) {
63
70
  const { resource: item } = await container.item(id, partitionKey).read();
@@ -88,4 +95,73 @@ async function retrieve(props) {
88
95
  };
89
96
  }
90
97
  }
98
+ async function query(props) {
99
+ let dbQuery = undefined;
100
+ const { client, databaseId, containerId, query } = props;
101
+ try {
102
+ const errorResult = (0, util_1.validateDatabaseSetting)({
103
+ databaseId,
104
+ containerId,
105
+ checkDatabaseId: true,
106
+ checkContainerId: true
107
+ });
108
+ if (errorResult) {
109
+ return { ...errorResult, query };
110
+ }
111
+ const database = client.database(databaseId);
112
+ const container = database.container(containerId);
113
+ const dbQuery = (0, query_builder_1.processQuery)(query);
114
+ const { sql, parameters } = dbQuery;
115
+ console.log({ query, dbQuery });
116
+ const iterator = container.items.query({ query: sql, parameters }, {
117
+ enableCrossPartitionQuery: true
118
+ });
119
+ const { resources } = await iterator.fetchAll();
120
+ ;
121
+ return {
122
+ engine: ENGINE,
123
+ data: resources,
124
+ query,
125
+ dbQuery
126
+ };
127
+ }
128
+ catch (error) {
129
+ return {
130
+ engine: ENGINE,
131
+ query,
132
+ dbQuery,
133
+ error: error instanceof Error ? error.message : 'Failed to query documents from Cosmos DB'
134
+ };
135
+ }
136
+ }
137
+ async function create(props) {
138
+ try {
139
+ const { client, databaseId, containerId, record } = props;
140
+ const errorResult = (0, util_1.validateDatabaseSetting)({
141
+ databaseId,
142
+ containerId,
143
+ checkDatabaseId: true,
144
+ checkContainerId: true
145
+ });
146
+ if (errorResult) {
147
+ return errorResult;
148
+ }
149
+ const database = client.database(databaseId);
150
+ const container = database.container(containerId);
151
+ const response = await container.items.create({
152
+ ...record,
153
+ id: record.id ?? (0, platform_helper_util_1.newGuid)()
154
+ });
155
+ return {
156
+ engine: ENGINE,
157
+ data: response.resource
158
+ };
159
+ }
160
+ catch (error) {
161
+ return {
162
+ engine: ENGINE,
163
+ error: error instanceof Error ? error.message : 'Failed to create record in Cosmos DB'
164
+ };
165
+ }
166
+ }
91
167
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmosdb/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { IQuery } from "../util";
2
+ export interface IBuiltQuery {
3
+ sql: string;
4
+ parameters: {
5
+ name: string;
6
+ value: any;
7
+ }[];
8
+ }
9
+ export declare function processQuery(q: IQuery): IBuiltQuery;
10
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/cosmosdb/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA+B,MAAM,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CAC9C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CA4InD"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processQuery = processQuery;
4
+ function processQuery(q) {
5
+ let paramCounter = 0;
6
+ const parameters = [];
7
+ const nextParam = (value) => {
8
+ const name = `@p${++paramCounter}`;
9
+ parameters.push({ name, value });
10
+ return name;
11
+ };
12
+ const idf = (field) => field.trim().startsWith("c.") ? field.trim() : `c.${field.trim()}`;
13
+ // Accept both { op: "AND", filters: [...] } and relaxed { op: "AND", [0]: {...}, [1]: {...} }
14
+ const normalizeFilter = (f) => {
15
+ if (!f)
16
+ return undefined;
17
+ if (typeof f.op === "string" &&
18
+ (f.op === "AND" || f.op === "OR" || f.op === "NOT")) {
19
+ const filtersArr = Array.isArray(f.filters)
20
+ ? f.filters
21
+ : Object.keys(f)
22
+ .filter((k) => /^\d+$/.test(k))
23
+ .map((k) => f[k]);
24
+ return {
25
+ op: f.op,
26
+ filters: (filtersArr || [])
27
+ .map(normalizeFilter)
28
+ .filter(Boolean),
29
+ };
30
+ }
31
+ // assume simple filter
32
+ return f;
33
+ };
34
+ const buildSimple = (f) => {
35
+ const field = idf(f.name);
36
+ const op = f.op.toUpperCase();
37
+ switch (op) {
38
+ case "IN": {
39
+ const vals = Array.isArray(f.value) ? f.value : [f.value];
40
+ if (vals.length === 0)
41
+ return "1 = 0"; // empty IN -> no matches
42
+ const paramNames = vals.map((v) => nextParam(v));
43
+ return `${field} IN (${paramNames.join(", ")})`;
44
+ }
45
+ case "BETWEEN": {
46
+ const [lo, hi] = Array.isArray(f.value)
47
+ ? f.value
48
+ : [undefined, undefined];
49
+ const pLo = nextParam(lo);
50
+ const pHi = nextParam(hi);
51
+ return `${field} BETWEEN ${pLo} AND ${pHi}`;
52
+ }
53
+ case "LIKE": {
54
+ const p = nextParam(f.value);
55
+ return `${field} LIKE ${p}`;
56
+ }
57
+ case "CONTAINS": {
58
+ const p = nextParam(f.value);
59
+ return `CONTAINS(${field}, ${p})`;
60
+ }
61
+ case "STARTSWITH": {
62
+ const p = nextParam(f.value);
63
+ return `STARTSWITH(${field}, ${p})`;
64
+ }
65
+ case "ENDSWITH": {
66
+ const p = nextParam(f.value);
67
+ return `ENDSWITH(${field}, ${p})`;
68
+ }
69
+ default: {
70
+ const p = nextParam(f.value);
71
+ return `${field} ${op} ${p}`;
72
+ }
73
+ }
74
+ };
75
+ const buildFilter = (node) => {
76
+ if (!node)
77
+ return undefined;
78
+ // Group
79
+ if ("filters" in node && "op" in node) {
80
+ const group = node;
81
+ if (group.op === "NOT") {
82
+ const inner = group.filters?.map(buildFilter).filter(Boolean);
83
+ if (!inner || inner.length === 0)
84
+ return undefined;
85
+ return `(NOT (${inner.join(" AND ")}))`;
86
+ }
87
+ const parts = (group.filters || [])
88
+ .map(buildFilter)
89
+ .filter(Boolean);
90
+ if (parts.length === 0)
91
+ return undefined;
92
+ if (parts.length === 1)
93
+ return parts[0];
94
+ return `(${parts.join(` ${group.op} `)})`;
95
+ }
96
+ // Simple
97
+ return buildSimple(node);
98
+ };
99
+ // SELECT
100
+ const cols = q.attributes && q.attributes.length > 0
101
+ ? q.attributes.map(idf).join(", ")
102
+ : "c";
103
+ const distinct = q.distinct ? "DISTINCT " : "";
104
+ const top = q.top && q.top > 0 ? `TOP ${q.top} ` : "";
105
+ let sql = `SELECT ${distinct}${top}${cols} FROM c`;
106
+ // WHERE
107
+ const where = buildFilter(normalizeFilter(q.filter));
108
+ if (where)
109
+ sql += ` WHERE ${where}`;
110
+ // ORDER BY
111
+ if (q.orderBy && q.orderBy.length > 0) {
112
+ const parts = q.orderBy.map((o) => `${idf(o.name)} ${o.direction?.toUpperCase() === "DESC" ? "DESC" : "ASC"}`);
113
+ sql += ` ORDER BY ${parts.join(", ")}`;
114
+ }
115
+ // Pagination (Cosmos requires ORDER BY for OFFSET/LIMIT)
116
+ if (q.orderBy && q.orderBy.length > 0 && typeof q.pageSize === "number" && q.pageSize > 0) {
117
+ const page = Math.max(0, q.page ?? 0);
118
+ const offset = page * q.pageSize;
119
+ sql += ` OFFSET ${offset} LIMIT ${q.pageSize}`;
120
+ }
121
+ return { sql, parameters };
122
+ }
123
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/cosmosdb/query-builder.ts"],"names":[],"mappings":";;AAOA,oCA4IC;AA5ID,SAAgB,YAAY,CAAC,CAAS;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAC1B,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAEvE,8FAA8F;IAC9F,MAAM,eAAe,GAAG,CACpB,CAAM,EACkC,EAAE;QAC1C,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAEzB,IACI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YACxB,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EACrD,CAAC;YACC,MAAM,UAAU,GAAU,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,CAAC,CAAC,CAAC,CAAC,OAAO;gBACX,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;qBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1B,OAAO;gBACH,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;qBACtB,GAAG,CAAC,eAAe,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAwC;aAC9D,CAAC;QACN,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAkB,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAgB,EAAU,EAAE;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAE9B,QAAQ,EAAE,EAAE,CAAC;YACT,KAAK,IAAI,CAAC,CAAC,CAAC;gBACR,MAAM,IAAI,GAAU,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAC,CAAC,yBAAyB;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,GAAG,KAAK,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACpD,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBACnC,CAAC,CAAC,CAAC,CAAC,KAAK;oBACT,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1B,OAAO,GAAG,KAAK,YAAY,GAAG,QAAQ,GAAG,EAAE,CAAC;YAChD,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACV,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC;YAChC,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC;YACtC,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,cAAc,KAAK,KAAK,CAAC,GAAG,CAAC;YACxC,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,YAAY,KAAK,KAAK,CAAC,GAAG,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,GAAG,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAChB,IAAmC,EACjB,EAAE;QACpB,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,QAAQ;QACR,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAoB,CAAC;YAEnC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,SAAS,CAAC;gBACnD,OAAO,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC9B,GAAG,CAAC,WAAW,CAAC;iBAChB,MAAM,CAAC,OAAO,CAAa,CAAC;YAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;QAC9C,CAAC;QAED,SAAS;QACT,OAAO,WAAW,CAAC,IAAqB,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,SAAS;IACT,MAAM,IAAI,GACN,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC;IACd,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtD,IAAI,GAAG,GAAG,UAAU,QAAQ,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC;IAEnD,QAAQ;IACR,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,GAAG,IAAI,UAAU,KAAK,EAAE,CAAC;IAEpC,WAAW;IACX,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CACpF,CAAC;QACF,GAAG,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;QACjC,GAAG,IAAI,WAAW,MAAM,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview AWS DynamoDB implementation
3
3
  */
4
- import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, IRetrieveFromCloudServiceProps } from '../types';
4
+ import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, IRetrieveProps, ICreateProps } from '../util';
5
5
  /**
6
6
  * Create AWS DynamoDB connection
7
7
  * @param props Connection properties with URI and key
@@ -13,5 +13,6 @@ export declare function connect(props: IConnectionForServiceProps): Promise<ICon
13
13
  * @param props Retrieve properties with client, collection (table), and id
14
14
  * @returns Promise<IRetrieveResult<T>>
15
15
  */
16
- export declare function retrieve<T>(props: IRetrieveFromCloudServiceProps): Promise<IRetrieveResult<T>>;
16
+ export declare function retrieve<T>(props: IRetrieveProps): Promise<IRetrieveResult<T>>;
17
+ export declare function create<T>(props: ICreateProps): Promise<IRetrieveResult<T>>;
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AAOtI;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmD3F;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAkCpF;AAED,wBAAsB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAyChF"}
@@ -5,9 +5,11 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.connect = connect;
7
7
  exports.retrieve = retrieve;
8
+ exports.create = create;
8
9
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
9
10
  const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
10
- const ENGINE = "aws-dynamodb";
11
+ const platform_helper_util_1 = require("@encodeagent/platform-helper-util");
12
+ const ENGINE = "dynamodb";
11
13
  /**
12
14
  * Create AWS DynamoDB connection
13
15
  * @param props Connection properties with URI and key
@@ -18,7 +20,7 @@ async function connect(props) {
18
20
  const { uri, key } = props;
19
21
  if (!uri) {
20
22
  return {
21
- engine: "aws-dynamodb",
23
+ engine: "dynamodb",
22
24
  error: 'AWS DynamoDB URI is required'
23
25
  };
24
26
  }
@@ -93,4 +95,40 @@ async function retrieve(props) {
93
95
  };
94
96
  }
95
97
  }
98
+ async function create(props) {
99
+ try {
100
+ const { client, containerId, record } = props;
101
+ if (!containerId) {
102
+ return {
103
+ engine: ENGINE,
104
+ error: 'The containerId (table name) is required'
105
+ };
106
+ }
107
+ if (!record) {
108
+ return {
109
+ engine: ENGINE,
110
+ error: 'The record is required'
111
+ };
112
+ }
113
+ const item = {
114
+ ...record,
115
+ id: record.id ?? (0, platform_helper_util_1.newGuid)()
116
+ };
117
+ const command = new client_dynamodb_1.PutItemCommand({
118
+ TableName: containerId,
119
+ Item: (0, util_dynamodb_1.marshall)(item)
120
+ });
121
+ await client.send(command);
122
+ return {
123
+ engine: ENGINE,
124
+ data: item
125
+ };
126
+ }
127
+ catch (error) {
128
+ return {
129
+ engine: ENGINE,
130
+ error: error instanceof Error ? error.message : 'Failed to create record in DynamoDB'
131
+ };
132
+ }
133
+ }
96
134
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dynamodb/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview GCP Firestore implementation
3
+ */
4
+ import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, IRetrieveProps, ICreateProps, ICreateResult } from '../util';
5
+ export declare function connect(props: IConnectionForServiceProps): Promise<IConnectionResult>;
6
+ export declare function retrieve<T>(props: IRetrieveProps): Promise<IRetrieveResult<T>>;
7
+ export declare function create<T>(props: ICreateProps): Promise<ICreateResult<T>>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAItI,wBAAsB,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAG3F;AAGD,wBAAsB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAGpF;AAGD,wBAAsB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAgC9E"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview GCP Firestore implementation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.connect = connect;
7
+ exports.retrieve = retrieve;
8
+ exports.create = create;
9
+ const ENGINE = "firestore";
10
+ async function connect(props) {
11
+ // TODO: Implement GCP Firestore connection
12
+ throw new Error('GCP Firestore connection not implemented');
13
+ }
14
+ async function retrieve(props) {
15
+ // TODO: Implement GCP Firestore retrieve by ID
16
+ throw new Error('GCP Firestore retrieve not implemented');
17
+ }
18
+ async function create(props) {
19
+ try {
20
+ const { databaseId, containerId, record } = props;
21
+ if (!databaseId) {
22
+ return {
23
+ engine: ENGINE,
24
+ error: 'The databaseId or process.env.DATABASE_ID is required'
25
+ };
26
+ }
27
+ if (!containerId) {
28
+ return {
29
+ engine: ENGINE,
30
+ error: 'The containerId or process.env.DATABASE_CONTAINER_ID is required'
31
+ };
32
+ }
33
+ if (!record) {
34
+ return {
35
+ engine: ENGINE,
36
+ error: 'The record is required'
37
+ };
38
+ }
39
+ throw new Error('GCP Firestore create not implemented');
40
+ }
41
+ catch (error) {
42
+ return {
43
+ engine: ENGINE,
44
+ error: error instanceof Error ? error.message : 'Failed to create record in GCP Firestore'
45
+ };
46
+ }
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAMH,0BAGC;AAGD,4BAGC;AAGD,wBAgCC;AA9CD,MAAM,MAAM,GAAG,WAAW,CAAC;AAEpB,KAAK,UAAU,OAAO,CAAC,KAAiC;IAC3D,2CAA2C;IAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAChE,CAAC;AAGM,KAAK,UAAU,QAAQ,CAAI,KAAqB;IACnD,+CAA+C;IAC/C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC9D,CAAC;AAGM,KAAK,UAAU,MAAM,CAAI,KAAmB;IAC/C,IAAI,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAElD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,uDAAuD;aACjE,CAAC;QACN,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,kEAAkE;aAC5E,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;gBACH,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,wBAAwB;aAClC,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C;SAC7F,CAAC;IACN,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview Main export file for @encodeagent/platform-helper-data
3
3
  */
4
- export { connect, retrieve } from './wrapper';
5
- export type { TDatabaseEngine, IConnectionResult, IRetrieveResult, IRetrieveFromCloudServiceProps, IConnectionForServiceProps, IConnectDatabaseError, IRetrieveError } from './types';
6
- export { ENGINE, URI, KEY, DATABASE_ID, DATABASE_CONTAINER_ID } from './types';
4
+ export { connect, retrieve, create } from './wrapper';
5
+ export type { TDatabaseEngine, IConnectionResult, IRetrieveResult, IRetrieveProps, IConnectionForServiceProps, IConnectDatabaseError, } from './util';
6
+ export { ENGINE, URI, KEY, DATABASE_ID, CONTAINER_ID_FOR_DATA, CONTAINER_ID_FOR_SETTINGS } from './util';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG9C,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACH,MAAM,EACN,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACxB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGtD,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,GAExB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACH,MAAM,EACN,GAAG,EACH,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EAC5B,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -3,16 +3,18 @@
3
3
  * @fileoverview Main export file for @encodeagent/platform-helper-data
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DATABASE_CONTAINER_ID = exports.DATABASE_ID = exports.KEY = exports.URI = exports.ENGINE = exports.retrieve = exports.connect = void 0;
6
+ exports.CONTAINER_ID_FOR_SETTINGS = exports.CONTAINER_ID_FOR_DATA = exports.DATABASE_ID = exports.KEY = exports.URI = exports.ENGINE = exports.create = exports.retrieve = exports.connect = void 0;
7
7
  // Export wrapper functions (main API)
8
8
  var wrapper_1 = require("./wrapper");
9
9
  Object.defineProperty(exports, "connect", { enumerable: true, get: function () { return wrapper_1.connect; } });
10
10
  Object.defineProperty(exports, "retrieve", { enumerable: true, get: function () { return wrapper_1.retrieve; } });
11
+ Object.defineProperty(exports, "create", { enumerable: true, get: function () { return wrapper_1.create; } });
11
12
  // Export all constants from types.ts
12
- var types_1 = require("./types");
13
- Object.defineProperty(exports, "ENGINE", { enumerable: true, get: function () { return types_1.ENGINE; } });
14
- Object.defineProperty(exports, "URI", { enumerable: true, get: function () { return types_1.URI; } });
15
- Object.defineProperty(exports, "KEY", { enumerable: true, get: function () { return types_1.KEY; } });
16
- Object.defineProperty(exports, "DATABASE_ID", { enumerable: true, get: function () { return types_1.DATABASE_ID; } });
17
- Object.defineProperty(exports, "DATABASE_CONTAINER_ID", { enumerable: true, get: function () { return types_1.DATABASE_CONTAINER_ID; } });
13
+ var util_1 = require("./util");
14
+ Object.defineProperty(exports, "ENGINE", { enumerable: true, get: function () { return util_1.ENGINE; } });
15
+ Object.defineProperty(exports, "URI", { enumerable: true, get: function () { return util_1.URI; } });
16
+ Object.defineProperty(exports, "KEY", { enumerable: true, get: function () { return util_1.KEY; } });
17
+ Object.defineProperty(exports, "DATABASE_ID", { enumerable: true, get: function () { return util_1.DATABASE_ID; } });
18
+ Object.defineProperty(exports, "CONTAINER_ID_FOR_DATA", { enumerable: true, get: function () { return util_1.CONTAINER_ID_FOR_DATA; } });
19
+ Object.defineProperty(exports, "CONTAINER_ID_FOR_SETTINGS", { enumerable: true, get: function () { return util_1.CONTAINER_ID_FOR_SETTINGS; } });
18
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sCAAsC;AACtC,qCAA8C;AAArC,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAa1B,qCAAqC;AACrC,iCAMiB;AALb,+FAAA,MAAM,OAAA;AACN,4FAAA,GAAG,OAAA;AACH,4FAAA,GAAG,OAAA;AACH,oGAAA,WAAW,OAAA;AACX,8GAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sCAAsC;AACtC,qCAAsD;AAA7C,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,iGAAA,MAAM,OAAA;AAalC,qCAAqC;AACrC,+BAOgB;AANZ,8FAAA,MAAM,OAAA;AACN,2FAAA,GAAG,OAAA;AACH,2FAAA,GAAG,OAAA;AACH,mGAAA,WAAW,OAAA;AACX,6GAAA,qBAAqB,OAAA;AACrB,iHAAA,yBAAyB,OAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview MongoDB implementation
3
+ */
4
+ import { IConnectionForServiceProps, IConnectionResult, IRetrieveResult, IRetrieveProps, ICreateProps, ICreateResult } from '../util';
5
+ export declare function connect(props: IConnectionForServiceProps): Promise<IConnectionResult>;
6
+ export declare function retrieve(props: IRetrieveProps): Promise<IRetrieveResult>;
7
+ /**
8
+ * Query documents from MongoDB collection
9
+ * Uses same connection shape as retrieve, with optional filter, sort, and limit.
10
+ */
11
+ export declare function create(props: ICreateProps): Promise<ICreateResult>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mongodb/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,0BAA0B,EAAE,iBAAiB,EAC7C,eAAe,EAAE,cAAc,EAE/B,YAAY,EAAE,aAAa,EAC9B,MAAM,SAAS,CAAC;AAMjB,wBAAsB,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyB3F;AAGD,wBAAsB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA4C9E;AAED;;;GAGG;AAkDH,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CA8CxE"}