@itzworking/single-table 0.0.150 → 0.0.156

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +6 -10
  2. package/{src → dist}/decorators/editable/editable.d.ts +1 -0
  3. package/dist/decorators/editable/editable.d.ts.map +1 -0
  4. package/dist/decorators/editable/editable.js +4 -0
  5. package/dist/decorators/editable/index.d.ts +3 -0
  6. package/dist/decorators/editable/index.d.ts.map +1 -0
  7. package/{src → dist}/decorators/editable/is-editable.d.ts +1 -0
  8. package/dist/decorators/editable/is-editable.d.ts.map +1 -0
  9. package/dist/decorators/editable/is-editable.js +4 -0
  10. package/{src → dist}/decorators/editable/symbol.d.ts +1 -0
  11. package/dist/decorators/editable/symbol.d.ts.map +1 -0
  12. package/dist/decorators/editable/symbol.js +1 -0
  13. package/{src → dist}/decorators/entity/entity.d.ts +1 -0
  14. package/dist/decorators/entity/entity.d.ts.map +1 -0
  15. package/dist/decorators/entity/entity.js +6 -0
  16. package/{src → dist}/decorators/entity/get-entity-name.d.ts +1 -0
  17. package/dist/decorators/entity/get-entity-name.d.ts.map +1 -0
  18. package/dist/decorators/entity/get-entity-name.js +4 -0
  19. package/dist/decorators/entity/index.d.ts +3 -0
  20. package/dist/decorators/entity/index.d.ts.map +1 -0
  21. package/{src → dist}/decorators/entity/symbol.d.ts +1 -0
  22. package/dist/decorators/entity/symbol.d.ts.map +1 -0
  23. package/dist/decorators/entity/symbol.js +1 -0
  24. package/{src → dist}/decorators/gsis/get-pk-composition.d.ts +1 -0
  25. package/dist/decorators/gsis/get-pk-composition.d.ts.map +1 -0
  26. package/dist/decorators/gsis/get-pk-composition.js +4 -0
  27. package/{src → dist}/decorators/gsis/get-sk-composition.d.ts +1 -0
  28. package/dist/decorators/gsis/get-sk-composition.d.ts.map +1 -0
  29. package/dist/decorators/gsis/get-sk-composition.js +4 -0
  30. package/{src → dist}/decorators/gsis/gsis.d.ts +1 -0
  31. package/dist/decorators/gsis/gsis.d.ts.map +1 -0
  32. package/dist/decorators/gsis/gsis.js +15 -0
  33. package/dist/decorators/gsis/index.d.ts +4 -0
  34. package/dist/decorators/gsis/index.d.ts.map +1 -0
  35. package/{src → dist}/decorators/gsis/symbols.d.ts +1 -0
  36. package/dist/decorators/gsis/symbols.d.ts.map +1 -0
  37. package/{src → dist}/decorators/gsis/symbols.js +1 -5
  38. package/{src → dist}/decorators/gsis/types.d.ts +1 -0
  39. package/dist/decorators/gsis/types.d.ts.map +1 -0
  40. package/dist/decorators/gsis/types.js +1 -0
  41. package/dist/decorators/index.d.ts +5 -0
  42. package/dist/decorators/index.d.ts.map +1 -0
  43. package/{src → dist}/dynamodb/delete-dynamodb-item.d.ts +1 -0
  44. package/dist/dynamodb/delete-dynamodb-item.d.ts.map +1 -0
  45. package/dist/dynamodb/delete-dynamodb-item.js +24 -0
  46. package/{src → dist}/dynamodb/dynamodb.d.ts +1 -0
  47. package/dist/dynamodb/dynamodb.d.ts.map +1 -0
  48. package/{src → dist}/dynamodb/dynamodb.js +3 -7
  49. package/{src → dist}/dynamodb/get-dynamodb-item.d.ts +1 -0
  50. package/dist/dynamodb/get-dynamodb-item.d.ts.map +1 -0
  51. package/dist/dynamodb/get-dynamodb-item.js +24 -0
  52. package/dist/dynamodb/index.d.ts +8 -0
  53. package/dist/dynamodb/index.d.ts.map +1 -0
  54. package/{src → dist}/dynamodb/put-dynamodb-item.d.ts +1 -0
  55. package/dist/dynamodb/put-dynamodb-item.d.ts.map +1 -0
  56. package/dist/dynamodb/put-dynamodb-item.js +28 -0
  57. package/{src → dist}/dynamodb/query-all-dynamodb.d.ts +1 -0
  58. package/dist/dynamodb/query-all-dynamodb.d.ts.map +1 -0
  59. package/dist/dynamodb/query-all-dynamodb.js +19 -0
  60. package/{src → dist}/dynamodb/query-dynamodb.d.ts +1 -0
  61. package/dist/dynamodb/query-dynamodb.d.ts.map +1 -0
  62. package/dist/dynamodb/query-dynamodb.js +28 -0
  63. package/{src → dist}/dynamodb/update-dynamodb-item.d.ts +1 -0
  64. package/dist/dynamodb/update-dynamodb-item.d.ts.map +1 -0
  65. package/dist/dynamodb/update-dynamodb-item.js +24 -0
  66. package/{src → dist}/errors/decorators-error.d.ts +1 -0
  67. package/dist/errors/decorators-error.d.ts.map +1 -0
  68. package/dist/errors/decorators-error.js +10 -0
  69. package/{src → dist}/errors/generate-update-expression-error.d.ts +1 -0
  70. package/dist/errors/generate-update-expression-error.d.ts.map +1 -0
  71. package/dist/errors/generate-update-expression-error.js +10 -0
  72. package/{src → dist}/errors/index-decorator-error.d.ts +1 -0
  73. package/dist/errors/index-decorator-error.d.ts.map +1 -0
  74. package/dist/errors/index-decorator-error.js +10 -0
  75. package/dist/errors/index.d.ts +6 -0
  76. package/dist/errors/index.d.ts.map +1 -0
  77. package/{src → dist}/errors/key-composition-error.d.ts +1 -0
  78. package/dist/errors/key-composition-error.d.ts.map +1 -0
  79. package/dist/errors/key-composition-error.js +10 -0
  80. package/{src → dist}/errors/single-table-error.d.ts +1 -0
  81. package/dist/errors/single-table-error.d.ts.map +1 -0
  82. package/{src → dist}/errors/single-table-error.js +2 -6
  83. package/{src → dist}/errors/single-table-item-format-error.d.ts +1 -0
  84. package/dist/errors/single-table-item-format-error.d.ts.map +1 -0
  85. package/dist/errors/single-table-item-format-error.js +10 -0
  86. package/dist/index.d.ts +7 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/single-table-item/index.d.ts +2 -0
  89. package/dist/single-table-item/index.d.ts.map +1 -0
  90. package/{src → dist}/single-table-item/single-table-item.d.ts +1 -0
  91. package/dist/single-table-item/single-table-item.d.ts.map +1 -0
  92. package/dist/single-table-item/single-table-item.js +278 -0
  93. package/{src → dist}/single-table-item/utils/capitalize-first-letter.d.ts +1 -0
  94. package/dist/single-table-item/utils/capitalize-first-letter.d.ts.map +1 -0
  95. package/dist/single-table-item/utils/capitalize-first-letter.js +3 -0
  96. package/{src → dist}/single-table-item/utils/handle-composite-primary-key.d.ts +1 -0
  97. package/dist/single-table-item/utils/handle-composite-primary-key.d.ts.map +1 -0
  98. package/dist/single-table-item/utils/handle-composite-primary-key.js +33 -0
  99. package/dist/single-table-item/utils/index.d.ts +4 -0
  100. package/dist/single-table-item/utils/index.d.ts.map +1 -0
  101. package/{src → dist}/single-table-item/utils/validate-entity-annotations.d.ts +1 -0
  102. package/dist/single-table-item/utils/validate-entity-annotations.d.ts.map +1 -0
  103. package/{src → dist}/single-table-item/utils/validate-entity-annotations.js +3 -8
  104. package/dist/single-table-repository/index.d.ts +3 -0
  105. package/dist/single-table-repository/index.d.ts.map +1 -0
  106. package/{src → dist}/single-table-repository/single-table-repository.d.ts +1 -0
  107. package/dist/single-table-repository/single-table-repository.d.ts.map +1 -0
  108. package/dist/single-table-repository/single-table-repository.js +211 -0
  109. package/{src → dist}/single-table-repository/types.d.ts +1 -0
  110. package/dist/single-table-repository/types.d.ts.map +1 -0
  111. package/dist/single-table-repository/types.js +1 -0
  112. package/{src → dist}/types.d.ts +1 -0
  113. package/dist/types.d.ts.map +1 -0
  114. package/dist/types.js +1 -0
  115. package/package.json +38 -10
  116. package/src/decorators/editable/editable.js +0 -9
  117. package/src/decorators/editable/editable.js.map +0 -1
  118. package/src/decorators/editable/index.js +0 -6
  119. package/src/decorators/editable/index.js.map +0 -1
  120. package/src/decorators/editable/is-editable.js +0 -9
  121. package/src/decorators/editable/is-editable.js.map +0 -1
  122. package/src/decorators/editable/symbol.js +0 -5
  123. package/src/decorators/editable/symbol.js.map +0 -1
  124. package/src/decorators/entity/entity.js +0 -11
  125. package/src/decorators/entity/entity.js.map +0 -1
  126. package/src/decorators/entity/get-entity-name.js +0 -9
  127. package/src/decorators/entity/get-entity-name.js.map +0 -1
  128. package/src/decorators/entity/index.js +0 -6
  129. package/src/decorators/entity/index.js.map +0 -1
  130. package/src/decorators/entity/symbol.js +0 -5
  131. package/src/decorators/entity/symbol.js.map +0 -1
  132. package/src/decorators/gsis/get-pk-composition.js +0 -9
  133. package/src/decorators/gsis/get-pk-composition.js.map +0 -1
  134. package/src/decorators/gsis/get-sk-composition.js +0 -9
  135. package/src/decorators/gsis/get-sk-composition.js.map +0 -1
  136. package/src/decorators/gsis/gsis.js +0 -19
  137. package/src/decorators/gsis/gsis.js.map +0 -1
  138. package/src/decorators/gsis/index.js +0 -7
  139. package/src/decorators/gsis/index.js.map +0 -1
  140. package/src/decorators/gsis/symbols.js.map +0 -1
  141. package/src/decorators/gsis/types.js +0 -3
  142. package/src/decorators/gsis/types.js.map +0 -1
  143. package/src/decorators/index.js +0 -8
  144. package/src/decorators/index.js.map +0 -1
  145. package/src/dynamodb/delete-dynamodb-item.js +0 -30
  146. package/src/dynamodb/delete-dynamodb-item.js.map +0 -1
  147. package/src/dynamodb/dynamodb.js.map +0 -1
  148. package/src/dynamodb/get-dynamodb-item.js +0 -30
  149. package/src/dynamodb/get-dynamodb-item.js.map +0 -1
  150. package/src/dynamodb/index.js +0 -11
  151. package/src/dynamodb/index.js.map +0 -1
  152. package/src/dynamodb/put-dynamodb-item.js +0 -31
  153. package/src/dynamodb/put-dynamodb-item.js.map +0 -1
  154. package/src/dynamodb/query-all-dynamodb.js +0 -22
  155. package/src/dynamodb/query-all-dynamodb.js.map +0 -1
  156. package/src/dynamodb/query-dynamodb.js +0 -31
  157. package/src/dynamodb/query-dynamodb.js.map +0 -1
  158. package/src/dynamodb/update-dynamodb-item.js +0 -30
  159. package/src/dynamodb/update-dynamodb-item.js.map +0 -1
  160. package/src/errors/decorators-error.js +0 -15
  161. package/src/errors/decorators-error.js.map +0 -1
  162. package/src/errors/generate-update-expression-error.js +0 -15
  163. package/src/errors/generate-update-expression-error.js.map +0 -1
  164. package/src/errors/index-decorator-error.js +0 -15
  165. package/src/errors/index-decorator-error.js.map +0 -1
  166. package/src/errors/index.js +0 -9
  167. package/src/errors/index.js.map +0 -1
  168. package/src/errors/key-composition-error.js +0 -15
  169. package/src/errors/key-composition-error.js.map +0 -1
  170. package/src/errors/single-table-error.js.map +0 -1
  171. package/src/errors/single-table-item-format-error.js +0 -15
  172. package/src/errors/single-table-item-format-error.js.map +0 -1
  173. package/src/index.js +0 -10
  174. package/src/index.js.map +0 -1
  175. package/src/single-table-item/index.js +0 -5
  176. package/src/single-table-item/index.js.map +0 -1
  177. package/src/single-table-item/single-table-item.js +0 -259
  178. package/src/single-table-item/single-table-item.js.map +0 -1
  179. package/src/single-table-item/utils/capitalize-first-letter.js +0 -8
  180. package/src/single-table-item/utils/capitalize-first-letter.js.map +0 -1
  181. package/src/single-table-item/utils/handle-composite-primary-key.js +0 -38
  182. package/src/single-table-item/utils/handle-composite-primary-key.js.map +0 -1
  183. package/src/single-table-item/utils/index.js +0 -7
  184. package/src/single-table-item/utils/index.js.map +0 -1
  185. package/src/single-table-item/utils/validate-entity-annotations.js.map +0 -1
  186. package/src/single-table-repository/index.js +0 -6
  187. package/src/single-table-repository/index.js.map +0 -1
  188. package/src/single-table-repository/single-table-repository.js +0 -197
  189. package/src/single-table-repository/single-table-repository.js.map +0 -1
  190. package/src/single-table-repository/types.js +0 -3
  191. package/src/single-table-repository/types.js.map +0 -1
  192. package/src/types.js +0 -3
  193. package/src/types.js.map +0 -1
  194. /package/{src/decorators/editable/index.d.ts → dist/decorators/editable/index.js} +0 -0
  195. /package/{src/decorators/entity/index.d.ts → dist/decorators/entity/index.js} +0 -0
  196. /package/{src/decorators/gsis/index.d.ts → dist/decorators/gsis/index.js} +0 -0
  197. /package/{src/decorators/index.d.ts → dist/decorators/index.js} +0 -0
  198. /package/{src/dynamodb/index.d.ts → dist/dynamodb/index.js} +0 -0
  199. /package/{src/errors/index.d.ts → dist/errors/index.js} +0 -0
  200. /package/{src/index.d.ts → dist/index.js} +0 -0
  201. /package/{src/single-table-item/index.d.ts → dist/single-table-item/index.js} +0 -0
  202. /package/{src/single-table-item/utils/index.d.ts → dist/single-table-item/utils/index.js} +0 -0
  203. /package/{src/single-table-repository/index.d.ts → dist/single-table-repository/index.js} +0 -0
@@ -1,7 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SingleTableError = void 0;
4
- class SingleTableError extends Error {
1
+ export class SingleTableError extends Error {
2
+ statusCode;
5
3
  constructor(props) {
6
4
  super(JSON.stringify({ props }));
7
5
  const { statusCode = 500 } = props;
@@ -10,5 +8,3 @@ class SingleTableError extends Error {
10
8
  Object.setPrototypeOf(this, new.target.prototype); // maintain prototype chain
11
9
  }
12
10
  }
13
- exports.SingleTableError = SingleTableError;
14
- //# sourceMappingURL=single-table-error.js.map
@@ -2,3 +2,4 @@ import { SingleTableError } from "./single-table-error";
2
2
  export declare class SingleTableItemFormatError extends SingleTableError {
3
3
  constructor(message: string);
4
4
  }
5
+ //# sourceMappingURL=single-table-item-format-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-table-item-format-error.d.ts","sourceRoot":"","sources":["../../src/errors/single-table-item-format-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,qBAAa,0BAA2B,SAAQ,gBAAgB;gBAClD,OAAO,EAAE,MAAM;CAO5B"}
@@ -0,0 +1,10 @@
1
+ import { SingleTableError } from "./single-table-error";
2
+ export class SingleTableItemFormatError extends SingleTableError {
3
+ constructor(message) {
4
+ super({
5
+ message,
6
+ });
7
+ this.name = "SingleTableItemFormatError";
8
+ Object.setPrototypeOf(this, new.target.prototype); // maintain prototype chain
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./types";
2
+ export * from "./decorators";
3
+ export * from "./dynamodb";
4
+ export * from "./errors";
5
+ export * from "./single-table-item";
6
+ export * from "./single-table-repository";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./single-table-item";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/single-table-item/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -37,3 +37,4 @@ export declare abstract class SingleTableItem extends DecoratedClass {
37
37
  };
38
38
  toSingleTableItem(): any;
39
39
  }
40
+ //# sourceMappingURL=single-table-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-table-item.d.ts","sourceRoot":"","sources":["../../src/single-table-item/single-table-item.ts"],"names":[],"mappings":"AAkBA,OAAO,EAIL,cAAc,EACd,8BAA8B,EAE/B,MAAM,6BAA6B,CAAC;AAErC,8BAAsB,eAAgB,SAAQ,cAAc;IAE1D,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,IAAI,CAAC;IAIhB,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,SAAS,aAAa,KAAK,GAAE,8BAAmC;IAchE,UAAU;IAKV,IAAI,IAAI,MAAM;IAId,EAAE,IAAI,MAAM;IAUZ,EAAE,IAAI,MAAM;IAUZ,GAAG;;;;IAOH,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,MAAM,IAAI,MAAM;IAIhB,wBAAwB,CAAC,UAAU,GAAE,MAAM,EAAO;;;;;;;;;IA0HlD,iBAAiB;CA8DlB"}
@@ -0,0 +1,278 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { v4 as uuid } from "uuid";
3
+ import { Editable, getEntityName, getPKComposition, getSKComposition, isEditable, } from "../decorators";
4
+ import { capitalizeFirstLetter, handleCompositePrimaryKey, validateEntityAnnotations, } from "./utils";
5
+ import { GenerateUpdateExpressionError, IndexDecoratorError, SingleTableItemFormatError, } from "../errors";
6
+ import { Attribute, AttributeType, DecoratedClass, listAttributes, } from "@itzworking/decorated-class";
7
+ let SingleTableItem = (() => {
8
+ let _classSuper = DecoratedClass;
9
+ let _id_decorators;
10
+ let _id_initializers = [];
11
+ let _id_extraInitializers = [];
12
+ let _createdAt_decorators;
13
+ let _createdAt_initializers = [];
14
+ let _createdAt_extraInitializers = [];
15
+ let _updatedAt_decorators;
16
+ let _updatedAt_initializers = [];
17
+ let _updatedAt_extraInitializers = [];
18
+ let _createdBy_decorators;
19
+ let _createdBy_initializers = [];
20
+ let _createdBy_extraInitializers = [];
21
+ let _updatedBy_decorators;
22
+ let _updatedBy_initializers = [];
23
+ let _updatedBy_extraInitializers = [];
24
+ let _deletedBy_decorators;
25
+ let _deletedBy_initializers = [];
26
+ let _deletedBy_extraInitializers = [];
27
+ let _deletedAt_decorators;
28
+ let _deletedAt_initializers = [];
29
+ let _deletedAt_extraInitializers = [];
30
+ return class SingleTableItem extends _classSuper {
31
+ static {
32
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
33
+ _id_decorators = [Attribute(AttributeType.String)];
34
+ _createdAt_decorators = [Attribute(AttributeType.Date)];
35
+ _updatedAt_decorators = [Editable, Attribute(AttributeType.Date)];
36
+ _createdBy_decorators = [Attribute(AttributeType.String)];
37
+ _updatedBy_decorators = [Editable, Attribute(AttributeType.String)];
38
+ _deletedBy_decorators = [Attribute(AttributeType.String)];
39
+ _deletedAt_decorators = [Attribute(AttributeType.Date)];
40
+ __esDecorate(null, null, _id_decorators, { kind: "field", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
41
+ __esDecorate(null, null, _createdAt_decorators, { kind: "field", name: "createdAt", static: false, private: false, access: { has: obj => "createdAt" in obj, get: obj => obj.createdAt, set: (obj, value) => { obj.createdAt = value; } }, metadata: _metadata }, _createdAt_initializers, _createdAt_extraInitializers);
42
+ __esDecorate(null, null, _updatedAt_decorators, { kind: "field", name: "updatedAt", static: false, private: false, access: { has: obj => "updatedAt" in obj, get: obj => obj.updatedAt, set: (obj, value) => { obj.updatedAt = value; } }, metadata: _metadata }, _updatedAt_initializers, _updatedAt_extraInitializers);
43
+ __esDecorate(null, null, _createdBy_decorators, { kind: "field", name: "createdBy", static: false, private: false, access: { has: obj => "createdBy" in obj, get: obj => obj.createdBy, set: (obj, value) => { obj.createdBy = value; } }, metadata: _metadata }, _createdBy_initializers, _createdBy_extraInitializers);
44
+ __esDecorate(null, null, _updatedBy_decorators, { kind: "field", name: "updatedBy", static: false, private: false, access: { has: obj => "updatedBy" in obj, get: obj => obj.updatedBy, set: (obj, value) => { obj.updatedBy = value; } }, metadata: _metadata }, _updatedBy_initializers, _updatedBy_extraInitializers);
45
+ __esDecorate(null, null, _deletedBy_decorators, { kind: "field", name: "deletedBy", static: false, private: false, access: { has: obj => "deletedBy" in obj, get: obj => obj.deletedBy, set: (obj, value) => { obj.deletedBy = value; } }, metadata: _metadata }, _deletedBy_initializers, _deletedBy_extraInitializers);
46
+ __esDecorate(null, null, _deletedAt_decorators, { kind: "field", name: "deletedAt", static: false, private: false, access: { has: obj => "deletedAt" in obj, get: obj => obj.deletedAt, set: (obj, value) => { obj.deletedAt = value; } }, metadata: _metadata }, _deletedAt_initializers, _deletedAt_extraInitializers);
47
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
48
+ }
49
+ id = __runInitializers(this, _id_initializers, void 0);
50
+ createdAt = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _createdAt_initializers, void 0));
51
+ updatedAt = (__runInitializers(this, _createdAt_extraInitializers), __runInitializers(this, _updatedAt_initializers, void 0));
52
+ createdBy = (__runInitializers(this, _updatedAt_extraInitializers), __runInitializers(this, _createdBy_initializers, void 0));
53
+ updatedBy = (__runInitializers(this, _createdBy_extraInitializers), __runInitializers(this, _updatedBy_initializers, void 0));
54
+ deletedBy = (__runInitializers(this, _updatedBy_extraInitializers), __runInitializers(this, _deletedBy_initializers, void 0));
55
+ deletedAt = (__runInitializers(this, _deletedBy_extraInitializers), __runInitializers(this, _deletedAt_initializers, void 0));
56
+ constructor(props = {}) {
57
+ super(props);
58
+ __runInitializers(this, _deletedAt_extraInitializers);
59
+ validateEntityAnnotations(this);
60
+ if (!props?.id) {
61
+ this.generateId();
62
+ }
63
+ if (!props?.createdAt) {
64
+ this.createdAt = new Date();
65
+ }
66
+ if (!props?.updatedAt) {
67
+ this.updatedAt = new Date();
68
+ }
69
+ }
70
+ generateId() {
71
+ this.id = uuid();
72
+ return this.id;
73
+ }
74
+ type() {
75
+ return getEntityName(this);
76
+ }
77
+ pk() {
78
+ const keys = getPKComposition(this);
79
+ if (!keys?.length) {
80
+ throw new IndexDecoratorError(`@Entity("${this.type()}") @Index: PK is not defined`);
81
+ }
82
+ return handleCompositePrimaryKey(this, keys);
83
+ }
84
+ sk() {
85
+ const keys = getSKComposition(this);
86
+ if (!keys?.length) {
87
+ throw new IndexDecoratorError(`@Entity("${this.type()}") @Index: SK is not defined`);
88
+ }
89
+ return handleCompositePrimaryKey(this, keys);
90
+ }
91
+ key() {
92
+ return {
93
+ PK: this.pk(),
94
+ SK: this.sk(),
95
+ };
96
+ }
97
+ gsi1pk() {
98
+ return handleCompositePrimaryKey(this, getPKComposition(this, "GSI1"));
99
+ }
100
+ gsi1sk() {
101
+ return handleCompositePrimaryKey(this, getSKComposition(this, "GSI1"));
102
+ }
103
+ gsi2pk() {
104
+ return handleCompositePrimaryKey(this, getPKComposition(this, "GSI2"));
105
+ }
106
+ gsi2sk() {
107
+ return handleCompositePrimaryKey(this, getSKComposition(this, "GSI2"));
108
+ }
109
+ gsi3pk() {
110
+ return handleCompositePrimaryKey(this, getPKComposition(this, "GSI3"));
111
+ }
112
+ gsi3sk() {
113
+ return handleCompositePrimaryKey(this, getSKComposition(this, "GSI3"));
114
+ }
115
+ gsi4pk() {
116
+ return handleCompositePrimaryKey(this, getPKComposition(this, "GSI4"));
117
+ }
118
+ gsi4sk() {
119
+ return handleCompositePrimaryKey(this, getSKComposition(this, "GSI4"));
120
+ }
121
+ gsi5pk() {
122
+ return handleCompositePrimaryKey(this, getPKComposition(this, "GSI5"));
123
+ }
124
+ gsi5sk() {
125
+ return handleCompositePrimaryKey(this, getSKComposition(this, "GSI5"));
126
+ }
127
+ generateUpdateExpression(attributes = []) {
128
+ const attributesToUpdate = [];
129
+ const entityAttributes = listAttributes(this);
130
+ if (attributes?.length) {
131
+ for (const attribute of attributes) {
132
+ if (entityAttributes.find((ef) => ef.attributeName === attribute)) {
133
+ attributesToUpdate.push(attribute);
134
+ }
135
+ else {
136
+ throw new GenerateUpdateExpressionError(`@Entity("${this.type()}"): ${attribute} is not an @Attribute`);
137
+ }
138
+ }
139
+ }
140
+ else {
141
+ for (const attribute of entityAttributes) {
142
+ if (!isEditable(this, attribute.attributeName)) {
143
+ continue;
144
+ }
145
+ attributesToUpdate.push(attribute.attributeName);
146
+ }
147
+ }
148
+ if (attributesToUpdate.length === 0) {
149
+ throw new GenerateUpdateExpressionError(`@Entity("${this.type()}"): attributesToUpdate is empty; attributes = ${attributes}`);
150
+ }
151
+ else {
152
+ const indexComposition = {
153
+ PK: getPKComposition(this),
154
+ SK: getSKComposition(this),
155
+ };
156
+ const indexPkSkAttributes = [
157
+ ...(indexComposition.PK || []),
158
+ ...(indexComposition.SK || []),
159
+ ];
160
+ const notAllowedAttributes = indexPkSkAttributes.filter((attribute) => attributesToUpdate.includes(attribute));
161
+ if (notAllowedAttributes.length > 0) {
162
+ throw new GenerateUpdateExpressionError(`@Entity("${this.type()}"): cannot update @Index notAllowedAttributes = ${notAllowedAttributes}`);
163
+ }
164
+ }
165
+ const attributeValues = {};
166
+ const attributeNames = {};
167
+ const namesAndValues = [];
168
+ const attributesToRemove = [];
169
+ const gsis = {
170
+ GSI1: {
171
+ PK: getPKComposition(this, "GSI1"),
172
+ SK: getSKComposition(this, "GSI1"),
173
+ },
174
+ GSI2: {
175
+ PK: getPKComposition(this, "GSI2"),
176
+ SK: getSKComposition(this, "GSI2"),
177
+ },
178
+ GSI3: {
179
+ PK: getPKComposition(this, "GSI3"),
180
+ SK: getSKComposition(this, "GSI3"),
181
+ },
182
+ GSI4: {
183
+ PK: getPKComposition(this, "GSI4"),
184
+ SK: getSKComposition(this, "GSI4"),
185
+ },
186
+ GSI5: {
187
+ PK: getPKComposition(this, "GSI5"),
188
+ SK: getSKComposition(this, "GSI5"),
189
+ },
190
+ };
191
+ for (const [gsiKey, gsiComposition] of Object.entries(gsis)) {
192
+ for (const [gsiAttributeKey, gsiAttributeComposition] of Object.entries(gsiComposition)) {
193
+ if (gsiAttributeComposition?.some((key) => attributesToUpdate.includes(key))) {
194
+ attributeNames[`#key${gsiKey}${gsiAttributeKey}`] = `${gsiKey}${gsiAttributeKey}`;
195
+ attributeValues[`:value${gsiKey}${gsiAttributeKey}`] = this[`${gsiKey}${gsiAttributeKey}`.toLowerCase()]();
196
+ namesAndValues.push(`#key${gsiKey}${gsiAttributeKey} = :value${gsiKey}${gsiAttributeKey}`);
197
+ }
198
+ }
199
+ }
200
+ for (const key of attributesToUpdate) {
201
+ const keyToUse = capitalizeFirstLetter(key);
202
+ const value = this[key];
203
+ attributeNames[`#key${keyToUse}`] = key;
204
+ if (value === undefined) {
205
+ attributesToRemove.push(`#key${keyToUse}`);
206
+ }
207
+ else {
208
+ attributeValues[`:value${keyToUse}`] =
209
+ value instanceof Date ? value.toISOString() : value;
210
+ namesAndValues.push(`#key${keyToUse} = :value${keyToUse}`);
211
+ }
212
+ }
213
+ return {
214
+ UpdateExpression: ((namesAndValues.length ? `SET ${namesAndValues.join(", ")} ` : "") +
215
+ (attributesToRemove.length
216
+ ? `REMOVE ${attributesToRemove.join(", ")}`
217
+ : "")).trim(),
218
+ ExpressionAttributeNames: attributeNames,
219
+ ExpressionAttributeValues: attributeValues,
220
+ };
221
+ }
222
+ toSingleTableItem() {
223
+ const result = {
224
+ type: this.type(),
225
+ ...this.key(),
226
+ };
227
+ if (this.gsi1pk() && this.gsi1sk()) {
228
+ result.GSI1PK = this.gsi1pk();
229
+ result.GSI1SK = this.gsi1sk();
230
+ }
231
+ if (this.gsi2pk() && this.gsi2sk()) {
232
+ result.GSI2PK = this.gsi2pk();
233
+ result.GSI2SK = this.gsi2sk();
234
+ }
235
+ if (this.gsi3pk() && this.gsi3sk()) {
236
+ result.GSI3PK = this.gsi3pk();
237
+ result.GSI3SK = this.gsi3sk();
238
+ }
239
+ if (this.gsi4pk() && this.gsi4sk()) {
240
+ result.GSI4PK = this.gsi4pk();
241
+ result.GSI4SK = this.gsi4sk();
242
+ }
243
+ if (this.gsi5pk() && this.gsi5sk()) {
244
+ result.GSI5PK = this.gsi5pk();
245
+ result.GSI5SK = this.gsi5sk();
246
+ }
247
+ const attributes = listAttributes(this);
248
+ const reservedKeys = [
249
+ "type",
250
+ "PK",
251
+ "SK",
252
+ "GSI1PK",
253
+ "GSI1SK",
254
+ "GSI2PK",
255
+ "GSI2SK",
256
+ "GSI3PK",
257
+ "GSI3SK",
258
+ "GSI4PK",
259
+ "GSI4SK",
260
+ "GSI5PK",
261
+ "GSI5SK",
262
+ ];
263
+ const reservedKeysInUse = reservedKeys.filter((reservedKey) => attributes.find((f) => f.attributeName === reservedKey));
264
+ if (reservedKeysInUse.length > 0) {
265
+ throw new SingleTableItemFormatError(`@Entity("${this.type()}"): cannot use reserved keys in attributes = ${reservedKeysInUse}`);
266
+ }
267
+ for (const attribute of attributes) {
268
+ const value = this[attribute.attributeName];
269
+ if (value !== undefined) {
270
+ result[attribute.attributeName] =
271
+ value instanceof Date ? value.toISOString() : value;
272
+ }
273
+ }
274
+ return result;
275
+ }
276
+ };
277
+ })();
278
+ export { SingleTableItem };
@@ -1 +1,2 @@
1
1
  export declare const capitalizeFirstLetter: (s: string) => string;
2
+ //# sourceMappingURL=capitalize-first-letter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize-first-letter.d.ts","sourceRoot":"","sources":["../../../src/single-table-item/utils/capitalize-first-letter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAO,MAAM,WAE9C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const capitalizeFirstLetter = (s) => {
2
+ return s.charAt(0).toUpperCase() + s.slice(1);
3
+ };
@@ -1 +1,2 @@
1
1
  export declare const handleCompositePrimaryKey: (target: any, keys?: string[]) => string;
2
+ //# sourceMappingURL=handle-composite-primary-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-composite-primary-key.d.ts","sourceRoot":"","sources":["../../../src/single-table-item/utils/handle-composite-primary-key.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB,WAC5B,GAAG,SACJ,MAAM,EAAE,KACd,MA4BF,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { AttributeType, listAttributes, PrimitiveType, } from "@itzworking/decorated-class";
2
+ import { KeyCompositionError } from "../../errors/key-composition-error";
3
+ const isPrimitiveType = (type) => {
4
+ return Object.values(PrimitiveType).includes(type);
5
+ };
6
+ export const handleCompositePrimaryKey = (target, keys) => {
7
+ if (!keys?.length) {
8
+ return "";
9
+ }
10
+ const entityAttributes = listAttributes(target);
11
+ const result = [];
12
+ for (const key of keys) {
13
+ const entityAttribute = entityAttributes.find((attDef) => attDef.attributeName === key);
14
+ if (entityAttribute) {
15
+ if (!isPrimitiveType(entityAttribute?.attributeType)) {
16
+ throw new KeyCompositionError(`Composite primary key must all be primitive type - @Entity("${target.type()}"): ${key}`);
17
+ }
18
+ if (target[key] === undefined) {
19
+ result.push("null");
20
+ }
21
+ else if (entityAttribute.attributeType === AttributeType.Date) {
22
+ result.push(target[key].toISOString());
23
+ }
24
+ else {
25
+ result.push(target[key]);
26
+ }
27
+ }
28
+ else {
29
+ result.push(key);
30
+ }
31
+ }
32
+ return result.join("#");
33
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./capitalize-first-letter";
2
+ export * from "./handle-composite-primary-key";
3
+ export * from "./validate-entity-annotations";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/single-table-item/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { SingleTableItem } from "../single-table-item";
2
2
  export declare const validateEntityAnnotations: <T extends SingleTableItem>(entity: T) => void;
3
+ //# sourceMappingURL=validate-entity-annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-entity-annotations.d.ts","sourceRoot":"","sources":["../../../src/single-table-item/utils/validate-entity-annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,eAAe,UACzD,CAAC,SAiCV,CAAC"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateEntityAnnotations = void 0;
4
- const errors_1 = require("../../errors");
5
- const validateEntityAnnotations = (entity) => {
1
+ import { DecoratorsError } from "../../errors";
2
+ export const validateEntityAnnotations = (entity) => {
6
3
  const errors = [];
7
4
  if (!entity.type()) {
8
5
  errors.push("missing @Entity annotation on SingleTableItem class");
@@ -32,8 +29,6 @@ const validateEntityAnnotations = (entity) => {
32
29
  // }
33
30
  // }
34
31
  if (errors.length) {
35
- throw new errors_1.DecoratorsError(errors.join(","));
32
+ throw new DecoratorsError(errors.join(","));
36
33
  }
37
34
  };
38
- exports.validateEntityAnnotations = validateEntityAnnotations;
39
- //# sourceMappingURL=validate-entity-annotations.js.map
@@ -0,0 +1,3 @@
1
+ export * from "./single-table-repository";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/single-table-repository/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,SAAS,CAAC"}
@@ -16,3 +16,4 @@ export declare abstract class SingleTableRepository<T extends SingleTableItem> {
16
16
  lastEvaluatedKey?: Record<string, any>;
17
17
  }>;
18
18
  }
19
+ //# sourceMappingURL=single-table-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-table-repository.d.ts","sourceRoot":"","sources":["../../src/single-table-repository/single-table-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,iBAAiB,EAEjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAWjB,8BAAsB,qBAAqB,CAAC,CAAC,SAAS,eAAe;IACnE,QAAQ,CAAC,SAAS,SACuD;IAEzE,SAAS,IAAI,MAAM;IAQb,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;IAoC1D,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAepD,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwB7D,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D,KAAK,CACT,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAO5D,wBAAwB,CAAC,CAAC,SAAS,eAAe,EACtD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;CAwHnE"}