@exabugs/dynamodb-client 1.3.11 → 1.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/server/handler.cjs +8 -5
- package/dist/server/handler.cjs.map +2 -2
- package/dist/server/handler.d.ts +1 -1
- package/dist/server/handler.js +1 -1
- package/dist/server/handler.js.map +1 -1
- package/dist/server/operations/find/nearQuery.d.ts.map +1 -1
- package/dist/server/operations/find/nearQuery.js +10 -7
- package/dist/server/operations/find/nearQuery.js.map +1 -1
- package/package.json +1 -1
package/dist/server/handler.d.ts
CHANGED
package/dist/server/handler.js
CHANGED
|
@@ -38,7 +38,7 @@ export async function handler(event) {
|
|
|
38
38
|
// バージョンエンドポイント(GET /version)
|
|
39
39
|
if (event.requestContext.http.method === 'GET' &&
|
|
40
40
|
event.requestContext.http.path === '/version') {
|
|
41
|
-
const version = process.env.
|
|
41
|
+
const version = process.env.PACKAGE_VERSION || '1.3.11';
|
|
42
42
|
return createSuccessResponse({ version, timestamp: new Date().toISOString() }, requestId);
|
|
43
43
|
}
|
|
44
44
|
// POSTメソッドのみ許可
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,gBAAgB;IACzB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAA6B;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;IAEjD,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9B,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM;QACxC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,oBAAoB;QACpB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,6BAA6B;QAC7B,IACE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK;YAC1C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAC7C,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,GAAG,YAAY,CAAC;IAC1B,OAAO,EAAE,gBAAgB;IACzB,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,SAAiD,IAAI,MAAM;CAChF,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAA6B;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;IAEjD,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9B,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM;QACxC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,oBAAoB;QACpB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,OAAO,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,6BAA6B;QAC7B,IACE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK;YAC1C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAC7C,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,CAAC;YACxD,OAAO,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5F,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO;QACP,MAAM,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE7C,mCAAmC;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC5B,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,QAAQ;QACR,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1D,aAAa;QACb,OAAO,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY;QACZ,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAS1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"nearQuery.d.ts","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAS1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CA+IrB"}
|
|
@@ -5,7 +5,7 @@ import { QueryCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
5
5
|
import { DEFAULT_GEOHASH_CONFIG } from '../../../shared/geohash/index.js';
|
|
6
6
|
import { createLogger } from '../../../shared/index.js';
|
|
7
7
|
import { executeNearSearch } from '../../query/nearSearch.js';
|
|
8
|
-
import { executeDynamoDBOperation, getDBClient, getTableName,
|
|
8
|
+
import { executeDynamoDBOperation, extractCleanRecord, getDBClient, getTableName, } from '../../utils/dynamodb.js';
|
|
9
9
|
const logger = createLogger({
|
|
10
10
|
service: 'near-query',
|
|
11
11
|
level: process.env.LOG_LEVEL || 'info',
|
|
@@ -40,7 +40,8 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
40
40
|
skPrefix: `${fieldName}#${geohashPrefix}`,
|
|
41
41
|
});
|
|
42
42
|
// シャドウレコードを検索
|
|
43
|
-
// SK
|
|
43
|
+
// SKプレフィックス: location#<geohash>
|
|
44
|
+
// 完全なSK: location#<geohash>#id#<venue-id>
|
|
44
45
|
const queryResult = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
|
|
45
46
|
TableName: tableName,
|
|
46
47
|
KeyConditionExpression: 'PK = :pk AND begins_with(SK, :skPrefix)',
|
|
@@ -58,7 +59,8 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
58
59
|
count: shadowRecords.length,
|
|
59
60
|
});
|
|
60
61
|
// 本体レコードのIDを抽出
|
|
61
|
-
// SK
|
|
62
|
+
// 完全なSK: location#<geohash>#id#<venue-id>
|
|
63
|
+
// #id#で分割して venue-id を取得
|
|
62
64
|
const mainRecordIds = shadowRecords
|
|
63
65
|
.map((item) => {
|
|
64
66
|
const sk = item.SK;
|
|
@@ -74,12 +76,13 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
74
76
|
ids: mainRecordIds,
|
|
75
77
|
});
|
|
76
78
|
// 本体レコードを取得
|
|
79
|
+
// PK: venues, SK: id#<venue-id>
|
|
77
80
|
const mainRecords = await Promise.all(mainRecordIds.map(async (id) => {
|
|
78
81
|
const result = await executeDynamoDBOperation(() => dbClient.send(new QueryCommand({
|
|
79
82
|
TableName: tableName,
|
|
80
83
|
KeyConditionExpression: 'PK = :pk AND SK = :sk',
|
|
81
84
|
ExpressionAttributeValues: {
|
|
82
|
-
':pk': resource,
|
|
85
|
+
':pk': resource, // venues
|
|
83
86
|
':sk': `id#${id}`,
|
|
84
87
|
},
|
|
85
88
|
ConsistentRead: true,
|
|
@@ -98,10 +101,10 @@ export async function executeNearQuery(resource, fieldName, nearQuery, limit, re
|
|
|
98
101
|
// 9ブロック検索を実行
|
|
99
102
|
const result = await executeNearSearch(nearQuery, fieldName, limit, searchFunction, DEFAULT_GEOHASH_CONFIG);
|
|
100
103
|
// クリーンなレコードに変換
|
|
101
|
-
//
|
|
104
|
+
// mainレコードはdata属性を持つので、extractCleanRecordを使用
|
|
102
105
|
const items = result.documents.map((doc) => {
|
|
103
|
-
// __shadowKeys等の内部フィールドを除外
|
|
104
|
-
const cleanRecord =
|
|
106
|
+
// data.__shadowKeys等の内部フィールドを除外
|
|
107
|
+
const cleanRecord = extractCleanRecord(doc);
|
|
105
108
|
// 距離情報を追加
|
|
106
109
|
return {
|
|
107
110
|
...cleanRecord,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nearQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAkB,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"nearQuery.js","sourceRoot":"","sources":["../../../../src/server/operations/find/nearQuery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exabugs/dynamodb-client",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "DynamoDB Single-Table Client SDK with MongoDB-like API, Shadow Records, and Lambda implementation for serverless applications",
|
|
5
5
|
"author": "exabugs",
|
|
6
6
|
"license": "MIT",
|