aws-service-stack 0.18.417 → 0.18.419
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.
|
@@ -9,8 +9,10 @@ class DynamoDBConfig {
|
|
|
9
9
|
MAP;
|
|
10
10
|
constructor(tableName, ownerFieldName, indexMap, parentFieldName) {
|
|
11
11
|
this.NAME = tableName;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
if (parentFieldName)
|
|
13
|
+
this.OWNER_PARENT_FIELD_NAME = parentFieldName;
|
|
14
|
+
if (ownerFieldName)
|
|
15
|
+
this.OWNER_FIELD_NAME = ownerFieldName;
|
|
14
16
|
this.MAP = indexMap;
|
|
15
17
|
}
|
|
16
18
|
}
|
|
@@ -47,8 +49,10 @@ class EntityConfigImpl {
|
|
|
47
49
|
/** Set DynamoDB configuration */
|
|
48
50
|
setDynamoDB(tableName, ownerFieldName, indexMap, ownerParentFieldName) {
|
|
49
51
|
this.DYNAMO_DB = new DynamoDBConfig(tableName, ownerFieldName, indexMap, ownerParentFieldName);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
if (ownerParentFieldName)
|
|
53
|
+
this.OWNER_PARENT_ID_FIELD_NAME = ownerParentFieldName;
|
|
54
|
+
if (ownerFieldName)
|
|
55
|
+
this.OWNER_ID_FIELD_NAME = ownerFieldName;
|
|
52
56
|
return this;
|
|
53
57
|
}
|
|
54
58
|
/** Set OpenSearch configuration */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.config.js","sourceRoot":"","sources":["../../src/model/base.config.ts"],"names":[],"mappings":";;;AAEA,qCAAqC;AACrC,MAAa,cAAc;IACzB,IAAI,CAAS,CAAC,sBAAsB;IACpC,uBAAuB,CAAU;IACjC,gBAAgB,CAAS,CAAC,iCAAiC;IAC3D,GAAG,CAAiB;IAEpB,YAAY,SAAiB,EAAE,cAAsB,EAAE,QAAwB,EAAE,eAAwB;QACvG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,uBAAuB,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"base.config.js","sourceRoot":"","sources":["../../src/model/base.config.ts"],"names":[],"mappings":"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","sourcesContent":["import { DynamoIndexMap, EndpointPolicy, PermissionMap, TraceChange } from \"@chinggis/core\";\n\n/** Generic DynamoDB Configuration */\nexport class DynamoDBConfig {\n NAME: string; // DynamoDB table name\n OWNER_PARENT_FIELD_NAME?: string;\n OWNER_FIELD_NAME: string; // DynamoDB index map for queries\n MAP: DynamoIndexMap;\n\n constructor(tableName: string, ownerFieldName: string, indexMap: DynamoIndexMap, parentFieldName?: string) {\n this.NAME = tableName;\n if (parentFieldName) this.OWNER_PARENT_FIELD_NAME = parentFieldName;\n if (ownerFieldName) this.OWNER_FIELD_NAME = ownerFieldName;\n this.MAP = indexMap;\n }\n}\n\n/** Generic OpenSearch Configuration */\nexport class OpenSearchConfig {\n DOMAIN: string;\n INDEX: string;\n\n constructor(domain: string, indexName: string) {\n this.DOMAIN = domain;\n this.INDEX = indexName;\n }\n}\n\n/** Configuration interface for type safety */\nexport interface EntityConfig {\n BASE_PATH: string;\n DYNAMO_DB: DynamoDBConfig;\n OPEN_SEARCH: OpenSearchConfig;\n ENDPOINT_POLICY: EndpointPolicy[];\n ADMIN_GROUP_NAME: string[];\n OWNER_PARENT_ID_FIELD_NAME?: string;\n OWNER_ID_FIELD_NAME?: string;\n TRACE_CHANGE?: TraceChange;\n PERMISSION_MAP?: PermissionMap;\n}\n\n/** Generic Entity Configuration Class **/\nexport class EntityConfigImpl implements EntityConfig {\n BASE_PATH: string; //Entity name for logging and debugging\n DYNAMO_DB: DynamoDBConfig; // DynamoDB configuration\n OPEN_SEARCH: OpenSearchConfig; // OpenSearch configuration\n ENDPOINT_POLICY: EndpointPolicy[]; // Path-based permission configuration\n ADMIN_GROUP_NAME: string[]; // Admin group name for Cognito\n\n TRACE_CHANGE?: TraceChange;\n PERMISSION_MAP?: PermissionMap;\n\n OWNER_PARENT_ID_FIELD_NAME?: string;\n OWNER_ID_FIELD_NAME: string;\n\n constructor(basePath: string, adminGroupName?: string[]) {\n this.BASE_PATH = basePath;\n this.ADMIN_GROUP_NAME = adminGroupName || [\"admin\"];\n this.ENDPOINT_POLICY = [];\n }\n\n setTraceChange(traceChange: TraceChange): void {\n this.TRACE_CHANGE = traceChange;\n }\n\n /** Set DynamoDB configuration */\n setDynamoDB(\n tableName: string,\n ownerFieldName: string,\n indexMap: DynamoIndexMap,\n ownerParentFieldName?: string,\n ): this {\n this.DYNAMO_DB = new DynamoDBConfig(tableName, ownerFieldName, indexMap, ownerParentFieldName);\n if (ownerParentFieldName) this.OWNER_PARENT_ID_FIELD_NAME = ownerParentFieldName;\n if (ownerFieldName) this.OWNER_ID_FIELD_NAME = ownerFieldName;\n return this;\n }\n\n /** Set OpenSearch configuration */\n setOpenSearch(domain: string, index: string): this {\n this.OPEN_SEARCH = new OpenSearchConfig(domain, index);\n return this;\n }\n\n /** Set permission map for RBAC: scope filtering, role table, and role path */\n setPermissionMap(permissionMap: PermissionMap): this {\n this.PERMISSION_MAP = permissionMap;\n return this;\n }\n\n /** Set path-based policies */\n setPolicies(policies: EndpointPolicy[]): this {\n this.ENDPOINT_POLICY = policies;\n return this;\n }\n\n /** Get configuration as a plain object (for BaseController compatibility) */\n toObject(): EntityConfig {\n return {\n BASE_PATH: this.BASE_PATH,\n DYNAMO_DB: this.DYNAMO_DB,\n OPEN_SEARCH: this.OPEN_SEARCH,\n ENDPOINT_POLICY: this.ENDPOINT_POLICY,\n TRACE_CHANGE: this.TRACE_CHANGE,\n ADMIN_GROUP_NAME: this.ADMIN_GROUP_NAME,\n OWNER_PARENT_ID_FIELD_NAME: this.OWNER_PARENT_ID_FIELD_NAME,\n OWNER_ID_FIELD_NAME: this.OWNER_ID_FIELD_NAME,\n PERMISSION_MAP: this.PERMISSION_MAP,\n };\n }\n}\n"]}
|
|
@@ -6,11 +6,14 @@ function parseQueryString(queryParams) {
|
|
|
6
6
|
for (const [key, value] of Object.entries(queryParams)) {
|
|
7
7
|
if (!key.includes("__"))
|
|
8
8
|
continue;
|
|
9
|
-
filtered[key] = smartParse(value);
|
|
9
|
+
filtered[key] = smartParse(key, value);
|
|
10
10
|
}
|
|
11
11
|
return filtered;
|
|
12
12
|
}
|
|
13
|
-
function smartParse(value) {
|
|
13
|
+
function smartParse(key, value) {
|
|
14
|
+
const [fieldName] = key.split("__");
|
|
15
|
+
if (fieldName.endsWith(".keyword"))
|
|
16
|
+
return value;
|
|
14
17
|
if (value?.includes("*"))
|
|
15
18
|
return value;
|
|
16
19
|
// Boolean
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opensearch.parser.utils.js","sourceRoot":"","sources":["../../../src/utils/opensearch/opensearch.parser.utils.ts"],"names":[],"mappings":";;AAAA,4CAUC;AAVD,SAAgB,gBAAgB,CAAC,WAA4C;IAC3E,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAElC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"opensearch.parser.utils.js","sourceRoot":"","sources":["../../../src/utils/opensearch/opensearch.parser.utils.ts"],"names":[],"mappings":";;AAAA,4CAUC;AAVD,SAAgB,gBAAgB,CAAC,WAA4C;IAC3E,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAElC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,KAAa;IAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,IAAI,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,UAAU;IACV,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAEpC,UAAU;IACV,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtD,iBAAiB;IACjB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAEzD,iDAAiD;IACjD,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;IAED,kBAAkB;IAClB,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["export function parseQueryString(queryParams: string | Record<string, string>): Record<string, any> {\n const filtered: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(queryParams)) {\n if (!key.includes(\"__\")) continue;\n\n filtered[key] = smartParse(key, value);\n }\n\n return filtered;\n}\n\nfunction smartParse(key: string, value: string): any {\n const [fieldName] = key.split(\"__\");\n if (fieldName.endsWith(\".keyword\")) return value;\n\n if (value?.includes(\"*\")) return value;\n\n // Boolean\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n\n // Integer\n if (/^-?\\d+$/.test(value)) return parseInt(value, 10);\n\n // Float / Double\n if (/^-?\\d*\\.\\d+$/.test(value)) return parseFloat(value);\n\n // ISO Date (YYYY-MM-DD) or Dot Date (YYYY.MM.DD)\n if (/^\\d{4}-\\d{2}-\\d{2}/.test(value)) {\n const date = new Date(value);\n if (!isNaN(date.getTime())) return date;\n }\n if (/^\\d{4}\\.\\d{2}\\.\\d{2}/.test(value)) {\n // Convert to ISO format for Date constructor\n const isoValue = value.replace(/\\./g, \"-\");\n const date = new Date(isoValue);\n if (!isNaN(date.getTime())) return date;\n }\n\n // Default: string\n return value;\n}\n"]}
|