aws-service-stack 0.18.444 → 0.18.446
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_examples/controller/local-task-controller.d.ts.map +1 -1
- package/dist/_examples/controller/local-task-controller.js +1 -1
- package/dist/_examples/controller/local-task-controller.js.map +1 -1
- package/dist/_examples/controller/order/order-config.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-config.js.map +1 -1
- package/dist/_examples/controller/order/order-controller-cron.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-controller-cron.js.map +1 -1
- package/dist/_examples/controller/order/order-controller-streamer.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-controller-streamer.js.map +1 -1
- package/dist/_examples/controller/order/order-controller.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-controller.js.map +1 -1
- package/dist/_examples/controller/order/order-cron.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-cron.js.map +1 -1
- package/dist/_examples/controller/order/order-crud.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-crud.js.map +1 -1
- package/dist/_examples/controller/order/order-streamer.d.ts.map +1 -1
- package/dist/_examples/controller/order/order-streamer.js.map +1 -1
- package/dist/_examples/controller/order-item/order-item-config.d.ts.map +1 -1
- package/dist/_examples/controller/order-item/order-item-config.js.map +1 -1
- package/dist/_examples/controller/order-item/order-item-controller-streamer.d.ts.map +1 -1
- package/dist/_examples/controller/order-item/order-item-controller-streamer.js.map +1 -1
- package/dist/_examples/controller/order-item/order-item-controller.d.ts.map +1 -1
- package/dist/_examples/controller/order-item/order-item-controller.js.map +1 -1
- package/dist/_examples/controller/order-item/order-item-crud.d.ts.map +1 -1
- package/dist/_examples/controller/order-item/order-item-crud.js.map +1 -1
- package/dist/_examples/controller/order-item/order-item-streamer.d.ts.map +1 -1
- package/dist/_examples/controller/order-item/order-item-streamer.js.map +1 -1
- package/dist/_examples/controller/profile/profile-crud-simple.d.ts.map +1 -1
- package/dist/_examples/controller/profile/profile-crud-simple.js.map +1 -1
- package/dist/_examples/controller/profile/profile-crud.d.ts.map +1 -1
- package/dist/_examples/controller/profile/profile-crud.js.map +1 -1
- package/dist/_examples/controller/profile/profile.config.d.ts.map +1 -1
- package/dist/_examples/controller/profile/profile.config.js.map +1 -1
- package/dist/_examples/controller/profile/profile.controller.d.ts.map +1 -1
- package/dist/_examples/controller/profile/profile.controller.js.map +1 -1
- package/dist/_examples/model-shared/example.model.js.map +1 -1
- package/dist/_examples/model-shared/order.model.js.map +1 -1
- package/dist/_examples/repositories/order/order-db.repo.js.map +1 -1
- package/dist/_examples/repositories/order/order-es.repo.js.map +1 -1
- package/dist/_examples/repositories/order/order-item-db.repo.js.map +1 -1
- package/dist/_examples/repositories/order/order-item-es.repo.js.map +1 -1
- package/dist/_examples/repositories/profile/profile-repo-db.js.map +1 -1
- package/dist/_examples/service/order/order-item-service-stream.d.ts.map +1 -1
- package/dist/_examples/service/order/order-item-service-stream.js.map +1 -1
- package/dist/_examples/service/order/order-item-service.d.ts.map +1 -1
- package/dist/_examples/service/order/order-item-service.js.map +1 -1
- package/dist/_examples/service/order/order-service-stream.d.ts.map +1 -1
- package/dist/_examples/service/order/order-service-stream.js.map +1 -1
- package/dist/_examples/service/order/order-service.d.ts.map +1 -1
- package/dist/_examples/service/order/order-service.js.map +1 -1
- package/dist/_examples/service/profile-service.d.ts.map +1 -1
- package/dist/_examples/service/profile-service.js.map +1 -1
- package/dist/controller/base-controller.d.ts.map +1 -1
- package/dist/controller/base-controller.js.map +1 -1
- package/dist/controller/controller-api.d.ts.map +1 -1
- package/dist/controller/controller-api.js.map +1 -1
- package/dist/controller/controller-request.d.ts +3 -3
- package/dist/controller/controller-request.d.ts.map +1 -1
- package/dist/controller/controller-request.js.map +1 -1
- package/dist/controller/controller-role.d.ts.map +1 -1
- package/dist/controller/controller-role.js.map +1 -1
- package/dist/controller/controller-stream.d.ts.map +1 -1
- package/dist/controller/controller-stream.js.map +1 -1
- package/dist/exception/errors.d.ts.map +1 -1
- package/dist/exception/errors.js.map +1 -1
- package/dist/exception/exception-handler.d.ts.map +1 -1
- package/dist/exception/exception-handler.js.map +1 -1
- package/dist/function/cognito/cognito.function.js.map +1 -1
- package/dist/function/logger.d.ts.map +1 -1
- package/dist/function/s3/s3.function.js.map +1 -1
- package/dist/model/base.config.d.ts.map +1 -1
- package/dist/model/base.config.js.map +1 -1
- package/dist/model/base.model.js.map +1 -1
- package/dist/model/cognito-user.model.js.map +1 -1
- package/dist/model/dynamodb.model.d.ts.map +1 -1
- package/dist/model/dynamodb.model.js.map +1 -1
- package/dist/model/filter.model.js.map +1 -1
- package/dist/model/http.model.js.map +1 -1
- package/dist/model/validation.model.js.map +1 -1
- package/dist/provider/apigateway.d.ts.map +1 -1
- package/dist/provider/apigateway.js.map +1 -1
- package/dist/provider/dynamodb.js.map +1 -1
- package/dist/provider/opensearch.d.ts.map +1 -1
- package/dist/provider/opensearch.js.map +1 -1
- package/dist/repositories/base-db.repo.d.ts.map +1 -1
- package/dist/repositories/base-db.repo.js.map +1 -1
- package/dist/repositories/base-es.repo.d.ts.map +1 -1
- package/dist/repositories/base-es.repo.js.map +1 -1
- package/dist/service/api.services/api.service.d.ts.map +1 -1
- package/dist/service/api.services/api.service.js.map +1 -1
- package/dist/service/auth.service.d.ts.map +1 -1
- package/dist/service/auth.service.js.map +1 -1
- package/dist/service/base.service.d.ts.map +1 -1
- package/dist/service/base.service.js.map +1 -1
- package/dist/service/crud-operations.d.ts +8 -2
- package/dist/service/crud-operations.d.ts.map +1 -1
- package/dist/service/crud-operations.js +24 -5
- package/dist/service/crud-operations.js.map +1 -1
- package/dist/service/crud.service.d.ts +1 -0
- package/dist/service/crud.service.d.ts.map +1 -1
- package/dist/service/crud.service.interface.d.ts +5 -0
- package/dist/service/crud.service.interface.d.ts.map +1 -1
- package/dist/service/crud.service.interface.js.map +1 -1
- package/dist/service/crud.service.js +3 -0
- package/dist/service/crud.service.js.map +1 -1
- package/dist/service/key-aws.services.d.ts.map +1 -1
- package/dist/service/key-aws.services.js.map +1 -1
- package/dist/service/permission.cache.d.ts.map +1 -1
- package/dist/service/permission.cache.js.map +1 -1
- package/dist/service/permission.repo.d.ts.map +1 -1
- package/dist/service/permission.repo.js.map +1 -1
- package/dist/service/permission.service.d.ts.map +1 -1
- package/dist/service/permission.service.js.map +1 -1
- package/dist/service/socket.service.d.ts.map +1 -1
- package/dist/service/socket.service.js.map +1 -1
- package/dist/service/stream.service.d.ts.map +1 -1
- package/dist/service/stream.service.js.map +1 -1
- package/dist/utils/array.util.d.ts.map +1 -1
- package/dist/utils/array.util.js.map +1 -1
- package/dist/utils/auth.util.js.map +1 -1
- package/dist/utils/data.util.d.ts.map +1 -1
- package/dist/utils/data.util.js.map +1 -1
- package/dist/utils/date.util.js.map +1 -1
- package/dist/utils/dynamodb.utils.d.ts.map +1 -1
- package/dist/utils/dynamodb.utils.js.map +1 -1
- package/dist/utils/env.util.d.ts.map +1 -1
- package/dist/utils/env.util.js.map +1 -1
- package/dist/utils/http/http-request.d.ts.map +1 -1
- package/dist/utils/http/http-request.js.map +1 -1
- package/dist/utils/http/http.util.d.ts.map +1 -1
- package/dist/utils/http/http.util.js.map +1 -1
- package/dist/utils/json.util.js.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.aggs.js.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.d.ts.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.js.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.keyword.js.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.sort.js.map +1 -1
- package/dist/utils/opensearch/opensearch.parser.utils.js.map +1 -1
- package/dist/utils/opensearch/opensearch.transform.js.map +1 -1
- package/dist/utils/opensearch.utils.js.map +1 -1
- package/dist/utils/reflection.util.d.ts.map +1 -1
- package/dist/utils/reflection.util.js.map +1 -1
- package/dist/utils/string.util.d.ts.map +1 -1
- package/dist/utils/string.util.js.map +1 -1
- package/dist/utils/validation.util.d.ts.map +1 -1
- package/dist/utils/validation.util.js.map +1 -1
- package/package.json +27 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.model.js","sourceRoot":"","sources":["../../src/model/validation.model.ts"],"names":[],"mappings":";;;AAgBA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EALW,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.model.js","sourceRoot":"","sources":["../../src/model/validation.model.ts"],"names":[],"mappings":";;;AAgBA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EALW,WAAW,aAAX,WAAW,GAAX,WAAW,QAKtB;AAED,IAAY,MAMX;AAND,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,yBAAe,CAAA;IACf,yBAAe,CAAA;IACf,2BAAiB,CAAA;AACnB,CAAC,EANW,MAAM,aAAN,MAAM,GAAN,MAAM,QAMjB","sourcesContent":["import { HttpMethod } from \"@chinggis/core\";\n\nexport interface ResponseFields {\n include?: string[];\n exclude?: string[];\n}\n\n/** Path-based permission definition */\nexport interface EndpointPolicy {\n method: HttpMethod;\n path: string;\n access?: Access[];\n validator?: any;\n response?: ResponseFields;\n}\n\nexport enum RequestType {\n GUEST = \"guest\",\n USER = \"user\",\n ADMIN = \"admin\",\n SYSTEM = \"system\",\n}\n\nexport enum Access {\n PUBLIC = \"public\",\n USER = \"user\",\n OWNER = \"owner\",\n ADMIN = \"admin\",\n SYSTEM = \"system\",\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apigateway.d.ts","sourceRoot":"","sources":["../../src/provider/apigateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAIxF,qBACa,oBAAqB,SAAQ,6BAA6B
|
|
1
|
+
{"version":3,"file":"apigateway.d.ts","sourceRoot":"","sources":["../../src/provider/apigateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAIxF,qBACa,oBAAqB,SAAQ,6BAA6B;IACrE,cAIC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apigateway.js","sourceRoot":"","sources":["../../src/provider/apigateway.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4FAAwF;AACxF,mCAAiC;AACjC,oCAA0C;AAGnC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,8DAA6B;IACrE;QACE,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAA,sBAAc,EAAC,aAAa,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAA
|
|
1
|
+
{"version":3,"file":"apigateway.js","sourceRoot":"","sources":["../../src/provider/apigateway.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4FAAwF;AACxF,mCAAiC;AACjC,oCAA0C;AAGnC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,8DAA6B;IACrE;QACE,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAA,sBAAc,EAAC,aAAa,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;;+BANY,oBAAoB;IADhC,IAAA,gBAAO,EAAC,sBAAsB,CAAC;;GACnB,oBAAoB,CAMhC","sourcesContent":["import { ApiGatewayManagementApiClient } from \"@aws-sdk/client-apigatewaymanagementapi\";\nimport { Service } from \"typedi\";\nimport { getEnvVariable } from \"../utils\";\n\n@Service(\"ApiGatewayManagement\")\nexport class ApiGatewayManagement extends ApiGatewayManagementApiClient {\n constructor() {\n super({\n endpoint: getEnvVariable(\"WS_ENDPOINT\"),\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../src/provider/dynamodb.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAiC;AACjC,8DAA0D;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gCAAc;CAAG,CAAA
|
|
1
|
+
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../src/provider/dynamodb.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAiC;AACjC,8DAA0D;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gCAAc;CAAG,CAAA;;2BAA1C,gBAAgB;IAD5B,IAAA,gBAAO,EAAC,kBAAkB,CAAC;GACf,gBAAgB,CAA0B","sourcesContent":["import { Service } from \"typedi\";\nimport { DynamoDBClient } from \"@aws-sdk/client-dynamodb\";\n\n@Service(\"DBClientDynamoDB\")\nexport class DBClientDynamoDB extends DynamoDBClient {}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opensearch.d.ts","sourceRoot":"","sources":["../../src/provider/opensearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAKxD,qBAAa,gBAAiB,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"opensearch.d.ts","sourceRoot":"","sources":["../../src/provider/opensearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAKxD,qBAAa,gBAAiB,SAAQ,MAAM;IAC1C,YAAY,IAAI,EAAE,MAAM,EAWvB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opensearch.js","sourceRoot":"","sources":["../../src/provider/opensearch.ts"],"names":[],"mappings":";;;AAAA,+DAAwD;AACxD,gFAAoE;AACpE,4DAAoE;AACpE,oCAA0C;AAE1C,
|
|
1
|
+
{"version":3,"file":"opensearch.js","sourceRoot":"","sources":["../../src/provider/opensearch.ts"],"names":[],"mappings":";;;AAAA,+DAAwD;AACxD,gFAAoE;AACpE,4DAAoE;AACpE,oCAA0C;AAE1C,sBAA8B,SAAQ,mBAAM;IAC1C,YAAY,IAAY;QACtB,KAAK,CAAC;YACJ,GAAG,IAAA,oBAAc,EAAC;gBAChB,MAAM,EAAE,IAAA,sBAAc,EAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACnE,cAAc,EAAE,GAAG,EAAE;oBACnB,MAAM,mBAAmB,GAAG,IAAA,0CAAe,GAAE,CAAC;oBAC9C,OAAO,mBAAmB,EAAE,CAAC;gBAC/B,CAAC;aACF,CAAC;YACF,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { Client } from \"@opensearch-project/opensearch\";\nimport { defaultProvider } from \"@aws-sdk/credential-provider-node\";\nimport { AwsSigv4Signer } from \"@opensearch-project/opensearch/aws\";\nimport { getEnvVariable } from \"../index\";\n\nexport class OpenSearchClient extends Client {\n constructor(node: string) {\n super({\n ...AwsSigv4Signer({\n region: getEnvVariable(\"REGION\", new Error(\"AWS_REGION_NOT_FOUND\")),\n getCredentials: () => {\n const credentialsProvider = defaultProvider();\n return credentialsProvider();\n },\n }),\n node: node,\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-db.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/base-db.repo.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,UAAU,EAQV,cAAc,EAGd,IAAI,EAML,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIrD,qBAAa,cAAc,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuD;IAChF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IAE3C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"base-db.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/base-db.repo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-db.repo.js","sourceRoot":"","sources":["../../src/repositories/base-db.repo.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributeValue,\n BatchGetItemCommand,\n BatchWriteItemCommand,\n BatchWriteItemCommandInput,\n DeleteItemCommand,\n GetItemCommand,\n PutItemCommand,\n QueryCommand,\n QueryCommandInput,\n QueryCommandOutput,\n ReturnValue,\n ScanCommand,\n ScanCommandInput,\n ScanCommandOutput,\n TransactWriteItemsCommand,\n TransactWriteItemsCommandInput,\n UpdateItemCommand,\n UpdateItemCommandInput,\n} from \"@aws-sdk/client-dynamodb\";\nimport { marshall, unmarshall } from \"@aws-sdk/util-dynamodb\";\nimport {\n addIndexValue,\n BaseRepoDB,\n buildDynamoDBFilterConditions,\n buildDynamoDBQueryCommand,\n buildDynamoDBScanCommand,\n buildQueryDB,\n buildUpdateExpressions,\n chunkArray,\n DBClientDynamoDB,\n DynamoIndexMap,\n generateLastEvaluatedKey,\n generateUUID,\n List,\n parseIndexFilter,\n parseLastEvaluatedKey,\n removeFields,\n toBase64,\n unMarshall,\n} from \"../index\";\nimport Container, { Service } from \"typedi\";\nimport { ErrorDynamoDB } from \"../exception/errors\";\nimport { BaseEntity, Filter } from \"@chinggis/types\";\n\nService(\"BaseRepoDB\");\n\nexport class BaseRepoDBImpl<T extends BaseEntity> implements BaseRepoDB<T> {\n private readonly dynamoDb: DBClientDynamoDB = Container.get(\"DBClientDynamoDB\");\n private _tableName: string;\n private _indexMap: DynamoIndexMap;\n private readonly DYNAMO_QUERY_LIMIT: number = 25;\n\n async deleteFields(id: string, fieldNames: string[]): Promise<Partial<T>> {\n if (!id || fieldNames.length === 0) {\n return undefined;\n }\n\n const partitionKey = this._indexMap.partitionKey;\n const expressionAttributeNames: Record<string, string> = {};\n const removeExpressions: string[] = [];\n\n fieldNames.forEach((fieldPath, index) => {\n const parts = fieldPath.split(\".\");\n const pathPlaceholders: string[] = [];\n\n parts.forEach((part, partIndex) => {\n const namePlaceholder = `#field${index}_${partIndex}`;\n pathPlaceholders.push(namePlaceholder);\n expressionAttributeNames[namePlaceholder] = part;\n });\n\n removeExpressions.push(pathPlaceholders.join(\".\"));\n });\n\n const updateExpression = `REMOVE ${removeExpressions.join(\", \")}`;\n\n const params = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: id }),\n UpdateExpression: updateExpression,\n ExpressionAttributeNames: expressionAttributeNames,\n ReturnValues: \"ALL_NEW\" as const,\n };\n\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n if (!result.Attributes) {\n throw new Error(\"No attributes returned from UpdateItem.\");\n }\n\n return unmarshall(result.Attributes) as Partial<T>;\n }\n\n fieldNotExists(fieldName: string, from: number, size: number): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async incrementValueByField(\n entityId: string,\n fieldName: string,\n value?: number,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n if (value !== undefined && value < 0) {\n throw new Error(\"Increment operation only supports positive values\");\n }\n return this.incrementValuesByFields(entityId, { [fieldName]: value ?? 1 }, nestedFieldSeparator);\n }\n\n async decrementValueByField(\n entityId: string,\n fieldName: string,\n value?: number,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n if (value !== undefined && value > 0) {\n throw new ErrorDynamoDB(\n this._tableName,\n `Decrement operation only supports negative values, inputValue: ${value}, for field: ${fieldName}`,\n );\n }\n return this.incrementValuesByFields(entityId, { [fieldName]: value ?? -1 }, nestedFieldSeparator);\n }\n\n async incrementValuesByFields(\n entityId: string,\n adjustments: Record<string, number>,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n const expressionAttributeNames: Record<string, string> = {};\n const expressionAttributeValues: Record<string, any> = {};\n const setExpressions: string[] = [];\n\n let fieldIndex = 0;\n expressionAttributeValues[\":start\"] = marshall(0);\n\n for (const [fieldName, delta] of Object.entries(adjustments)) {\n if (typeof delta !== \"number\") {\n throw new Error(`Delta for field '${fieldName}' must be a number`);\n }\n\n const pathSegments = nestedFieldSeparator ? fieldName.split(nestedFieldSeparator) : [fieldName];\n\n const pathPlaceholders: string[] = [];\n pathSegments.forEach((segment, segmentIndex) => {\n const namePlaceholder = `#f${fieldIndex}_${segmentIndex}`;\n expressionAttributeNames[namePlaceholder] = segment;\n pathPlaceholders.push(namePlaceholder);\n });\n\n const pathExpr = pathPlaceholders.join(\".\");\n const deltaPlaceholder = `:delta${fieldIndex}`;\n\n expressionAttributeValues[deltaPlaceholder] = marshall(delta);\n\n setExpressions.push(`${pathExpr} = if_not_exists(${pathExpr}, :start) + ${deltaPlaceholder}`);\n\n fieldIndex++;\n }\n\n if (setExpressions.length === 0) {\n throw new Error(\"No adjustments provided\");\n }\n\n const params: UpdateItemCommandInput = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: entityId }),\n UpdateExpression: `SET ${setExpressions.join(\", \")}`,\n ExpressionAttributeNames: expressionAttributeNames,\n ExpressionAttributeValues: expressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n };\n\n try {\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n return unmarshall(result.Attributes) as T;\n } catch (error: any) {\n if (error.name === \"ValidationException\" && error.message?.includes(\"incorrect data type\")) {\n throw new Error(\n `Database Type Error: Cannot increment fields. An existing field in the database is not a Number type.`,\n );\n }\n\n if (\n error.name === \"ValidationException\" &&\n error.message?.includes(\"document path provided in the update expression is invalid\")\n ) {\n throw new Error(\n `Path Error: Cannot increment fields because one of the parent maps/objects does not exist in the document.`,\n );\n }\n\n console.error(\"incrementValuesByFields unexpected error: \", error);\n throw error;\n }\n }\n\n async decrementValuesByFields(\n entityId: string,\n adjustments: Record<string, number>,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n for (const [fieldName, value] of Object.entries(adjustments)) {\n if (typeof value === \"number\" && value > 0) {\n throw new ErrorDynamoDB(\n this._tableName,\n `Decrement operation only supports negative values, inputValue: ${value}, for field: ${fieldName}`,\n );\n }\n }\n return this.incrementValuesByFields(entityId, adjustments, nestedFieldSeparator);\n }\n\n transactWrite?(operations: any[]): Promise<boolean> {\n throw new Error(\"Method not implemented.\");\n }\n\n async update(entity: Partial<T>): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n if (!entity[partitionKey]) {\n throw new ErrorDynamoDB(this._tableName, `Entity must have value in field ${partitionKey}`);\n }\n\n const indexedItem = addIndexValue(entity, this._indexMap);\n\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(\n indexedItem,\n [partitionKey],\n );\n\n const params = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: indexedItem[partitionKey] }),\n UpdateExpression,\n ExpressionAttributeNames,\n ExpressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n };\n\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n if (!result.Attributes) {\n throw new Error(\"No attributes returned from UpdateItem.\");\n }\n return unmarshall(result.Attributes) as T;\n }\n\n async updateFields(entity: Partial<T>, fields: string[]): Promise<Partial<T>> {\n if (!entity || !fields?.length) return entity;\n\n const partitionKey = this._indexMap?.partitionKey;\n if (!partitionKey) return entity;\n\n const entityId = entity[partitionKey as keyof T] as unknown as string;\n if (!entityId) return entity;\n\n const updateExpressions: string[] = [];\n const expressionAttributeNames: Record<string, string> = {};\n const expressionAttributeValues: Record<string, any> = {}; // Typ je nach deinem SDK Import\n\n fields.forEach((fieldPath, index) => {\n if (fieldPath === partitionKey) return;\n\n const rawValue = fieldPath.split(\".\").reduce((acc: any, part) => acc?.[part], entity);\n\n if (rawValue === undefined) return;\n const parts = fieldPath.split(\".\");\n const pathPlaceholders: string[] = [];\n\n parts.forEach((part, partIndex) => {\n const namePlaceholder = `#field${index}_${partIndex}`;\n pathPlaceholders.push(namePlaceholder);\n expressionAttributeNames[namePlaceholder] = part; // Mappt z.B. \"#field0_0\" auf \"loyalty\"\n });\n\n const fullPath = pathPlaceholders.join(\".\");\n const valuePlaceholder = `:val${index}`;\n\n updateExpressions.push(`${fullPath} = ${valuePlaceholder}`);\n\n const marshalledWrapper = marshall({ temp: rawValue }, { removeUndefinedValues: true });\n expressionAttributeValues[valuePlaceholder] = marshalledWrapper.temp;\n });\n\n if (updateExpressions.length === 0) return entity;\n\n const response = await this.dynamoDb.send(\n new UpdateItemCommand({\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: entityId }),\n UpdateExpression: `SET ${updateExpressions.join(\", \")}`,\n ExpressionAttributeNames: expressionAttributeNames,\n ExpressionAttributeValues: expressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n }),\n );\n\n return response.Attributes ? (unmarshall(response.Attributes) as Partial<T>) : entity;\n }\n\n async updateMany(entityList: Partial<T>[], fields: string[], isTransactional: boolean): Promise<boolean> {\n if (isTransactional === undefined || isTransactional === false || isTransactional === null)\n return this.updateManyNormal(entityList, fields);\n\n return this.updateManyTransactional(entityList, fields);\n }\n\n async save(entity: Partial<T>): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n if (!entity[partitionKey]) throw new Error(`Entity must have a ${partitionKey} field.`);\n\n const indexedItem = addIndexValue(entity, this._indexMap);\n\n const params = {\n TableName: this._tableName,\n Item: marshall(indexedItem, { removeUndefinedValues: true }),\n };\n try {\n await this.dynamoDb.send(new PutItemCommand(params));\n\n return entity as T;\n } catch (error) {\n console.error(\"Error saving entity:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async saveMany(entities: Partial<T>[], isTransactional?: boolean): Promise<Partial<T>[]> {\n if (isTransactional === undefined || isTransactional === null || isTransactional === false)\n return await this.saveManyNormal(entities);\n return await this.saveManyTransactional(entities);\n }\n\n async delete(id: string): Promise<boolean> {\n const params = {\n TableName: this._tableName,\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n };\n\n try {\n await this.dynamoDb.send(new DeleteItemCommand(params));\n return true;\n } catch (error) {\n console.error(\"Error deleting item:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async deleteMany(ids: string[]): Promise<boolean> {\n if (ids?.length === 0) return false;\n const chunked = chunkArray(ids, 25);\n for (const chunk of chunked) {\n const deleteRequests = chunk.map((id) => {\n return {\n DeleteRequest: {\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n },\n };\n });\n\n const params = {\n RequestItems: {\n [this._tableName]: deleteRequests,\n },\n };\n\n await this.dynamoDb.send(new BatchWriteItemCommand(params));\n }\n return true;\n }\n\n async findById(id: string): Promise<T> {\n const params = {\n TableName: this._tableName,\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n };\n\n try {\n const result = await this.dynamoDb.send(new GetItemCommand(params));\n if (!result.Item) return null;\n return unmarshall(result.Item) as T;\n } catch (error) {\n console.error(\"Error getting item:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async findByIds(ids: string[]): Promise<T[]> {\n let items: T[] = [];\n if (!ids || ids.length === 0) throw new Error(\"Item must have entityIds\");\n\n const chunked = chunkArray(ids, 100);\n for (const chunk of chunked) {\n const keys = chunk.map((id) => ({ [this._indexMap.partitionKey]: { S: id } }));\n const params = {\n RequestItems: {\n [this._tableName]: { Keys: keys },\n },\n };\n\n const response = await this.dynamoDb.send(new BatchGetItemCommand(params));\n\n items = items.concat(response.Responses?.[this._tableName]?.map((item) => unmarshall(item)) as T[]) ?? [];\n }\n return items;\n }\n\n async find(filter: Filter, debug?: boolean): Promise<List<Partial<T>>> {\n if (!filter) filter = { size: this.DYNAMO_QUERY_LIMIT };\n\n // Enforce Query-only: require indexName & indexValue; otherwise instruct the caller to use scan\n if (!filter.indexName || filter.indexValue === undefined || filter.indexValue === null) {\n throw new ErrorDynamoDB(\n this._tableName,\n \"find in by index\",\n \"find requires indexName and indexValue; use scan() otherwise\",\n );\n }\n\n const dbQuery = buildDynamoDBQueryCommand({\n tableName: this._tableName,\n filter,\n filterCondition: buildDynamoDBFilterConditions(filter, this._indexMap),\n indexMap: this._indexMap,\n });\n\n const response = await this.sendCommandPage<T>(dbQuery, filter?.lastKey, debug);\n const fieldsRemoved = removeFields(response?.items, filter.fieldsInclude, filter.fieldsExclude);\n return { items: fieldsRemoved, lastKey: response?.lastKey };\n }\n\n async scan(filter: Filter, debug?: boolean): Promise<List<Partial<T>>> {\n if (!filter) filter = { size: this.DYNAMO_QUERY_LIMIT };\n const queryCountLimit = this.validateScanQueryCountLimit(filter);\n const expression = buildDynamoDBFilterConditions(filter, this._indexMap);\n const scanInput = buildDynamoDBScanCommand({ tableName: this._tableName, filter, expression });\n const response = await this.sendCommandDeep<T>(\n scanInput,\n filter?.lastKey,\n queryCountLimit,\n filter?.size ?? this.DYNAMO_QUERY_LIMIT,\n debug,\n );\n const fieldsRemoved = removeFields(response?.items, filter.fieldsInclude, filter.fieldsExclude);\n return { items: fieldsRemoved, lastKey: response?.lastKey };\n }\n\n async findOne(filter: Filter): Promise<T> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n queryInput.Limit = 1;\n\n const result = await this.dynamoDb.send(new QueryCommand(queryInput));\n\n if (!result.Items || result.Items.length === 0) return null;\n return unmarshall(result.Items[0]) as T;\n }\n\n findByIndex(indexName: string, value: string): Promise<List<Partial<T>>> {\n return this.find(parseIndexFilter(indexName + \"=\" + value, this._indexMap));\n }\n\n async count(filter: Filter): Promise<number> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n queryInput.Select = \"COUNT\";\n\n const result = await this.dynamoDb.send(new QueryCommand(queryInput));\n return result.Count ?? 0;\n }\n\n async exists(id: string): Promise<boolean> {\n const key = marshall({ [this._indexMap.partitionKey]: id });\n\n const result = await this.dynamoDb.send(\n new GetItemCommand({\n TableName: this._tableName,\n Key: key,\n ProjectionExpression: this._indexMap.partitionKey,\n }),\n );\n\n return !!result.Item;\n }\n\n async getRaw(filter: Filter): Promise<any> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n return this.dynamoDb.send(new QueryCommand(queryInput));\n }\n\n async transactionRead<T>(operations: { id: string; sortKey?: string }[]): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async transactRead?<TResult = any>(operations: any[]): Promise<TResult[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async transactionWrite(operations: {\n create?: { tableName: string; item: Record<string, any> }[];\n update?: {\n tableName: string;\n key: { id: string };\n updateData: Record<string, any>;\n }[];\n delete?: { tableName: string; key: { id: string } }[];\n }): Promise<boolean> {\n const transactItems: any[] = [];\n\n // Create operations\n if (operations.create) {\n for (const { tableName, item } of operations.create) {\n if (!item?.id) {\n item.id = generateUUID();\n }\n transactItems.push({\n Put: {\n TableName: tableName,\n Item: marshall(item, { removeUndefinedValues: true }),\n },\n });\n }\n }\n\n // Update operations\n if (operations.update) {\n for (const { tableName, key, updateData } of operations.update) {\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(\n updateData,\n [\"id\"],\n );\n\n transactItems.push({\n Update: {\n TableName: tableName,\n Key: marshall(key),\n UpdateExpression,\n ExpressionAttributeNames,\n ExpressionAttributeValues,\n },\n });\n }\n }\n\n // Delete operations\n if (operations.delete) {\n for (const { tableName, key } of operations.delete) {\n transactItems.push({\n Delete: {\n TableName: tableName,\n Key: marshall(key),\n },\n });\n }\n }\n\n if (transactItems.length === 0) return false;\n\n // Execute transaction\n try {\n await this.dynamoDb.send(new TransactWriteItemsCommand({ TransactItems: transactItems }));\n return true;\n } catch (error) {\n console.error(\"Transaction failed:\", error);\n throw new ErrorDynamoDB(this._tableName, transactItems, error);\n }\n }\n\n getTableName() {\n return this._tableName;\n }\n\n setIndexMap(indexMap: DynamoIndexMap): boolean {\n this._indexMap = indexMap;\n return true;\n }\n\n setTable(tableName: string): boolean {\n this._tableName = tableName;\n return true;\n }\n\n getIndexMap(): DynamoIndexMap {\n return this._indexMap;\n }\n\n private async updateManyNormal(entityList: Partial<T>[], fieldNames: string[]): Promise<boolean> {\n return this.updateManyTransactional(entityList, fieldNames); // todo implement normal updateMany\n }\n\n private async updateManyTransactional(entityList: Partial<T>[], fieldNames: string[]): Promise<boolean> {\n if (entityList.length === 0) return false;\n\n if (!fieldNames || fieldNames.length === 0) {\n await this.saveMany(entityList, true);\n return true;\n }\n\n const partitionKey = this._indexMap.partitionKey;\n const selectedFields = Array.from(new Set([...(fieldNames || []), partitionKey]));\n const entityListCleaned = removeFields(entityList, selectedFields);\n\n const indexedItems = entityListCleaned.map((entity) => {\n return addIndexValue(entity, this._indexMap);\n });\n\n const transactItems = indexedItems\n .map((item) => {\n if (!item[partitionKey])\n throw new Error(\n `Item must have an ${partitionKey} field. Entity: ${JSON.stringify(item, null, 2)}, \\nupdateFields: ${JSON.stringify(selectedFields)}`,\n );\n\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(item, [\n partitionKey,\n ]);\n\n return {\n Update: {\n TableName: this._tableName,\n Key: { [partitionKey]: { S: item[partitionKey] } }, // id-г шууд key болгож дамжуулах\n UpdateExpression,\n ExpressionAttributeValues,\n ExpressionAttributeNames,\n },\n };\n })\n .filter(Boolean) as any[]; // filter(Boolean) нь хоосон утгуудыг арилгана.\n\n if (transactItems.length < 1) return false;\n\n const chunkedItems = chunkArray(transactItems, 25); // 25-аас дээш бол багцлах\n\n for (const chunk of chunkedItems) await this.dynamoDb.send(new TransactWriteItemsCommand({ TransactItems: chunk }));\n\n return true;\n }\n\n private async saveManyNormal(entities: Partial<T>[]): Promise<Partial<T>[]> {\n if (entities.length === 0) throw new Error(\"Cannot save an empty array of entities.\");\n\n const allSavedEntities: Partial<T>[] = [];\n\n for (const chunk of chunkArray(entities, 25)) {\n chunk.forEach((item) => addIndexValue(item, this._indexMap));\n const putRequests = chunk.map((entity) => ({\n PutRequest: { Item: marshall(entity, { removeUndefinedValues: true }) },\n }));\n\n const params: BatchWriteItemCommandInput = { RequestItems: { [this._tableName]: putRequests } };\n\n const result = await this.dynamoDb.send(new BatchWriteItemCommand(params));\n\n if (result.UnprocessedItems && Object.keys(result.UnprocessedItems).length > 0)\n console.warn(\"⚠️ Some items were unprocessed and need to be retried.\", result.UnprocessedItems);\n\n allSavedEntities.push(...chunk);\n }\n\n return allSavedEntities;\n }\n\n private async saveManyTransactional(entities: Partial<T>[]): Promise<Partial<T>[]> {\n if (entities.length === 0) throw new Error(\"Cannot save an empty array of entities.\");\n\n const allSavedEntities: Partial<T>[] = [];\n\n // DynamoDB TransactWrite limit: 25 actions per request\n for (const chunk of chunkArray(entities, 25)) {\n chunk.forEach((item) => addIndexValue(item, this._indexMap));\n\n const transactItems = chunk.map((entity) => ({\n Put: {\n TableName: this._tableName,\n Item: marshall(entity, { removeUndefinedValues: true }),\n },\n }));\n\n const params: TransactWriteItemsCommandInput = {\n TransactItems: transactItems,\n };\n\n try {\n await this.dynamoDb.send(new TransactWriteItemsCommand(params));\n allSavedEntities.push(...chunk);\n } catch (err) {\n console.error(\"❌ Transaction failed:\", err);\n throw err; // Re-throw so the caller knows it failed\n }\n }\n\n return allSavedEntities;\n }\n\n /**\n * Runs repeated Scan requests until enough filtered items are collected, the\n * table ends, or the caller's scan-request limit is reached.\n */\n private async sendCommandDeep<T>(\n queryInput: QueryCommandInput | ScanCommandInput,\n startKey?: string | Record<string, any>,\n queryCountLimit?: number,\n size = this.DYNAMO_QUERY_LIMIT,\n debug?: boolean,\n ): Promise<List<T>> {\n const result: List<T> = { items: [] };\n\n let scannedCount = 0;\n\n let lastEvaluatedKey: Record<string, AttributeValue>;\n\n if (startKey) {\n lastEvaluatedKey =\n typeof startKey === \"string\"\n ? parseLastEvaluatedKey<Record<string, AttributeValue>>(startKey) // will throw if invalid\n : startKey;\n }\n\n do {\n const remainingQueryCount = queryCountLimit === undefined ? undefined : queryCountLimit - scannedCount;\n if (remainingQueryCount !== undefined && remainingQueryCount <= 0) {\n result.lastKey = lastEvaluatedKey ? toBase64(JSON.stringify(lastEvaluatedKey)) : undefined;\n return result;\n }\n\n const response: QueryCommandOutput = await this.sendCommand(\n {\n ...queryInput,\n ExclusiveStartKey: lastEvaluatedKey,\n },\n debug,\n );\n const responseItems = response.Items ?? [];\n scannedCount++;\n\n if (result.items.length + responseItems.length > size) {\n const takeCount = size - result.items.length;\n const lastIncludedIndex = takeCount - 1;\n\n result.items.push(...unMarshall<T>(responseItems.slice(0, takeCount)));\n\n const index = this._indexMap.get(queryInput.IndexName);\n result.lastKey = generateLastEvaluatedKey(\n responseItems[lastIncludedIndex],\n index?.field ?? this._indexMap.partitionKey,\n index?.sortKeyField,\n );\n return result;\n }\n\n // no more items to fetch\n if (response.LastEvaluatedKey == undefined) {\n result?.items.push(...unMarshall<T>(responseItems));\n result.lastKey = undefined;\n return result;\n }\n\n if (responseItems.length === 0 && response.LastEvaluatedKey) {\n lastEvaluatedKey = response.LastEvaluatedKey;\n if (queryCountLimit !== undefined && scannedCount >= queryCountLimit) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n continue;\n }\n\n if (result?.items.length + responseItems.length <= size) {\n result?.items.push(...unMarshall<T>(responseItems));\n lastEvaluatedKey = response.LastEvaluatedKey;\n if (result?.items.length === size) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n if (queryCountLimit !== undefined && scannedCount >= queryCountLimit) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n continue;\n }\n } while (lastEvaluatedKey);\n\n return result;\n }\n\n /**\n * Enforces the per-call safety limit for scan pagination.\n */\n private validateScanQueryCountLimit(filter: Filter): number {\n const value = Number(filter.queryCountLimit);\n if (!Number.isInteger(value) || value <= 0) {\n throw new ErrorDynamoDB(this._tableName, \"scan\", \"scan requires queryCountLimit\");\n }\n if (value > 500) {\n throw new ErrorDynamoDB(this._tableName, \"scan\", \"scan queryCountLimit must not be greater than 500\");\n }\n return value;\n }\n\n /**\n * Executes one DynamoDB Query/Scan page and returns DynamoDB's pagination key.\n */\n private async sendCommandPage<T>(\n queryInput: QueryCommandInput | ScanCommandInput,\n startKey?: string | Record<string, any>,\n debug?: boolean,\n ): Promise<List<T>> {\n if (startKey) {\n queryInput.ExclusiveStartKey =\n typeof startKey === \"string\" ? parseLastEvaluatedKey<Record<string, AttributeValue>>(startKey) : startKey;\n }\n\n const response = await this.sendCommand(queryInput, debug);\n return {\n items: unMarshall<T>(response.Items),\n lastKey: response.LastEvaluatedKey ? toBase64(JSON.stringify(response.LastEvaluatedKey)) : undefined,\n };\n }\n\n /**\n * Sends one QueryCommand or ScanCommand after applying table/default limit.\n */\n private async sendCommand(\n commandInput: QueryCommandInput | ScanCommandInput,\n debug?: boolean,\n ): Promise<ScanCommandOutput | QueryCommandOutput> {\n commandInput.TableName = this._tableName;\n\n // if (startKey) {\n // commandInput.ExclusiveStartKey = typeof startKey === \"string\" ? parseLastEvaluatedKey(startKey) : startKey;\n // }\n\n const isQuery = \"KeyConditionExpression\" in commandInput;\n\n if (isQuery && !commandInput.Limit) {\n commandInput.Limit = this.DYNAMO_QUERY_LIMIT;\n }\n\n const command = isQuery ? new QueryCommand(commandInput) : new ScanCommand(commandInput);\n\n if (debug) log.debug(\"Sending command:\", commandInput);\n\n if (!this.dynamoDb) throw new ErrorDynamoDB(this._tableName, commandInput, \"dynamoDB client not initialized\");\n\n try {\n return await this.dynamoDb.send(command);\n } catch (error) {\n throw new ErrorDynamoDB(this._tableName, commandInput, error);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"base-db.repo.js","sourceRoot":"","sources":["../../src/repositories/base-db.repo.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AttributeValue,\n BatchGetItemCommand,\n BatchWriteItemCommand,\n BatchWriteItemCommandInput,\n DeleteItemCommand,\n GetItemCommand,\n PutItemCommand,\n QueryCommand,\n QueryCommandInput,\n QueryCommandOutput,\n ReturnValue,\n ScanCommand,\n ScanCommandInput,\n ScanCommandOutput,\n TransactWriteItemsCommand,\n TransactWriteItemsCommandInput,\n UpdateItemCommand,\n UpdateItemCommandInput,\n} from \"@aws-sdk/client-dynamodb\";\nimport { marshall, unmarshall } from \"@aws-sdk/util-dynamodb\";\nimport {\n addIndexValue,\n BaseRepoDB,\n buildDynamoDBFilterConditions,\n buildDynamoDBQueryCommand,\n buildDynamoDBScanCommand,\n buildQueryDB,\n buildUpdateExpressions,\n chunkArray,\n DBClientDynamoDB,\n DynamoIndexMap,\n generateLastEvaluatedKey,\n generateUUID,\n List,\n parseIndexFilter,\n parseLastEvaluatedKey,\n removeFields,\n toBase64,\n unMarshall,\n} from \"../index\";\nimport Container, { Service } from \"typedi\";\nimport { ErrorDynamoDB } from \"../exception/errors\";\nimport { BaseEntity, Filter } from \"@chinggis/types\";\n\nService(\"BaseRepoDB\");\n\nexport class BaseRepoDBImpl<T extends BaseEntity> implements BaseRepoDB<T> {\n private readonly dynamoDb: DBClientDynamoDB = Container.get(\"DBClientDynamoDB\");\n private _tableName: string;\n private _indexMap: DynamoIndexMap;\n private readonly DYNAMO_QUERY_LIMIT: number = 25;\n\n async deleteFields(id: string, fieldNames: string[]): Promise<Partial<T>> {\n if (!id || fieldNames.length === 0) {\n return undefined;\n }\n\n const partitionKey = this._indexMap.partitionKey;\n const expressionAttributeNames: Record<string, string> = {};\n const removeExpressions: string[] = [];\n\n fieldNames.forEach((fieldPath, index) => {\n const parts = fieldPath.split(\".\");\n const pathPlaceholders: string[] = [];\n\n parts.forEach((part, partIndex) => {\n const namePlaceholder = `#field${index}_${partIndex}`;\n pathPlaceholders.push(namePlaceholder);\n expressionAttributeNames[namePlaceholder] = part;\n });\n\n removeExpressions.push(pathPlaceholders.join(\".\"));\n });\n\n const updateExpression = `REMOVE ${removeExpressions.join(\", \")}`;\n\n const params = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: id }),\n UpdateExpression: updateExpression,\n ExpressionAttributeNames: expressionAttributeNames,\n ReturnValues: \"ALL_NEW\" as const,\n };\n\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n if (!result.Attributes) {\n throw new Error(\"No attributes returned from UpdateItem.\");\n }\n\n return unmarshall(result.Attributes) as Partial<T>;\n }\n\n fieldNotExists(fieldName: string, from: number, size: number): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async incrementValueByField(\n entityId: string,\n fieldName: string,\n value?: number,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n if (value !== undefined && value < 0) {\n throw new Error(\"Increment operation only supports positive values\");\n }\n return this.incrementValuesByFields(entityId, { [fieldName]: value ?? 1 }, nestedFieldSeparator);\n }\n\n async decrementValueByField(\n entityId: string,\n fieldName: string,\n value?: number,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n if (value !== undefined && value > 0) {\n throw new ErrorDynamoDB(\n this._tableName,\n `Decrement operation only supports negative values, inputValue: ${value}, for field: ${fieldName}`,\n );\n }\n return this.incrementValuesByFields(entityId, { [fieldName]: value ?? -1 }, nestedFieldSeparator);\n }\n\n async incrementValuesByFields(\n entityId: string,\n adjustments: Record<string, number>,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n const expressionAttributeNames: Record<string, string> = {};\n const expressionAttributeValues: Record<string, any> = {};\n const setExpressions: string[] = [];\n\n let fieldIndex = 0;\n expressionAttributeValues[\":start\"] = marshall(0);\n\n for (const [fieldName, delta] of Object.entries(adjustments)) {\n if (typeof delta !== \"number\") {\n throw new Error(`Delta for field '${fieldName}' must be a number`);\n }\n\n const pathSegments = nestedFieldSeparator ? fieldName.split(nestedFieldSeparator) : [fieldName];\n\n const pathPlaceholders: string[] = [];\n pathSegments.forEach((segment, segmentIndex) => {\n const namePlaceholder = `#f${fieldIndex}_${segmentIndex}`;\n expressionAttributeNames[namePlaceholder] = segment;\n pathPlaceholders.push(namePlaceholder);\n });\n\n const pathExpr = pathPlaceholders.join(\".\");\n const deltaPlaceholder = `:delta${fieldIndex}`;\n\n expressionAttributeValues[deltaPlaceholder] = marshall(delta);\n\n setExpressions.push(`${pathExpr} = if_not_exists(${pathExpr}, :start) + ${deltaPlaceholder}`);\n\n fieldIndex++;\n }\n\n if (setExpressions.length === 0) {\n throw new Error(\"No adjustments provided\");\n }\n\n const params: UpdateItemCommandInput = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: entityId }),\n UpdateExpression: `SET ${setExpressions.join(\", \")}`,\n ExpressionAttributeNames: expressionAttributeNames,\n ExpressionAttributeValues: expressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n };\n\n try {\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n return unmarshall(result.Attributes) as T;\n } catch (error: any) {\n if (error.name === \"ValidationException\" && error.message?.includes(\"incorrect data type\")) {\n throw new Error(\n `Database Type Error: Cannot increment fields. An existing field in the database is not a Number type.`,\n );\n }\n\n if (\n error.name === \"ValidationException\" &&\n error.message?.includes(\"document path provided in the update expression is invalid\")\n ) {\n throw new Error(\n `Path Error: Cannot increment fields because one of the parent maps/objects does not exist in the document.`,\n );\n }\n\n console.error(\"incrementValuesByFields unexpected error: \", error);\n throw error;\n }\n }\n\n async decrementValuesByFields(\n entityId: string,\n adjustments: Record<string, number>,\n nestedFieldSeparator?: string,\n ): Promise<T> {\n for (const [fieldName, value] of Object.entries(adjustments)) {\n if (typeof value === \"number\" && value > 0) {\n throw new ErrorDynamoDB(\n this._tableName,\n `Decrement operation only supports negative values, inputValue: ${value}, for field: ${fieldName}`,\n );\n }\n }\n return this.incrementValuesByFields(entityId, adjustments, nestedFieldSeparator);\n }\n\n transactWrite?(operations: any[]): Promise<boolean> {\n throw new Error(\"Method not implemented.\");\n }\n\n async update(entity: Partial<T>): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n if (!entity[partitionKey]) {\n throw new ErrorDynamoDB(this._tableName, `Entity must have value in field ${partitionKey}`);\n }\n\n const indexedItem = addIndexValue(entity, this._indexMap);\n\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(\n indexedItem,\n [partitionKey],\n );\n\n const params = {\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: indexedItem[partitionKey] }),\n UpdateExpression,\n ExpressionAttributeNames,\n ExpressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n };\n\n const result = await this.dynamoDb.send(new UpdateItemCommand(params));\n if (!result.Attributes) {\n throw new Error(\"No attributes returned from UpdateItem.\");\n }\n return unmarshall(result.Attributes) as T;\n }\n\n async updateFields(entity: Partial<T>, fields: string[]): Promise<Partial<T>> {\n if (!entity || !fields?.length) return entity;\n\n const partitionKey = this._indexMap?.partitionKey;\n if (!partitionKey) return entity;\n\n const entityId = entity[partitionKey as keyof T] as unknown as string;\n if (!entityId) return entity;\n\n const updateExpressions: string[] = [];\n const expressionAttributeNames: Record<string, string> = {};\n const expressionAttributeValues: Record<string, any> = {}; // Typ je nach deinem SDK Import\n\n fields.forEach((fieldPath, index) => {\n if (fieldPath === partitionKey) return;\n\n const rawValue = fieldPath.split(\".\").reduce((acc: any, part) => acc?.[part], entity);\n\n if (rawValue === undefined) return;\n const parts = fieldPath.split(\".\");\n const pathPlaceholders: string[] = [];\n\n parts.forEach((part, partIndex) => {\n const namePlaceholder = `#field${index}_${partIndex}`;\n pathPlaceholders.push(namePlaceholder);\n expressionAttributeNames[namePlaceholder] = part; // Mappt z.B. \"#field0_0\" auf \"loyalty\"\n });\n\n const fullPath = pathPlaceholders.join(\".\");\n const valuePlaceholder = `:val${index}`;\n\n updateExpressions.push(`${fullPath} = ${valuePlaceholder}`);\n\n const marshalledWrapper = marshall({ temp: rawValue }, { removeUndefinedValues: true });\n expressionAttributeValues[valuePlaceholder] = marshalledWrapper.temp;\n });\n\n if (updateExpressions.length === 0) return entity;\n\n const response = await this.dynamoDb.send(\n new UpdateItemCommand({\n TableName: this._tableName,\n Key: marshall({ [partitionKey]: entityId }),\n UpdateExpression: `SET ${updateExpressions.join(\", \")}`,\n ExpressionAttributeNames: expressionAttributeNames,\n ExpressionAttributeValues: expressionAttributeValues,\n ReturnValues: ReturnValue.ALL_NEW,\n }),\n );\n\n return response.Attributes ? (unmarshall(response.Attributes) as Partial<T>) : entity;\n }\n\n async updateMany(entityList: Partial<T>[], fields: string[], isTransactional: boolean): Promise<boolean> {\n if (isTransactional === undefined || isTransactional === false || isTransactional === null)\n return this.updateManyNormal(entityList, fields);\n\n return this.updateManyTransactional(entityList, fields);\n }\n\n async save(entity: Partial<T>): Promise<T> {\n const partitionKey = this._indexMap.partitionKey;\n\n if (!entity[partitionKey]) throw new Error(`Entity must have a ${partitionKey} field.`);\n\n const indexedItem = addIndexValue(entity, this._indexMap);\n\n const params = {\n TableName: this._tableName,\n Item: marshall(indexedItem, { removeUndefinedValues: true }),\n };\n try {\n await this.dynamoDb.send(new PutItemCommand(params));\n\n return entity as T;\n } catch (error) {\n console.error(\"Error saving entity:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async saveMany(entities: Partial<T>[], isTransactional?: boolean): Promise<Partial<T>[]> {\n if (isTransactional === undefined || isTransactional === null || isTransactional === false)\n return await this.saveManyNormal(entities);\n return await this.saveManyTransactional(entities);\n }\n\n async delete(id: string): Promise<boolean> {\n const params = {\n TableName: this._tableName,\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n };\n\n try {\n await this.dynamoDb.send(new DeleteItemCommand(params));\n return true;\n } catch (error) {\n console.error(\"Error deleting item:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async deleteMany(ids: string[]): Promise<boolean> {\n if (ids?.length === 0) return false;\n const chunked = chunkArray(ids, 25);\n for (const chunk of chunked) {\n const deleteRequests = chunk.map((id) => {\n return {\n DeleteRequest: {\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n },\n };\n });\n\n const params = {\n RequestItems: {\n [this._tableName]: deleteRequests,\n },\n };\n\n await this.dynamoDb.send(new BatchWriteItemCommand(params));\n }\n return true;\n }\n\n async findById(id: string): Promise<T> {\n const params = {\n TableName: this._tableName,\n Key: marshall({ [this._indexMap.partitionKey]: id }),\n };\n\n try {\n const result = await this.dynamoDb.send(new GetItemCommand(params));\n if (!result.Item) return null;\n return unmarshall(result.Item) as T;\n } catch (error) {\n console.error(\"Error getting item:\", error);\n throw new ErrorDynamoDB(this._tableName, params, error);\n }\n }\n\n async findByIds(ids: string[]): Promise<T[]> {\n let items: T[] = [];\n if (!ids || ids.length === 0) throw new Error(\"Item must have entityIds\");\n\n const chunked = chunkArray(ids, 100);\n for (const chunk of chunked) {\n const keys = chunk.map((id) => ({ [this._indexMap.partitionKey]: { S: id } }));\n const params = {\n RequestItems: {\n [this._tableName]: { Keys: keys },\n },\n };\n\n const response = await this.dynamoDb.send(new BatchGetItemCommand(params));\n\n items = items.concat(response.Responses?.[this._tableName]?.map((item) => unmarshall(item)) as T[]) ?? [];\n }\n return items;\n }\n\n async find(filter: Filter, debug?: boolean): Promise<List<Partial<T>>> {\n if (!filter) filter = { size: this.DYNAMO_QUERY_LIMIT };\n\n // Enforce Query-only: require indexName & indexValue; otherwise instruct the caller to use scan\n if (!filter.indexName || filter.indexValue === undefined || filter.indexValue === null) {\n throw new ErrorDynamoDB(\n this._tableName,\n \"find in by index\",\n \"find requires indexName and indexValue; use scan() otherwise\",\n );\n }\n\n const dbQuery = buildDynamoDBQueryCommand({\n tableName: this._tableName,\n filter,\n filterCondition: buildDynamoDBFilterConditions(filter, this._indexMap),\n indexMap: this._indexMap,\n });\n\n const response = await this.sendCommandPage<T>(dbQuery, filter?.lastKey, debug);\n const fieldsRemoved = removeFields(response?.items, filter.fieldsInclude, filter.fieldsExclude);\n return { items: fieldsRemoved, lastKey: response?.lastKey };\n }\n\n async scan(filter: Filter, debug?: boolean): Promise<List<Partial<T>>> {\n if (!filter) filter = { size: this.DYNAMO_QUERY_LIMIT };\n const queryCountLimit = this.validateScanQueryCountLimit(filter);\n const expression = buildDynamoDBFilterConditions(filter, this._indexMap);\n const scanInput = buildDynamoDBScanCommand({ tableName: this._tableName, filter, expression });\n const response = await this.sendCommandDeep<T>(\n scanInput,\n filter?.lastKey,\n queryCountLimit,\n filter?.size ?? this.DYNAMO_QUERY_LIMIT,\n debug,\n );\n const fieldsRemoved = removeFields(response?.items, filter.fieldsInclude, filter.fieldsExclude);\n return { items: fieldsRemoved, lastKey: response?.lastKey };\n }\n\n async findOne(filter: Filter): Promise<T> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n queryInput.Limit = 1;\n\n const result = await this.dynamoDb.send(new QueryCommand(queryInput));\n\n if (!result.Items || result.Items.length === 0) return null;\n return unmarshall(result.Items[0]) as T;\n }\n\n findByIndex(indexName: string, value: string): Promise<List<Partial<T>>> {\n return this.find(parseIndexFilter(indexName + \"=\" + value, this._indexMap));\n }\n\n async count(filter: Filter): Promise<number> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n queryInput.Select = \"COUNT\";\n\n const result = await this.dynamoDb.send(new QueryCommand(queryInput));\n return result.Count ?? 0;\n }\n\n async exists(id: string): Promise<boolean> {\n const key = marshall({ [this._indexMap.partitionKey]: id });\n\n const result = await this.dynamoDb.send(\n new GetItemCommand({\n TableName: this._tableName,\n Key: key,\n ProjectionExpression: this._indexMap.partitionKey,\n }),\n );\n\n return !!result.Item;\n }\n\n async getRaw(filter: Filter): Promise<any> {\n const queryInput = buildQueryDB(this._tableName, filter, this._indexMap);\n return this.dynamoDb.send(new QueryCommand(queryInput));\n }\n\n async transactionRead<T>(operations: { id: string; sortKey?: string }[]): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async transactRead?<TResult = any>(operations: any[]): Promise<TResult[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async transactionWrite(operations: {\n create?: { tableName: string; item: Record<string, any> }[];\n update?: {\n tableName: string;\n key: { id: string };\n updateData: Record<string, any>;\n }[];\n delete?: { tableName: string; key: { id: string } }[];\n }): Promise<boolean> {\n const transactItems: any[] = [];\n\n // Create operations\n if (operations.create) {\n for (const { tableName, item } of operations.create) {\n if (!item?.id) {\n item.id = generateUUID();\n }\n transactItems.push({\n Put: {\n TableName: tableName,\n Item: marshall(item, { removeUndefinedValues: true }),\n },\n });\n }\n }\n\n // Update operations\n if (operations.update) {\n for (const { tableName, key, updateData } of operations.update) {\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(\n updateData,\n [\"id\"],\n );\n\n transactItems.push({\n Update: {\n TableName: tableName,\n Key: marshall(key),\n UpdateExpression,\n ExpressionAttributeNames,\n ExpressionAttributeValues,\n },\n });\n }\n }\n\n // Delete operations\n if (operations.delete) {\n for (const { tableName, key } of operations.delete) {\n transactItems.push({\n Delete: {\n TableName: tableName,\n Key: marshall(key),\n },\n });\n }\n }\n\n if (transactItems.length === 0) return false;\n\n // Execute transaction\n try {\n await this.dynamoDb.send(new TransactWriteItemsCommand({ TransactItems: transactItems }));\n return true;\n } catch (error) {\n console.error(\"Transaction failed:\", error);\n throw new ErrorDynamoDB(this._tableName, transactItems, error);\n }\n }\n\n getTableName() {\n return this._tableName;\n }\n\n setIndexMap(indexMap: DynamoIndexMap): boolean {\n this._indexMap = indexMap;\n return true;\n }\n\n setTable(tableName: string): boolean {\n this._tableName = tableName;\n return true;\n }\n\n getIndexMap(): DynamoIndexMap {\n return this._indexMap;\n }\n\n private async updateManyNormal(entityList: Partial<T>[], fieldNames: string[]): Promise<boolean> {\n return this.updateManyTransactional(entityList, fieldNames); // todo implement normal updateMany\n }\n\n private async updateManyTransactional(entityList: Partial<T>[], fieldNames: string[]): Promise<boolean> {\n if (entityList.length === 0) return false;\n\n if (!fieldNames || fieldNames.length === 0) {\n await this.saveMany(entityList, true);\n return true;\n }\n\n const partitionKey = this._indexMap.partitionKey;\n const selectedFields = Array.from(new Set([...(fieldNames || []), partitionKey]));\n const entityListCleaned = removeFields(entityList, selectedFields);\n\n const indexedItems = entityListCleaned.map((entity) => {\n return addIndexValue(entity, this._indexMap);\n });\n\n const transactItems = indexedItems\n .map((item) => {\n if (!item[partitionKey])\n throw new Error(\n `Item must have an ${partitionKey} field. Entity: ${JSON.stringify(item, null, 2)}, \\nupdateFields: ${JSON.stringify(selectedFields)}`,\n );\n\n const { UpdateExpression, ExpressionAttributeNames, ExpressionAttributeValues } = buildUpdateExpressions(item, [\n partitionKey,\n ]);\n\n return {\n Update: {\n TableName: this._tableName,\n Key: { [partitionKey]: { S: item[partitionKey] } }, // id-г шууд key болгож дамжуулах\n UpdateExpression,\n ExpressionAttributeValues,\n ExpressionAttributeNames,\n },\n };\n })\n .filter(Boolean) as any[]; // filter(Boolean) нь хоосон утгуудыг арилгана.\n\n if (transactItems.length < 1) return false;\n\n const chunkedItems = chunkArray(transactItems, 25); // 25-аас дээш бол багцлах\n\n for (const chunk of chunkedItems) await this.dynamoDb.send(new TransactWriteItemsCommand({ TransactItems: chunk }));\n\n return true;\n }\n\n private async saveManyNormal(entities: Partial<T>[]): Promise<Partial<T>[]> {\n if (entities.length === 0) throw new Error(\"Cannot save an empty array of entities.\");\n\n const allSavedEntities: Partial<T>[] = [];\n\n for (const chunk of chunkArray(entities, 25)) {\n chunk.forEach((item) => addIndexValue(item, this._indexMap));\n const putRequests = chunk.map((entity) => ({\n PutRequest: { Item: marshall(entity, { removeUndefinedValues: true }) },\n }));\n\n const params: BatchWriteItemCommandInput = { RequestItems: { [this._tableName]: putRequests } };\n\n const result = await this.dynamoDb.send(new BatchWriteItemCommand(params));\n\n if (result.UnprocessedItems && Object.keys(result.UnprocessedItems).length > 0)\n console.warn(\"⚠️ Some items were unprocessed and need to be retried.\", result.UnprocessedItems);\n\n allSavedEntities.push(...chunk);\n }\n\n return allSavedEntities;\n }\n\n private async saveManyTransactional(entities: Partial<T>[]): Promise<Partial<T>[]> {\n if (entities.length === 0) throw new Error(\"Cannot save an empty array of entities.\");\n\n const allSavedEntities: Partial<T>[] = [];\n\n // DynamoDB TransactWrite limit: 25 actions per request\n for (const chunk of chunkArray(entities, 25)) {\n chunk.forEach((item) => addIndexValue(item, this._indexMap));\n\n const transactItems = chunk.map((entity) => ({\n Put: {\n TableName: this._tableName,\n Item: marshall(entity, { removeUndefinedValues: true }),\n },\n }));\n\n const params: TransactWriteItemsCommandInput = {\n TransactItems: transactItems,\n };\n\n try {\n await this.dynamoDb.send(new TransactWriteItemsCommand(params));\n allSavedEntities.push(...chunk);\n } catch (err) {\n console.error(\"❌ Transaction failed:\", err);\n throw err; // Re-throw so the caller knows it failed\n }\n }\n\n return allSavedEntities;\n }\n\n /**\n * Runs repeated Scan requests until enough filtered items are collected, the\n * table ends, or the caller's scan-request limit is reached.\n */\n private async sendCommandDeep<T>(\n queryInput: QueryCommandInput | ScanCommandInput,\n startKey?: string | Record<string, any>,\n queryCountLimit?: number,\n size = this.DYNAMO_QUERY_LIMIT,\n debug?: boolean,\n ): Promise<List<T>> {\n const result: List<T> = { items: [] };\n\n let scannedCount = 0;\n\n let lastEvaluatedKey: Record<string, AttributeValue>;\n\n if (startKey) {\n lastEvaluatedKey =\n typeof startKey === \"string\"\n ? parseLastEvaluatedKey<Record<string, AttributeValue>>(startKey) // will throw if invalid\n : startKey;\n }\n\n do {\n const remainingQueryCount = queryCountLimit === undefined ? undefined : queryCountLimit - scannedCount;\n if (remainingQueryCount !== undefined && remainingQueryCount <= 0) {\n result.lastKey = lastEvaluatedKey ? toBase64(JSON.stringify(lastEvaluatedKey)) : undefined;\n return result;\n }\n\n const response: QueryCommandOutput = await this.sendCommand(\n {\n ...queryInput,\n ExclusiveStartKey: lastEvaluatedKey,\n },\n debug,\n );\n const responseItems = response.Items ?? [];\n scannedCount++;\n\n if (result.items.length + responseItems.length > size) {\n const takeCount = size - result.items.length;\n const lastIncludedIndex = takeCount - 1;\n\n result.items.push(...unMarshall<T>(responseItems.slice(0, takeCount)));\n\n const index = this._indexMap.get(queryInput.IndexName);\n result.lastKey = generateLastEvaluatedKey(\n responseItems[lastIncludedIndex],\n index?.field ?? this._indexMap.partitionKey,\n index?.sortKeyField,\n );\n return result;\n }\n\n // no more items to fetch\n if (response.LastEvaluatedKey == undefined) {\n result?.items.push(...unMarshall<T>(responseItems));\n result.lastKey = undefined;\n return result;\n }\n\n if (responseItems.length === 0 && response.LastEvaluatedKey) {\n lastEvaluatedKey = response.LastEvaluatedKey;\n if (queryCountLimit !== undefined && scannedCount >= queryCountLimit) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n continue;\n }\n\n if (result?.items.length + responseItems.length <= size) {\n result?.items.push(...unMarshall<T>(responseItems));\n lastEvaluatedKey = response.LastEvaluatedKey;\n if (result?.items.length === size) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n if (queryCountLimit !== undefined && scannedCount >= queryCountLimit) {\n result.lastKey = toBase64(JSON.stringify(response.LastEvaluatedKey));\n return result;\n }\n continue;\n }\n } while (lastEvaluatedKey);\n\n return result;\n }\n\n /**\n * Enforces the per-call safety limit for scan pagination.\n */\n private validateScanQueryCountLimit(filter: Filter): number {\n const value = Number(filter.queryCountLimit);\n if (!Number.isInteger(value) || value <= 0) {\n throw new ErrorDynamoDB(this._tableName, \"scan\", \"scan requires queryCountLimit\");\n }\n if (value > 500) {\n throw new ErrorDynamoDB(this._tableName, \"scan\", \"scan queryCountLimit must not be greater than 500\");\n }\n return value;\n }\n\n /**\n * Executes one DynamoDB Query/Scan page and returns DynamoDB's pagination key.\n */\n private async sendCommandPage<T>(\n queryInput: QueryCommandInput | ScanCommandInput,\n startKey?: string | Record<string, any>,\n debug?: boolean,\n ): Promise<List<T>> {\n if (startKey) {\n queryInput.ExclusiveStartKey =\n typeof startKey === \"string\" ? parseLastEvaluatedKey<Record<string, AttributeValue>>(startKey) : startKey;\n }\n\n const response = await this.sendCommand(queryInput, debug);\n return {\n items: unMarshall<T>(response.Items),\n lastKey: response.LastEvaluatedKey ? toBase64(JSON.stringify(response.LastEvaluatedKey)) : undefined,\n };\n }\n\n /**\n * Sends one QueryCommand or ScanCommand after applying table/default limit.\n */\n private async sendCommand(\n commandInput: QueryCommandInput | ScanCommandInput,\n debug?: boolean,\n ): Promise<ScanCommandOutput | QueryCommandOutput> {\n commandInput.TableName = this._tableName;\n\n // if (startKey) {\n // commandInput.ExclusiveStartKey = typeof startKey === \"string\" ? parseLastEvaluatedKey(startKey) : startKey;\n // }\n\n const isQuery = \"KeyConditionExpression\" in commandInput;\n\n if (isQuery && !commandInput.Limit) {\n commandInput.Limit = this.DYNAMO_QUERY_LIMIT;\n }\n\n const command = isQuery ? new QueryCommand(commandInput) : new ScanCommand(commandInput);\n\n if (debug) log.debug(\"Sending command:\", commandInput);\n\n if (!this.dynamoDb) throw new ErrorDynamoDB(this._tableName, commandInput, \"dynamoDB client not initialized\");\n\n try {\n return await this.dynamoDb.send(command);\n } catch (error) {\n throw new ErrorDynamoDB(this._tableName, commandInput, error);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-es.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/base-es.repo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,IAAI,EAIL,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAErD,8BACsB,cAAc,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAE1B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"base-es.repo.d.ts","sourceRoot":"","sources":["../../src/repositories/base-es.repo.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,IAAI,EAIL,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAErD,8BACsB,cAAc,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAO;IAE1B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAI3C;IAEK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAM5D;IAEK,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGxC;IAEK,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAQ9D;IAEK,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBvC;IAED,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAEpC;IAED,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGvC;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjC;IAED,WAAW,IAAI,MAAM,CAEpB;IAED,YAAY,IAAI,MAAM,CAErB;IAEK,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAMjD;IAEK,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAalH;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzC;IAED,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAEjG;IAEK,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CA4B3G;IAED,OAAO,CAAC,YAAY;CAerB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-es.repo.js","sourceRoot":"","sources":["../../src/repositories/base-es.repo.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BaseRepoES,\n buildQueryOS,\n List,\n OpenSearchClient,\n removeEmptyFields,\n transformAggregationsResponse,\n} from \"../index\";\nimport { Service } from \"typedi\";\nimport esb from \"elastic-builder\";\nimport { BaseEntity, Filter } from \"@chinggis/types\";\nimport { API } from \"@opensearch-project/opensearch\";\n\n@Service(\"BaseRepoES\")\nexport abstract class BaseRepoESImpl<T extends BaseEntity> implements BaseRepoES<T> {\n private searchClient: OpenSearchClient;\n private indexName: string;\n private readonly DEFAULT_SIZE = 100;\n private readonly MAX_SIZE = 250;\n\n async findByIds(ids: string[]): Promise<T[]> {\n const filter: Filter = { id: ids.join(\",\") };\n const result = await this.find(filter);\n return result.items;\n }\n\n async find(filter: Filter, debug?: boolean): Promise<List<T>> {\n const query = buildQueryOS(filter);\n\n const res = await this.search(query, debug);\n\n return { items: res?.items, total: res?.total };\n }\n\n async fieldNotExists(\n fieldName: string,\n from: number,\n size: number,\n includeFields?: string[],\n excludeFields?: string[],\n ): Promise<T[]> {\n const filter: Filter = {\n size,\n from,\n fieldsInclude: includeFields,\n fieldsExclude: excludeFields,\n };\n const query = buildQueryOS(filter);\n query.index = this.indexName;\n\n // Add field not exists filter using elastic-builder\n const boolQuery = esb.boolQuery().mustNot(esb.existsQuery(fieldName));\n query.body.query = boolQuery.toJSON();\n\n const res = await this.search(query);\n\n return res?.items;\n }\n\n async findOne(filter: Filter): Promise<T> {\n filter.size = 1;\n return this.find(filter).then((result) => result.items[0]);\n }\n\n async nativeQuery(query: any): Promise<API.Search_ResponseBody> {\n try {\n const res = await this.searchClient.search(query);\n return res?.body;\n } catch (err) {\n console.error(JSON.stringify(err, null, 2));\n return undefined;\n }\n }\n\n async count(query: any): Promise<number> {\n const finalQuery = this.prepareQuery(query);\n\n try {\n const res = await this.searchClient.count({\n index: finalQuery.index,\n body: {\n query: finalQuery?.body?.query?.bool\n ? finalQuery.body.query\n : {\n match_all: {},\n },\n },\n });\n\n return Number(res.body.count ?? 0);\n } catch (err) {\n console.error(JSON.stringify(err, null, 2));\n return 0;\n }\n }\n\n getRaw?(filter: Filter): Promise<any> {\n throw new Error(\"Method not implemented.\");\n }\n\n setIndexName(indexName: string): boolean {\n this.indexName = indexName;\n return true;\n }\n\n setEndpoint(node: string): boolean {\n this.searchClient = new OpenSearchClient(node);\n return true;\n }\n\n getEndpoint(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n getIndexName(): string {\n return this.indexName;\n }\n\n async findById(id: string): Promise<T | undefined> {\n const result = await this.findByIds([id]);\n\n if (result.length > 1) console.warn(\"More than one entity found by id\", id);\n\n return result.length > 0 ? result.at(0) : undefined;\n }\n\n async findByIdFieldSelected(id: string, includeFields?: string[], excludeFields?: string[]): Promise<T | undefined> {\n const filter: Filter = {\n id,\n size: 10,\n from: 0,\n fieldsInclude: includeFields,\n fieldsExclude: excludeFields,\n };\n const query = buildQueryOS(filter);\n\n const result = await this.search(query);\n\n return result?.items?.length > 0 ? result.items.at(0) : undefined;\n }\n\n async exists(id: string): Promise<boolean> {\n return !!(await this.findById(id));\n }\n\n findBetween<K>(fieldName: string, fromValue: K, toValue: K, includeFields: string[]): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async search(query: any, debug?: boolean): Promise<{ items: T[]; aggs: Record<string, any>; total: number }> {\n debug = debug || process.env.ENV?.toLowerCase()?.trim() === \"dev\";\n const finalQuery = this.prepareQuery(query);\n\n if (debug) {\n log.info(\"searchQuery: \", JSON.stringify(finalQuery, null, 2));\n }\n\n try {\n const { body } = await this.searchClient.search(finalQuery);\n const totalRaw = body.hits.total;\n const totalCount = typeof totalRaw === \"number\" ? totalRaw : totalRaw.value;\n\n return {\n items: body?.hits?.hits?.map((item) => item._source as T) || [],\n aggs: body?.aggregations ? transformAggregationsResponse(body?.aggregations) : undefined,\n total: totalCount,\n };\n } catch (err) {\n console.error(\"searchES ERROR: \", err);\n\n let message: string;\n if (err instanceof Error) message = err.message;\n else if (typeof err === \"string\") message = err;\n else message = \"Unknown searchES error\";\n\n throw new Error(message);\n }\n }\n\n private prepareQuery(query: any): any {\n if (!query.index && this.indexName) {\n query.index = this.indexName;\n }\n\n query.body = query.body ?? {};\n query.body.size = !query.body.size || query.body.size > this.MAX_SIZE ? this.DEFAULT_SIZE : query.body.size;\n\n if (query.body.size > this.MAX_SIZE)\n log.warn(`Query size is too large: ${query.body.size}. Using default size: ${this.DEFAULT_SIZE}`);\n\n query.body.from = query.body.from ?? 0;\n\n return removeEmptyFields(query);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"base-es.repo.js","sourceRoot":"","sources":["../../src/repositories/base-es.repo.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BaseRepoES,\n buildQueryOS,\n List,\n OpenSearchClient,\n removeEmptyFields,\n transformAggregationsResponse,\n} from \"../index\";\nimport { Service } from \"typedi\";\nimport esb from \"elastic-builder\";\nimport { BaseEntity, Filter } from \"@chinggis/types\";\nimport { API } from \"@opensearch-project/opensearch\";\n\n@Service(\"BaseRepoES\")\nexport abstract class BaseRepoESImpl<T extends BaseEntity> implements BaseRepoES<T> {\n private searchClient: OpenSearchClient;\n private indexName: string;\n private readonly DEFAULT_SIZE = 100;\n private readonly MAX_SIZE = 250;\n\n async findByIds(ids: string[]): Promise<T[]> {\n const filter: Filter = { id: ids.join(\",\") };\n const result = await this.find(filter);\n return result.items;\n }\n\n async find(filter: Filter, debug?: boolean): Promise<List<T>> {\n const query = buildQueryOS(filter);\n\n const res = await this.search(query, debug);\n\n return { items: res?.items, total: res?.total };\n }\n\n async fieldNotExists(\n fieldName: string,\n from: number,\n size: number,\n includeFields?: string[],\n excludeFields?: string[],\n ): Promise<T[]> {\n const filter: Filter = {\n size,\n from,\n fieldsInclude: includeFields,\n fieldsExclude: excludeFields,\n };\n const query = buildQueryOS(filter);\n query.index = this.indexName;\n\n // Add field not exists filter using elastic-builder\n const boolQuery = esb.boolQuery().mustNot(esb.existsQuery(fieldName));\n query.body.query = boolQuery.toJSON();\n\n const res = await this.search(query);\n\n return res?.items;\n }\n\n async findOne(filter: Filter): Promise<T> {\n filter.size = 1;\n return this.find(filter).then((result) => result.items[0]);\n }\n\n async nativeQuery(query: any): Promise<API.Search_ResponseBody> {\n try {\n const res = await this.searchClient.search(query);\n return res?.body;\n } catch (err) {\n console.error(JSON.stringify(err, null, 2));\n return undefined;\n }\n }\n\n async count(query: any): Promise<number> {\n const finalQuery = this.prepareQuery(query);\n\n try {\n const res = await this.searchClient.count({\n index: finalQuery.index,\n body: {\n query: finalQuery?.body?.query?.bool\n ? finalQuery.body.query\n : {\n match_all: {},\n },\n },\n });\n\n return Number(res.body.count ?? 0);\n } catch (err) {\n console.error(JSON.stringify(err, null, 2));\n return 0;\n }\n }\n\n getRaw?(filter: Filter): Promise<any> {\n throw new Error(\"Method not implemented.\");\n }\n\n setIndexName(indexName: string): boolean {\n this.indexName = indexName;\n return true;\n }\n\n setEndpoint(node: string): boolean {\n this.searchClient = new OpenSearchClient(node);\n return true;\n }\n\n getEndpoint(): string {\n throw new Error(\"Method not implemented.\");\n }\n\n getIndexName(): string {\n return this.indexName;\n }\n\n async findById(id: string): Promise<T | undefined> {\n const result = await this.findByIds([id]);\n\n if (result.length > 1) console.warn(\"More than one entity found by id\", id);\n\n return result.length > 0 ? result.at(0) : undefined;\n }\n\n async findByIdFieldSelected(id: string, includeFields?: string[], excludeFields?: string[]): Promise<T | undefined> {\n const filter: Filter = {\n id,\n size: 10,\n from: 0,\n fieldsInclude: includeFields,\n fieldsExclude: excludeFields,\n };\n const query = buildQueryOS(filter);\n\n const result = await this.search(query);\n\n return result?.items?.length > 0 ? result.items.at(0) : undefined;\n }\n\n async exists(id: string): Promise<boolean> {\n return !!(await this.findById(id));\n }\n\n findBetween<K>(fieldName: string, fromValue: K, toValue: K, includeFields: string[]): Promise<T[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async search(query: any, debug?: boolean): Promise<{ items: T[]; aggs: Record<string, any>; total: number }> {\n debug = debug || process.env.ENV?.toLowerCase()?.trim() === \"dev\";\n const finalQuery = this.prepareQuery(query);\n\n if (debug) {\n log.info(\"searchQuery: \", JSON.stringify(finalQuery, null, 2));\n }\n\n try {\n const { body } = await this.searchClient.search(finalQuery);\n const totalRaw = body.hits.total;\n const totalCount = typeof totalRaw === \"number\" ? totalRaw : totalRaw.value;\n\n return {\n items: body?.hits?.hits?.map((item) => item._source as T) || [],\n aggs: body?.aggregations ? transformAggregationsResponse(body?.aggregations) : undefined,\n total: totalCount,\n };\n } catch (err) {\n console.error(\"searchES ERROR: \", err);\n\n let message: string;\n if (err instanceof Error) message = err.message;\n else if (typeof err === \"string\") message = err;\n else message = \"Unknown searchES error\";\n\n throw new Error(message);\n }\n }\n\n private prepareQuery(query: any): any {\n if (!query.index && this.indexName) {\n query.index = this.indexName;\n }\n\n query.body = query.body ?? {};\n query.body.size = !query.body.size || query.body.size > this.MAX_SIZE ? this.DEFAULT_SIZE : query.body.size;\n\n if (query.body.size > this.MAX_SIZE)\n log.warn(`Query size is too large: ${query.body.size}. Using default size: ${this.DEFAULT_SIZE}`);\n\n query.body.from = query.body.from ?? 0;\n\n return removeEmptyFields(query);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.d.ts","sourceRoot":"","sources":["../../../src/service/api.services/api.service.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,qBACa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,GAAG,CAAgB;
|
|
1
|
+
{"version":3,"file":"api.service.d.ts","sourceRoot":"","sources":["../../../src/service/api.services/api.service.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,qBACa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,GAAG,CAAgB;IAE3B,YAAY,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,EAWxD;IAEY,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,iBAYvD;IAEY,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAOtG;IAEY,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAOpF;IAEY,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAOnF;IAEY,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3E;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../src/service/api.services/api.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAgF;AAChF,mCAAiC;AAI1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACjB,GAAG,CAAgB;IAE3B,YAAY,OAAgB,EAAE,MAA2B;QACvD,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CACrB,MAAM,IAAI;YACR,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,KAAK;aACd;SACF,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAc,EAAE,OAAgB;QACtD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBACvC,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC3B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAA4B,EAAE,MAA2B;QACxF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,MAA2B;QACtE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,MAA2B;QACrE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,MAA2B;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF,CAAA
|
|
1
|
+
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../src/service/api.services/api.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAgF;AAChF,mCAAiC;AAI1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACjB,GAAG,CAAgB;IAE3B,YAAY,OAAgB,EAAE,MAA2B;QACvD,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CACrB,MAAM,IAAI;YACR,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,KAAK;aACd;SACF,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAc,EAAE,OAAgB;QACtD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBACvC,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC3B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,MAA4B,EAAE,MAA2B;QACxF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,MAA2B;QACtE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,MAA2B;QACrE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,MAA2B;QAC7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAqB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF,CAAA;;yBAjEY,cAAc;IAD1B,IAAA,gBAAO,EAAC,YAAY,CAAC;;GACT,cAAc,CAiE1B","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Service } from 'typedi';\nimport { ApiService } from './api.service.interface';\n\n@Service('ApiService')\nexport class ApiServiceImpl implements ApiService {\n private api: AxiosInstance;\n\n constructor(baseURL?: string, config?: AxiosRequestConfig) {\n this.api = axios.create(\n config ?? {\n baseURL: baseURL ?? '',\n timeout: 5000,\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n },\n },\n );\n }\n\n public async initialize(token?: string, baseURL?: string) {\n if (token || baseURL) {\n this.api.interceptors.request.use((config) => {\n if (token) {\n config.headers.Authorization = token;\n }\n if (baseURL) {\n config.baseURL = baseURL;\n }\n return config;\n });\n }\n }\n\n public async get<T>(url: string, params?: Record<string, any>, config?: AxiosRequestConfig): Promise<T> {\n try {\n const response: AxiosResponse<T> = await this.api.get(url, { ...config, params });\n return response.data;\n } catch (error) {\n console.log('GET api service error: ', error);\n }\n }\n\n public async post<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {\n try {\n const response: AxiosResponse<T> = await this.api.post(url, data, config);\n return response.data;\n } catch (error) {\n console.log('POST api service error: ', error);\n }\n }\n\n public async put<T>(url: string, data: any, config?: AxiosRequestConfig): Promise<T> {\n try {\n const response: AxiosResponse<T> = await this.api.put(url, data, config);\n return response.data;\n } catch (error) {\n console.log('PUT api service error: ', error);\n }\n }\n\n public async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> {\n try {\n const response: AxiosResponse<T> = await this.api.delete(url, config);\n return response.data;\n } catch (error) {\n console.log('DELETE api service error: ', error);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/service/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,qBACa,eAAgB,YAAW,WAAW;IACjD,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/service/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,qBACa,eAAgB,YAAW,WAAW;IACjD,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAAE,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,OAAO,CAAC,CAElB;IAEK,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1E;IAEK,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,OAAO,CAAC,CAWlB;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9C;CACF;AAED,wBAAgB,SAAS,IAAI,eAAe,CAwC3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/service/auth.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/service/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;AACA,mCAAiC;AACjC,oCAA+C;AAGxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,qBAAqB,CACnB,UAAoB,EACpB,aAAuB;QAEvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAa,EAAE,cAAsB;QACtD,OAAO,IAAI,CAAC;QACZ,6BAA6B;IAC/B,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,UAAoB,EACpB,WAAqB;QAErB,qFAAqF;QACrF,8EAA8E;QAC9E,EAAE;QACF,4EAA4E;QAC5E,EAAE;QACF,gGAAgG;QAChG,EAAE;QACF,kBAAkB;QAClB,OAAO,IAAI,CAAC;QACZ,yCAAyC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC;QACZ,wBAAwB;IAC1B,CAAC;CACF,CAAA;;0BAjCY,eAAe;IAD3B,IAAA,gBAAO,EAAC,aAAa,CAAC;GACV,eAAe,CAiC3B;AAED;IACE,OAAO,CACL,MAAM,EACN,WAAW,EACX,UAA8B,EACV,EAAE;QACtB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC/C,IACE,IAAA,2BAAmB,EAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;gBAC1C,QAAQ;gBACR,QAAQ;gBACR,KAAK;gBACL,QAAQ;gBACR,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,MAAM;aACP,CAAC,EACF,CAAC;gBACD,qDAAqD;gBACrD,kCAAkC;gBAClC,wBAAwB;gBACxB,qBAAqB;gBACrB,+DAA+D;gBAC/D,OAAO;gBACP,IAAI;YACN,CAAC;YAED,qCAAqC;YACrC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { AuthService } from \"./auth.service.interface\";\nimport { Service } from \"typedi\";\nimport { isMethodeHasKeyword } from \"../index\";\n\n@Service(\"AuthService\")\nexport class AuthServiceImpl implements AuthService {\n checkOwnershipAddress(\n userIdList: string[],\n addressIdList: string[]\n ): Promise<boolean> {\n throw new Error(\"Method not implemented.\");\n }\n\n async isAuthorized(identity: any, notificationId: string): Promise<boolean> {\n return true;\n //todo implement isAuthorized\n }\n\n async checkOwnershipBrand(\n userIdList: string[],\n brandIdList: string[]\n ): Promise<boolean> {\n // todo get brands of profile and check param brandId exist or userId is one of admin\n // const addressListOfBrand = await this.addressRepoDB.findByBrandID(brandId);\n //\n // const address = addressListOfBrand.find((addr) => addr.id === addressId);\n //\n // if (!address) throw new Error(`Address with ID ${addressId} not found for brand ${brandId}`);\n //\n // return address;\n return true;\n //todo implement checkPermissionUserBrand\n }\n\n async isAdmin(userID: string): Promise<boolean> {\n return true;\n //todo implement isAdmin\n }\n}\n\nexport function Authorize(): MethodDecorator {\n return (\n target,\n propertyKey,\n descriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n if (descriptor === undefined) {\n throw new Error(\"Authorize decorator can only be applied to methods.\");\n }\n\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (...args: any[]) {\n if (\n isMethodeHasKeyword(propertyKey.toString(), [\n \"create\",\n \"update\",\n \"put\",\n \"insert\",\n \"get\",\n \"find\",\n \"delete\",\n \"list\",\n ])\n ) {\n // const hasPermission = await checkPermission(args);\n // // const hasPermission = false;\n // if (!hasPermission) {\n // throw new Error(\n // \"User does not have permission to access this resource.\"\n // );\n // }\n }\n\n // Rufe die ursprüngliche Methode auf\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/service/base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EAEV,UAAU,EAEV,WAAW,EACX,cAAc,EACd,MAAM,EAEN,IAAI,EAEL,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAa/C,8BAAsB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CACnH,SAAQ,oBAAoB,CAAC,CAAC,CAC9B,YAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACpB,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAE/B,SAAS,aAAa,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../src/service/base.service.ts"],"names":[],"mappings":"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"}
|