@utiliread/http 1.16.2 → 1.17.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 (139) 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/msgpack.d.ts +1 -1
  28. package/package.json +28 -20
  29. package/plugins/json/package-lock.json +145 -0
  30. package/plugins/json/package.json +11 -0
  31. package/{src/json.ts → plugins/json/src/index.ts} +123 -117
  32. package/plugins/json/tsconfig.json +3 -0
  33. package/plugins/jsonpatch/package-lock.json +124 -0
  34. package/plugins/jsonpatch/package.json +13 -0
  35. package/{src/jsonpatch.ts → plugins/jsonpatch/src/index.ts} +31 -30
  36. package/plugins/jsonpatch/tsconfig.json +3 -0
  37. package/plugins/msgpack/package-lock.json +134 -0
  38. package/plugins/msgpack/package.json +12 -0
  39. package/{src/msgpack.ts → plugins/msgpack/src/index.ts} +60 -64
  40. package/plugins/msgpack/tsconfig.json +3 -0
  41. package/src/http-builder.ts +1 -1
  42. package/src/http.ts +132 -116
  43. package/src/index.ts +8 -6
  44. package/src/mapping.ts +1 -0
  45. package/tsconfig.json +8 -17
  46. package/dist/cjs/event-aggregator.js +0 -94
  47. package/dist/cjs/event-aggregator.js.map +0 -1
  48. package/dist/cjs/events.js +0 -23
  49. package/dist/cjs/events.js.map +0 -1
  50. package/dist/cjs/helpers.js +0 -16
  51. package/dist/cjs/helpers.js.map +0 -1
  52. package/dist/cjs/http-builder.js +0 -284
  53. package/dist/cjs/http-builder.js.map +0 -1
  54. package/dist/cjs/http-error.js +0 -53
  55. package/dist/cjs/http-error.js.map +0 -1
  56. package/dist/cjs/http-response.js +0 -102
  57. package/dist/cjs/http-response.js.map +0 -1
  58. package/dist/cjs/http.js +0 -97
  59. package/dist/cjs/http.js.map +0 -1
  60. package/dist/cjs/http.spec.js +0 -144
  61. package/dist/cjs/http.spec.js.map +0 -1
  62. package/dist/cjs/index.js +0 -37
  63. package/dist/cjs/index.js.map +0 -1
  64. package/dist/cjs/json.js +0 -71
  65. package/dist/cjs/json.js.map +0 -1
  66. package/dist/cjs/jsonpatch.js +0 -15
  67. package/dist/cjs/jsonpatch.js.map +0 -1
  68. package/dist/cjs/mapping.js +0 -37
  69. package/dist/cjs/mapping.js.map +0 -1
  70. package/dist/cjs/msgpack.js +0 -173
  71. package/dist/cjs/msgpack.js.map +0 -1
  72. package/dist/cjs/pagination.js +0 -3
  73. package/dist/cjs/pagination.js.map +0 -1
  74. package/dist/cjs/problem-details.js +0 -3
  75. package/dist/cjs/problem-details.js.map +0 -1
  76. package/dist/cjs/query-string.js +0 -69
  77. package/dist/cjs/query-string.js.map +0 -1
  78. package/dist/cjs/query-string.spec.js +0 -52
  79. package/dist/cjs/query-string.spec.js.map +0 -1
  80. package/dist/cjs/status-codes.js +0 -71
  81. package/dist/cjs/status-codes.js.map +0 -1
  82. package/dist/cjs/timeout-error.js +0 -32
  83. package/dist/cjs/timeout-error.js.map +0 -1
  84. package/dist/esm/event-aggregator.d.ts +0 -11
  85. package/dist/esm/event-aggregator.js +0 -91
  86. package/dist/esm/event-aggregator.js.map +0 -1
  87. package/dist/esm/events.d.ts +0 -11
  88. package/dist/esm/events.js +0 -19
  89. package/dist/esm/events.js.map +0 -1
  90. package/dist/esm/helpers.d.ts +0 -5
  91. package/dist/esm/helpers.js +0 -10
  92. package/dist/esm/helpers.js.map +0 -1
  93. package/dist/esm/http-builder.d.ts +0 -60
  94. package/dist/esm/http-builder.js +0 -281
  95. package/dist/esm/http-builder.js.map +0 -1
  96. package/dist/esm/http-error.d.ts +0 -10
  97. package/dist/esm/http-error.js +0 -50
  98. package/dist/esm/http-error.js.map +0 -1
  99. package/dist/esm/http-response.d.ts +0 -18
  100. package/dist/esm/http-response.js +0 -99
  101. package/dist/esm/http-response.js.map +0 -1
  102. package/dist/esm/http.d.ts +0 -32
  103. package/dist/esm/http.js +0 -94
  104. package/dist/esm/http.js.map +0 -1
  105. package/dist/esm/http.spec.d.ts +0 -1
  106. package/dist/esm/http.spec.js +0 -142
  107. package/dist/esm/http.spec.js.map +0 -1
  108. package/dist/esm/index.d.ts +0 -13
  109. package/dist/esm/index.js +0 -10
  110. package/dist/esm/index.js.map +0 -1
  111. package/dist/esm/json.js +0 -69
  112. package/dist/esm/json.js.map +0 -1
  113. package/dist/esm/jsonpatch.js +0 -13
  114. package/dist/esm/jsonpatch.js.map +0 -1
  115. package/dist/esm/mapping.d.ts +0 -8
  116. package/dist/esm/mapping.js +0 -32
  117. package/dist/esm/mapping.js.map +0 -1
  118. package/dist/esm/msgpack.js +0 -171
  119. package/dist/esm/msgpack.js.map +0 -1
  120. package/dist/esm/pagination.d.ts +0 -23
  121. package/dist/esm/pagination.js +0 -2
  122. package/dist/esm/pagination.js.map +0 -1
  123. package/dist/esm/problem-details.d.ts +0 -7
  124. package/dist/esm/problem-details.js +0 -2
  125. package/dist/esm/problem-details.js.map +0 -1
  126. package/dist/esm/query-string.d.ts +0 -6
  127. package/dist/esm/query-string.js +0 -66
  128. package/dist/esm/query-string.js.map +0 -1
  129. package/dist/esm/query-string.spec.d.ts +0 -1
  130. package/dist/esm/query-string.spec.js +0 -50
  131. package/dist/esm/query-string.spec.js.map +0 -1
  132. package/dist/esm/status-codes.d.ts +0 -67
  133. package/dist/esm/status-codes.js +0 -68
  134. package/dist/esm/status-codes.js.map +0 -1
  135. package/dist/esm/timeout-error.d.ts +0 -3
  136. package/dist/esm/timeout-error.js +0 -29
  137. package/dist/esm/timeout-error.js.map +0 -1
  138. package/index.d.ts +0 -1
  139. 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, TypeOrMapper } 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 { 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, TypeOrMapper } 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 { 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":"ACSA,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":["src/src/mapping.ts","src/plugins/msgpack/src/index.ts","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 { getMapper } from \"../../../src/mapping\";\r\nimport type { Mapper, Type } from \"../../../src/mapping\";\r\n\r\ntype TypeOrMapper<T> = Type<T> | Mapper<T>;\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;;;ADzBD,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, TypeOrMapper } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\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;;;ADzBD,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, TypeOrMapper } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\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/msgpack.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./dist/esm/msgpack";
1
+ export * from "./plugins/msgpack/src/index";
package/package.json CHANGED
@@ -1,25 +1,26 @@
1
1
  {
2
2
  "name": "@utiliread/http",
3
- "version": "1.16.2",
4
- "main": "dist/cjs/index.js",
5
- "module": "dist/esm/index.js",
6
- "types": "./index.d.ts",
3
+ "version": "1.17.0",
4
+ "source": "src/index.ts",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
- "import": "./dist/esm/index.js",
10
- "require": "./dist/cjs/index.js"
10
+ "import": "./dist/index.mjs",
11
+ "require": "./dist/index.js"
11
12
  },
12
13
  "./json": {
13
- "import": "./dist/esm/json.js",
14
- "require": "./dist/cjs/json.js"
14
+ "import": "./dist/json.mjs",
15
+ "require": "./dist/json.js"
15
16
  },
16
17
  "./jsonpatch": {
17
- "import": "./dist/esm/jsonpatch.js",
18
- "require": "./dist/cjs/jsonpatch.js"
18
+ "import": "./dist/jsonpatch.mjs",
19
+ "require": "./dist/jsonpatch.js"
19
20
  },
20
21
  "./msgpack": {
21
- "import": "./dist/esm/msgpack.js",
22
- "require": "./dist/cjs/msgpack.js"
22
+ "import": "./dist/msgpack.mjs",
23
+ "require": "./dist/msgpack.js"
23
24
  }
24
25
  },
25
26
  "sideEffects": [
@@ -31,7 +32,11 @@
31
32
  "./src/*/msgpack.ts"
32
33
  ],
33
34
  "scripts": {
34
- "build": "tsc && tsc -p tsconfig.cjs.json && replace-in-file ./http-builder @utiliread/http dist/esm/json.d.ts && replace-in-file ./http-builder @utiliread/http dist/esm/jsonpatch.d.ts && replace-in-file ./http-builder @utiliread/http dist/esm/msgpack.d.ts",
35
+ "build": "parcel build . ./plugins/json ./plugins/jsonpatch ./plugins/msgpack",
36
+ "build.core": "parcel build .",
37
+ "build.json": "parcel build ./plugins/json",
38
+ "build.jsonpatch": "parcel build ./plugins/jsonpatch",
39
+ "build.msgpack": "parcel build ./plugins/msgpack",
35
40
  "test": "karma start --single-run --browsers ChromeHeadless karma.config.js",
36
41
  "watch": "karma start --auto-watch --browsers ChromeDebugging karma.config.js",
37
42
  "clean": "rimraf dist"
@@ -40,9 +45,14 @@
40
45
  "access": "public"
41
46
  },
42
47
  "devDependencies": {
48
+ "@parcel/packager-ts": "^2.5.0",
49
+ "@parcel/transformer-typescript-types": "^2.5.0",
43
50
  "@types/chai": "^4.2.16",
44
51
  "@types/luxon": "^2.0.5",
45
52
  "@types/mocha": "^9.0.0",
53
+ "@utiliread/json": "^1.0.2",
54
+ "@utiliread/jsonpatch": "^1.0.0",
55
+ "@utiliread/msgpack": "^1.0.1",
46
56
  "chai": "^4.3.4",
47
57
  "karma": "^6.3.8",
48
58
  "karma-chai": "^0.1.0",
@@ -51,17 +61,15 @@
51
61
  "karma-typescript": "^5.5.1",
52
62
  "luxon": "^2.1.0",
53
63
  "mocha": "^9.1.3",
54
- "replace-in-file": "^6.3.2",
64
+ "parcel": "^2.5.0",
55
65
  "rimraf": "^3.0.2",
56
- "typescript": "^4.2.4",
57
- "@utiliread/json": "^1.0.2",
58
- "@utiliread/jsonpatch": "^1.0.0",
59
- "@utiliread/msgpack": "^1.0.1"
66
+ "typescript": "^4.2.4"
60
67
  },
61
68
  "peerDependencies": {
62
- "luxon": "^2.1.0",
63
69
  "@utiliread/json": "^1.0.2",
64
- "@utiliread/msgpack": "^1.0.1"
70
+ "@utiliread/jsonpatch": "^1.0.0",
71
+ "@utiliread/msgpack": "^1.0.1",
72
+ "luxon": "^2.1.0"
65
73
  },
66
74
  "peerDependenciesMeta": {
67
75
  "@utiliread/json": {