@utiliread/http 1.16.1 → 1.17.1

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 (142) hide show
  1. package/dist/index.d.ts +227 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +534 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +507 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/{esm/json.d.ts → json.d.ts} +15 -17
  8. package/dist/json.d.ts.map +1 -0
  9. package/dist/json.js +100 -0
  10. package/dist/json.js.map +1 -0
  11. package/dist/json.mjs +100 -0
  12. package/dist/json.mjs.map +1 -0
  13. package/dist/{esm/jsonpatch.d.ts → jsonpatch.d.ts} +10 -9
  14. package/dist/jsonpatch.d.ts.map +1 -0
  15. package/dist/jsonpatch.js +18 -0
  16. package/dist/jsonpatch.js.map +1 -0
  17. package/dist/jsonpatch.mjs +18 -0
  18. package/dist/jsonpatch.mjs.map +1 -0
  19. package/dist/{esm/msgpack.d.ts → msgpack.d.ts} +9 -10
  20. package/dist/msgpack.d.ts.map +1 -0
  21. package/dist/msgpack.js +62 -0
  22. package/dist/msgpack.js.map +1 -0
  23. package/dist/msgpack.mjs +62 -0
  24. package/dist/msgpack.mjs.map +1 -0
  25. package/json.d.ts +1 -1
  26. package/jsonpatch.d.ts +1 -1
  27. package/karma.config.js +27 -29
  28. package/msgpack.d.ts +1 -1
  29. package/package.json +28 -20
  30. package/plugins/json/package-lock.json +145 -0
  31. package/plugins/json/package.json +11 -0
  32. package/{src/json.ts → plugins/json/src/index.ts} +124 -117
  33. package/plugins/json/tsconfig.json +3 -0
  34. package/plugins/jsonpatch/package-lock.json +124 -0
  35. package/plugins/jsonpatch/package.json +13 -0
  36. package/{src/jsonpatch.ts → plugins/jsonpatch/src/index.ts} +31 -30
  37. package/plugins/jsonpatch/tsconfig.json +3 -0
  38. package/plugins/msgpack/package-lock.json +134 -0
  39. package/plugins/msgpack/package.json +12 -0
  40. package/{src/msgpack.ts → plugins/msgpack/src/index.ts} +61 -64
  41. package/plugins/msgpack/tsconfig.json +3 -0
  42. package/src/http-builder.ts +1 -1
  43. package/src/http.spec.ts +0 -27
  44. package/src/http.ts +132 -116
  45. package/src/index.ts +8 -6
  46. package/src/mapping.ts +1 -0
  47. package/tsconfig.json +8 -17
  48. package/tsconfig.test.json +10 -0
  49. package/dist/cjs/event-aggregator.js +0 -94
  50. package/dist/cjs/event-aggregator.js.map +0 -1
  51. package/dist/cjs/events.js +0 -23
  52. package/dist/cjs/events.js.map +0 -1
  53. package/dist/cjs/helpers.js +0 -16
  54. package/dist/cjs/helpers.js.map +0 -1
  55. package/dist/cjs/http-builder.js +0 -284
  56. package/dist/cjs/http-builder.js.map +0 -1
  57. package/dist/cjs/http-error.js +0 -53
  58. package/dist/cjs/http-error.js.map +0 -1
  59. package/dist/cjs/http-response.js +0 -102
  60. package/dist/cjs/http-response.js.map +0 -1
  61. package/dist/cjs/http.js +0 -97
  62. package/dist/cjs/http.js.map +0 -1
  63. package/dist/cjs/http.spec.js +0 -144
  64. package/dist/cjs/http.spec.js.map +0 -1
  65. package/dist/cjs/index.js +0 -37
  66. package/dist/cjs/index.js.map +0 -1
  67. package/dist/cjs/json.js +0 -71
  68. package/dist/cjs/json.js.map +0 -1
  69. package/dist/cjs/jsonpatch.js +0 -15
  70. package/dist/cjs/jsonpatch.js.map +0 -1
  71. package/dist/cjs/mapping.js +0 -37
  72. package/dist/cjs/mapping.js.map +0 -1
  73. package/dist/cjs/msgpack.js +0 -173
  74. package/dist/cjs/msgpack.js.map +0 -1
  75. package/dist/cjs/pagination.js +0 -3
  76. package/dist/cjs/pagination.js.map +0 -1
  77. package/dist/cjs/problem-details.js +0 -3
  78. package/dist/cjs/problem-details.js.map +0 -1
  79. package/dist/cjs/query-string.js +0 -69
  80. package/dist/cjs/query-string.js.map +0 -1
  81. package/dist/cjs/query-string.spec.js +0 -52
  82. package/dist/cjs/query-string.spec.js.map +0 -1
  83. package/dist/cjs/status-codes.js +0 -71
  84. package/dist/cjs/status-codes.js.map +0 -1
  85. package/dist/cjs/timeout-error.js +0 -32
  86. package/dist/cjs/timeout-error.js.map +0 -1
  87. package/dist/esm/event-aggregator.d.ts +0 -11
  88. package/dist/esm/event-aggregator.js +0 -91
  89. package/dist/esm/event-aggregator.js.map +0 -1
  90. package/dist/esm/events.d.ts +0 -11
  91. package/dist/esm/events.js +0 -19
  92. package/dist/esm/events.js.map +0 -1
  93. package/dist/esm/helpers.d.ts +0 -5
  94. package/dist/esm/helpers.js +0 -10
  95. package/dist/esm/helpers.js.map +0 -1
  96. package/dist/esm/http-builder.d.ts +0 -60
  97. package/dist/esm/http-builder.js +0 -281
  98. package/dist/esm/http-builder.js.map +0 -1
  99. package/dist/esm/http-error.d.ts +0 -10
  100. package/dist/esm/http-error.js +0 -50
  101. package/dist/esm/http-error.js.map +0 -1
  102. package/dist/esm/http-response.d.ts +0 -18
  103. package/dist/esm/http-response.js +0 -99
  104. package/dist/esm/http-response.js.map +0 -1
  105. package/dist/esm/http.d.ts +0 -32
  106. package/dist/esm/http.js +0 -94
  107. package/dist/esm/http.js.map +0 -1
  108. package/dist/esm/http.spec.d.ts +0 -1
  109. package/dist/esm/http.spec.js +0 -142
  110. package/dist/esm/http.spec.js.map +0 -1
  111. package/dist/esm/index.d.ts +0 -13
  112. package/dist/esm/index.js +0 -10
  113. package/dist/esm/index.js.map +0 -1
  114. package/dist/esm/json.js +0 -69
  115. package/dist/esm/json.js.map +0 -1
  116. package/dist/esm/jsonpatch.js +0 -13
  117. package/dist/esm/jsonpatch.js.map +0 -1
  118. package/dist/esm/mapping.d.ts +0 -8
  119. package/dist/esm/mapping.js +0 -32
  120. package/dist/esm/mapping.js.map +0 -1
  121. package/dist/esm/msgpack.js +0 -171
  122. package/dist/esm/msgpack.js.map +0 -1
  123. package/dist/esm/pagination.d.ts +0 -23
  124. package/dist/esm/pagination.js +0 -2
  125. package/dist/esm/pagination.js.map +0 -1
  126. package/dist/esm/problem-details.d.ts +0 -7
  127. package/dist/esm/problem-details.js +0 -2
  128. package/dist/esm/problem-details.js.map +0 -1
  129. package/dist/esm/query-string.d.ts +0 -6
  130. package/dist/esm/query-string.js +0 -66
  131. package/dist/esm/query-string.js.map +0 -1
  132. package/dist/esm/query-string.spec.d.ts +0 -1
  133. package/dist/esm/query-string.spec.js +0 -50
  134. package/dist/esm/query-string.spec.js.map +0 -1
  135. package/dist/esm/status-codes.d.ts +0 -67
  136. package/dist/esm/status-codes.js +0 -68
  137. package/dist/esm/status-codes.js.map +0 -1
  138. package/dist/esm/timeout-error.d.ts +0 -3
  139. package/dist/esm/timeout-error.js +0 -29
  140. package/dist/esm/timeout-error.js.map +0 -1
  141. package/index.d.ts +0 -1
  142. package/tsconfig.cjs.json +0 -9
package/dist/json.js ADDED
@@ -0,0 +1,100 @@
1
+ var $hjeo4$utilireadhttp = require("@utiliread/http");
2
+ var $hjeo4$utilireadjson = require("@utiliread/json");
3
+
4
+
5
+
6
+ function $832885d3f99065b6$export$27b49540aaa79f4f(deserialize, typeOrMap) {
7
+ if (!typeOrMap) return (x)=>x
8
+ ;
9
+ if ($832885d3f99065b6$var$isZeroArgumentFunction(typeOrMap)) // It cannot be a factory function if it takes no arguments,
10
+ // so it must be a (zero argument) type (constructor)
11
+ return (x)=>{
12
+ const bound = deserialize(x, typeOrMap);
13
+ // The server cannot produce the undefined result
14
+ if (bound === undefined) throw Error("The model factory created a undefined result");
15
+ return bound;
16
+ };
17
+ return typeOrMap;
18
+ }
19
+ function $832885d3f99065b6$export$bf53df0dfe06e237(deserialize, typeOrMap) {
20
+ const nullableFactory = $832885d3f99065b6$export$27b49540aaa79f4f(deserialize, typeOrMap);
21
+ return (x)=>{
22
+ const result = nullableFactory(x);
23
+ if (result === null) throw Error("The model factory created a null result");
24
+ return result;
25
+ };
26
+ }
27
+ function $832885d3f99065b6$var$isZeroArgumentFunction(typeCtor) {
28
+ return typeCtor.length === 0;
29
+ }
30
+
31
+
32
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.withJson = function(content) {
33
+ this.message.content = $hjeo4$utilireadjson.serialize(content);
34
+ this.message.contentType = "application/json";
35
+ return this;
36
+ };
37
+ $hjeo4$utilireadhttp.HttpBuilderOfT.prototype.withJson = function(content) {
38
+ this.message.content = $hjeo4$utilireadjson.serialize(content);
39
+ this.message.contentType = "application/json";
40
+ return this;
41
+ };
42
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.expectJson = function(typeOrMapper) {
43
+ this.message.headers.set("Accept", "application/json");
44
+ return this.useHandler((response)=>{
45
+ return response.rawResponse.json().then((x)=>$832885d3f99065b6$export$bf53df0dfe06e237($hjeo4$utilireadjson.deserialize, typeOrMapper)(x)
46
+ );
47
+ });
48
+ };
49
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.expectJsonArray = function(typeOrMapper) {
50
+ this.message.headers.set("Accept", "application/json");
51
+ return this.useHandler((response)=>{
52
+ return response.rawResponse.json().then((x)=>{
53
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($hjeo4$utilireadjson.deserialize, typeOrMapper);
54
+ return x.map(itemFactory);
55
+ });
56
+ });
57
+ };
58
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.expectJsonNullableArray = function(typeOrMapper) {
59
+ this.message.headers.set("Accept", "application/json");
60
+ return this.useHandler((response)=>{
61
+ return response.rawResponse.json().then((x)=>{
62
+ const itemFactory = $832885d3f99065b6$export$27b49540aaa79f4f($hjeo4$utilireadjson.deserialize, typeOrMapper);
63
+ return x.map(itemFactory);
64
+ });
65
+ });
66
+ };
67
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.expectJsonPaginationResult = function(typeOrMapper) {
68
+ this.message.headers.set("Accept", "application/json");
69
+ return this.useHandler((response)=>{
70
+ return response.rawResponse.json().then((x)=>{
71
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($hjeo4$utilireadjson.deserialize, typeOrMapper);
72
+ return {
73
+ meta: {
74
+ pageCount: x.meta.pageCount,
75
+ pageSize: x.meta.pageSize,
76
+ totalItems: x.meta.totalItems
77
+ },
78
+ data: x.data.map(itemFactory)
79
+ };
80
+ });
81
+ });
82
+ };
83
+ $hjeo4$utilireadhttp.HttpBuilder.prototype.expectJsonInfinitePaginationResult = function(typeOrMapper) {
84
+ this.message.headers.set("Accept", "application/json");
85
+ return this.useHandler((response)=>{
86
+ return response.rawResponse.json().then((x)=>{
87
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($hjeo4$utilireadjson.deserialize, typeOrMapper);
88
+ return {
89
+ meta: {
90
+ pageSize: x.meta.pageSize,
91
+ continuationToken: x.meta.continuationToken
92
+ },
93
+ data: x.data.map(itemFactory)
94
+ };
95
+ });
96
+ });
97
+ };
98
+
99
+
100
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport type {\r\n InfinitePaginationResult,\r\n PaginationResult,\r\n} from \"../../../src/pagination\";\r\nimport { deserialize, serialize } from \"@utiliread/json\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper, getNullableMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJson(content: any): this;\r\n\r\n expectJson<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectJsonArray<T>(typeOrMapper: TypeOrMapper<T>): HttpBuilderOfT<T[]>;\r\n expectJsonNullableArray<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<(T | null)[]>;\r\n expectJsonPaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<PaginationResult<T>>;\r\n expectJsonInfinitePaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<InfinitePaginationResult<T>>;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJson(content: any): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJson = function (this: HttpBuilder, content: any) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJson = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n content: any\r\n) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilder.prototype.expectJson = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x) => getMapper(deserialize, typeOrMapper)(x));\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonNullableArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n): HttpBuilderOfT<(T | null)[]> {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getNullableMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonPaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: PaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageCount: x.meta.pageCount,\r\n pageSize: x.meta.pageSize,\r\n totalItems: x.meta.totalItems,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonInfinitePaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x: InfinitePaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageSize: x.meta.pageSize,\r\n continuationToken: x.meta.continuationToken,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"json.js.map"}
package/dist/json.mjs ADDED
@@ -0,0 +1,100 @@
1
+ import {HttpBuilder as $017Lt$HttpBuilder, HttpBuilderOfT as $017Lt$HttpBuilderOfT} from "@utiliread/http";
2
+ import {serialize as $017Lt$serialize, deserialize as $017Lt$deserialize} from "@utiliread/json";
3
+
4
+
5
+
6
+ function $526ffc2cb67c58ff$export$27b49540aaa79f4f(deserialize, typeOrMap) {
7
+ if (!typeOrMap) return (x)=>x
8
+ ;
9
+ if ($526ffc2cb67c58ff$var$isZeroArgumentFunction(typeOrMap)) // It cannot be a factory function if it takes no arguments,
10
+ // so it must be a (zero argument) type (constructor)
11
+ return (x)=>{
12
+ const bound = deserialize(x, typeOrMap);
13
+ // The server cannot produce the undefined result
14
+ if (bound === undefined) throw Error("The model factory created a undefined result");
15
+ return bound;
16
+ };
17
+ return typeOrMap;
18
+ }
19
+ function $526ffc2cb67c58ff$export$bf53df0dfe06e237(deserialize, typeOrMap) {
20
+ const nullableFactory = $526ffc2cb67c58ff$export$27b49540aaa79f4f(deserialize, typeOrMap);
21
+ return (x)=>{
22
+ const result = nullableFactory(x);
23
+ if (result === null) throw Error("The model factory created a null result");
24
+ return result;
25
+ };
26
+ }
27
+ function $526ffc2cb67c58ff$var$isZeroArgumentFunction(typeCtor) {
28
+ return typeCtor.length === 0;
29
+ }
30
+
31
+
32
+ $017Lt$HttpBuilder.prototype.withJson = function(content) {
33
+ this.message.content = $017Lt$serialize(content);
34
+ this.message.contentType = "application/json";
35
+ return this;
36
+ };
37
+ $017Lt$HttpBuilderOfT.prototype.withJson = function(content) {
38
+ this.message.content = $017Lt$serialize(content);
39
+ this.message.contentType = "application/json";
40
+ return this;
41
+ };
42
+ $017Lt$HttpBuilder.prototype.expectJson = function(typeOrMapper) {
43
+ this.message.headers.set("Accept", "application/json");
44
+ return this.useHandler((response)=>{
45
+ return response.rawResponse.json().then((x)=>$526ffc2cb67c58ff$export$bf53df0dfe06e237($017Lt$deserialize, typeOrMapper)(x)
46
+ );
47
+ });
48
+ };
49
+ $017Lt$HttpBuilder.prototype.expectJsonArray = function(typeOrMapper) {
50
+ this.message.headers.set("Accept", "application/json");
51
+ return this.useHandler((response)=>{
52
+ return response.rawResponse.json().then((x)=>{
53
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($017Lt$deserialize, typeOrMapper);
54
+ return x.map(itemFactory);
55
+ });
56
+ });
57
+ };
58
+ $017Lt$HttpBuilder.prototype.expectJsonNullableArray = function(typeOrMapper) {
59
+ this.message.headers.set("Accept", "application/json");
60
+ return this.useHandler((response)=>{
61
+ return response.rawResponse.json().then((x)=>{
62
+ const itemFactory = $526ffc2cb67c58ff$export$27b49540aaa79f4f($017Lt$deserialize, typeOrMapper);
63
+ return x.map(itemFactory);
64
+ });
65
+ });
66
+ };
67
+ $017Lt$HttpBuilder.prototype.expectJsonPaginationResult = function(typeOrMapper) {
68
+ this.message.headers.set("Accept", "application/json");
69
+ return this.useHandler((response)=>{
70
+ return response.rawResponse.json().then((x)=>{
71
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($017Lt$deserialize, typeOrMapper);
72
+ return {
73
+ meta: {
74
+ pageCount: x.meta.pageCount,
75
+ pageSize: x.meta.pageSize,
76
+ totalItems: x.meta.totalItems
77
+ },
78
+ data: x.data.map(itemFactory)
79
+ };
80
+ });
81
+ });
82
+ };
83
+ $017Lt$HttpBuilder.prototype.expectJsonInfinitePaginationResult = function(typeOrMapper) {
84
+ this.message.headers.set("Accept", "application/json");
85
+ return this.useHandler((response)=>{
86
+ return response.rawResponse.json().then((x)=>{
87
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($017Lt$deserialize, typeOrMapper);
88
+ return {
89
+ meta: {
90
+ pageSize: x.meta.pageSize,
91
+ continuationToken: x.meta.continuationToken
92
+ },
93
+ data: x.data.map(itemFactory)
94
+ };
95
+ });
96
+ });
97
+ };
98
+
99
+
100
+ //# sourceMappingURL=json.mjs.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport type {\r\n InfinitePaginationResult,\r\n PaginationResult,\r\n} from \"../../../src/pagination\";\r\nimport { deserialize, serialize } from \"@utiliread/json\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper, getNullableMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJson(content: any): this;\r\n\r\n expectJson<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectJsonArray<T>(typeOrMapper: TypeOrMapper<T>): HttpBuilderOfT<T[]>;\r\n expectJsonNullableArray<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<(T | null)[]>;\r\n expectJsonPaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<PaginationResult<T>>;\r\n expectJsonInfinitePaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<InfinitePaginationResult<T>>;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJson(content: any): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJson = function (this: HttpBuilder, content: any) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJson = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n content: any\r\n) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilder.prototype.expectJson = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x) => getMapper(deserialize, typeOrMapper)(x));\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonNullableArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n): HttpBuilderOfT<(T | null)[]> {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getNullableMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonPaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: PaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageCount: x.meta.pageCount,\r\n pageSize: x.meta.pageSize,\r\n totalItems: x.meta.totalItems,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonInfinitePaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x: InfinitePaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageSize: x.meta.pageSize,\r\n continuationToken: x.meta.continuationToken,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"json.mjs.map"}
@@ -1,9 +1,10 @@
1
- import type { Operation } from "@utiliread/jsonpatch";
2
- declare module "@utiliread/http" {
3
- interface HttpBuilder {
4
- withJsonPatch(operations: Operation[]): this;
5
- }
6
- interface HttpBuilderOfT<T> {
7
- withJsonPatch(operations: Operation[]): this;
8
- }
9
- }
1
+ module "@utiliread/http" {
2
+ interface HttpBuilder {
3
+ withJsonPatch(operations: Operation[]): this;
4
+ }
5
+ interface HttpBuilderOfT<T> {
6
+ withJsonPatch(operations: Operation[]): this;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=jsonpatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":"AAKA,OAAe,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;KAC9C;IACD,UAAU,cAAc,CAAC,CAAC;QACxB,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;KAC9C;CACF","sources":["plugins/jsonpatch/src/plugins/jsonpatch/src/index.ts","plugins/jsonpatch/src/index.ts"],"sourcesContent":[null,"import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport { serialize } from \"@utiliread/json\";\r\nimport type { Operation } from \"@utiliread/jsonpatch\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJsonPatch = function (\r\n this: HttpBuilder,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJsonPatch = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n"],"names":[],"version":3,"file":"jsonpatch.d.ts.map"}
@@ -0,0 +1,18 @@
1
+ var $lxUpO$utilireadhttp = require("@utiliread/http");
2
+ var $lxUpO$utilireadjson = require("@utiliread/json");
3
+
4
+
5
+
6
+ $lxUpO$utilireadhttp.HttpBuilder.prototype.withJsonPatch = function(operations) {
7
+ this.message.content = $lxUpO$utilireadjson.serialize(operations);
8
+ this.message.contentType = "application/json-patch+json";
9
+ return this;
10
+ };
11
+ $lxUpO$utilireadhttp.HttpBuilderOfT.prototype.withJsonPatch = function(operations) {
12
+ this.message.content = $lxUpO$utilireadjson.serialize(operations);
13
+ this.message.contentType = "application/json-patch+json";
14
+ return this;
15
+ };
16
+
17
+
18
+ //# sourceMappingURL=jsonpatch.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;AAAA;;AAcA,gCAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAEpC,UAAuB,EACvB;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,8BAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACzD,OAAO,IAAI,CAAC;CACb,CAAC;AAEF,mCAAc,CAAC,SAAS,CAAC,aAAa,GAAG,SAEvC,UAAuB,EACvB;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,8BAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACzD,OAAO,IAAI,CAAC;CACb,CAAC","sources":["plugins/jsonpatch/src/index.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport { serialize } from \"@utiliread/json\";\r\nimport type { Operation } from \"@utiliread/jsonpatch\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJsonPatch = function (\r\n this: HttpBuilder,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJsonPatch = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n"],"names":[],"version":3,"file":"jsonpatch.js.map"}
@@ -0,0 +1,18 @@
1
+ import {HttpBuilder as $8CiR8$HttpBuilder, HttpBuilderOfT as $8CiR8$HttpBuilderOfT} from "@utiliread/http";
2
+ import {serialize as $8CiR8$serialize} from "@utiliread/json";
3
+
4
+
5
+
6
+ $8CiR8$HttpBuilder.prototype.withJsonPatch = function(operations) {
7
+ this.message.content = $8CiR8$serialize(operations);
8
+ this.message.contentType = "application/json-patch+json";
9
+ return this;
10
+ };
11
+ $8CiR8$HttpBuilderOfT.prototype.withJsonPatch = function(operations) {
12
+ this.message.content = $8CiR8$serialize(operations);
13
+ this.message.contentType = "application/json-patch+json";
14
+ return this;
15
+ };
16
+
17
+
18
+ //# sourceMappingURL=jsonpatch.mjs.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;AAAA;;AAcA,kBAAW,CAAC,SAAS,CAAC,aAAa,GAAG,SAEpC,UAAuB,EACvB;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACzD,OAAO,IAAI,CAAC;CACb,CAAC;AAEF,qBAAc,CAAC,SAAS,CAAC,aAAa,GAAG,SAEvC,UAAuB,EACvB;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,6BAA6B,CAAC;IACzD,OAAO,IAAI,CAAC;CACb,CAAC","sources":["plugins/jsonpatch/src/index.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport { serialize } from \"@utiliread/json\";\r\nimport type { Operation } from \"@utiliread/jsonpatch\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJsonPatch(operations: Operation[]): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJsonPatch = function (\r\n this: HttpBuilder,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJsonPatch = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n operations: Operation[]\r\n) {\r\n this.message.content = serialize(operations);\r\n this.message.contentType = \"application/json-patch+json\";\r\n return this;\r\n};\r\n"],"names":[],"version":3,"file":"jsonpatch.mjs.map"}
@@ -1,10 +1,9 @@
1
- import { Mapper, Type } from "./mapping";
2
- declare type TypeOrMapper<T> = Type<T> | Mapper<T>;
3
- declare module "@utiliread/http" {
4
- interface HttpBuilder {
5
- expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;
6
- expectMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T[]>;
7
- streamMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;
8
- }
9
- }
10
- export {};
1
+ module "@utiliread/http" {
2
+ interface HttpBuilder {
3
+ expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;
4
+ expectMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T[]>;
5
+ streamMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;
6
+ }
7
+ }
8
+
9
+ //# sourceMappingURL=msgpack.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":"ACOA,OAAe,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxE,sBAAsB,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC7B,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;QACvB,sBAAsB,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC7B,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;KACrD;CACF","sources":["plugins/msgpack/src/src/mapping.ts","plugins/msgpack/src/plugins/msgpack/src/index.ts","plugins/msgpack/src/index.ts"],"sourcesContent":[null,null,"import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n"],"names":[],"version":3,"file":"msgpack.d.ts.map"}
@@ -0,0 +1,62 @@
1
+ var $aEV4B$utilireadmsgpack = require("@utiliread/msgpack");
2
+ var $aEV4B$utilireadhttp = require("@utiliread/http");
3
+ var $aEV4B$msgpackmsgpack = require("@msgpack/msgpack");
4
+
5
+
6
+
7
+
8
+ function $832885d3f99065b6$export$27b49540aaa79f4f(deserialize, typeOrMap) {
9
+ if (!typeOrMap) return (x)=>x
10
+ ;
11
+ if ($832885d3f99065b6$var$isZeroArgumentFunction(typeOrMap)) // It cannot be a factory function if it takes no arguments,
12
+ // so it must be a (zero argument) type (constructor)
13
+ return (x)=>{
14
+ const bound = deserialize(x, typeOrMap);
15
+ // The server cannot produce the undefined result
16
+ if (bound === undefined) throw Error("The model factory created a undefined result");
17
+ return bound;
18
+ };
19
+ return typeOrMap;
20
+ }
21
+ function $832885d3f99065b6$export$bf53df0dfe06e237(deserialize, typeOrMap) {
22
+ const nullableFactory = $832885d3f99065b6$export$27b49540aaa79f4f(deserialize, typeOrMap);
23
+ return (x)=>{
24
+ const result = nullableFactory(x);
25
+ if (result === null) throw Error("The model factory created a null result");
26
+ return result;
27
+ };
28
+ }
29
+ function $832885d3f99065b6$var$isZeroArgumentFunction(typeCtor) {
30
+ return typeCtor.length === 0;
31
+ }
32
+
33
+
34
+ $aEV4B$utilireadhttp.HttpBuilder.prototype.expectMessagePack = function(typeOrMapper) {
35
+ this.message.headers.set("Accept", "application/x-msgpack");
36
+ return this.useHandler(async (response)=>{
37
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($aEV4B$utilireadmsgpack.deserialize, typeOrMapper);
38
+ const decoded = await $aEV4B$msgpackmsgpack.decodeAsync(response.rawResponse.body);
39
+ return itemFactory(decoded);
40
+ });
41
+ };
42
+ $aEV4B$utilireadhttp.HttpBuilder.prototype.expectMessagePackArray = function(typeOrMapper) {
43
+ this.message.headers.set("Accept", "application/x-msgpack");
44
+ return this.useHandler(async (response)=>{
45
+ const items = [];
46
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($aEV4B$utilireadmsgpack.deserialize, typeOrMapper);
47
+ for await (const item of $aEV4B$msgpackmsgpack.decodeArrayStream(response.rawResponse.body))items.push(itemFactory(item));
48
+ return items;
49
+ });
50
+ };
51
+ $aEV4B$utilireadhttp.HttpBuilder.prototype.streamMessagePackArray = function(typeOrMapper) {
52
+ this.message.headers.set("Accept", "application/x-msgpack");
53
+ async function* handler(response) {
54
+ const itemFactory = $832885d3f99065b6$export$bf53df0dfe06e237($aEV4B$utilireadmsgpack.deserialize, typeOrMapper);
55
+ for await (const item of $aEV4B$msgpackmsgpack.decodeArrayStream(response.rawResponse.body))yield itemFactory(item);
56
+ }
57
+ return this.useHandler((response)=>Promise.resolve(handler(response))
58
+ );
59
+ };
60
+
61
+
62
+ //# sourceMappingURL=msgpack.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;ADxBD,gCAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAExC,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,MAAM,OAAO,GAAG,MAAM,iCAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,AAAC;QAC9D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B,CAAC,CAAC;CACJ,CAAC;AAEF,gCAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,KAAK,GAAQ,EAAE,AAAC;QACtB,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,uCAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,gCAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,gBAAgB,OAAO,CAAC,QAAsB,EAAE;QAC9C,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,uCAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAA,CAAC,CAAC;CAC1E,CAAC","sources":["plugins/msgpack/src/index.ts","src/mapping.ts"],"sourcesContent":["import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"msgpack.js.map"}
@@ -0,0 +1,62 @@
1
+ import {deserialize as $ce1lZ$deserialize} from "@utiliread/msgpack";
2
+ import {HttpBuilder as $ce1lZ$HttpBuilder} from "@utiliread/http";
3
+ import {decodeAsync as $ce1lZ$decodeAsync, decodeArrayStream as $ce1lZ$decodeArrayStream} from "@msgpack/msgpack";
4
+
5
+
6
+
7
+
8
+ function $526ffc2cb67c58ff$export$27b49540aaa79f4f(deserialize, typeOrMap) {
9
+ if (!typeOrMap) return (x)=>x
10
+ ;
11
+ if ($526ffc2cb67c58ff$var$isZeroArgumentFunction(typeOrMap)) // It cannot be a factory function if it takes no arguments,
12
+ // so it must be a (zero argument) type (constructor)
13
+ return (x)=>{
14
+ const bound = deserialize(x, typeOrMap);
15
+ // The server cannot produce the undefined result
16
+ if (bound === undefined) throw Error("The model factory created a undefined result");
17
+ return bound;
18
+ };
19
+ return typeOrMap;
20
+ }
21
+ function $526ffc2cb67c58ff$export$bf53df0dfe06e237(deserialize, typeOrMap) {
22
+ const nullableFactory = $526ffc2cb67c58ff$export$27b49540aaa79f4f(deserialize, typeOrMap);
23
+ return (x)=>{
24
+ const result = nullableFactory(x);
25
+ if (result === null) throw Error("The model factory created a null result");
26
+ return result;
27
+ };
28
+ }
29
+ function $526ffc2cb67c58ff$var$isZeroArgumentFunction(typeCtor) {
30
+ return typeCtor.length === 0;
31
+ }
32
+
33
+
34
+ $ce1lZ$HttpBuilder.prototype.expectMessagePack = function(typeOrMapper) {
35
+ this.message.headers.set("Accept", "application/x-msgpack");
36
+ return this.useHandler(async (response)=>{
37
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($ce1lZ$deserialize, typeOrMapper);
38
+ const decoded = await $ce1lZ$decodeAsync(response.rawResponse.body);
39
+ return itemFactory(decoded);
40
+ });
41
+ };
42
+ $ce1lZ$HttpBuilder.prototype.expectMessagePackArray = function(typeOrMapper) {
43
+ this.message.headers.set("Accept", "application/x-msgpack");
44
+ return this.useHandler(async (response)=>{
45
+ const items = [];
46
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($ce1lZ$deserialize, typeOrMapper);
47
+ for await (const item of $ce1lZ$decodeArrayStream(response.rawResponse.body))items.push(itemFactory(item));
48
+ return items;
49
+ });
50
+ };
51
+ $ce1lZ$HttpBuilder.prototype.streamMessagePackArray = function(typeOrMapper) {
52
+ this.message.headers.set("Accept", "application/x-msgpack");
53
+ async function* handler(response) {
54
+ const itemFactory = $526ffc2cb67c58ff$export$bf53df0dfe06e237($ce1lZ$deserialize, typeOrMapper);
55
+ for await (const item of $ce1lZ$decodeArrayStream(response.rawResponse.body))yield itemFactory(item);
56
+ }
57
+ return this.useHandler((response)=>Promise.resolve(handler(response))
58
+ );
59
+ };
60
+
61
+
62
+ //# sourceMappingURL=msgpack.mjs.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;ADxBD,kBAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAExC,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,AAAC;QAC9D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B,CAAC,CAAC;CACJ,CAAC;AAEF,kBAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,KAAK,GAAQ,EAAE,AAAC;QACtB,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,wBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,kBAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,gBAAgB,OAAO,CAAC,QAAsB,EAAE;QAC9C,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,wBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAA,CAAC,CAAC;CAC1E,CAAC","sources":["plugins/msgpack/src/index.ts","src/mapping.ts"],"sourcesContent":["import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"msgpack.mjs.map"}
package/json.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./dist/esm/json";
1
+ export * from "./plugins/json/src/index";
package/jsonpatch.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./dist/esm/jsonpatch";
1
+ export * from "./plugins/jsonpatch/src/index";
package/karma.config.js CHANGED
@@ -1,31 +1,29 @@
1
- const tsconfig = require('./tsconfig.json');
1
+ const tsconfig = require("./tsconfig.json");
2
2
 
3
3
  module.exports = function (config) {
4
- config.set({
5
- frameworks: ['mocha', 'chai', 'karma-typescript'],
6
- files: [
7
- 'src/**/*.ts'
8
- ],
9
- preprocessors: {
10
- 'src/**/*.ts': ['karma-typescript']
11
- },
12
- reporters: ['progress', 'karma-typescript'],
13
- browsers: ['ChromeHeadless', 'ChromeDebugging'],
14
- customLaunchers: {
15
- ChromeDebugging: {
16
- base: 'Chrome',
17
- flags: ['--remote-debugging-port=9222']
18
- }
19
- },
20
- karmaTypescriptConfig: {
21
- bundlerOptions: {
22
- entrypoints: /\.spec\.ts$/,
23
- sourceMap: tsconfig.compilerOptions.sourceMap
24
- },
25
- coverageOptions: {
26
- instrumentation: false
27
- },
28
- tsconfig: './tsconfig.cjs.json'
29
- }
30
- })
31
- }
4
+ config.set({
5
+ frameworks: ["mocha", "chai", "karma-typescript"],
6
+ files: ["src/**/*.ts"],
7
+ preprocessors: {
8
+ "src/**/*.ts": ["karma-typescript"],
9
+ },
10
+ reporters: ["progress", "karma-typescript"],
11
+ browsers: ["ChromeHeadless", "ChromeDebugging"],
12
+ customLaunchers: {
13
+ ChromeDebugging: {
14
+ base: "Chrome",
15
+ flags: ["--remote-debugging-port=9222"],
16
+ },
17
+ },
18
+ karmaTypescriptConfig: {
19
+ bundlerOptions: {
20
+ entrypoints: /\.spec\.ts$/,
21
+ sourceMap: tsconfig.compilerOptions.sourceMap,
22
+ },
23
+ coverageOptions: {
24
+ instrumentation: false,
25
+ },
26
+ tsconfig: "./tsconfig.test.json",
27
+ },
28
+ });
29
+ };
package/msgpack.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./dist/esm/jsonpatch";
1
+ export * from "./plugins/msgpack/src/index";