@kravc/dos 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (70) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/bin/spec.js +22 -0
  3. package/dist/Context/MockedContext.d.ts +8 -0
  4. package/dist/Context/MockedContext.d.ts.map +1 -0
  5. package/dist/Context/MockedContext.js +22 -0
  6. package/dist/Context/MockedContext.js.map +1 -0
  7. package/dist/Context/index.d.ts +2 -1
  8. package/dist/Context/index.d.ts.map +1 -1
  9. package/dist/Context/index.js +3 -1
  10. package/dist/Context/index.js.map +1 -1
  11. package/dist/Document/Document.d.ts +12 -7
  12. package/dist/Document/Document.d.ts.map +1 -1
  13. package/dist/Document/Document.js +23 -13
  14. package/dist/Document/Document.js.map +1 -1
  15. package/dist/Document/MemoryDocument.d.ts +5 -4
  16. package/dist/Document/MemoryDocument.d.ts.map +1 -1
  17. package/dist/Document/MemoryDocument.js +13 -7
  18. package/dist/Document/MemoryDocument.js.map +1 -1
  19. package/dist/Operation/Operation.d.ts +1 -1
  20. package/dist/Operation/Operation.d.ts.map +1 -1
  21. package/dist/Operation/Operation.js +2 -2
  22. package/dist/Operation/Operation.js.map +1 -1
  23. package/dist/Operation/errors/{UnprocessibleConditionError.d.ts → UnprocessableConditionError.d.ts} +6 -6
  24. package/dist/Operation/errors/{UnprocessibleConditionError.d.ts.map → UnprocessableConditionError.d.ts.map} +1 -1
  25. package/dist/Operation/errors/{UnprocessibleConditionError.js → UnprocessableConditionError.js} +8 -8
  26. package/dist/Operation/errors/{UnprocessibleConditionError.js.map → UnprocessableConditionError.js.map} +1 -1
  27. package/dist/Operation/errors/index.d.ts +2 -2
  28. package/dist/Operation/errors/index.js +3 -3
  29. package/dist/Operation/operations/Index.js +7 -7
  30. package/dist/Operation/operations/Index.js.map +1 -1
  31. package/dist/Operation/operations/List.d.ts.map +1 -1
  32. package/dist/Operation/operations/List.js +13 -2
  33. package/dist/Operation/operations/List.js.map +1 -1
  34. package/dist/Operation/security/userAuthorization.d.ts +2 -0
  35. package/dist/Operation/security/userAuthorization.d.ts.map +1 -1
  36. package/dist/Operation/security/userAuthorization.js.map +1 -1
  37. package/dist/Service/Service.d.ts +0 -1
  38. package/dist/Service/Service.d.ts.map +1 -1
  39. package/dist/Service/Service.js +13 -4
  40. package/dist/Service/Service.js.map +1 -1
  41. package/dist/Service/errors/OperationError.d.ts +2 -2
  42. package/dist/Service/errors/OperationError.d.ts.map +1 -1
  43. package/dist/Service/errors/OperationError.js.map +1 -1
  44. package/dist/Service/test/execute.d.ts +2 -2
  45. package/dist/Service/test/execute.d.ts.map +1 -1
  46. package/package.json +12 -9
  47. package/src/Context/MockedContext.ts +21 -0
  48. package/src/Context/__tests__/MockedContext.test.ts +14 -0
  49. package/src/Context/index.ts +2 -0
  50. package/src/Document/Document.ts +33 -19
  51. package/src/Document/MemoryDocument.ts +16 -8
  52. package/src/Operation/Operation.ts +7 -10
  53. package/src/Operation/errors/{UnprocessibleConditionError.ts → UnprocessableConditionError.ts} +7 -7
  54. package/src/Operation/errors/__tests__/UnprocessableConditionError.test.ts +20 -0
  55. package/src/Operation/errors/index.ts +2 -2
  56. package/src/Operation/operations/Index.ts +8 -8
  57. package/src/Operation/operations/List.ts +14 -2
  58. package/src/Operation/operations/__tests__/Create.test.ts +1 -1
  59. package/src/Operation/operations/__tests__/Delete.test.ts +1 -1
  60. package/src/Operation/operations/__tests__/Index.test.ts +4 -4
  61. package/src/Operation/operations/__tests__/List.test.ts +1 -1
  62. package/src/Operation/operations/__tests__/Read.test.ts +1 -1
  63. package/src/Operation/operations/__tests__/Update.test.ts +1 -1
  64. package/src/Operation/security/userAuthorization.ts +2 -0
  65. package/src/Service/Service.ts +18 -5
  66. package/src/Service/__tests__/Service.test.ts +1 -6
  67. package/src/Service/errors/OperationError.ts +2 -2
  68. package/src/Service/errors/OperationErrorAttributes.d.ts +1 -1
  69. package/src/Service/test/execute.ts +1 -1
  70. package/src/Operation/errors/__tests__/UnprocessibleConditionError.test.ts +0 -20
@@ -4,6 +4,6 @@ import AccessDeniedError from './AccessDeniedError';
4
4
  import DocumentExistsError from './DocumentExistsError';
5
5
  import DocumentNotFoundError from './DocumentNotFoundError';
6
6
  import InvalidParametersError from './InvalidParametersError';
7
- import UnprocessibleConditionError from './UnprocessibleConditionError';
8
- export { CommonError, UnauthorizedError, AccessDeniedError, DocumentExistsError, DocumentNotFoundError, InvalidParametersError, UnprocessibleConditionError, };
7
+ import UnprocessableConditionError from './UnprocessableConditionError';
8
+ export { CommonError, UnauthorizedError, AccessDeniedError, DocumentExistsError, DocumentNotFoundError, InvalidParametersError, UnprocessableConditionError, };
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.UnprocessibleConditionError = exports.InvalidParametersError = exports.DocumentNotFoundError = exports.DocumentExistsError = exports.AccessDeniedError = exports.UnauthorizedError = exports.CommonError = void 0;
6
+ exports.UnprocessableConditionError = exports.InvalidParametersError = exports.DocumentNotFoundError = exports.DocumentExistsError = exports.AccessDeniedError = exports.UnauthorizedError = exports.CommonError = void 0;
7
7
  const CommonError_1 = __importDefault(require("./CommonError"));
8
8
  exports.CommonError = CommonError_1.default;
9
9
  const UnauthorizedError_1 = __importDefault(require("./UnauthorizedError"));
@@ -16,6 +16,6 @@ const DocumentNotFoundError_1 = __importDefault(require("./DocumentNotFoundError
16
16
  exports.DocumentNotFoundError = DocumentNotFoundError_1.default;
17
17
  const InvalidParametersError_1 = __importDefault(require("./InvalidParametersError"));
18
18
  exports.InvalidParametersError = InvalidParametersError_1.default;
19
- const UnprocessibleConditionError_1 = __importDefault(require("./UnprocessibleConditionError"));
20
- exports.UnprocessibleConditionError = UnprocessibleConditionError_1.default;
19
+ const UnprocessableConditionError_1 = __importDefault(require("./UnprocessableConditionError"));
20
+ exports.UnprocessableConditionError = UnprocessableConditionError_1.default;
21
21
  //# sourceMappingURL=index.js.map
@@ -10,7 +10,7 @@ const SORT_ORDER = {
10
10
  DESC: 'desc',
11
11
  };
12
12
  const DEFAULT_LIMIT = 20;
13
- const DEFAULT_LIMIT_MAX = 999;
13
+ const DEFAULT_LIMIT_MAX = 100;
14
14
  const DEFAULT_SORT_ORDER = SORT_ORDER.DESC;
15
15
  /** Returns class for an index operation. */
16
16
  const Index = (
@@ -38,11 +38,11 @@ ComponentClass, componentAction = 'index') => {
38
38
  }
39
39
  /** Returns default value for a limit parameter. */
40
40
  static get defaultLimit() {
41
- return DEFAULT_LIMIT;
41
+ return (0, lodash_1.get)(ComponentClass, 'indexDefaultLimit', DEFAULT_LIMIT);
42
42
  }
43
43
  /** Returns maximum number for a limit parameter. */
44
44
  static get limitMax() {
45
- return DEFAULT_LIMIT_MAX;
45
+ return (0, lodash_1.get)(ComponentClass, 'indexLimitMax', DEFAULT_LIMIT_MAX);
46
46
  }
47
47
  /** Returns default value for a sort parameter. */
48
48
  static get defaultSort() {
@@ -87,12 +87,12 @@ ComponentClass, componentAction = 'index') => {
87
87
  },
88
88
  count: {
89
89
  type: 'integer',
90
- example: 0,
90
+ example: 5,
91
91
  description: `Number of ${documentTitle}`,
92
92
  },
93
93
  limit: {
94
94
  type: 'integer',
95
- example: 100,
95
+ example: (0, lodash_1.get)(ComponentClass, 'indexDefaultLimit', DEFAULT_LIMIT),
96
96
  description: `Limit number of ${documentTitle} to be returned`,
97
97
  },
98
98
  lastEvaluatedKey: {
@@ -104,11 +104,11 @@ ComponentClass, componentAction = 'index') => {
104
104
  }
105
105
  /** Executes components index action. */
106
106
  async action(parameters) {
107
- const { sort, limit, index, exclusiveStartKey, ...query } = parameters;
107
+ const { sort, limit, indexName, exclusiveStartKey, ...query } = parameters;
108
108
  const options = {
109
109
  sort,
110
110
  limit,
111
- index,
111
+ indexName,
112
112
  exclusiveStartKey,
113
113
  };
114
114
  const { componentActionMethod } = this.constructor;
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../src/Operation/operations/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../src/Operation/operations/Index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/Operation/operations/List.ts"],"names":[],"mappings":"AAEA,OAAO,SAA0B,MAAM,cAAc,CAAC;AAEtD,2CAA2C;AAC3C,QAAA,MAAM,IAAI,GAER,gBAAgB,GAAG,EACnB,kBAAiB,MAAmB,KACnC,OAAO,SAkDT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/Operation/operations/List.ts"],"names":[],"mappings":"AAEA,OAAO,SAA0B,MAAM,cAAc,CAAC;AAEtD,2CAA2C;AAC3C,QAAA,MAAM,IAAI,GAER,gBAAgB,GAAG,EACnB,kBAAiB,MAAmB,KACnC,OAAO,SA8DT,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -30,12 +30,23 @@ ComponentClass, componentAction = 'indexAll') => {
30
30
  static get componentAction() {
31
31
  return componentAction;
32
32
  }
33
+ /** Returns schema source for the operation output with pagination. */
34
+ static get output() {
35
+ return {
36
+ data: {
37
+ items: {
38
+ $ref: ComponentClass.schema.id
39
+ },
40
+ required: true,
41
+ },
42
+ };
43
+ }
33
44
  /** Executes components list action. */
34
45
  async action(parameters) {
35
- const { sort, index, ...query } = parameters;
46
+ const { sort, indexName, ...query } = parameters;
36
47
  const options = {
37
48
  sort,
38
- index,
49
+ indexName,
39
50
  };
40
51
  const { componentActionMethod } = this.constructor;
41
52
  const result = await componentActionMethod(this.context, query, options);
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/Operation/operations/List.ts"],"names":[],"mappings":";;;;;AACA,mCAAoC;AACpC,6DAAsD;AAEtD,2CAA2C;AAC3C,MAAM,IAAI,GAAG;AACX,8DAA8D;AAC9D,cAAmB,EACnB,kBAA0B,UAAU,EAClB,EAAE;IACpB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mDAAmD;YACjE,qBAAqB,CAAC,CAAC;IAC3B,CAAC;IAED,cAAc,GAAG,cAA6C,CAAC;IAE/D,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,OAAO,KAAM,SAAQ,mBAAS;QAC5B,8CAA8C;QAC9C,MAAM,KAAK,OAAO;YAChB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3D,OAAO,IAAA,mBAAU,EAAC,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,sDAAsD;QACtD,MAAM,KAAK,SAAS;YAClB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,4DAA4D;QAC5D,MAAM,KAAK,eAAe;YACxB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,uCAAuC;QACvC,KAAK,CAAC,MAAM,CAAC,UAAmC;YAC9C,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,GAAG,KAAK,EACT,GAAG,UAAU,CAAC;YAEf,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,KAAK;aACN,CAAC;YAEF,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,WAA+B,CAAC;YAEvE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAEzE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAE3B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsB,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/Operation/operations/List.ts"],"names":[],"mappings":";;;;;AACA,mCAAoC;AACpC,6DAAsD;AAEtD,2CAA2C;AAC3C,MAAM,IAAI,GAAG;AACX,8DAA8D;AAC9D,cAAmB,EACnB,kBAA0B,UAAU,EAClB,EAAE;IACpB,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mDAAmD;YACjE,qBAAqB,CAAC,CAAC;IAC3B,CAAC;IAED,cAAc,GAAG,cAA6C,CAAC;IAE/D,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,OAAO,KAAM,SAAQ,mBAAS;QAC5B,8CAA8C;QAC9C,MAAM,KAAK,OAAO;YAChB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3D,OAAO,IAAA,mBAAU,EAAC,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,sDAAsD;QACtD,MAAM,KAAK,SAAS;YAClB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,4DAA4D;QAC5D,MAAM,KAAK,eAAe;YACxB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,sEAAsE;QACtE,MAAM,KAAK,MAAM;YACf,OAAO;gBACL,IAAI,EAAE;oBACJ,KAAK,EAAE;wBACL,IAAI,EAAE,cAAc,CAAC,MAAO,CAAC,EAAE;qBAChC;oBACD,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,KAAK,CAAC,MAAM,CAAC,UAAmC;YAC9C,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,GAAG,KAAK,EACT,GAAG,UAAU,CAAC;YAEf,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,SAAS;aACV,CAAC;YAEF,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,WAA+B,CAAC;YAEvE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAEzE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAE3B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAsB,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import Operation from '../Operation';
2
2
  import { type Permissions } from './JwtAuthorization';
3
3
  type Props = {
4
+ name?: string;
4
5
  issuer: string;
5
6
  publicKey: string;
7
+ description?: string;
6
8
  permissions?: Permissions;
7
9
  };
8
10
  /** Returns helper to extend operation class with user authorization requirement. */
@@ -1 +1 @@
1
- {"version":3,"file":"userAuthorization.d.ts","sourceRoot":"","sources":["../../../src/Operation/security/userAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAA;AAED,oFAAoF;AACpF,QAAA,MAAM,iBAAiB,GAAI,OAAO,KAAK,MAG7B,gBAAgB,OAAO,SAAS,KAAG,OAAO,SA+BnD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"userAuthorization.d.ts","sourceRoot":"","sources":["../../../src/Operation/security/userAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAyB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAA;AAED,oFAAoF;AACpF,QAAA,MAAM,iBAAiB,GAAI,OAAO,KAAK,MAG7B,gBAAgB,OAAO,SAAS,KAAG,OAAO,SA+BnD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"userAuthorization.js","sourceRoot":"","sources":["../../../src/Operation/security/userAuthorization.ts"],"names":[],"mappings":";;;;;AACA,0EAAwE;AAQxE,oFAAoF;AACpF,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE;IACzC,MAAM,wBAAwB,GAAG,0BAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE3E,OAAO,CAAC,cAAgC,EAAoB,EAAE;IAC5D,gCAAgC;IAChC,KAAM,SAAQ,cAAc;QAC1B,+CAA+C;QAC/C,MAAM,KAAK,QAAQ;YACjB,OAAO,CAAE,wBAAwB,CAAE,CAAC;QACtC,CAAC;QAED,yDAAyD;QACzD,MAAM,KAAK,WAAW;YACpB,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC;YAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAEjC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;iBACxD,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;iBAChE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAErC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;YAE9D,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,WAAW,GAAG,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,oBAAoB,CAAC;QAC9B,CAAC;KACF,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"userAuthorization.js","sourceRoot":"","sources":["../../../src/Operation/security/userAuthorization.ts"],"names":[],"mappings":";;;;;AACA,0EAAwE;AAUxE,oFAAoF;AACpF,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE;IACzC,MAAM,wBAAwB,GAAG,0BAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE3E,OAAO,CAAC,cAAgC,EAAoB,EAAE;IAC5D,gCAAgC;IAChC,KAAM,SAAQ,cAAc;QAC1B,+CAA+C;QAC/C,MAAM,KAAK,QAAQ;YACjB,OAAO,CAAE,wBAAwB,CAAE,CAAC;QACtC,CAAC;QAED,yDAAyD;QACzD,MAAM,KAAK,WAAW;YACpB,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC;YAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAEjC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;iBACxD,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;iBAChE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAErC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;YAE9D,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,WAAW,GAAG,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,oBAAoB,CAAC;QAC9B,CAAC;KACF,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -6,7 +6,6 @@ import { Schema, Validator } from '@kravc/schema';
6
6
  declare const createDefaultContext: (config: ContextConfig, request: Request, extraContext: ExtraContext) => Context;
7
7
  type Module = {
8
8
  id: string;
9
- get isComponent(): boolean;
10
9
  };
11
10
  type Options = {
12
11
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/Service/Service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,OAAO,EAAE,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAO,MAAM,EAAE,SAAS,EAA0C,MAAM,eAAe,CAAC;AAoB/F,6DAA6D;AAC7D,QAAA,MAAM,oBAAoB,GACxB,QAAQ,aAAa,EACrB,SAAS,OAAO,EAChB,cAAc,YAAY,YACmB,CAAC;AAEhD,KAAK,MAAM,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,WAAW,IAAI,OAAO,CAAC;CAC5B,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,cAAc;AACd,cAAM,OAAO;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe,CAAe;IAEtC,gCAAgC;gBACpB,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,OAAY;IAoFpD,gCAAgC;IAChC,IAAI,OAAO,WAEV;IAED,iCAAiC;IACjC,IAAI,SAAS,cAEZ;IAED,qCAAqC;IACrC,IAAI,IAAI,2BAEP;IAED,+CAA+C;IAC/C,GAAG,CAAC,WAAW,EAAE,MAAM,GAE0C,OAAO,SAAS;IAGjF,kCAAkC;IAC5B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,GAAE,YAAiB;;;;;;;;;;;;;;;;;IA2F/D,mEAAmE;IACnE,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO;IAyB9F,sDAAsD;IACtD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqBvE,6CAA6C;IAC7C,cAAc,CAAC,cAAc,EAAE,OAAO,SAAS;CAWhD;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/Service/Service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,OAAO,EAAE,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAO,MAAM,EAAE,SAAS,EAA0C,MAAM,eAAe,CAAC;AAoB/F,6DAA6D;AAC7D,QAAA,MAAM,oBAAoB,GACxB,QAAQ,aAAa,EACrB,SAAS,OAAO,EAChB,cAAc,YAAY,YACmB,CAAC;AAEhD,KAAK,MAAM,GAAG;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAaF,cAAc;AACd,cAAM,OAAO;IACX,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe,CAAe;IAEtC,gCAAgC;gBACpB,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,OAAY;IAuFpD,gCAAgC;IAChC,IAAI,OAAO,WAEV;IAED,iCAAiC;IACjC,IAAI,SAAS,cAEZ;IAED,qCAAqC;IACrC,IAAI,IAAI,2BAEP;IAED,+CAA+C;IAC/C,GAAG,CAAC,WAAW,EAAE,MAAM,GAE0C,OAAO,SAAS;IAGjF,kCAAkC;IAC5B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,GAAE,YAAiB;;;;;;;;;;;;;;;;;IA2F/D,mEAAmE;IACnE,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO;IAyB9F,sDAAsD;IACtD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAqBvE,6CAA6C;IAC7C,cAAc,CAAC,cAAc,EAAE,OAAO,SAAS;CAWhD;AAED,eAAe,OAAO,CAAC"}
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Component_1 = __importDefault(require("../Component"));
7
+ const Operation_1 = __importDefault(require("../Operation"));
6
8
  const safe_stable_stringify_1 = __importDefault(require("safe-stable-stringify"));
7
9
  const spec_1 = require("./spec");
8
10
  const lodash_1 = require("lodash");
@@ -19,6 +21,11 @@ const DEFAULT_SERVICE_PATH = `${ROOT_PATH}/src`;
19
21
  const DEFAULT_SKIP_OPERATIONS = [];
20
22
  /** Creates operation context using default Context class. */
21
23
  const createDefaultContext = (config, request, extraContext) => new Context_1.default(config, request, extraContext);
24
+ /** Returns true if TargetClass is a constructor whose prototype extends BaseClass. */
25
+ function isExtendedFrom(TargetClass, BaseClass) {
26
+ return (typeof TargetClass === 'function' &&
27
+ TargetClass.prototype instanceof BaseClass);
28
+ }
22
29
  /** Service */
23
30
  class Service {
24
31
  _url;
@@ -35,10 +42,12 @@ class Service {
35
42
  url = url + '/';
36
43
  }
37
44
  const { path = DEFAULT_SERVICE_PATH, context = {}, createContext = createDefaultContext, skipOperations = DEFAULT_SKIP_OPERATIONS, } = options;
38
- let components = modules
39
- .filter(ModuleClass => ModuleClass.isComponent);
40
- const operations = modules
41
- .filter(ModuleClass => !ModuleClass.isComponent)
45
+ const nonSchemas = modules
46
+ .filter(m => !(m instanceof schema_1.Schema));
47
+ let components = nonSchemas
48
+ .filter(m => isExtendedFrom(m, Component_1.default));
49
+ const operations = nonSchemas
50
+ .filter(m => isExtendedFrom(m, Operation_1.default))
42
51
  .filter(({ id: operationId }) => !skipOperations.includes(operationId));
43
52
  const referencedComponents = (0, lodash_1.compact)(operations.map(({ Component }) => Component));
44
53
  components = (0, lodash_1.uniq)([
@@ -1 +1 @@
1
- {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/Service/Service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/Service/Service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import Component from '../../Component';
2
2
  import { Context } from '../../Context';
3
- import { OperationErrorAttibutes } from './OperationErrorAttributes';
3
+ import { OperationErrorAttributes } from './OperationErrorAttributes';
4
4
  import { type OriginalError } from './logOperationError';
5
5
  /**
6
6
  * Operation Error
@@ -20,7 +20,7 @@ import { type OriginalError } from './logOperationError';
20
20
  * This class acts as the final error handler in the operation processing pipeline,
21
21
  * transforming any thrown error into a standardized, schema-validated response format.
22
22
  */
23
- declare class OperationError extends Component<OperationErrorAttibutes> {
23
+ declare class OperationError extends Component<OperationErrorAttributes> {
24
24
  /** Returns schema of the operation error. */
25
25
  static get schema(): import("@kravc/schema").Schema;
26
26
  /** Creates instance of an operation error. */
@@ -1 +1 @@
1
- {"version":3,"file":"OperationError.d.ts","sourceRoot":"","sources":["../../../src/Service/errors/OperationError.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAA0B,EAAE,KAAK,aAAa,EAAwB,MAAM,qBAAqB,CAAC;AAOlG;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,cAAe,SAAQ,SAAS,CAAC,uBAAuB,CAAC;IAC7D,6CAA6C;IAC7C,MAAM,KAAK,MAAM,mCAEhB;IAED,8CAA8C;gBAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;CAkC/E;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"OperationError.d.ts","sourceRoot":"","sources":["../../../src/Service/errors/OperationError.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAA0B,EAAE,KAAK,aAAa,EAAwB,MAAM,qBAAqB,CAAC;AAOlG;;;;;;;;;;;;;;;;;GAiBG;AACH,cAAM,cAAe,SAAQ,SAAS,CAAC,wBAAwB,CAAC;IAC9D,6CAA6C;IAC7C,MAAM,KAAK,MAAM,mCAEhB;IAED,8CAA8C;gBAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;CAkC/E;AAED,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OperationError.js","sourceRoot":"","sources":["../../../src/Service/errors/OperationError.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,gEAAwC;AAExC,0CAAyC;AAEzC,4EAAkG;AAElG,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC;AACrE,MAAM,oBAAoB,GAAG,IAAA,iBAAQ,EAAC,WAAW,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,cAAe,SAAQ,mBAAkC;IAC7D,6CAA6C;IAC7C,MAAM,KAAK,MAAM;QACf,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,8CAA8C;IAC9C,YAAY,OAAgB,EAAE,UAAkB,EAAE,aAA4B;QAC5E,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,aAAa,EACb,gBAAgB,GACjB,GAAG,aAAa,CAAC;QAElB,MAAM,KAAK,GAAG;YACZ,IAAI;YACJ,OAAO;YACP,UAAU;SACQ,CAAC;QAErB,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC5C,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC;QAEzC,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;YAC9B,KAAK,CAAC,OAAO,GAAG,4BAA4B,CAAC;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3B,MAAM,cAAc,GAAG,UAAU,KAAK,mBAAmB,CAAC;QAE1D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAA,2BAAiB,EAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"OperationError.js","sourceRoot":"","sources":["../../../src/Service/errors/OperationError.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,gEAAwC;AAExC,0CAAyC;AAEzC,4EAAkG;AAElG,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC;AACrE,MAAM,oBAAoB,GAAG,IAAA,iBAAQ,EAAC,WAAW,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,cAAe,SAAQ,mBAAmC;IAC9D,6CAA6C;IAC7C,MAAM,KAAK,MAAM;QACf,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,8CAA8C;IAC9C,YAAY,OAAgB,EAAE,UAAkB,EAAE,aAA4B;QAC5E,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,aAAa,EACb,gBAAgB,GACjB,GAAG,aAAa,CAAC;QAElB,MAAM,KAAK,GAAG;YACZ,IAAI;YACJ,OAAO;YACP,UAAU;SACQ,CAAC;QAErB,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC5C,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC;QAEzC,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC;YAC9B,KAAK,CAAC,OAAO,GAAG,4BAA4B,CAAC;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3B,MAAM,cAAc,GAAG,UAAU,KAAK,mBAAmB,CAAC;QAE1D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAA,2BAAiB,EAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
@@ -6,7 +6,7 @@ type Parameters = {
6
6
  [index: string]: unknown;
7
7
  };
8
8
  type SuccessResult = {
9
- data: Record<string, unknown>;
9
+ data: Record<string, unknown>[] | Record<string, unknown>;
10
10
  };
11
11
  type ErrorResult = {
12
12
  error: ErrorAttributes;
@@ -37,7 +37,7 @@ declare const execute: (service: Service, options?: Options) => {
37
37
  statusCode: number;
38
38
  multiValueHeaders: {};
39
39
  }>;
40
- request: (operationId: string, parameters?: Parameters, headers?: Headers) => Promise<Record<string, unknown> | undefined>;
40
+ request: (operationId: string, parameters?: Parameters, headers?: Headers) => Promise<Record<string, unknown> | Record<string, unknown>[] | undefined>;
41
41
  expectError: (errorCode: string, operationId: string, parameters?: Parameters, headers?: Headers) => Promise<ErrorAttributes>;
42
42
  };
43
43
  export default execute;
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/Service/test/execute.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAKjF,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE,CAAC;AACxD,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,eAAe,CAAC;CAAE,CAAC;AAC/C,KAAK,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;AAE1C,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,2EAA2E;AAC3E,QAAA,MAAM,OAAO,GAAI,SAAS,OAAO,EAAE,UAAS,OAAY;wBAIrB,MAAM,eAAc,UAAU,YAAgB,OAAO;;;;;;;;;;;;;;;;;;;;2BAsBlD,MAAM,eAAc,UAAU,YAAgB,OAAO;6BA6BnD,MAAM,eAAe,MAAM,eAAc,UAAU,YAAgB,OAAO;CAiCjH,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/Service/test/execute.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAKjF,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE,CAAC;AACpF,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,eAAe,CAAC;CAAE,CAAC;AAC/C,KAAK,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;AAE1C,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,2EAA2E;AAC3E,QAAA,MAAM,OAAO,GAAI,SAAS,OAAO,EAAE,UAAS,OAAY;wBAIrB,MAAM,eAAc,UAAU,YAAgB,OAAO;;;;;;;;;;;;;;;;;;;;2BAsBlD,MAAM,eAAc,UAAU,YAAgB,OAAO;6BA6BnD,MAAM,eAAe,MAAM,eAAc,UAAU,YAAgB,OAAO;CAiCjH,CAAC;AAEF,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kravc/dos",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.0-alpha.21",
4
4
  "description": "Convention-based, easy-to-use library for building API-driven serverless services.",
5
5
  "keywords": [
6
6
  "Service",
@@ -13,6 +13,9 @@
13
13
  ],
14
14
  "main": "dist/index.js",
15
15
  "types": "dist/index.d.ts",
16
+ "bin": {
17
+ "spec": "bin/spec.js"
18
+ },
16
19
  "repository": {
17
20
  "type": "git",
18
21
  "url": "git+ssh://git@github.com/alexkravets/dos.git"
@@ -29,10 +32,10 @@
29
32
  "prepublishOnly": "npm run build",
30
33
  "postbuild": "cp -r src/Service/errors/*.yaml dist/Service/errors 2>/dev/null || true"
31
34
  },
32
- "author": "Alexander Kravets <a@kra.vc>",
35
+ "author": "Oleksandr Kravets <a@kra.vc>",
33
36
  "license": "ISC",
34
37
  "dependencies": {
35
- "@kravc/schema": "^2.8.0-alpha.7",
38
+ "@kravc/schema": "^2.8.0",
36
39
  "@types/jsonwebtoken": "^9.0.10",
37
40
  "cookie": "^1.1.1",
38
41
  "jsonwebtoken": "^9.0.3",
@@ -44,20 +47,20 @@
44
47
  "z-schema": "^6.0.2"
45
48
  },
46
49
  "devDependencies": {
47
- "@eslint/js": "^9.39.2",
50
+ "@eslint/js": "^10.0.1",
48
51
  "@kravc/http": "^0.5.0",
49
52
  "@types/jest": "^30.0.0",
50
53
  "@types/lodash": "^4.17.23",
51
54
  "@types/pluralize": "^0.0.33",
52
- "eslint": "^9.39.2",
53
- "eslint-plugin-jsdoc": "^62.4.1",
54
- "globals": "^17.1.0",
55
+ "eslint": "^10.0.1",
56
+ "eslint-plugin-jsdoc": "^62.7.0",
57
+ "globals": "^17.3.0",
55
58
  "jest": "^30.2.0",
56
59
  "openapi-types": "^12.1.3",
57
- "rimraf": "^6.1.2",
60
+ "rimraf": "^6.1.3",
58
61
  "ts-jest": "^29.4.6",
59
62
  "ts-node": "^10.9.2",
60
63
  "typescript": "^5.9.3",
61
- "typescript-eslint": "^8.54.0"
64
+ "typescript-eslint": "^8.56.0"
62
65
  }
63
66
  }
@@ -0,0 +1,21 @@
1
+ import Context from './Context';
2
+ import { OpenAPIV2 } from 'openapi-types';
3
+ import { type Validator } from '@kravc/schema';
4
+
5
+ /** Mocked context class for unit tests. */
6
+ class MockedContext extends Context {
7
+ /** Creates an instance of the mocked context. */
8
+ constructor(operationId: string) {
9
+ const spec = {
10
+ paths: {
11
+ [`/${operationId}`]: {
12
+ get: {}
13
+ }
14
+ }
15
+ } as OpenAPIV2.Document;
16
+
17
+ super({ spec, validator: {} as Validator }, { operationId }, {});
18
+ }
19
+ }
20
+
21
+ export default MockedContext;
@@ -0,0 +1,14 @@
1
+ import MockedContext from '../MockedContext';
2
+
3
+ describe('MockedContext', () => {
4
+ describe('MockedContext.constructor(operationId)', () => {
5
+ it('creates an instance of mocked context', () => {
6
+ const operationId = 'TestOperation';
7
+
8
+ const context = new MockedContext(operationId);
9
+ context.set('attributes', 'value');
10
+
11
+ expect(context.get('attributes')).toEqual('value');
12
+ });
13
+ });
14
+ });
@@ -1,10 +1,12 @@
1
1
  import Context from './Context';
2
+ import MockedContext from './MockedContext';
2
3
  import withSafeAttributes from './withSafeAttributes';
3
4
 
4
5
  export default Context;
5
6
 
6
7
  export {
7
8
  Context,
9
+ MockedContext,
8
10
  withSafeAttributes,
9
11
  };
10
12
 
@@ -5,23 +5,26 @@ import Context, { type QueryMap, type MutationMap } from '../Context';
5
5
  import { get, set, omit, pick, cloneDeep, capitalize } from 'lodash';
6
6
 
7
7
  const DEFAULT_INDEX_SORT = 'desc';
8
- const DEFAULT_INDEX_LIMIT = 300;
8
+ const DEFAULT_INDEX_LIMIT = 20;
9
+ const DEFAULT_INDEX_LIMIT_MAX = 100;
10
+
9
11
  const DEFAULT_PARTITION_KEY = 'partition';
10
12
 
11
13
  export type IndexOptions = {
12
14
  sort?: 'asc' | 'desc';
13
15
  limit?: number;
14
- index?: string;
16
+ indexName?: string;
15
17
  exclusiveStartKey?: string;
16
18
  }
17
19
 
18
20
  export type IndexAllOptions = {
19
21
  sort?: 'asc' | 'desc';
20
- index?: string;
22
+ indexName?: string;
21
23
  }
22
24
 
23
25
  export type DefaultAttributes = {
24
26
  id: string;
27
+ partition: string;
25
28
  createdAt: string;
26
29
  createdBy: string;
27
30
  createdByUserName?: string;
@@ -34,6 +37,7 @@ type Constructor<T, D extends Document<T> = Document<T>> = {
34
37
  new(context: Context, attributes: T): D;
35
38
 
36
39
  _index(query: QueryMap, options: IndexOptions): Promise<{
40
+ limit: number;
37
41
  count: number;
38
42
  items: T[];
39
43
  lastEvaluatedKey?: string;
@@ -44,13 +48,13 @@ type Constructor<T, D extends Document<T> = Document<T>> = {
44
48
  items: T[];
45
49
  }>;
46
50
 
47
- _read(query: QueryMap, options: unknown): Promise<T>;
51
+ _read(query: QueryMap): Promise<T>;
48
52
 
49
- _create(attributes: T, context?: Context): Promise<void>;
53
+ _create(attributes: T, context: Context): Promise<void>;
50
54
 
51
- _update<T>(query: QueryMap, mutation: MutationMap, context?: Context): Promise<T>;
55
+ _update<T>(query: QueryMap, mutation: MutationMap, context: Context, previousAttributes: T): Promise<T>;
52
56
 
53
- _delete(query: QueryMap, context?: Context): Promise<void>;
57
+ _delete(query: QueryMap, context: Context, previousAttributes: T): Promise<void>;
54
58
  };
55
59
 
56
60
  /** Abstract document class. */
@@ -84,6 +88,11 @@ class Document<Attributes> extends Component<Attributes> {
84
88
  return DEFAULT_INDEX_LIMIT;
85
89
  }
86
90
 
91
+ /** Defines limit maximum value for index action. */
92
+ static get indexLimitMax(): number {
93
+ return DEFAULT_INDEX_LIMIT_MAX;
94
+ }
95
+
87
96
  /** Generates ID for new document unless it's defined in parameters. */
88
97
  static createId(attributes: Record<string, unknown>): string {
89
98
  const id = get(attributes, this.idKey) as string;
@@ -212,6 +221,7 @@ class Document<Attributes> extends Component<Attributes> {
212
221
  query: QueryMap = {},
213
222
  options: IndexOptions = {}
214
223
  ): Promise<{
224
+ limit: number;
215
225
  count: number;
216
226
  objects: D[];
217
227
  lastEvaluatedKey?: string;
@@ -227,10 +237,15 @@ class Document<Attributes> extends Component<Attributes> {
227
237
  options.sort = _this.indexDefaultSort;
228
238
  }
229
239
 
230
- const { items, count, lastEvaluatedKey, ...otherPagination } = await this._index(query, options);
240
+ const { count, limit, items, lastEvaluatedKey } = await this._index(query, options);
231
241
  const objects = items.map(attributes => new this(context, attributes));
232
242
 
233
- return { objects, count, lastEvaluatedKey, ...otherPagination };
243
+ return {
244
+ limit,
245
+ count,
246
+ objects,
247
+ lastEvaluatedKey,
248
+ };
234
249
  }
235
250
 
236
251
  /** Returns all documents. */
@@ -261,12 +276,11 @@ class Document<Attributes> extends Component<Attributes> {
261
276
  this: Constructor<T, D>,
262
277
  context: Context,
263
278
  query: QueryMap,
264
- options?: unknown
265
279
  ): Promise<D> {
266
280
  const _this = this as unknown as typeof Document;
267
281
  _this._extendWithPartition(context, query);
268
282
 
269
- const attributes = await this._read(query, options);
283
+ const attributes = await this._read(query);
270
284
  const object = new this(context, attributes);
271
285
 
272
286
  return object;
@@ -308,7 +322,7 @@ class Document<Attributes> extends Component<Attributes> {
308
322
 
309
323
  await _this.beforeCreate(context, query, attributes);
310
324
 
311
- await this._create(attributes as T);
325
+ await this._create(attributes as T, context);
312
326
  const object = new this(context, attributes as T);
313
327
 
314
328
  await _this.afterCreate(context, query, mutation, object);
@@ -355,10 +369,10 @@ class Document<Attributes> extends Component<Attributes> {
355
369
  /* NOTE: Ensure that document to be updated exists and save it in the
356
370
  context so can be referenced in the after action helper. */
357
371
  if (!previousAttributes) {
358
- previousAttributes = await this._read(query, {});
372
+ previousAttributes = await this._read(query);
359
373
  }
360
374
 
361
- const updatedAttributes = await this._update(query, mutation) as T;
375
+ const updatedAttributes = await this._update(query, mutation, context, previousAttributes) as T;
362
376
  const object = new this(context, updatedAttributes);
363
377
 
364
378
  object._previousAttributes = previousAttributes;
@@ -392,14 +406,14 @@ class Document<Attributes> extends Component<Attributes> {
392
406
 
393
407
  await _this.beforeDelete(context, query);
394
408
 
395
- const attributes = await this._read(query, {});
396
- const object = new this(context, attributes);
409
+ const previousAttributes = await this._read(query);
397
410
 
398
- await this._delete(query, context);
411
+ await this._delete(query, context, previousAttributes);
399
412
 
400
- await _this.afterDelete(context, query, object);
413
+ const deletedObject = new this(context, previousAttributes);
414
+ await _this.afterDelete(context, query, deletedObject);
401
415
 
402
- return object;
416
+ return deletedObject;
403
417
  }
404
418
 
405
419
  /** Before delete hook. */