@kensio/yulin 1.4.1 → 1.5.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.
Files changed (87) hide show
  1. package/dist/serve/http/url/sim-aws-request-hostname.d.ts +13 -0
  2. package/dist/serve/http/url/sim-aws-request-hostname.d.ts.map +1 -0
  3. package/dist/serve/http/url/sim-aws-request-hostname.js +19 -0
  4. package/dist/serve/http/url/sim-aws-request-hostname.js.map +1 -0
  5. package/dist/service/aws/sim-aws-properties.d.ts +6 -1
  6. package/dist/service/aws/sim-aws-properties.d.ts.map +1 -1
  7. package/dist/service/aws/sim-aws.js.map +1 -1
  8. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +9 -0
  9. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts.map +1 -1
  10. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js +12 -0
  11. package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js.map +1 -1
  12. package/dist/service/cloudfront/cff/adapter/sim-cff-request-response-adapter.d.ts +19 -0
  13. package/dist/service/cloudfront/cff/adapter/sim-cff-request-response-adapter.d.ts.map +1 -1
  14. package/dist/service/cloudfront/cff/adapter/sim-cff-request-response-adapter.js +35 -2
  15. package/dist/service/cloudfront/cff/adapter/sim-cff-request-response-adapter.js.map +1 -1
  16. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts +16 -0
  17. package/dist/service/cloudfront/command/create-distribution/create-distribution.command.d.ts.map +1 -1
  18. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.d.ts.map +1 -1
  19. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js +1 -0
  20. package/dist/service/cloudfront/command/create-distribution/sim-cf-distro-config-normalizer.js.map +1 -1
  21. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts +3 -0
  22. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.d.ts.map +1 -1
  23. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js +11 -3
  24. package/dist/service/cloudfront/controller/dependency/sim-cf-controller-dependency.js.map +1 -1
  25. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts +29 -0
  26. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.d.ts.map +1 -0
  27. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js +58 -0
  28. package/dist/service/cloudfront/controller/error/sim-cf-custom-error-responder.js.map +1 -0
  29. package/dist/service/cloudfront/controller/root-object/sim-cf-default-root-object-request.d.ts +17 -0
  30. package/dist/service/cloudfront/controller/root-object/sim-cf-default-root-object-request.d.ts.map +1 -0
  31. package/dist/service/cloudfront/controller/root-object/sim-cf-default-root-object-request.js +35 -0
  32. package/dist/service/cloudfront/controller/root-object/sim-cf-default-root-object-request.js.map +1 -0
  33. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts +5 -2
  34. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.d.ts.map +1 -1
  35. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js +13 -3
  36. package/dist/service/cloudfront/controller/sim-cloudfront-request-pipeline.js.map +1 -1
  37. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts +24 -0
  38. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.d.ts.map +1 -0
  39. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js +14 -0
  40. package/dist/service/cloudfront/custom-error/sim-cloudfront-custom-error-response.js.map +1 -0
  41. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts +19 -0
  42. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.d.ts.map +1 -0
  43. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js +53 -0
  44. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-custom-error-configurator.js.map +1 -0
  45. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts +11 -1
  46. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.d.ts.map +1 -1
  47. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js +26 -1
  48. package/dist/service/cloudfront/distribution/configurator/sim-cloud-front-distribution-configurator.js.map +1 -1
  49. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts +14 -0
  50. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.d.ts.map +1 -1
  51. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js +20 -0
  52. package/dist/service/cloudfront/distribution/sim-cloudfront-distribution.js.map +1 -1
  53. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts +31 -0
  54. package/dist/service/cloudfront/error/sim-cloudfront.error.d.ts.map +1 -1
  55. package/dist/service/cloudfront/error/sim-cloudfront.error.js +39 -0
  56. package/dist/service/cloudfront/error/sim-cloudfront.error.js.map +1 -1
  57. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.d.ts.map +1 -1
  58. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js +2 -7
  59. package/dist/service/cloudfront/router/sim-cloud-front-distro-router.js.map +1 -1
  60. package/dist/service/dynamodb/document/sim-dynamodb-document-command-paths.d.ts +12 -3
  61. package/dist/service/dynamodb/document/sim-dynamodb-document-command-paths.d.ts.map +1 -1
  62. package/dist/service/dynamodb/document/sim-dynamodb-document-command-paths.js +28 -3
  63. package/dist/service/dynamodb/document/sim-dynamodb-document-command-paths.js.map +1 -1
  64. package/dist/service/dynamodb/document/sim-dynamodb-document-command.d.ts +2 -8
  65. package/dist/service/dynamodb/document/sim-dynamodb-document-command.d.ts.map +1 -1
  66. package/dist/service/dynamodb/document/sim-dynamodb-document-command.js +3 -20
  67. package/dist/service/dynamodb/document/sim-dynamodb-document-command.js.map +1 -1
  68. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.d.ts +22 -6
  69. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.d.ts.map +1 -1
  70. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.js +43 -22
  71. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.js.map +1 -1
  72. package/dist/service/dynamodb/document/sim-dynamodb-document-shared-name-route.d.ts +26 -0
  73. package/dist/service/dynamodb/document/sim-dynamodb-document-shared-name-route.d.ts.map +1 -0
  74. package/dist/service/dynamodb/document/sim-dynamodb-document-shared-name-route.js +31 -0
  75. package/dist/service/dynamodb/document/sim-dynamodb-document-shared-name-route.js.map +1 -0
  76. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.d.ts.map +1 -1
  77. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js +13 -14
  78. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js.map +1 -1
  79. package/dist/service/route53/command/create-hosted-zone/sim-route53-zone-id.d.ts +9 -2
  80. package/dist/service/route53/command/create-hosted-zone/sim-route53-zone-id.d.ts.map +1 -1
  81. package/dist/service/route53/command/create-hosted-zone/sim-route53-zone-id.js +25 -6
  82. package/dist/service/route53/command/create-hosted-zone/sim-route53-zone-id.js.map +1 -1
  83. package/dist/service/route53/error/sim-route53.error.d.ts +7 -0
  84. package/dist/service/route53/error/sim-route53.error.d.ts.map +1 -1
  85. package/dist/service/route53/error/sim-route53.error.js +9 -0
  86. package/dist/service/route53/error/sim-route53.error.js.map +1 -1
  87. package/package.json +1 -1
@@ -14,6 +14,22 @@ const writtenAttributes = simDynamoDbDocumentFields({
14
14
  * answered items both are.
15
15
  */
16
16
  const valueRecords = simDynamoDbDocumentEach(simDynamoDbDocumentValues());
17
+ /**
18
+ * What a read is given: where to carry on from, and the values its expressions
19
+ * compare against. A Query and a Scan take the same ones.
20
+ */
21
+ const readInput = simDynamoDbDocumentFields({
22
+ ExclusiveStartKey: simDynamoDbDocumentValues(),
23
+ ExpressionAttributeValues: simDynamoDbDocumentValues(),
24
+ });
25
+ /**
26
+ * What a read answers with: the items it found, and where the page after it
27
+ * carries on from.
28
+ */
29
+ const readPage = simDynamoDbDocumentFields({
30
+ Items: valueRecords,
31
+ LastEvaluatedKey: simDynamoDbDocumentValues(),
32
+ });
17
33
  /**
18
34
  * One put or delete in a batch write.
19
35
  */
@@ -41,9 +57,10 @@ const batchGetKeys = simDynamoDbDocumentEach(simDynamoDbDocumentFields({ Keys: v
41
57
  *
42
58
  * They stop short of the real ones in one place. `Expected`,
43
59
  * `ConditionalOperator` and `AttributeUpdates` are the conditional write and
44
- * the update that expressions replaced, and simulated DynamoDB refuses all
45
- * three, so a request carrying one never reaches a conversion. Converting input
46
- * that is about to be refused would only move the refusal.
60
+ * the update that expressions replaced, and `KeyConditions`, `QueryFilter` and
61
+ * `ScanFilter` are the read the same expressions replaced. Simulated DynamoDB
62
+ * refuses all six, so a request carrying one never reaches a conversion.
63
+ * Converting input that is about to be refused would only move the refusal.
47
64
  */
48
65
  export const simDynamoDbDocumentCommandPaths = {
49
66
  put: {
@@ -71,6 +88,14 @@ export const simDynamoDbDocumentCommandPaths = {
71
88
  }),
72
89
  output: writtenAttributes,
73
90
  },
91
+ query: {
92
+ input: readInput,
93
+ output: readPage,
94
+ },
95
+ scan: {
96
+ input: readInput,
97
+ output: readPage,
98
+ },
74
99
  batchWrite: {
75
100
  input: simDynamoDbDocumentFields({ RequestItems: batchWriteRequests }),
76
101
  output: simDynamoDbDocumentFields({ UnprocessedItems: batchWriteRequests }),
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-document-command-paths.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAEzB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAUzC;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;IAClD,UAAU,EAAE,yBAAyB,EAAE;CACxC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;IAClD,UAAU,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC;IAC5E,aAAa,EAAE,yBAAyB,CAAC;QACvC,GAAG,EAAE,yBAAyB,EAAE;KACjC,CAAC;CACH,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,uBAAuB,CAChD,uBAAuB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAC1C,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAClD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,GAAG,EAAE;QACH,KAAK,EAAE,yBAAyB,CAAC;YAC/B,IAAI,EAAE,yBAAyB,EAAE;YACjC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,GAAG,EAAE;QACH,KAAK,EAAE,yBAAyB,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC;KACzE;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB,CAAC;YAC/B,GAAG,EAAE,yBAAyB,EAAE;YAChC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB,CAAC;YAC/B,GAAG,EAAE,yBAAyB,EAAE;YAChC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,UAAU,EAAE;QACV,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;QACtE,MAAM,EAAE,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;KAC5E;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;QAChE,MAAM,EAAE,yBAAyB,CAAC;YAChC,sEAAsE;YACtE,SAAS,EAAE,uBAAuB,CAAC,YAAY,CAAC;YAChD,eAAe,EAAE,YAAY;SAC9B,CAAC;KACH;CAC2E,CAAC"}
1
+ {"version":3,"file":"sim-dynamodb-document-command-paths.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAEzB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAUzC;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;IAClD,UAAU,EAAE,yBAAyB,EAAE;CACxC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC1C,iBAAiB,EAAE,yBAAyB,EAAE;IAC9C,yBAAyB,EAAE,yBAAyB,EAAE;CACvD,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,QAAQ,GAAG,yBAAyB,CAAC;IACzC,KAAK,EAAE,YAAY;IACnB,gBAAgB,EAAE,yBAAyB,EAAE;CAC9C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;IAClD,UAAU,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC;IAC5E,aAAa,EAAE,yBAAyB,CAAC;QACvC,GAAG,EAAE,yBAAyB,EAAE;KACjC,CAAC;CACH,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,uBAAuB,CAChD,uBAAuB,CAAC,iBAAiB,CAAC,CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAC1C,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAClD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,GAAG,EAAE;QACH,KAAK,EAAE,yBAAyB,CAAC;YAC/B,IAAI,EAAE,yBAAyB,EAAE;YACjC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,GAAG,EAAE;QACH,KAAK,EAAE,yBAAyB,CAAC,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,CAAC;KACzE;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB,CAAC;YAC/B,GAAG,EAAE,yBAAyB,EAAE;YAChC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,MAAM,EAAE;QACN,KAAK,EAAE,yBAAyB,CAAC;YAC/B,GAAG,EAAE,yBAAyB,EAAE;YAChC,yBAAyB,EAAE,yBAAyB,EAAE;SACvD,CAAC;QACF,MAAM,EAAE,iBAAiB;KAC1B;IACD,KAAK,EAAE;QACL,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ;KACjB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ;KACjB;IACD,UAAU,EAAE;QACV,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;QACtE,MAAM,EAAE,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;KAC5E;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,yBAAyB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;QAChE,MAAM,EAAE,yBAAyB,CAAC;YAChC,sEAAsE;YACtE,SAAS,EAAE,uBAAuB,CAAC,YAAY,CAAC;YAChD,eAAe,EAAE,YAAY;SAC9B,CAAC;KACH;CAC2E,CAAC"}
@@ -1,11 +1,5 @@
1
1
  /**
2
- * Refuse a document Command that shares its name with a client Command.
3
- *
4
- * The SDK router keys on the Command's class name, and `QueryCommand` and
5
- * `ScanCommand` are named the same in `@aws-sdk/client-dynamodb` and in
6
- * `@aws-sdk/lib-dynamodb`, unlike `PutCommand` and `PutItemCommand`. A document
7
- * Command reaching the client operation would have its native JavaScript values
8
- * read as AttributeValues, so it is refused by name instead.
2
+ * Whether an intercepted Command came from the document client.
9
3
  */
10
- export declare function refuseSimDynamoDbDocumentCommand(command: object, commandName: string): void;
4
+ export declare function isSimDynamoDbDocumentCommand(command: object): boolean;
11
5
  //# sourceMappingURL=sim-dynamodb-document-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-document-command.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command.ts"],"names":[],"mappings":"AAwBA;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,IAAI,CAUN"}
1
+ {"version":3,"file":"sim-dynamodb-document-command.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIrE"}
@@ -1,10 +1,10 @@
1
- import { SimDynamoDbUnsupportedOperation } from "../error/dynamodb.error.js";
2
1
  /**
3
2
  * The properties `@aws-sdk/lib-dynamodb` declares on every one of its Commands.
4
3
  *
5
4
  * They are TypeScript `protected`, which means nothing at runtime, so a
6
5
  * document Command carries them where the client Command of the same name does
7
- * not.
6
+ * not. That is what tells a document `QueryCommand` from a client one, since
7
+ * the two share a class name.
8
8
  */
9
9
  const documentCommandProperties = [
10
10
  "inputKeyNodes",
@@ -14,24 +14,7 @@ const documentCommandProperties = [
14
14
  /**
15
15
  * Whether an intercepted Command came from the document client.
16
16
  */
17
- function isSimDynamoDbDocumentCommand(command) {
17
+ export function isSimDynamoDbDocumentCommand(command) {
18
18
  return documentCommandProperties.every((property) => Object.hasOwn(command, property));
19
19
  }
20
- /**
21
- * Refuse a document Command that shares its name with a client Command.
22
- *
23
- * The SDK router keys on the Command's class name, and `QueryCommand` and
24
- * `ScanCommand` are named the same in `@aws-sdk/client-dynamodb` and in
25
- * `@aws-sdk/lib-dynamodb`, unlike `PutCommand` and `PutItemCommand`. A document
26
- * Command reaching the client operation would have its native JavaScript values
27
- * read as AttributeValues, so it is refused by name instead.
28
- */
29
- export function refuseSimDynamoDbDocumentCommand(command, commandName) {
30
- if (!isSimDynamoDbDocumentCommand(command)) {
31
- return;
32
- }
33
- throw new SimDynamoDbUnsupportedOperation(`The document client's ${commandName} is not simulated. It shares its ` +
34
- `name with the ${commandName} of @aws-sdk/client-dynamodb, which is, so ` +
35
- `it is refused rather than read as though it carried AttributeValues.`);
36
- }
37
20
  //# sourceMappingURL=sim-dynamodb-document-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-document-command.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAsB;IACnD,eAAe;IACf,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,SAAS,4BAA4B,CAAC,OAAe;IACnD,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAAe,EACf,WAAmB;IAEnB,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,IAAI,+BAA+B,CACvC,yBAAyB,WAAW,mCAAmC;QACrE,iBAAiB,WAAW,6CAA6C;QACzE,sEAAsE,CACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-dynamodb-document-command.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,yBAAyB,GAAsB;IACnD,eAAe;IACf,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CACjC,CAAC;AACJ,CAAC"}
@@ -1,14 +1,30 @@
1
1
  import type { SimSdkCommandRoute } from "../../../sdk/index.js";
2
2
  import type { SimDynamoDb } from "../sim-dynamodb.js";
3
3
  /**
4
- * The routes that handle `@aws-sdk/lib-dynamodb` document client Commands.
4
+ * The document routes for the two Commands `@aws-sdk/lib-dynamodb` names
5
+ * exactly as `@aws-sdk/client-dynamodb` does.
5
6
  *
6
- * A document Command is named differently to the Command it stands for, so
7
- * `PutCommand` and `PutItemCommand` route separately and only the document one
8
- * converts. Everything after the conversion is the ordinary operation: the same
9
- * validation, the same authorization, the same simulated table.
7
+ * These cannot be routed by name on their own. Each is paired with the client
8
+ * route of the same name by `SimDynamoDbSharedNameRoute`, which asks the
9
+ * Command which client it came from.
10
+ */
11
+ export declare function simDynamoDbDocumentSharedNameRoutes(dynamoDb: SimDynamoDb): {
12
+ readonly query: SimSdkCommandRoute;
13
+ readonly scan: SimSdkCommandRoute;
14
+ };
15
+ /**
16
+ * The routes that handle the `@aws-sdk/lib-dynamodb` document client Commands
17
+ * with a name of their own.
18
+ *
19
+ * Most document Commands are named differently to the Command they stand for,
20
+ * so `PutCommand` and `PutItemCommand` route separately and only the document
21
+ * one converts. Everything after the conversion is the ordinary operation: the
22
+ * same validation, the same authorization, the same simulated table.
23
+ *
24
+ * `QueryCommand` and `ScanCommand` share their names with client Commands and
25
+ * so are routed by `simDynamoDbDocumentSharedNameRoutes` instead.
10
26
  *
11
- * An operation with no document route here, such as a document
27
+ * An operation with no document route at all, such as a document
12
28
  * `TransactWriteCommand`, is refused by name like any other unsupported
13
29
  * Command, rather than failing part way through a conversion.
14
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-document-routes.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkCtD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,GACpB,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAyCpD"}
1
+ {"version":3,"file":"sim-dynamodb-document-routes.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyCtD;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,WAAW,GAAG;IAC1E,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;CACnC,CAaA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,GACpB,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAyCpD"}
@@ -1,38 +1,59 @@
1
1
  import { simDynamoDbDocumentCommandPaths as paths, } from "./sim-dynamodb-document-command-paths.js";
2
2
  import { SimDynamoDbDocumentRoute } from "./sim-dynamodb-document-route.js";
3
3
  /**
4
- * Build the routed entry for one document Command.
4
+ * Build the route for one document Command.
5
5
  */
6
- function documentRoute(name, commandPaths, send) {
7
- return [
8
- name,
9
- new SimDynamoDbDocumentRoute({
10
- input: commandPaths.input,
11
- output: commandPaths.output,
12
- send: async (input, options) => await send(input, options),
13
- }).route(),
14
- ];
6
+ function documentRoute(commandPaths, send) {
7
+ return new SimDynamoDbDocumentRoute({
8
+ input: commandPaths.input,
9
+ output: commandPaths.output,
10
+ send: async (input, options) => await send(input, options),
11
+ }).route();
12
+ }
13
+ /**
14
+ * Build the routed entry for one document Command with a name of its own.
15
+ */
16
+ function namedDocumentRoute(name, commandPaths, send) {
17
+ return [name, documentRoute(commandPaths, send)];
15
18
  }
16
19
  /**
17
- * The routes that handle `@aws-sdk/lib-dynamodb` document client Commands.
20
+ * The document routes for the two Commands `@aws-sdk/lib-dynamodb` names
21
+ * exactly as `@aws-sdk/client-dynamodb` does.
22
+ *
23
+ * These cannot be routed by name on their own. Each is paired with the client
24
+ * route of the same name by `SimDynamoDbSharedNameRoute`, which asks the
25
+ * Command which client it came from.
26
+ */
27
+ export function simDynamoDbDocumentSharedNameRoutes(dynamoDb) {
28
+ return {
29
+ query: documentRoute(paths.query, async (input, options) => await dynamoDb.query({ input }, options)),
30
+ scan: documentRoute(paths.scan, async (input, options) => await dynamoDb.scan({ input }, options)),
31
+ };
32
+ }
33
+ /**
34
+ * The routes that handle the `@aws-sdk/lib-dynamodb` document client Commands
35
+ * with a name of their own.
36
+ *
37
+ * Most document Commands are named differently to the Command they stand for,
38
+ * so `PutCommand` and `PutItemCommand` route separately and only the document
39
+ * one converts. Everything after the conversion is the ordinary operation: the
40
+ * same validation, the same authorization, the same simulated table.
18
41
  *
19
- * A document Command is named differently to the Command it stands for, so
20
- * `PutCommand` and `PutItemCommand` route separately and only the document one
21
- * converts. Everything after the conversion is the ordinary operation: the same
22
- * validation, the same authorization, the same simulated table.
42
+ * `QueryCommand` and `ScanCommand` share their names with client Commands and
43
+ * so are routed by `simDynamoDbDocumentSharedNameRoutes` instead.
23
44
  *
24
- * An operation with no document route here, such as a document
45
+ * An operation with no document route at all, such as a document
25
46
  * `TransactWriteCommand`, is refused by name like any other unsupported
26
47
  * Command, rather than failing part way through a conversion.
27
48
  */
28
49
  export function simDynamoDbDocumentRoutes(dynamoDb) {
29
50
  return [
30
- documentRoute("PutCommand", paths.put, async (input, options) => await dynamoDb.putItem({ input }, options)),
31
- documentRoute("GetCommand", paths.get, async (input, options) => await dynamoDb.getItem({ input }, options)),
32
- documentRoute("DeleteCommand", paths.remove, async (input, options) => await dynamoDb.deleteItem({ input }, options)),
33
- documentRoute("UpdateCommand", paths.update, async (input, options) => await dynamoDb.updateItem({ input }, options)),
34
- documentRoute("BatchWriteCommand", paths.batchWrite, async (input, options) => await dynamoDb.batchWriteItem({ input }, options)),
35
- documentRoute("BatchGetCommand", paths.batchGet, async (input, options) => await dynamoDb.batchGetItem({ input }, options)),
51
+ namedDocumentRoute("PutCommand", paths.put, async (input, options) => await dynamoDb.putItem({ input }, options)),
52
+ namedDocumentRoute("GetCommand", paths.get, async (input, options) => await dynamoDb.getItem({ input }, options)),
53
+ namedDocumentRoute("DeleteCommand", paths.remove, async (input, options) => await dynamoDb.deleteItem({ input }, options)),
54
+ namedDocumentRoute("UpdateCommand", paths.update, async (input, options) => await dynamoDb.updateItem({ input }, options)),
55
+ namedDocumentRoute("BatchWriteCommand", paths.batchWrite, async (input, options) => await dynamoDb.batchWriteItem({ input }, options)),
56
+ namedDocumentRoute("BatchGetCommand", paths.batchGet, async (input, options) => await dynamoDb.batchGetItem({ input }, options)),
36
57
  ];
37
58
  }
38
59
  //# sourceMappingURL=sim-dynamodb-document-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-document-routes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-routes.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,+BAA+B,IAAI,KAAK,GACzC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAU5E;;GAEG;AACH,SAAS,aAAa,CACpB,IAAY,EACZ,YAA6C,EAC7C,IAA6B;IAE7B,OAAO;QACL,IAAI;QACJ,IAAI,wBAAwB,CAAC;YAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAc,EAAE,OAAO,CAAC;SACpE,CAAC,CAAC,KAAK,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAqB;IAErB,OAAO;QACL,aAAa,CACX,YAAY,EACZ,KAAK,CAAC,GAAG,EACT,KAAK,EAAE,KAAiD,EAAE,OAAO,EAAE,EAAE,CACnE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC7C;QACD,aAAa,CACX,YAAY,EACZ,KAAK,CAAC,GAAG,EACT,KAAK,EAAE,KAAiD,EAAE,OAAO,EAAE,EAAE,CACnE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC7C;QACD,aAAa,CACX,eAAe,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,EAAE,KAAoD,EAAE,OAAO,EAAE,EAAE,CACtE,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAChD;QACD,aAAa,CACX,eAAe,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,EAAE,KAAoD,EAAE,OAAO,EAAE,EAAE,CACtE,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAChD;QACD,aAAa,CACX,mBAAmB,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,EACH,KAAwD,EACxD,OAAO,EACP,EAAE,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CACvD;QACD,aAAa,CACX,iBAAiB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,EAAE,KAAsD,EAAE,OAAO,EAAE,EAAE,CACxE,MAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAClD;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sim-dynamodb-document-routes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-routes.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,+BAA+B,IAAI,KAAK,GACzC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAU5E;;GAEG;AACH,SAAS,aAAa,CACpB,YAA6C,EAC7C,IAA6B;IAE7B,OAAO,IAAI,wBAAwB,CAAC;QAClC,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,KAAc,EAAE,OAAO,CAAC;KACpE,CAAC,CAAC,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,YAA6C,EAC7C,IAA6B;IAE7B,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mCAAmC,CAAC,QAAqB;IAIvE,OAAO;QACL,KAAK,EAAE,aAAa,CAClB,KAAK,CAAC,KAAK,EACX,KAAK,EAAE,KAA+C,EAAE,OAAO,EAAE,EAAE,CACjE,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC3C;QACD,IAAI,EAAE,aAAa,CACjB,KAAK,CAAC,IAAI,EACV,KAAK,EAAE,KAA8C,EAAE,OAAO,EAAE,EAAE,CAChE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC1C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAqB;IAErB,OAAO;QACL,kBAAkB,CAChB,YAAY,EACZ,KAAK,CAAC,GAAG,EACT,KAAK,EAAE,KAAiD,EAAE,OAAO,EAAE,EAAE,CACnE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC7C;QACD,kBAAkB,CAChB,YAAY,EACZ,KAAK,CAAC,GAAG,EACT,KAAK,EAAE,KAAiD,EAAE,OAAO,EAAE,EAAE,CACnE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAC7C;QACD,kBAAkB,CAChB,eAAe,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,EAAE,KAAoD,EAAE,OAAO,EAAE,EAAE,CACtE,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAChD;QACD,kBAAkB,CAChB,eAAe,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,EAAE,KAAoD,EAAE,OAAO,EAAE,EAAE,CACtE,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAChD;QACD,kBAAkB,CAChB,mBAAmB,EACnB,KAAK,CAAC,UAAU,EAChB,KAAK,EACH,KAAwD,EACxD,OAAO,EACP,EAAE,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CACvD;QACD,kBAAkB,CAChB,iBAAiB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,EAAE,KAAsD,EAAE,OAAO,EAAE,EAAE,CACxE,MAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAClD;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { SimSdkCommandRoute } from "../../../sdk/index.js";
2
+ interface SimDynamoDbSharedNameRouteProperties {
3
+ readonly document: SimSdkCommandRoute;
4
+ readonly client: SimSdkCommandRoute;
5
+ }
6
+ /**
7
+ * One Command name both DynamoDB clients use, routed by the client it came
8
+ * from.
9
+ *
10
+ * The SDK router keys on the Command's class name, and `@aws-sdk/lib-dynamodb`
11
+ * names its `QueryCommand` and `ScanCommand` exactly as
12
+ * `@aws-sdk/client-dynamodb` does, unlike `PutCommand` and `PutItemCommand`. So
13
+ * the name alone cannot say whether the request carries native JavaScript
14
+ * values or AttributeValues, and the Command is asked instead.
15
+ */
16
+ export declare class SimDynamoDbSharedNameRoute {
17
+ private readonly document;
18
+ private readonly client;
19
+ constructor(properties: SimDynamoDbSharedNameRouteProperties);
20
+ /**
21
+ * The route the SDK interception engine calls.
22
+ */
23
+ route(): SimSdkCommandRoute;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=sim-dynamodb-document-shared-name-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-document-shared-name-route.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-shared-name-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YAAY,UAAU,EAAE,oCAAoC,EAG3D;IAED;;OAEG;IACH,KAAK,IAAI,kBAAkB,CAQ1B;CACF"}
@@ -0,0 +1,31 @@
1
+ import { isSimDynamoDbDocumentCommand } from "./sim-dynamodb-document-command.js";
2
+ /**
3
+ * One Command name both DynamoDB clients use, routed by the client it came
4
+ * from.
5
+ *
6
+ * The SDK router keys on the Command's class name, and `@aws-sdk/lib-dynamodb`
7
+ * names its `QueryCommand` and `ScanCommand` exactly as
8
+ * `@aws-sdk/client-dynamodb` does, unlike `PutCommand` and `PutItemCommand`. So
9
+ * the name alone cannot say whether the request carries native JavaScript
10
+ * values or AttributeValues, and the Command is asked instead.
11
+ */
12
+ export class SimDynamoDbSharedNameRoute {
13
+ document;
14
+ client;
15
+ constructor(properties) {
16
+ this.document = properties.document;
17
+ this.client = properties.client;
18
+ }
19
+ /**
20
+ * The route the SDK interception engine calls.
21
+ */
22
+ route() {
23
+ return async (command, context) => {
24
+ if (isSimDynamoDbDocumentCommand(command)) {
25
+ return await this.document(command, context);
26
+ }
27
+ return await this.client(command, context);
28
+ };
29
+ }
30
+ }
31
+ //# sourceMappingURL=sim-dynamodb-document-shared-name-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-document-shared-name-route.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/document/sim-dynamodb-document-shared-name-route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAOlF;;;;;;;;;GASG;AACH,MAAM,OAAO,0BAA0B;IACpB,QAAQ,CAAqB;IAC7B,MAAM,CAAqB;IAE5C,YAAY,UAAgD;QAC1D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAoB,EAAE;YAClD,IAAI,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-sdk-command-router.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAmC/B,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,qBAAa,iCAAkC,YAAW,mBAAmB;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,YAAY,iBAAiB,EAAE,iBAAiB,EAgL/C;IAED;;OAEG;IACH,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAEzC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEzD;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-sdk-command-router.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAsC/B,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,qBAAa,iCAAkC,YAAW,mBAAmB;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,YAAY,iBAAiB,EAAE,iBAAiB,EAiL/C;IAED;;OAEG;IACH,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAEzC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEzD;CACF"}
@@ -1,12 +1,15 @@
1
1
  import { simSdkCallerOptions, } from "../../../sdk/index.js";
2
- import { refuseSimDynamoDbDocumentCommand } from "../document/sim-dynamodb-document-command.js";
3
- import { simDynamoDbDocumentRoutes } from "../document/sim-dynamodb-document-routes.js";
2
+ import { simDynamoDbDocumentRoutes, simDynamoDbDocumentSharedNameRoutes, } from "../document/sim-dynamodb-document-routes.js";
3
+ import { SimDynamoDbSharedNameRoute } from "../document/sim-dynamodb-document-shared-name-route.js";
4
4
  /**
5
5
  * Routes intercepted SDK Commands to one scoped simulated DynamoDB instance.
6
6
  */
7
7
  export class SimDynamoDatabaseSdkCommandRouter {
8
8
  routes;
9
9
  constructor(simDynamoDatabase) {
10
+ // The document Commands named the same as a client Command, each paired
11
+ // below with the client route it shares its name with.
12
+ const documentShared = simDynamoDbDocumentSharedNameRoutes(simDynamoDatabase);
10
13
  this.routes = new Map([
11
14
  [
12
15
  "CreateTableCommand",
@@ -46,21 +49,17 @@ export class SimDynamoDatabaseSdkCommandRouter {
46
49
  ],
47
50
  [
48
51
  "QueryCommand",
49
- async (command, context) => {
50
- // The document client names its Query the same as this one, so the
51
- // Command name alone cannot tell them apart.
52
- refuseSimDynamoDbDocumentCommand(command, "QueryCommand");
53
- return await simDynamoDatabase.query(command, simSdkCallerOptions(context));
54
- },
52
+ new SimDynamoDbSharedNameRoute({
53
+ document: documentShared.query,
54
+ client: async (command, context) => await simDynamoDatabase.query(command, simSdkCallerOptions(context)),
55
+ }).route(),
55
56
  ],
56
57
  [
57
58
  "ScanCommand",
58
- async (command, context) => {
59
- // The document client names its Scan the same as this one, so the
60
- // Command name alone cannot tell them apart.
61
- refuseSimDynamoDbDocumentCommand(command, "ScanCommand");
62
- return await simDynamoDatabase.scan(command, simSdkCallerOptions(context));
63
- },
59
+ new SimDynamoDbSharedNameRoute({
60
+ document: documentShared.scan,
61
+ client: async (command, context) => await simDynamoDatabase.scan(command, simSdkCallerOptions(context)),
62
+ }).route(),
64
63
  ],
65
64
  [
66
65
  "BatchWriteItemCommand",
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-sdk-command-router.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim-dynamodb-sdk-command-router.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,17 @@ export type SimRoute53HostedZoneId = Brand<string, "SimRoute53HostedZoneId">;
5
5
  */
6
6
  export declare function makeSimRoute53HostedZoneId(existing?: Set<SimRoute53HostedZoneId>): SimRoute53HostedZoneId;
7
7
  /**
8
- * Normalize a Route53 Hosted Zone ID from either a bare zone ID or /hostedzone/
9
- * prefixed ID.
8
+ * Normalize a caller-supplied Route53 Hosted Zone ID from either a bare zone ID
9
+ * or /hostedzone/ prefixed ID.
10
+ *
11
+ * A malformed ID is rejected here with InvalidInput. A well-formed ID that no
12
+ * simulated hosted zone owns is left to fail later with NoSuchHostedZone.
10
13
  */
11
14
  export declare function normalizeSimRoute53HostedZoneId(value: string | undefined): SimRoute53HostedZoneId;
15
+ /**
16
+ * Whether a value has the shape of a Route53 Hosted Zone ID.
17
+ */
18
+ export declare function isSimRoute53HostedZoneId(value: unknown): value is SimRoute53HostedZoneId;
12
19
  /**
13
20
  * Assert that a value is a sim Route53 Hosted Zone ID.
14
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-route53-zone-id.d.ts","sourceRoot":"","sources":["../../../../../src/service/route53/command/create-hosted-zone/sim-route53-zone-id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAE7E;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,8BAAoC,GAC3C,sBAAsB,CAaxB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,sBAAsB,CAIxB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAQzC"}
1
+ {"version":3,"file":"sim-route53-zone-id.d.ts","sourceRoot":"","sources":["../../../../../src/service/route53/command/create-hosted-zone/sim-route53-zone-id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAG5D,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAY7E;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,8BAAoC,GAC3C,sBAAsB,CAaxB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,sBAAsB,CAUxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,sBAAsB,CAEjC;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAIzC"}
@@ -1,4 +1,14 @@
1
1
  import { faker } from "@faker-js/faker";
2
+ import { SimRoute53InvalidInput } from "../../error/sim-route53.error.js";
3
+ /**
4
+ * Route53 Hosted Zone IDs are a `Z` prefix followed by uppercase alphanumerics.
5
+ * Real IDs are not a fixed length: the API documents a maximum of 32
6
+ * characters, and IDs in the wild are commonly 14 or 21 characters. Only the
7
+ * shape is checked so real IDs copied from an AWS account are accepted.
8
+ *
9
+ * https://docs.aws.amazon.com/Route53/latest/APIReference/API_HostedZone.html
10
+ */
11
+ const simRoute53HostedZoneIdPattern = /^Z[\dA-Z]{1,31}$/u;
2
12
  /**
3
13
  * Allocate a unique simulated Route53 Hosted Zone ID.
4
14
  */
@@ -15,21 +25,30 @@ export function makeSimRoute53HostedZoneId(existing = new Set()) {
15
25
  throw new Error("Could not allocate unique Route53 Hosted Zone ID");
16
26
  }
17
27
  /**
18
- * Normalize a Route53 Hosted Zone ID from either a bare zone ID or /hostedzone/
19
- * prefixed ID.
28
+ * Normalize a caller-supplied Route53 Hosted Zone ID from either a bare zone ID
29
+ * or /hostedzone/ prefixed ID.
30
+ *
31
+ * A malformed ID is rejected here with InvalidInput. A well-formed ID that no
32
+ * simulated hosted zone owns is left to fail later with NoSuchHostedZone.
20
33
  */
21
34
  export function normalizeSimRoute53HostedZoneId(value) {
22
35
  const hostedZoneId = value?.replace(/^\/?hostedzone\//u, "");
23
- assertIsSimRoute53HostedZoneId(hostedZoneId);
36
+ if (!isSimRoute53HostedZoneId(hostedZoneId)) {
37
+ throw new SimRoute53InvalidInput(`Invalid Route53 Hosted Zone ID: ${value ?? "(missing)"}`);
38
+ }
24
39
  return hostedZoneId;
25
40
  }
41
+ /**
42
+ * Whether a value has the shape of a Route53 Hosted Zone ID.
43
+ */
44
+ export function isSimRoute53HostedZoneId(value) {
45
+ return typeof value === "string" && simRoute53HostedZoneIdPattern.test(value);
46
+ }
26
47
  /**
27
48
  * Assert that a value is a sim Route53 Hosted Zone ID.
28
49
  */
29
50
  export function assertIsSimRoute53HostedZoneId(value) {
30
- if (typeof value !== "string" ||
31
- !value.startsWith("Z") ||
32
- value.length !== 22) {
51
+ if (!isSimRoute53HostedZoneId(value)) {
33
52
  throw new Error("Not a SimRoute53HostedZoneId");
34
53
  }
35
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-route53-zone-id.js","sourceRoot":"","sources":["../../../../../src/service/route53/command/create-hosted-zone/sim-route53-zone-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAKxC;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAQ,GAAG,IAAI,GAAG,EAA0B;IAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM;aAClC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;aAC5B,WAAW,EAAE,EAA4B,CAAC;QAE7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAAyB;IAEzB,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC7D,8BAA8B,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAc;IAEd,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC,MAAM,KAAK,EAAE,EACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"sim-route53-zone-id.js","sourceRoot":"","sources":["../../../../../src/service/route53/command/create-hosted-zone/sim-route53-zone-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAI1E;;;;;;;GAOG;AACH,MAAM,6BAA6B,GAAG,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAQ,GAAG,IAAI,GAAG,EAA0B;IAE5C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM;aAClC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;aAC5B,WAAW,EAAE,EAA4B,CAAC;QAE7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAAyB;IAEzB,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAE7D,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,sBAAsB,CAC9B,mCAAmC,KAAK,IAAI,WAAW,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAc;IAEd,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
@@ -18,6 +18,13 @@ export declare class SimRoute53NoSuchHostedZone extends SimRoute53Error {
18
18
  readonly name = "NoSuchHostedZone";
19
19
  constructor(message: string);
20
20
  }
21
+ /**
22
+ * Simulated Route53 InvalidInput error.
23
+ */
24
+ export declare class SimRoute53InvalidInput extends SimRoute53Error {
25
+ readonly name = "InvalidInput";
26
+ constructor(message: string);
27
+ }
21
28
  /**
22
29
  * Simulated Route53 HostedZoneAlreadyExists error.
23
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-route53.error.d.ts","sourceRoot":"","sources":["../../../../src/service/route53/error/sim-route53.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,SAAS,EAAE,uBAAuB;IAFpD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,uBAA4B,EAGxD;CACF;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,eAAe;IACpE,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
1
+ {"version":3,"file":"sim-route53.error.d.ts","sourceRoot":"","sources":["../../../../src/service/route53/error/sim-route53.error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,SAAS,EAAE,uBAAuB;IAFpD,YACE,OAAO,EAAE,MAAM,EACC,SAAS,GAAE,uBAA4B,EAGxD;CACF;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,SAAyB,IAAI,sBAAsB;IAEnD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,SAAyB,IAAI,kBAAkB;IAE/C,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,eAAe;IACpE,SAAyB,IAAI,6BAA6B;IAE1D,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF"}
@@ -17,6 +17,15 @@ export class SimRoute53NoSuchHostedZone extends SimRoute53Error {
17
17
  super(message, { httpStatusCode: 404 });
18
18
  }
19
19
  }
20
+ /**
21
+ * Simulated Route53 InvalidInput error.
22
+ */
23
+ export class SimRoute53InvalidInput extends SimRoute53Error {
24
+ name = "InvalidInput";
25
+ constructor(message) {
26
+ super(message, { httpStatusCode: 400 });
27
+ }
28
+ }
20
29
  /**
21
30
  * Simulated Route53 HostedZoneAlreadyExists error.
22
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-route53.error.js","sourceRoot":"","sources":["../../../../src/service/route53/error/sim-route53.error.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB,SAAS;IAF3B,YACE,OAAe,EACC,SAAS,GAA4B,EAAE;QAEvD,KAAK,CAAC,OAAO,CAAC,CAAC;yBAFC,SAAS;IAG3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IACpC,IAAI,GAAG,kBAAkB,CAAC;IAEnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iCAAkC,SAAQ,eAAe;IAC3C,IAAI,GAAG,yBAAyB,CAAC;IAE1D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"sim-route53.error.js","sourceRoot":"","sources":["../../../../src/service/route53/error/sim-route53.error.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB,SAAS;IAF3B,YACE,OAAe,EACC,SAAS,GAA4B,EAAE;QAEvD,KAAK,CAAC,OAAO,CAAC,CAAC;yBAFC,SAAS;IAG3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IACpC,IAAI,GAAG,kBAAkB,CAAC;IAEnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IAChC,IAAI,GAAG,cAAc,CAAC;IAE/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iCAAkC,SAAQ,eAAe;IAC3C,IAAI,GAAG,yBAAyB,CAAC;IAE1D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kensio/yulin",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "AWS system behaviour simulation for isolated unit testing",
5
5
  "repository": {
6
6
  "type": "git",