euclid-ndk 0.2.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 (127) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +603 -0
  3. package/dist/auth/index.d.ts +18 -0
  4. package/dist/auth/index.d.ts.map +1 -0
  5. package/dist/auth/index.js +17 -0
  6. package/dist/auth/index.js.map +1 -0
  7. package/dist/auth/rfc9421.d.ts +112 -0
  8. package/dist/auth/rfc9421.d.ts.map +1 -0
  9. package/dist/auth/rfc9421.js +452 -0
  10. package/dist/auth/rfc9421.js.map +1 -0
  11. package/dist/auth/scheme.d.ts +46 -0
  12. package/dist/auth/scheme.d.ts.map +1 -0
  13. package/dist/auth/scheme.js +44 -0
  14. package/dist/auth/scheme.js.map +1 -0
  15. package/dist/auth/signable.d.ts +37 -0
  16. package/dist/auth/signable.d.ts.map +1 -0
  17. package/dist/auth/signable.js +70 -0
  18. package/dist/auth/signable.js.map +1 -0
  19. package/dist/auth/sigv4.d.ts +72 -0
  20. package/dist/auth/sigv4.d.ts.map +1 -0
  21. package/dist/auth/sigv4.js +227 -0
  22. package/dist/auth/sigv4.js.map +1 -0
  23. package/dist/credentials.d.ts +56 -0
  24. package/dist/credentials.d.ts.map +1 -0
  25. package/dist/credentials.js +135 -0
  26. package/dist/credentials.js.map +1 -0
  27. package/dist/dto/com.d.ts +101 -0
  28. package/dist/dto/com.d.ts.map +1 -0
  29. package/dist/dto/com.js +132 -0
  30. package/dist/dto/com.js.map +1 -0
  31. package/dist/dto/eag.d.ts +104 -0
  32. package/dist/dto/eag.d.ts.map +1 -0
  33. package/dist/dto/eag.js +70 -0
  34. package/dist/dto/eag.js.map +1 -0
  35. package/dist/dto/eam.d.ts +105 -0
  36. package/dist/dto/eam.d.ts.map +1 -0
  37. package/dist/dto/eam.js +98 -0
  38. package/dist/dto/eam.js.map +1 -0
  39. package/dist/dto/eap.d.ts +88 -0
  40. package/dist/dto/eap.d.ts.map +1 -0
  41. package/dist/dto/eap.js +54 -0
  42. package/dist/dto/eap.js.map +1 -0
  43. package/dist/dto/ekm.d.ts +109 -0
  44. package/dist/dto/ekm.d.ts.map +1 -0
  45. package/dist/dto/ekm.js +78 -0
  46. package/dist/dto/ekm.js.map +1 -0
  47. package/dist/dto/ekv.d.ts +73 -0
  48. package/dist/dto/ekv.d.ts.map +1 -0
  49. package/dist/dto/ekv.js +45 -0
  50. package/dist/dto/ekv.js.map +1 -0
  51. package/dist/dto/ens.d.ts +84 -0
  52. package/dist/dto/ens.d.ts.map +1 -0
  53. package/dist/dto/ens.js +72 -0
  54. package/dist/dto/ens.js.map +1 -0
  55. package/dist/dto/eqs.d.ts +160 -0
  56. package/dist/dto/eqs.d.ts.map +1 -0
  57. package/dist/dto/eqs.js +120 -0
  58. package/dist/dto/eqs.js.map +1 -0
  59. package/dist/dto/esm.d.ts +192 -0
  60. package/dist/dto/esm.d.ts.map +1 -0
  61. package/dist/dto/esm.js +147 -0
  62. package/dist/dto/esm.js.map +1 -0
  63. package/dist/dto/ess.d.ts +49 -0
  64. package/dist/dto/ess.d.ts.map +1 -0
  65. package/dist/dto/ess.js +30 -0
  66. package/dist/dto/ess.js.map +1 -0
  67. package/dist/dto/json.d.ts +24 -0
  68. package/dist/dto/json.d.ts.map +1 -0
  69. package/dist/dto/json.js +47 -0
  70. package/dist/dto/json.js.map +1 -0
  71. package/dist/errors.d.ts +40 -0
  72. package/dist/errors.d.ts.map +1 -0
  73. package/dist/errors.js +73 -0
  74. package/dist/errors.js.map +1 -0
  75. package/dist/http/client.d.ts +96 -0
  76. package/dist/http/client.d.ts.map +1 -0
  77. package/dist/http/client.js +258 -0
  78. package/dist/http/client.js.map +1 -0
  79. package/dist/index.d.ts +93 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +110 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/modules/base.d.ts +121 -0
  84. package/dist/modules/base.d.ts.map +1 -0
  85. package/dist/modules/base.js +142 -0
  86. package/dist/modules/base.js.map +1 -0
  87. package/dist/modules/eag.d.ts +166 -0
  88. package/dist/modules/eag.d.ts.map +1 -0
  89. package/dist/modules/eag.js +189 -0
  90. package/dist/modules/eag.js.map +1 -0
  91. package/dist/modules/eam.d.ts +314 -0
  92. package/dist/modules/eam.d.ts.map +1 -0
  93. package/dist/modules/eam.js +641 -0
  94. package/dist/modules/eam.js.map +1 -0
  95. package/dist/modules/eap.d.ts +204 -0
  96. package/dist/modules/eap.d.ts.map +1 -0
  97. package/dist/modules/eap.js +218 -0
  98. package/dist/modules/eap.js.map +1 -0
  99. package/dist/modules/ekm.d.ts +182 -0
  100. package/dist/modules/ekm.d.ts.map +1 -0
  101. package/dist/modules/ekm.js +228 -0
  102. package/dist/modules/ekm.js.map +1 -0
  103. package/dist/modules/ekv.d.ts +189 -0
  104. package/dist/modules/ekv.d.ts.map +1 -0
  105. package/dist/modules/ekv.js +212 -0
  106. package/dist/modules/ekv.js.map +1 -0
  107. package/dist/modules/ens.d.ts +122 -0
  108. package/dist/modules/ens.d.ts.map +1 -0
  109. package/dist/modules/ens.js +167 -0
  110. package/dist/modules/ens.js.map +1 -0
  111. package/dist/modules/eqs.d.ts +283 -0
  112. package/dist/modules/eqs.d.ts.map +1 -0
  113. package/dist/modules/eqs.js +355 -0
  114. package/dist/modules/eqs.js.map +1 -0
  115. package/dist/modules/esm.d.ts +358 -0
  116. package/dist/modules/esm.d.ts.map +1 -0
  117. package/dist/modules/esm.js +660 -0
  118. package/dist/modules/esm.js.map +1 -0
  119. package/dist/modules/ess.d.ts +96 -0
  120. package/dist/modules/ess.d.ts.map +1 -0
  121. package/dist/modules/ess.js +110 -0
  122. package/dist/modules/ess.js.map +1 -0
  123. package/dist/url.d.ts +31 -0
  124. package/dist/url.d.ts.map +1 -0
  125. package/dist/url.js +47 -0
  126. package/dist/url.js.map +1 -0
  127. package/package.json +47 -0
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The shapes EKV sends back.
3
+ *
4
+ * Parsed the same defensive way as every other module's. One thing is not just parsed but rearranged: the
5
+ * server stores an item's timestamps as two ordinary attributes, `_created` and `_modified`, and
6
+ * {@link toItem} lifts them out. Leaving them in would mean an item read, changed and written back acquires
7
+ * two attributes it never had - and since a write replaces rather than merges, they would stick.
8
+ */
9
+ import { documents, number, object, text } from "./json.js";
10
+ /** The attributes the server keeps an item's timestamps in, and which {@link toItem} takes back out. */
11
+ export const CREATED_ATTRIBUTE = "_created";
12
+ export const MODIFIED_ATTRIBUTE = "_modified";
13
+ // -- parsers ---------------------------------------------------------------------------------------
14
+ /** One item, with its two timestamp attributes lifted out of the rest. */
15
+ export function toItem(document) {
16
+ const attributes = { ...object(document) };
17
+ const created = text(document, CREATED_ATTRIBUTE);
18
+ const modified = text(document, MODIFIED_ATTRIBUTE);
19
+ delete attributes[CREATED_ATTRIBUTE];
20
+ delete attributes[MODIFIED_ATTRIBUTE];
21
+ return { attributes, created, modified };
22
+ }
23
+ export function toTableDescription(document) {
24
+ return {
25
+ name: text(document, "name"),
26
+ ern: text(document, "ern"),
27
+ partitionKey: text(document, "partitionKey"),
28
+ partitionKeyType: text(document, "partitionKeyType"),
29
+ sortKey: text(document, "sortKey"),
30
+ sortKeyType: text(document, "sortKeyType"),
31
+ itemCount: number(document, "itemCount"),
32
+ created: text(document, "created"),
33
+ modified: text(document, "modified"),
34
+ };
35
+ }
36
+ export function toQueryResult(document) {
37
+ const items = documents(document, "items").map(toItem);
38
+ // Falling back to what arrived keeps a sparse answer self-consistent.
39
+ return { items, count: number(document, "count") || items.length };
40
+ }
41
+ export function toScanResult(document) {
42
+ const items = documents(document, "items").map(toItem);
43
+ return { items, count: number(document, "count") || items.length, total: number(document, "total") };
44
+ }
45
+ //# sourceMappingURL=ekv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ekv.js","sourceRoot":"","sources":["../../src/dto/ekv.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5D,wGAAwG;AACxG,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AA8D9C,qGAAqG;AAErG,0EAA0E;AAC1E,MAAM,UAAU,MAAM,CAAC,QAAiB;IACtC,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACrC,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAiB;IAClD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC5B,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC1B,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC5C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QACpD,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;QAClC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC1C,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;QAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,sEAAsE;IACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAiB;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;AACvG,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The shapes ENS sends back.
3
+ *
4
+ * Parsed the same defensive way as every other module's. Where a type here looks like one in
5
+ * {@link import("./eqs.js")}, it is not the same type: a topic's message has no receipt handle and no
6
+ * visibility, because nothing leases it - it is delivered to the topic's subscribers and kept as a
7
+ * record of that. The server keeps them apart for the same reason, so this does too.
8
+ *
9
+ * A subscription is the exception, and lives in {@link import("./com.js")}: ENS and ESM describe one
10
+ * the same way.
11
+ */
12
+ import { type Variant } from "./com.js";
13
+ /** A topic: what a publisher publishes to, and what subscriptions hang off. */
14
+ export interface Topic {
15
+ name: string;
16
+ owner: string;
17
+ ern: string;
18
+ tags: Record<string, string>;
19
+ size: number;
20
+ messages: number;
21
+ maxMessageLength: number;
22
+ created: string;
23
+ modified: string;
24
+ }
25
+ /** One message published to a topic. */
26
+ export interface TopicMessage {
27
+ ern: string;
28
+ topicErn: string;
29
+ messageId: string;
30
+ status: string;
31
+ body: string;
32
+ contentType: string;
33
+ attributes: Record<string, Variant>;
34
+ lastReceived: string;
35
+ created: string;
36
+ modified: string;
37
+ }
38
+ /**
39
+ * One attribute of one published message.
40
+ *
41
+ * The wire field is `key` here and `name` in EQS - the same thing under two names, which this SDK
42
+ * reproduces rather than papers over, so that a request built from this documentation matches what the
43
+ * server and euclid-cli exchange.
44
+ */
45
+ export interface TopicMessageAttribute {
46
+ messageId: string;
47
+ key: string;
48
+ value: Variant;
49
+ }
50
+ /** A newly created topic: its name, and the ERN everything else names it by. */
51
+ export interface CreateTopicResult {
52
+ name: string;
53
+ ern: string;
54
+ }
55
+ /** Where a topic lives and how much has been published to it. */
56
+ export interface TopicMetadata {
57
+ region: string;
58
+ accountId: string;
59
+ owner: string;
60
+ namespace: string;
61
+ name: string;
62
+ ern: string;
63
+ size: number;
64
+ messages: number;
65
+ }
66
+ /**
67
+ * A topic's message counters - the server's own three, which are not a queue's.
68
+ *
69
+ * A topic does not hold a backlog the way a queue does, so these count delivery rather than state: what
70
+ * is on the topic, what has gone out to subscribers, and what had to go out again.
71
+ */
72
+ export interface TopicMessageCount {
73
+ ern: string;
74
+ available: number;
75
+ send: number;
76
+ resend: number;
77
+ }
78
+ export declare function toTopic(document: unknown): Topic;
79
+ export declare function toTopicMessage(document: unknown): TopicMessage;
80
+ export declare function toTopicMessageAttribute(document: unknown): TopicMessageAttribute;
81
+ export declare function toCreateTopicResult(document: unknown): CreateTopicResult;
82
+ export declare function toTopicMetadata(document: unknown): TopicMetadata;
83
+ export declare function toTopicMessageCount(document: unknown): TopicMessageCount;
84
+ //# sourceMappingURL=ens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/dto/ens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAKjE,+EAA+E;AAC/E,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAChB;AAID,gFAAgF;AAChF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAYhD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY,CAa9D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,qBAAqB,CAMhF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,iBAAiB,CAExE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAWhE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,iBAAiB,CAOxE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The shapes ENS sends back.
3
+ *
4
+ * Parsed the same defensive way as every other module's. Where a type here looks like one in
5
+ * {@link import("./eqs.js")}, it is not the same type: a topic's message has no receipt handle and no
6
+ * visibility, because nothing leases it - it is delivered to the topic's subscribers and kept as a
7
+ * record of that. The server keeps them apart for the same reason, so this does too.
8
+ *
9
+ * A subscription is the exception, and lives in {@link import("./com.js")}: ENS and ESM describe one
10
+ * the same way.
11
+ */
12
+ import { toVariant, toVariantMap } from "./com.js";
13
+ import { number, object, stringMap, text } from "./json.js";
14
+ // -- parsers ---------------------------------------------------------------------------------------
15
+ export function toTopic(document) {
16
+ return {
17
+ name: text(document, "name"),
18
+ owner: text(document, "owner"),
19
+ ern: text(document, "ern"),
20
+ tags: stringMap(document, "tags"),
21
+ size: number(document, "size"),
22
+ messages: number(document, "messages"),
23
+ maxMessageLength: number(document, "maxMessageLength"),
24
+ created: text(document, "created"),
25
+ modified: text(document, "modified"),
26
+ };
27
+ }
28
+ export function toTopicMessage(document) {
29
+ return {
30
+ ern: text(document, "ern"),
31
+ topicErn: text(document, "topicErn"),
32
+ messageId: text(document, "messageId"),
33
+ status: text(document, "status"),
34
+ body: text(document, "body"),
35
+ contentType: text(document, "contentType"),
36
+ attributes: toVariantMap(object(document)["attributes"]),
37
+ lastReceived: text(document, "lastReceived"),
38
+ created: text(document, "created"),
39
+ modified: text(document, "modified"),
40
+ };
41
+ }
42
+ export function toTopicMessageAttribute(document) {
43
+ return {
44
+ messageId: text(document, "messageId"),
45
+ key: text(document, "key"),
46
+ value: toVariant(object(document)["value"]),
47
+ };
48
+ }
49
+ export function toCreateTopicResult(document) {
50
+ return { name: text(document, "name"), ern: text(document, "ern") };
51
+ }
52
+ export function toTopicMetadata(document) {
53
+ return {
54
+ region: text(document, "region"),
55
+ accountId: text(document, "accountId"),
56
+ owner: text(document, "owner"),
57
+ namespace: text(document, "nameSpace"),
58
+ name: text(document, "name"),
59
+ ern: text(document, "ern"),
60
+ size: number(document, "size"),
61
+ messages: number(document, "messages"),
62
+ };
63
+ }
64
+ export function toTopicMessageCount(document) {
65
+ return {
66
+ ern: text(document, "ern"),
67
+ available: number(document, "available"),
68
+ send: number(document, "send"),
69
+ resend: number(document, "resend"),
70
+ };
71
+ }
72
+ //# sourceMappingURL=ens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ens.js","sourceRoot":"","sources":["../../src/dto/ens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * The shapes EQS sends back.
3
+ *
4
+ * Parsed the same defensive way as every other module's - see {@link import("./json.js")}. Field names
5
+ * are the server's (`dto/include/euclid/dto/eqs`), converted to camelCase where they differ.
6
+ *
7
+ * Everything about a message is prefixed `Queue` here, because ENS has the same words for different
8
+ * things: a topic's message has no receipt handle and no visibility, since nothing leases it. The
9
+ * server keeps the two apart, so this does too.
10
+ */
11
+ import { type Variant } from "./com.js";
12
+ /**
13
+ * A queue, and the counters that say what is in it.
14
+ *
15
+ * The three counts are the states a message can be in: `available` is waiting to be received,
16
+ * `invisible` is out with a consumer whose visibility timeout has not expired, and `delayed` is not
17
+ * yet due. They are what a consumer's backlog actually looks like - `size` is bytes.
18
+ */
19
+ export interface Queue {
20
+ name: string;
21
+ owner: string;
22
+ ern: string;
23
+ tags: Record<string, string>;
24
+ size: number;
25
+ delay: number;
26
+ available: number;
27
+ delayed: number;
28
+ invisible: number;
29
+ visibility: number;
30
+ maxMessageLength: number;
31
+ maxReceiveCount: number;
32
+ /**
33
+ * The dead letter queue messages go to once they have been received `maxReceiveCount` times. Sent as
34
+ * `deadLetterQueueArn` - an "arn" the server has never renamed.
35
+ */
36
+ deadLetterQueueErn: string;
37
+ priority: string;
38
+ /**
39
+ * `AVAILABLE` or `STOPPED`; a stopped queue hands nothing out - see
40
+ * {@link import("../modules/eqs.js").EuclidEqs.stopQueue}.
41
+ */
42
+ status: string;
43
+ /** One of euclid's own queues rather than somebody's. Left out of a listing unless asked for. */
44
+ internal: boolean;
45
+ created: string;
46
+ modified: string;
47
+ }
48
+ /**
49
+ * One message on a queue.
50
+ *
51
+ * `receiptHandle` is the lease a receive hands out: it is what
52
+ * {@link import("../modules/eqs.js").EuclidEqs.deleteMessage} takes, and it stops working once the
53
+ * visibility timeout expires and the message goes back on the queue.
54
+ *
55
+ * Two attribute maps, as everywhere in euclid: `attributes` are the sender's own, and
56
+ * `systemAttributes` are euclid's envelope, which is how a message that has hopped through a bucket or
57
+ * a topic still carries what it was sent with.
58
+ */
59
+ export interface QueueMessage {
60
+ ern: string;
61
+ queueErn: string;
62
+ messageId: string;
63
+ status: string;
64
+ priority: string;
65
+ body: string;
66
+ receiptHandle: string;
67
+ size: number;
68
+ receivedCount: number;
69
+ contentType: string;
70
+ attributes: Record<string, Variant>;
71
+ systemAttributes: Record<string, Variant>;
72
+ lastReceived: string;
73
+ created: string;
74
+ modified: string;
75
+ }
76
+ /** One attribute of one message, as the server stored it. */
77
+ export interface QueueMessageAttribute {
78
+ messageId: string;
79
+ name: string;
80
+ value: Variant;
81
+ }
82
+ /** A newly created queue: its name, and the ERN everything else names it by. */
83
+ export interface CreateQueueResult {
84
+ name: string;
85
+ ern: string;
86
+ }
87
+ /** Where a queue lives and how much is in it. */
88
+ export interface QueueMetadata {
89
+ region: string;
90
+ accountId: string;
91
+ owner: string;
92
+ namespace: string;
93
+ name: string;
94
+ ern: string;
95
+ size: number;
96
+ messages: number;
97
+ }
98
+ /** How many messages a queue holds, by the state they are in. */
99
+ export interface QueueMessageCount {
100
+ ern: string;
101
+ available: number;
102
+ delayed: number;
103
+ invisible: number;
104
+ total: number;
105
+ }
106
+ /**
107
+ * Everything about one message except its body.
108
+ *
109
+ * `receivedCount` against the queue's `maxReceiveCount` is what decides when a message is moved to the
110
+ * dead letter queue, so this is where a message that keeps coming back explains itself.
111
+ */
112
+ export interface QueueMessageMetadata {
113
+ messageId: string;
114
+ queueErn: string;
115
+ receiptHandle: string;
116
+ status: string;
117
+ priority: string;
118
+ size: number;
119
+ receivedCount: number;
120
+ visibilityTimeout: number;
121
+ contentType: string;
122
+ created: string;
123
+ modified: string;
124
+ }
125
+ /** A queue's status after starting or stopping it, and how many messages are waiting on it. */
126
+ export interface QueueStatusResult {
127
+ ern: string;
128
+ status: string;
129
+ available: number;
130
+ }
131
+ /** One queue a redrive put messages back on, and how many went there. */
132
+ export interface RedriveTarget {
133
+ queueErn: string;
134
+ messages: number;
135
+ }
136
+ /**
137
+ * What a redrive moved, where it went, and what it left behind.
138
+ *
139
+ * `remaining` is not a failure: several queues can share a dead letter queue, and a message that
140
+ * predates the recording of its origin has no answer to the question of where it came from. It is left
141
+ * alone rather than guessed at, and `note` is the server saying so.
142
+ */
143
+ export interface RedriveDlqResult {
144
+ ern: string;
145
+ messages: number;
146
+ remaining: number;
147
+ targets: RedriveTarget[];
148
+ note: string;
149
+ }
150
+ export declare function toQueue(document: unknown): Queue;
151
+ export declare function toQueueMessage(document: unknown): QueueMessage;
152
+ export declare function toQueueMessageAttribute(document: unknown): QueueMessageAttribute;
153
+ export declare function toCreateQueueResult(document: unknown): CreateQueueResult;
154
+ export declare function toQueueMetadata(document: unknown): QueueMetadata;
155
+ export declare function toQueueMessageCount(document: unknown): QueueMessageCount;
156
+ export declare function toQueueMessageMetadata(document: unknown): QueueMessageMetadata;
157
+ export declare function toQueueStatusResult(document: unknown): QueueStatusResult;
158
+ export declare function toRedriveTarget(document: unknown): RedriveTarget;
159
+ export declare function toRedriveDlqResult(document: unknown): RedriveDlqResult;
160
+ //# sourceMappingURL=eqs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eqs.d.ts","sourceRoot":"","sources":["../../src/dto/eqs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * The shapes EQS sends back.
3
+ *
4
+ * Parsed the same defensive way as every other module's - see {@link import("./json.js")}. Field names
5
+ * are the server's (`dto/include/euclid/dto/eqs`), converted to camelCase where they differ.
6
+ *
7
+ * Everything about a message is prefixed `Queue` here, because ENS has the same words for different
8
+ * things: a topic's message has no receipt handle and no visibility, since nothing leases it. The
9
+ * server keeps the two apart, so this does too.
10
+ */
11
+ import { toVariant, toVariantMap } from "./com.js";
12
+ import { documents, flag, number, object, stringMap, text } from "./json.js";
13
+ // -- parsers ---------------------------------------------------------------------------------------
14
+ export function toQueue(document) {
15
+ return {
16
+ name: text(document, "name"),
17
+ owner: text(document, "owner"),
18
+ ern: text(document, "ern"),
19
+ tags: stringMap(document, "tags"),
20
+ size: number(document, "size"),
21
+ delay: number(document, "delay"),
22
+ available: number(document, "available"),
23
+ delayed: number(document, "delayed"),
24
+ invisible: number(document, "invisible"),
25
+ visibility: number(document, "visibility"),
26
+ maxMessageLength: number(document, "maxMessageLength"),
27
+ maxReceiveCount: number(document, "maxReceiveCount"),
28
+ deadLetterQueueErn: text(document, "deadLetterQueueArn"),
29
+ priority: text(document, "priority"),
30
+ status: text(document, "status"),
31
+ internal: flag(document, "internal"),
32
+ created: text(document, "created"),
33
+ modified: text(document, "modified"),
34
+ };
35
+ }
36
+ export function toQueueMessage(document) {
37
+ return {
38
+ ern: text(document, "ern"),
39
+ queueErn: text(document, "queueErn"),
40
+ messageId: text(document, "messageId"),
41
+ status: text(document, "status"),
42
+ priority: text(document, "priority"),
43
+ body: text(document, "body"),
44
+ receiptHandle: text(document, "receiptHandle"),
45
+ size: number(document, "size"),
46
+ receivedCount: number(document, "receivedCount"),
47
+ contentType: text(document, "contentType"),
48
+ attributes: toVariantMap(object(document)["attributes"]),
49
+ systemAttributes: toVariantMap(object(document)["systemAttributes"]),
50
+ lastReceived: text(document, "lastReceived"),
51
+ created: text(document, "created"),
52
+ modified: text(document, "modified"),
53
+ };
54
+ }
55
+ export function toQueueMessageAttribute(document) {
56
+ return {
57
+ messageId: text(document, "messageId"),
58
+ name: text(document, "name"),
59
+ value: toVariant(object(document)["value"]),
60
+ };
61
+ }
62
+ export function toCreateQueueResult(document) {
63
+ return { name: text(document, "name"), ern: text(document, "ern") };
64
+ }
65
+ export function toQueueMetadata(document) {
66
+ return {
67
+ region: text(document, "region"),
68
+ accountId: text(document, "accountId"),
69
+ owner: text(document, "owner"),
70
+ namespace: text(document, "nameSpace"),
71
+ name: text(document, "name"),
72
+ ern: text(document, "ern"),
73
+ size: number(document, "size"),
74
+ messages: number(document, "messages"),
75
+ };
76
+ }
77
+ export function toQueueMessageCount(document) {
78
+ return {
79
+ ern: text(document, "ern"),
80
+ available: number(document, "available"),
81
+ delayed: number(document, "delayed"),
82
+ invisible: number(document, "invisible"),
83
+ total: number(document, "total"),
84
+ };
85
+ }
86
+ export function toQueueMessageMetadata(document) {
87
+ return {
88
+ messageId: text(document, "messageId"),
89
+ queueErn: text(document, "queueErn"),
90
+ receiptHandle: text(document, "receiptHandle"),
91
+ status: text(document, "status"),
92
+ priority: text(document, "priority"),
93
+ size: number(document, "size"),
94
+ receivedCount: number(document, "receivedCount"),
95
+ visibilityTimeout: number(document, "visibilityTimeout"),
96
+ contentType: text(document, "contentType"),
97
+ created: text(document, "created"),
98
+ modified: text(document, "modified"),
99
+ };
100
+ }
101
+ export function toQueueStatusResult(document) {
102
+ return {
103
+ ern: text(document, "ern"),
104
+ status: text(document, "status"),
105
+ available: number(document, "available"),
106
+ };
107
+ }
108
+ export function toRedriveTarget(document) {
109
+ return { queueErn: text(document, "queueErn"), messages: number(document, "messages") };
110
+ }
111
+ export function toRedriveDlqResult(document) {
112
+ return {
113
+ ern: text(document, "ern"),
114
+ messages: number(document, "messages"),
115
+ remaining: number(document, "remaining"),
116
+ targets: documents(document, "targets").map(toRedriveTarget),
117
+ note: text(document, "note"),
118
+ };
119
+ }
120
+ //# sourceMappingURL=eqs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eqs.js","sourceRoot":"","sources":["../../src/dto/eqs.ts"],"names":[],"mappings":"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"}