@exabugs/dynamodb-client 0.3.6 → 0.4.0
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 +46 -0
- package/README.md +35 -23
- package/dist/client/Collection.d.ts +1 -1
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/FindCursor.d.ts +1 -1
- package/dist/client/FindCursor.d.ts.map +1 -1
- package/dist/index.d.ts +1 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/server/handler.cjs +8186 -7921
- package/dist/server/handler.cjs.map +4 -4
- package/dist/server/handler.d.ts.map +1 -1
- package/dist/server/handler.js +1 -2
- package/dist/server/handler.js.map +1 -1
- package/dist/server/operations/deleteMany.js +1 -1
- package/dist/server/operations/deleteMany.js.map +1 -1
- package/dist/server/operations/deleteOne.js +1 -1
- package/dist/server/operations/deleteOne.js.map +1 -1
- package/dist/server/operations/find/handler.d.ts +21 -0
- package/dist/server/operations/find/handler.d.ts.map +1 -0
- package/dist/server/operations/find/handler.js +53 -0
- package/dist/server/operations/find/handler.js.map +1 -0
- package/dist/server/operations/find/idQuery.d.ts +16 -0
- package/dist/server/operations/find/idQuery.d.ts.map +1 -0
- package/dist/server/operations/find/idQuery.js +149 -0
- package/dist/server/operations/find/idQuery.js.map +1 -0
- package/dist/server/operations/find/index.d.ts +9 -0
- package/dist/server/operations/find/index.d.ts.map +1 -0
- package/dist/server/operations/find/index.js +9 -0
- package/dist/server/operations/find/index.js.map +1 -0
- package/dist/server/operations/find/shadowQuery.d.ts +16 -0
- package/dist/server/operations/find/shadowQuery.d.ts.map +1 -0
- package/dist/server/operations/find/shadowQuery.js +283 -0
- package/dist/server/operations/find/shadowQuery.js.map +1 -0
- package/dist/server/operations/find/types.d.ts +71 -0
- package/dist/server/operations/find/types.d.ts.map +1 -0
- package/dist/server/operations/find/types.js +5 -0
- package/dist/server/operations/find/types.js.map +1 -0
- package/dist/server/operations/find/utils.d.ts +37 -0
- package/dist/server/operations/find/utils.d.ts.map +1 -0
- package/dist/server/operations/find/utils.js +117 -0
- package/dist/server/operations/find/utils.js.map +1 -0
- package/dist/server/operations/find.d.ts +4 -14
- package/dist/server/operations/find.d.ts.map +1 -1
- package/dist/server/operations/find.js +2 -368
- package/dist/server/operations/find.js.map +1 -1
- package/dist/server/operations/findMany.js +1 -1
- package/dist/server/operations/findMany.js.map +1 -1
- package/dist/server/operations/findManyReference.d.ts.map +1 -1
- package/dist/server/operations/findManyReference.js +2 -1
- package/dist/server/operations/findManyReference.js.map +1 -1
- package/dist/server/operations/findOne.js +1 -1
- package/dist/server/operations/findOne.js.map +1 -1
- package/dist/server/operations/insertMany.d.ts.map +1 -1
- package/dist/server/operations/insertMany.js +2 -1
- package/dist/server/operations/insertMany.js.map +1 -1
- package/dist/server/operations/insertOne.d.ts.map +1 -1
- package/dist/server/operations/insertOne.js +2 -1
- package/dist/server/operations/insertOne.js.map +1 -1
- package/dist/server/operations/updateMany.d.ts.map +1 -1
- package/dist/server/operations/updateMany.js +2 -1
- package/dist/server/operations/updateMany.js.map +1 -1
- package/dist/server/operations/updateOne.d.ts.map +1 -1
- package/dist/server/operations/updateOne.js +2 -1
- package/dist/server/operations/updateOne.js.map +1 -1
- package/dist/server/query/converter.d.ts +1 -1
- package/dist/server/query/converter.d.ts.map +1 -1
- package/dist/server/shadow/config.d.ts +13 -13
- package/dist/server/shadow/config.d.ts.map +1 -1
- package/dist/server/shadow/config.js +10 -10
- package/dist/server/shadow/differ.d.ts +3 -38
- package/dist/server/shadow/differ.d.ts.map +1 -1
- package/dist/server/shadow/differ.js +4 -62
- package/dist/server/shadow/differ.js.map +1 -1
- package/dist/server/shadow/generator.d.ts +1 -1
- package/dist/server/shadow/generator.d.ts.map +1 -1
- package/dist/server/shadow/generator.js +8 -19
- package/dist/server/shadow/generator.js.map +1 -1
- package/dist/server/shadow/index.d.ts +2 -1
- package/dist/server/shadow/index.d.ts.map +1 -1
- package/dist/server/shadow/index.js.map +1 -1
- package/dist/server/shadow/types.d.ts +4 -41
- package/dist/server/shadow/types.d.ts.map +1 -1
- package/dist/server/shadow/types.js +5 -0
- package/dist/server/shadow/types.js.map +1 -1
- package/dist/server/utils/bulkOperations.d.ts +0 -15
- package/dist/server/utils/bulkOperations.d.ts.map +1 -1
- package/dist/server/utils/bulkOperations.js +1 -16
- package/dist/server/utils/bulkOperations.js.map +1 -1
- package/dist/server/utils/chunking.d.ts +0 -9
- package/dist/server/utils/chunking.d.ts.map +1 -1
- package/dist/server/utils/chunking.js +1 -10
- package/dist/server/utils/chunking.js.map +1 -1
- package/dist/server/utils/dynamodb.js +1 -1
- package/dist/server/utils/dynamodb.js.map +1 -1
- package/dist/shadows/differ.d.ts +12 -12
- package/dist/shadows/differ.js +15 -15
- package/dist/shadows/differ.js.map +1 -1
- package/dist/shadows/generator.d.ts +53 -31
- package/dist/shadows/generator.d.ts.map +1 -1
- package/dist/shadows/generator.js +79 -35
- package/dist/shadows/generator.js.map +1 -1
- package/dist/shadows/index.d.ts +8 -10
- package/dist/shadows/index.d.ts.map +1 -1
- package/dist/shadows/index.js +12 -11
- package/dist/shadows/index.js.map +1 -1
- package/dist/shadows/types.d.ts +8 -28
- package/dist/shadows/types.d.ts.map +1 -1
- package/dist/shared/constants/dynamodb.d.ts +36 -0
- package/dist/shared/constants/dynamodb.d.ts.map +1 -0
- package/dist/shared/constants/dynamodb.js +100 -0
- package/dist/shared/constants/dynamodb.js.map +1 -0
- package/dist/shared/constants/http.d.ts +48 -0
- package/dist/shared/constants/http.d.ts.map +1 -0
- package/dist/shared/constants/http.js +48 -0
- package/dist/shared/constants/http.js.map +1 -0
- package/dist/shared/constants/index.d.ts +7 -0
- package/dist/shared/constants/index.d.ts.map +1 -0
- package/dist/shared/constants/index.js +7 -0
- package/dist/shared/constants/index.js.map +1 -0
- package/dist/shared/constants/lambda.d.ts +33 -0
- package/dist/shared/constants/lambda.d.ts.map +1 -0
- package/dist/shared/constants/lambda.js +33 -0
- package/dist/shared/constants/lambda.js.map +1 -0
- package/dist/{errors.d.ts → shared/errors/index.d.ts} +7 -1
- package/dist/shared/errors/index.d.ts.map +1 -0
- package/dist/{errors.js → shared/errors/index.js} +7 -1
- package/dist/shared/errors/index.js.map +1 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +15 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/{types.d.ts → shared/types/index.d.ts} +7 -1
- package/dist/shared/types/index.d.ts.map +1 -0
- package/dist/shared/types/index.js +8 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/utils/dynamodb.d.ts +18 -0
- package/dist/shared/utils/dynamodb.d.ts.map +1 -0
- package/dist/shared/utils/dynamodb.js +32 -0
- package/dist/shared/utils/dynamodb.js.map +1 -0
- package/dist/shared/utils/index.d.ts +8 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +8 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/{logger.d.ts → shared/utils/logger.d.ts} +7 -1
- package/dist/shared/utils/logger.d.ts.map +1 -0
- package/dist/{logger.js → shared/utils/logger.js} +7 -1
- package/dist/shared/utils/logger.js.map +1 -0
- package/dist/shared/utils/ulid.d.ts.map +1 -0
- package/dist/{ulid.js → shared/utils/ulid.js} +5 -0
- package/dist/shared/utils/ulid.js.map +1 -0
- package/dist/shared/utils/validation.d.ts +59 -0
- package/dist/shared/utils/validation.d.ts.map +1 -0
- package/dist/shared/utils/validation.js +114 -0
- package/dist/shared/utils/validation.js.map +1 -0
- package/package.json +8 -7
- package/terraform/README.md +8 -7
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/shadows/config.d.ts +0 -54
- package/dist/shadows/config.d.ts.map +0 -1
- package/dist/shadows/config.js +0 -95
- package/dist/shadows/config.js.map +0 -1
- package/dist/shadows/schema.d.ts +0 -63
- package/dist/shadows/schema.d.ts.map +0 -1
- package/dist/shadows/schema.js +0 -8
- package/dist/shadows/schema.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/ulid.d.ts.map +0 -1
- package/dist/ulid.js.map +0 -1
- /package/dist/{ulid.d.ts → shared/utils/ulid.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunking.js","sourceRoot":"","sources":["../../../src/server/utils/chunking.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"chunking.js","sourceRoot":"","sources":["../../../src/server/utils/chunking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../../src/server/utils/dynamodb.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../../src/server/utils/dynamodb.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAExF,YAAY;AACZ,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE3D;;GAEG;AACH,IAAI,QAAQ,GAAkC,IAAI,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,oBAAoB,CAAC;YAC9B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;SACrD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,4CAA4C,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,6DAA6D;IAC7D,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA6B;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;IAClD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAA2B,EAC3B,aAAqB;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,sBAAsB;QACtB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YACrE,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACrC,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;gBACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;aACrD,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CAAC,gDAAgD,aAAa,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/shadows/differ.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ShadowDiff } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Calculate difference between old and new shadow keys
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* This function compares existing shadow records with newly generated ones
|
|
6
|
+
* during record updates, identifying which ones should be deleted and added.
|
|
7
7
|
*
|
|
8
|
-
* @param oldShadowKeys -
|
|
9
|
-
* @param newShadowKeys -
|
|
10
|
-
* @returns
|
|
8
|
+
* @param oldShadowKeys - Array of existing shadow SKs
|
|
9
|
+
* @param newShadowKeys - Array of newly generated shadow SKs
|
|
10
|
+
* @returns List of SKs to delete and add
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* const oldKeys = [
|
|
@@ -26,17 +26,17 @@ import type { ShadowDiff } from './types.js';
|
|
|
26
26
|
*/
|
|
27
27
|
export declare function calculateShadowDiff(oldShadowKeys: string[], newShadowKeys: string[]): ShadowDiff;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Check if shadow difference is empty
|
|
30
30
|
*
|
|
31
|
-
* @param diff -
|
|
32
|
-
* @returns
|
|
31
|
+
* @param diff - Shadow difference object
|
|
32
|
+
* @returns True if difference is empty
|
|
33
33
|
*/
|
|
34
34
|
export declare function isDiffEmpty(diff: ShadowDiff): boolean;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Merge multiple shadow differences
|
|
37
37
|
*
|
|
38
|
-
* @param diffs -
|
|
39
|
-
* @returns
|
|
38
|
+
* @param diffs - Array of shadow differences to merge
|
|
39
|
+
* @returns Merged shadow difference
|
|
40
40
|
*/
|
|
41
41
|
export declare function mergeShadowDiffs(diffs: ShadowDiff[]): ShadowDiff;
|
|
42
42
|
//# sourceMappingURL=differ.d.ts.map
|
package/dist/shadows/differ.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Calculate difference between old and new shadow keys
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* This function compares existing shadow records with newly generated ones
|
|
5
|
+
* during record updates, identifying which ones should be deleted and added.
|
|
6
6
|
*
|
|
7
|
-
* @param oldShadowKeys -
|
|
8
|
-
* @param newShadowKeys -
|
|
9
|
-
* @returns
|
|
7
|
+
* @param oldShadowKeys - Array of existing shadow SKs
|
|
8
|
+
* @param newShadowKeys - Array of newly generated shadow SKs
|
|
9
|
+
* @returns List of SKs to delete and add
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* const oldKeys = [
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
* // }
|
|
25
25
|
*/
|
|
26
26
|
export function calculateShadowDiff(oldShadowKeys, newShadowKeys) {
|
|
27
|
-
// Set
|
|
27
|
+
// Use Set for efficient difference calculation
|
|
28
28
|
const oldSet = new Set(oldShadowKeys);
|
|
29
29
|
const newSet = new Set(newShadowKeys);
|
|
30
|
-
//
|
|
30
|
+
// Keys to delete: exist in old but not in new
|
|
31
31
|
const toDelete = oldShadowKeys.filter((key) => !newSet.has(key));
|
|
32
|
-
//
|
|
32
|
+
// Keys to add: exist in new but not in old
|
|
33
33
|
const toAdd = newShadowKeys.filter((key) => !oldSet.has(key));
|
|
34
34
|
return {
|
|
35
35
|
toDelete,
|
|
@@ -37,19 +37,19 @@ export function calculateShadowDiff(oldShadowKeys, newShadowKeys) {
|
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
40
|
+
* Check if shadow difference is empty
|
|
41
41
|
*
|
|
42
|
-
* @param diff -
|
|
43
|
-
* @returns
|
|
42
|
+
* @param diff - Shadow difference object
|
|
43
|
+
* @returns True if difference is empty
|
|
44
44
|
*/
|
|
45
45
|
export function isDiffEmpty(diff) {
|
|
46
46
|
return diff.toDelete.length === 0 && diff.toAdd.length === 0;
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* Merge multiple shadow differences
|
|
50
50
|
*
|
|
51
|
-
* @param diffs -
|
|
52
|
-
* @returns
|
|
51
|
+
* @param diffs - Array of shadow differences to merge
|
|
52
|
+
* @returns Merged shadow difference
|
|
53
53
|
*/
|
|
54
54
|
export function mergeShadowDiffs(diffs) {
|
|
55
55
|
const allToDelete = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"differ.js","sourceRoot":"","sources":["../../src/shadows/differ.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAuB,EAAE,aAAuB;IAClF
|
|
1
|
+
{"version":3,"file":"differ.js","sourceRoot":"","sources":["../../src/shadows/differ.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAuB,EAAE,aAAuB;IAClF,+CAA+C;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAEtC,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,2CAA2C;IAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -1,50 +1,64 @@
|
|
|
1
|
-
import type { ShadowFieldType } from './
|
|
1
|
+
import type { ShadowFieldType } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* Escape string values for shadow SK generation
|
|
4
|
+
* Rules: # → ##, space → #
|
|
5
5
|
*
|
|
6
|
-
* @param value -
|
|
7
|
-
* @returns
|
|
6
|
+
* @param value - String to escape
|
|
7
|
+
* @returns Escaped string
|
|
8
8
|
*/
|
|
9
9
|
export declare function escapeString(value: string): string;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Convert number to 20-digit zero-padded string
|
|
12
12
|
*
|
|
13
|
-
* @param value -
|
|
14
|
-
* @returns 20
|
|
13
|
+
* @param value - Number to convert (null/undefined allowed)
|
|
14
|
+
* @returns 20-digit zero-padded string
|
|
15
15
|
*/
|
|
16
16
|
export declare function formatNumber(value: number | null | undefined): string;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Format datetime to UTC ISO 8601 format
|
|
19
19
|
*
|
|
20
|
-
* @param value -
|
|
21
|
-
* @returns UTC ISO 8601
|
|
20
|
+
* @param value - Datetime string or Date object (null/undefined allowed)
|
|
21
|
+
* @returns UTC ISO 8601 format string
|
|
22
22
|
*/
|
|
23
23
|
export declare function formatDatetime(value: string | Date | null | undefined): string;
|
|
24
24
|
/**
|
|
25
|
-
* boolean
|
|
25
|
+
* Format boolean value
|
|
26
26
|
*
|
|
27
|
-
* @param value -
|
|
28
|
-
* @returns 'true'
|
|
27
|
+
* @param value - Boolean value (null/undefined allowed)
|
|
28
|
+
* @returns 'true' or 'false' or empty string
|
|
29
29
|
*/
|
|
30
30
|
export declare function formatBoolean(value: boolean | null | undefined): string;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Format array to JSON string
|
|
33
33
|
*
|
|
34
|
-
* @param
|
|
35
|
-
* @
|
|
36
|
-
* @returns フォーマットされた文字列
|
|
34
|
+
* @param value - Array (null/undefined allowed)
|
|
35
|
+
* @returns JSON string or empty string
|
|
37
36
|
*/
|
|
38
|
-
export declare function
|
|
37
|
+
export declare function formatArray(value: any[] | null | undefined): string;
|
|
39
38
|
/**
|
|
40
|
-
*
|
|
41
|
-
* フォーマット: {fieldName}#{formattedValue}#id#{recordId}
|
|
39
|
+
* Format object to JSON string
|
|
42
40
|
*
|
|
43
|
-
* @param
|
|
44
|
-
* @
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
* @param value - Object (null/undefined allowed)
|
|
42
|
+
* @returns JSON string or empty string
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatObject(value: object | null | undefined): string;
|
|
45
|
+
/**
|
|
46
|
+
* Format field value according to its type
|
|
47
|
+
*
|
|
48
|
+
* @param type - Field type
|
|
49
|
+
* @param value - Value to format (null/undefined allowed)
|
|
50
|
+
* @returns Formatted string
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatFieldValue(type: ShadowFieldType, value: any): string;
|
|
53
|
+
/**
|
|
54
|
+
* Generate shadow SK
|
|
55
|
+
* Format: {fieldName}#{formattedValue}#id#{recordId}
|
|
56
|
+
*
|
|
57
|
+
* @param fieldName - Field name
|
|
58
|
+
* @param value - Field value
|
|
59
|
+
* @param recordId - Record ID (ULID)
|
|
60
|
+
* @param type - Field type (default: 'string')
|
|
61
|
+
* @returns Generated shadow SK
|
|
48
62
|
*
|
|
49
63
|
* @example
|
|
50
64
|
* generateShadowSK('name', 'Tech News', '01HZXY123', 'string')
|
|
@@ -61,14 +75,22 @@ export declare function formatFieldValue(type: ShadowFieldType, value: string |
|
|
|
61
75
|
* @example
|
|
62
76
|
* generateShadowSK('isPublished', true, '01HZXY123', 'boolean')
|
|
63
77
|
* // => 'isPublished#true#id#01HZXY123'
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* generateShadowSK('tags', ['tech', 'aws'], '01HZXY123', 'array')
|
|
81
|
+
* // => 'tags#["tech","aws"]#id#01HZXY123'
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* generateShadowSK('metadata', { category: 'tech' }, '01HZXY123', 'object')
|
|
85
|
+
* // => 'metadata#{"category":"tech"}#id#01HZXY123'
|
|
64
86
|
*/
|
|
65
|
-
export declare function generateShadowSK(fieldName: string, value:
|
|
87
|
+
export declare function generateShadowSK(fieldName: string, value: any, recordId: string, type?: ShadowFieldType): string;
|
|
66
88
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
89
|
+
* Generate main record SK from record ID
|
|
90
|
+
* Format: id#{recordId}
|
|
69
91
|
*
|
|
70
|
-
* @param recordId -
|
|
71
|
-
* @returns
|
|
92
|
+
* @param recordId - Record ID (ULID)
|
|
93
|
+
* @returns Main record SK
|
|
72
94
|
*/
|
|
73
95
|
export declare function generateMainRecordSK(recordId: string): string;
|
|
74
96
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAcrE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAa9E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAWnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAWrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,GAAG,GACT,MAAM,CAqBR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,eAA0B,GAC/B,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Escape string values for shadow SK generation
|
|
3
|
+
* Rules: # → ##, space → #
|
|
4
4
|
*
|
|
5
|
-
* @param value -
|
|
6
|
-
* @returns
|
|
5
|
+
* @param value - String to escape
|
|
6
|
+
* @returns Escaped string
|
|
7
7
|
*/
|
|
8
8
|
export function escapeString(value) {
|
|
9
9
|
return value
|
|
10
|
-
.replace(/#/g, '##') // #
|
|
11
|
-
.replace(/ /g, '#'); //
|
|
10
|
+
.replace(/#/g, '##') // Replace # with ##
|
|
11
|
+
.replace(/ /g, '#'); // Replace space with #
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Convert number to 20-digit zero-padded string
|
|
15
15
|
*
|
|
16
|
-
* @param value -
|
|
17
|
-
* @returns 20
|
|
16
|
+
* @param value - Number to convert (null/undefined allowed)
|
|
17
|
+
* @returns 20-digit zero-padded string
|
|
18
18
|
*/
|
|
19
19
|
export function formatNumber(value) {
|
|
20
|
-
// null/undefined
|
|
20
|
+
// Return empty string for null/undefined
|
|
21
21
|
if (value === null || value === undefined) {
|
|
22
22
|
return '';
|
|
23
23
|
}
|
|
24
24
|
if (!Number.isFinite(value)) {
|
|
25
25
|
throw new Error(`Invalid number value: ${value}`);
|
|
26
26
|
}
|
|
27
|
-
//
|
|
27
|
+
// Treat negative numbers as 0
|
|
28
28
|
const normalized = Math.max(0, Math.floor(value));
|
|
29
29
|
return normalized.toString().padStart(20, '0');
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Format datetime to UTC ISO 8601 format
|
|
33
33
|
*
|
|
34
|
-
* @param value -
|
|
35
|
-
* @returns UTC ISO 8601
|
|
34
|
+
* @param value - Datetime string or Date object (null/undefined allowed)
|
|
35
|
+
* @returns UTC ISO 8601 format string
|
|
36
36
|
*/
|
|
37
37
|
export function formatDatetime(value) {
|
|
38
|
-
// null/undefined
|
|
38
|
+
// Return empty string for null/undefined
|
|
39
39
|
if (value === null || value === undefined) {
|
|
40
40
|
return '';
|
|
41
41
|
}
|
|
@@ -46,29 +46,61 @@ export function formatDatetime(value) {
|
|
|
46
46
|
return date.toISOString();
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
* boolean
|
|
49
|
+
* Format boolean value
|
|
50
50
|
*
|
|
51
|
-
* @param value -
|
|
52
|
-
* @returns 'true'
|
|
51
|
+
* @param value - Boolean value (null/undefined allowed)
|
|
52
|
+
* @returns 'true' or 'false' or empty string
|
|
53
53
|
*/
|
|
54
54
|
export function formatBoolean(value) {
|
|
55
|
-
// null/undefined
|
|
55
|
+
// Return empty string for null/undefined
|
|
56
56
|
if (value === null || value === undefined) {
|
|
57
57
|
return '';
|
|
58
58
|
}
|
|
59
59
|
return value ? 'true' : 'false';
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Format array to JSON string
|
|
63
63
|
*
|
|
64
|
-
* @param
|
|
65
|
-
* @
|
|
66
|
-
|
|
64
|
+
* @param value - Array (null/undefined allowed)
|
|
65
|
+
* @returns JSON string or empty string
|
|
66
|
+
*/
|
|
67
|
+
export function formatArray(value) {
|
|
68
|
+
// Return empty string for null/undefined
|
|
69
|
+
if (value === null || value === undefined) {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
if (!Array.isArray(value)) {
|
|
73
|
+
throw new Error(`Invalid array value: ${value}`);
|
|
74
|
+
}
|
|
75
|
+
return JSON.stringify(value);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Format object to JSON string
|
|
79
|
+
*
|
|
80
|
+
* @param value - Object (null/undefined allowed)
|
|
81
|
+
* @returns JSON string or empty string
|
|
82
|
+
*/
|
|
83
|
+
export function formatObject(value) {
|
|
84
|
+
// Return empty string for null/undefined
|
|
85
|
+
if (value === null || value === undefined) {
|
|
86
|
+
return '';
|
|
87
|
+
}
|
|
88
|
+
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
89
|
+
throw new Error(`Invalid object value: ${value}`);
|
|
90
|
+
}
|
|
91
|
+
return JSON.stringify(value);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Format field value according to its type
|
|
95
|
+
*
|
|
96
|
+
* @param type - Field type
|
|
97
|
+
* @param value - Value to format (null/undefined allowed)
|
|
98
|
+
* @returns Formatted string
|
|
67
99
|
*/
|
|
68
100
|
export function formatFieldValue(type, value) {
|
|
69
101
|
switch (type) {
|
|
70
102
|
case 'string':
|
|
71
|
-
//
|
|
103
|
+
// For string type, treat null/undefined as empty string
|
|
72
104
|
if (value === null || value === undefined) {
|
|
73
105
|
return '';
|
|
74
106
|
}
|
|
@@ -79,19 +111,23 @@ export function formatFieldValue(type, value) {
|
|
|
79
111
|
return formatDatetime(value);
|
|
80
112
|
case 'boolean':
|
|
81
113
|
return formatBoolean(value);
|
|
114
|
+
case 'array':
|
|
115
|
+
return formatArray(value);
|
|
116
|
+
case 'object':
|
|
117
|
+
return formatObject(value);
|
|
82
118
|
default:
|
|
83
119
|
throw new Error(`Unknown shadow field type: ${type}`);
|
|
84
120
|
}
|
|
85
121
|
}
|
|
86
122
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
123
|
+
* Generate shadow SK
|
|
124
|
+
* Format: {fieldName}#{formattedValue}#id#{recordId}
|
|
89
125
|
*
|
|
90
|
-
* @param fieldName -
|
|
91
|
-
* @param value -
|
|
92
|
-
* @param recordId -
|
|
93
|
-
* @param type -
|
|
94
|
-
* @returns
|
|
126
|
+
* @param fieldName - Field name
|
|
127
|
+
* @param value - Field value
|
|
128
|
+
* @param recordId - Record ID (ULID)
|
|
129
|
+
* @param type - Field type (default: 'string')
|
|
130
|
+
* @returns Generated shadow SK
|
|
95
131
|
*
|
|
96
132
|
* @example
|
|
97
133
|
* generateShadowSK('name', 'Tech News', '01HZXY123', 'string')
|
|
@@ -108,17 +144,25 @@ export function formatFieldValue(type, value) {
|
|
|
108
144
|
* @example
|
|
109
145
|
* generateShadowSK('isPublished', true, '01HZXY123', 'boolean')
|
|
110
146
|
* // => 'isPublished#true#id#01HZXY123'
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* generateShadowSK('tags', ['tech', 'aws'], '01HZXY123', 'array')
|
|
150
|
+
* // => 'tags#["tech","aws"]#id#01HZXY123'
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* generateShadowSK('metadata', { category: 'tech' }, '01HZXY123', 'object')
|
|
154
|
+
* // => 'metadata#{"category":"tech"}#id#01HZXY123'
|
|
111
155
|
*/
|
|
112
156
|
export function generateShadowSK(fieldName, value, recordId, type = 'string') {
|
|
113
157
|
const formattedValue = formatFieldValue(type, value);
|
|
114
158
|
return `${fieldName}#${formattedValue}#id#${recordId}`;
|
|
115
159
|
}
|
|
116
160
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
161
|
+
* Generate main record SK from record ID
|
|
162
|
+
* Format: id#{recordId}
|
|
119
163
|
*
|
|
120
|
-
* @param recordId -
|
|
121
|
-
* @returns
|
|
164
|
+
* @param recordId - Record ID (ULID)
|
|
165
|
+
* @returns Main record SK
|
|
122
166
|
*/
|
|
123
167
|
export function generateMainRecordSK(recordId) {
|
|
124
168
|
return `id#${recordId}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,oBAAoB;SACxC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,uBAAuB;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,yCAAyC;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAuC;IACpE,yCAAyC;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjE,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAiC;IAC7D,yCAAyC;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAA+B;IACzD,yCAAyC;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,yCAAyC;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAqB,EACrB,KAAU;IAEV,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,wDAAwD;YACxD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,KAAkC,CAAC,CAAC;QAC1D,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,KAAyC,CAAC,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,KAAmC,CAAC,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,KAAiC,CAAC,CAAC;QACxD,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,KAAkC,CAAC,CAAC;QAC1D;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,KAAU,EACV,QAAgB,EAChB,OAAwB,QAAQ;IAEhC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,GAAG,SAAS,IAAI,cAAc,OAAO,QAAQ,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,MAAM,QAAQ,EAAE,CAAC;AAC1B,CAAC"}
|
package/dist/shadows/index.d.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @exabugs/dynamodb-client/shadows -
|
|
2
|
+
* @exabugs/dynamodb-client/shadows - Shadow management library
|
|
3
3
|
*
|
|
4
|
-
* DynamoDB Single-Table
|
|
4
|
+
* Provides dynamic shadow record management for DynamoDB Single-Table design.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
6
|
+
* Main features:
|
|
7
|
+
* - Shadow SK generation (supports string/number/datetime/boolean/array/object)
|
|
8
|
+
* - Shadow difference calculation (comparing old and new shadows)
|
|
9
|
+
* - Configuration management utilities (for legacy compatibility)
|
|
10
10
|
*/
|
|
11
|
-
export type {
|
|
12
|
-
export
|
|
13
|
-
export { escapeString, formatNumber, formatDatetime, formatBoolean, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
11
|
+
export type { ShadowFieldType, ShadowFieldConfig, ShadowDiff } from './types.js';
|
|
12
|
+
export { escapeString, formatNumber, formatDatetime, formatBoolean, formatArray, formatObject, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
14
13
|
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
|
|
15
|
-
export { loadShadowConfig, getResourceConfig, getAllShadowFields, isValidShadowField, getDefaultSort, getConfigPathFromEnv, } from './config.js';
|
|
16
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACX,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/shadows/index.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @exabugs/dynamodb-client/shadows -
|
|
2
|
+
* @exabugs/dynamodb-client/shadows - Shadow management library
|
|
3
3
|
*
|
|
4
|
-
* DynamoDB Single-Table
|
|
4
|
+
* Provides dynamic shadow record management for DynamoDB Single-Table design.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
6
|
+
* Main features:
|
|
7
|
+
* - Shadow SK generation (supports string/number/datetime/boolean/array/object)
|
|
8
|
+
* - Shadow difference calculation (comparing old and new shadows)
|
|
9
|
+
* - Configuration management utilities (for legacy compatibility)
|
|
10
10
|
*/
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
// Legacy types removed in v0.3.x - use environment variables for configuration
|
|
12
|
+
// Generator functions export
|
|
13
|
+
export { escapeString, formatNumber, formatDatetime, formatBoolean, formatArray, formatObject, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
14
|
+
// Difference calculation functions export
|
|
14
15
|
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
|
|
15
|
-
//
|
|
16
|
-
|
|
16
|
+
// Note: Configuration management functions removed in v0.3.x
|
|
17
|
+
// Use environment variables for configuration instead
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,+EAA+E;AAE/E,6BAA6B;AAC7B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,0CAA0C;AAC1C,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,6DAA6D;AAC7D,sDAAsD"}
|
package/dist/shadows/types.d.ts
CHANGED
|
@@ -1,40 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shadow field types supported by the automatic shadow generation system
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
5
|
-
type: 'string' | 'number' | 'datetime';
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* リソースごとのシャドー設定
|
|
9
|
-
*/
|
|
10
|
-
export interface ResourceShadowConfig {
|
|
11
|
-
sortDefaults: {
|
|
12
|
-
field: string;
|
|
13
|
-
order: 'ASC' | 'DESC';
|
|
14
|
-
};
|
|
15
|
-
shadows: {
|
|
16
|
-
[fieldName: string]: ShadowFieldConfig;
|
|
17
|
-
};
|
|
18
|
-
ttl?: {
|
|
19
|
-
days: number;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
4
|
+
export type ShadowFieldType = 'string' | 'number' | 'datetime' | 'boolean' | 'array' | 'object';
|
|
22
5
|
/**
|
|
23
|
-
*
|
|
6
|
+
* Shadow field configuration
|
|
24
7
|
*/
|
|
25
|
-
export interface
|
|
26
|
-
|
|
27
|
-
resources: {
|
|
28
|
-
[resourceName: string]: ResourceShadowConfig;
|
|
29
|
-
};
|
|
8
|
+
export interface ShadowFieldConfig {
|
|
9
|
+
type: ShadowFieldType;
|
|
30
10
|
}
|
|
31
11
|
/**
|
|
32
|
-
*
|
|
12
|
+
* Result of shadow difference calculation
|
|
33
13
|
*/
|
|
34
14
|
export interface ShadowDiff {
|
|
35
|
-
/**
|
|
15
|
+
/** List of shadow SKs to delete */
|
|
36
16
|
toDelete: string[];
|
|
37
|
-
/**
|
|
17
|
+
/** List of shadow SKs to add */
|
|
38
18
|
toAdd: string[];
|
|
39
19
|
}
|
|
40
20
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;CACvB;AAKD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
|