@shware/http 2.11.4 → 2.12.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 (236) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +13 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  3. package/dist/cache/index.cjs +5 -30
  4. package/dist/cache/index.cjs.map +1 -1
  5. package/dist/cache/index.d.cts +7 -5
  6. package/dist/cache/index.d.cts.map +1 -0
  7. package/dist/cache/index.d.mts +11 -0
  8. package/dist/cache/index.d.mts.map +1 -0
  9. package/dist/cache/index.mjs +5 -6
  10. package/dist/cache/index.mjs.map +1 -1
  11. package/dist/error/detail.cjs +100 -90
  12. package/dist/error/detail.cjs.map +1 -1
  13. package/dist/error/detail.d.cts +77 -78
  14. package/dist/error/detail.d.cts.map +1 -0
  15. package/dist/error/detail.d.mts +108 -0
  16. package/dist/error/detail.d.mts.map +1 -0
  17. package/dist/error/detail.mjs +99 -65
  18. package/dist/error/detail.mjs.map +1 -1
  19. package/dist/error/i18n/en-us.cjs +5 -29
  20. package/dist/error/i18n/en-us.cjs.map +1 -1
  21. package/dist/error/i18n/en-us.d.cts +3 -1
  22. package/dist/error/i18n/en-us.d.cts.map +1 -0
  23. package/dist/error/i18n/en-us.d.mts +5 -0
  24. package/dist/error/i18n/en-us.d.mts.map +1 -0
  25. package/dist/error/i18n/en-us.mjs +5 -5
  26. package/dist/error/i18n/en-us.mjs.map +1 -1
  27. package/dist/error/index.cjs +29 -56
  28. package/dist/error/index.cjs.map +1 -1
  29. package/dist/error/index.d.cts +12 -10
  30. package/dist/error/index.d.cts.map +1 -0
  31. package/dist/error/index.d.mts +21 -0
  32. package/dist/error/index.d.mts.map +1 -0
  33. package/dist/error/index.mjs +25 -28
  34. package/dist/error/index.mjs.map +1 -1
  35. package/dist/error/parse.cjs +63 -61
  36. package/dist/error/parse.cjs.map +1 -1
  37. package/dist/error/parse.d.cts +8 -7
  38. package/dist/error/parse.d.cts.map +1 -0
  39. package/dist/error/{parse.d.ts → parse.d.mts} +8 -7
  40. package/dist/error/parse.d.mts.map +1 -0
  41. package/dist/error/parse.mjs +59 -33
  42. package/dist/error/parse.mjs.map +1 -1
  43. package/dist/error/reason.cjs +0 -19
  44. package/dist/error/reason.d.cts +5 -4
  45. package/dist/error/reason.d.cts.map +1 -0
  46. package/dist/error/reason.d.mts +6 -0
  47. package/dist/error/reason.d.mts.map +1 -0
  48. package/dist/error/reason.mjs +1 -1
  49. package/dist/error/status.cjs +103 -256
  50. package/dist/error/status.cjs.map +1 -1
  51. package/dist/error/status.d.cts +58 -58
  52. package/dist/error/status.d.cts.map +1 -0
  53. package/dist/error/status.d.mts +69 -0
  54. package/dist/error/status.d.mts.map +1 -0
  55. package/dist/error/status.mjs +98 -227
  56. package/dist/error/status.mjs.map +1 -1
  57. package/dist/google-one-tap/index.cjs +135 -138
  58. package/dist/google-one-tap/index.cjs.map +1 -1
  59. package/dist/google-one-tap/index.d.cts +49 -48
  60. package/dist/google-one-tap/index.d.cts.map +1 -0
  61. package/dist/google-one-tap/index.d.mts +82 -0
  62. package/dist/google-one-tap/index.d.mts.map +1 -0
  63. package/dist/google-one-tap/index.mjs +133 -112
  64. package/dist/google-one-tap/index.mjs.map +1 -1
  65. package/dist/google-one-tap/types.cjs +0 -19
  66. package/dist/google-one-tap/types.d.cts +124 -122
  67. package/dist/google-one-tap/types.d.cts.map +1 -0
  68. package/dist/google-one-tap/types.d.mts +157 -0
  69. package/dist/google-one-tap/types.d.mts.map +1 -0
  70. package/dist/google-one-tap/types.mjs +1 -1
  71. package/dist/hono/authorizer.cjs +28 -65
  72. package/dist/hono/authorizer.cjs.map +1 -1
  73. package/dist/hono/authorizer.d.cts +12 -11
  74. package/dist/hono/authorizer.d.cts.map +1 -0
  75. package/dist/hono/authorizer.d.mts +19 -0
  76. package/dist/hono/authorizer.d.mts.map +1 -0
  77. package/dist/hono/authorizer.mjs +23 -36
  78. package/dist/hono/authorizer.mjs.map +1 -1
  79. package/dist/hono/csrf.cjs +81 -92
  80. package/dist/hono/csrf.cjs.map +1 -1
  81. package/dist/hono/csrf.d.cts +46 -45
  82. package/dist/hono/csrf.d.cts.map +1 -0
  83. package/dist/hono/csrf.d.mts +76 -0
  84. package/dist/hono/csrf.d.mts.map +1 -0
  85. package/dist/hono/csrf.mjs +76 -63
  86. package/dist/hono/csrf.mjs.map +1 -1
  87. package/dist/hono/geolocation.cjs +10 -34
  88. package/dist/hono/geolocation.cjs.map +1 -1
  89. package/dist/hono/geolocation.d.cts +5 -4
  90. package/dist/hono/geolocation.d.cts.map +1 -0
  91. package/dist/hono/geolocation.d.mts +7 -0
  92. package/dist/hono/geolocation.d.mts.map +1 -0
  93. package/dist/hono/geolocation.mjs +8 -12
  94. package/dist/hono/geolocation.mjs.map +1 -1
  95. package/dist/hono/handler.cjs +37 -61
  96. package/dist/hono/handler.cjs.map +1 -1
  97. package/dist/hono/handler.d.cts +26 -25
  98. package/dist/hono/handler.d.cts.map +1 -0
  99. package/dist/hono/handler.d.mts +32 -0
  100. package/dist/hono/handler.d.mts.map +1 -0
  101. package/dist/hono/handler.mjs +34 -34
  102. package/dist/hono/handler.mjs.map +1 -1
  103. package/dist/hono/index.cjs +14 -48
  104. package/dist/hono/index.d.cts +7 -15
  105. package/dist/hono/index.d.mts +7 -0
  106. package/dist/hono/index.mjs +4 -14
  107. package/dist/hono/rate-limit.cjs +65 -110
  108. package/dist/hono/rate-limit.cjs.map +1 -1
  109. package/dist/hono/rate-limit.d.cts +27 -26
  110. package/dist/hono/rate-limit.d.cts.map +1 -0
  111. package/dist/hono/rate-limit.d.mts +36 -0
  112. package/dist/hono/rate-limit.d.mts.map +1 -0
  113. package/dist/hono/rate-limit.mjs +60 -81
  114. package/dist/hono/rate-limit.mjs.map +1 -1
  115. package/dist/hono/validator.cjs +47 -66
  116. package/dist/hono/validator.cjs.map +1 -1
  117. package/dist/hono/validator.d.cts +25 -30
  118. package/dist/hono/validator.d.cts.map +1 -0
  119. package/dist/hono/validator.d.mts +26 -0
  120. package/dist/hono/validator.d.mts.map +1 -0
  121. package/dist/hono/validator.mjs +43 -43
  122. package/dist/hono/validator.mjs.map +1 -1
  123. package/dist/index.cjs +39 -95
  124. package/dist/index.d.cts +12 -14
  125. package/dist/index.d.mts +12 -0
  126. package/dist/index.mjs +5 -48
  127. package/dist/iso/iso_3601_1.cjs +1512 -290
  128. package/dist/iso/iso_3601_1.cjs.map +1 -1
  129. package/dist/iso/iso_3601_1.d.cts +8 -6
  130. package/dist/iso/iso_3601_1.d.cts.map +1 -0
  131. package/dist/iso/iso_3601_1.d.mts +11 -0
  132. package/dist/iso/iso_3601_1.d.mts.map +1 -0
  133. package/dist/iso/iso_3601_1.mjs +1511 -265
  134. package/dist/iso/iso_3601_1.mjs.map +1 -1
  135. package/dist/max-length/index.cjs +158 -91
  136. package/dist/max-length/index.cjs.map +1 -1
  137. package/dist/max-length/index.d.cts +110 -1
  138. package/dist/max-length/index.d.cts.map +1 -0
  139. package/dist/{index-BhgdyigB.d.ts → max-length/index.d.mts} +9 -28
  140. package/dist/max-length/index.d.mts.map +1 -0
  141. package/dist/max-length/index.mjs +133 -47
  142. package/dist/max-length/index.mjs.map +1 -1
  143. package/dist/message.cjs +5 -30
  144. package/dist/message.cjs.map +1 -1
  145. package/dist/message.d.cts +3 -1
  146. package/dist/message.d.cts.map +1 -0
  147. package/dist/{message.d.ts → message.d.mts} +3 -1
  148. package/dist/message.d.mts.map +1 -0
  149. package/dist/message.mjs +5 -6
  150. package/dist/message.mjs.map +1 -1
  151. package/dist/polyfills/index.cjs +4 -4
  152. package/dist/polyfills/index.cjs.map +1 -1
  153. package/dist/polyfills/index.d.cts +1 -2
  154. package/dist/polyfills/index.d.mts +1 -0
  155. package/dist/polyfills/index.mjs +5 -2
  156. package/dist/polyfills/index.mjs.map +1 -1
  157. package/dist/response.cjs +191 -208
  158. package/dist/response.cjs.map +1 -1
  159. package/dist/response.d.cts +53 -54
  160. package/dist/response.d.cts.map +1 -0
  161. package/dist/response.d.mts +82 -0
  162. package/dist/response.d.mts.map +1 -0
  163. package/dist/response.mjs +182 -175
  164. package/dist/response.mjs.map +1 -1
  165. package/dist/snowflake.cjs +48 -70
  166. package/dist/snowflake.cjs.map +1 -1
  167. package/dist/snowflake.d.cts +16 -14
  168. package/dist/snowflake.d.cts.map +1 -0
  169. package/dist/snowflake.d.mts +31 -0
  170. package/dist/snowflake.d.mts.map +1 -0
  171. package/dist/snowflake.mjs +46 -44
  172. package/dist/snowflake.mjs.map +1 -1
  173. package/dist/utils/geolocation.cjs +51 -75
  174. package/dist/utils/geolocation.cjs.map +1 -1
  175. package/dist/utils/geolocation.d.cts +14 -12
  176. package/dist/utils/geolocation.d.cts.map +1 -0
  177. package/dist/utils/{geolocation.d.ts → geolocation.d.mts} +14 -12
  178. package/dist/utils/geolocation.d.mts.map +1 -0
  179. package/dist/utils/geolocation.mjs +47 -47
  180. package/dist/utils/geolocation.mjs.map +1 -1
  181. package/dist/utils/google-tag-gateway.cjs +35 -56
  182. package/dist/utils/google-tag-gateway.cjs.map +1 -1
  183. package/dist/utils/google-tag-gateway.d.cts +3 -1
  184. package/dist/utils/google-tag-gateway.d.cts.map +1 -0
  185. package/dist/utils/{google-tag-gateway.d.ts → google-tag-gateway.d.mts} +3 -1
  186. package/dist/utils/google-tag-gateway.d.mts.map +1 -0
  187. package/dist/utils/google-tag-gateway.mjs +33 -30
  188. package/dist/utils/google-tag-gateway.mjs.map +1 -1
  189. package/dist/utils/timing.cjs +50 -71
  190. package/dist/utils/timing.cjs.map +1 -1
  191. package/dist/utils/timing.d.cts +11 -9
  192. package/dist/utils/timing.d.cts.map +1 -0
  193. package/dist/utils/timing.d.mts +15 -0
  194. package/dist/utils/timing.d.mts.map +1 -0
  195. package/dist/utils/timing.mjs +49 -46
  196. package/dist/utils/timing.mjs.map +1 -1
  197. package/dist/webhook/index.cjs +43 -72
  198. package/dist/webhook/index.cjs.map +1 -1
  199. package/dist/webhook/index.d.cts +3 -1
  200. package/dist/webhook/index.d.cts.map +1 -0
  201. package/dist/webhook/{index.d.ts → index.d.mts} +3 -1
  202. package/dist/webhook/index.d.mts.map +1 -0
  203. package/dist/webhook/index.mjs +41 -46
  204. package/dist/webhook/index.mjs.map +1 -1
  205. package/package.json +49 -24
  206. package/dist/cache/index.d.ts +0 -9
  207. package/dist/error/detail.d.ts +0 -109
  208. package/dist/error/i18n/en-us.d.ts +0 -3
  209. package/dist/error/index.d.ts +0 -19
  210. package/dist/error/reason.cjs.map +0 -1
  211. package/dist/error/reason.d.ts +0 -5
  212. package/dist/error/reason.mjs.map +0 -1
  213. package/dist/error/status.d.ts +0 -69
  214. package/dist/google-one-tap/index.d.ts +0 -81
  215. package/dist/google-one-tap/types.cjs.map +0 -1
  216. package/dist/google-one-tap/types.d.ts +0 -155
  217. package/dist/google-one-tap/types.mjs.map +0 -1
  218. package/dist/hono/authorizer.d.ts +0 -18
  219. package/dist/hono/csrf.d.ts +0 -75
  220. package/dist/hono/geolocation.d.ts +0 -6
  221. package/dist/hono/handler.d.ts +0 -31
  222. package/dist/hono/index.cjs.map +0 -1
  223. package/dist/hono/index.d.ts +0 -15
  224. package/dist/hono/index.mjs.map +0 -1
  225. package/dist/hono/rate-limit.d.ts +0 -35
  226. package/dist/hono/validator.d.ts +0 -31
  227. package/dist/index-BhgdyigB.d.cts +0 -129
  228. package/dist/index.cjs.map +0 -1
  229. package/dist/index.d.ts +0 -14
  230. package/dist/index.mjs.map +0 -1
  231. package/dist/iso/iso_3601_1.d.ts +0 -9
  232. package/dist/max-length/index.d.ts +0 -1
  233. package/dist/polyfills/index.d.ts +0 -2
  234. package/dist/response.d.ts +0 -83
  235. package/dist/snowflake.d.ts +0 -29
  236. package/dist/utils/timing.d.ts +0 -13
package/dist/response.cjs CHANGED
@@ -1,218 +1,201 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/response.ts
21
- var response_exports = {};
22
- __export(response_exports, {
23
- Cursor: () => Cursor,
24
- Items: () => Items,
25
- Pages: () => Pages,
26
- getNextPageParam: () => getNextPageParam,
27
- getPreviousPageParam: () => getPreviousPageParam,
28
- initialPageParam: () => initialPageParam,
29
- pageParamsSchema: () => pageParamsSchema
30
- });
31
- module.exports = __toCommonJS(response_exports);
32
- var import_utils = require("@shware/utils");
33
- var import_mini = require("zod/mini");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let _shware_utils = require("@shware/utils");
3
+ let zod_mini = require("zod/mini");
4
+ //#region src/response.ts
34
5
  function pageParamsSchema(max = 100, defaultLimit = 20) {
35
- return (0, import_mini.object)({
36
- limit: (0, import_mini._default)(import_mini.coerce.number().check((0, import_mini.int)(), (0, import_mini.minimum)(1), (0, import_mini.maximum)(max)), defaultLimit),
37
- prev: (0, import_mini.optional)((0, import_mini.string)()),
38
- next: (0, import_mini.optional)((0, import_mini.string)())
39
- });
6
+ return (0, zod_mini.object)({
7
+ limit: (0, zod_mini._default)(zod_mini.coerce.number().check((0, zod_mini.int)(), (0, zod_mini.minimum)(1), (0, zod_mini.maximum)(max)), defaultLimit),
8
+ prev: (0, zod_mini.optional)((0, zod_mini.string)()),
9
+ next: (0, zod_mini.optional)((0, zod_mini.string)())
10
+ });
40
11
  }
41
- var Cursor = {
42
- of(prev, next) {
43
- return {
44
- prev: prev ? this.encode(prev) : void 0,
45
- next: next ? this.encode(next) : void 0
46
- };
47
- },
48
- empty() {
49
- return { prev: void 0, next: void 0 };
50
- },
51
- encode(id) {
52
- if (!id) return void 0;
53
- return Buffer.from(id.toString(), "utf-8").toString("base64");
54
- },
55
- decode(token, type = "bigint") {
56
- const value = Buffer.from(token, "base64").toString("utf-8");
57
- if (type === "bigint")
58
- return BigInt(value);
59
- if (type === "number")
60
- return Number(value);
61
- return value;
62
- }
12
+ const Cursor = {
13
+ of(prev, next) {
14
+ return {
15
+ prev: prev ? this.encode(prev) : void 0,
16
+ next: next ? this.encode(next) : void 0
17
+ };
18
+ },
19
+ empty() {
20
+ return {
21
+ prev: void 0,
22
+ next: void 0
23
+ };
24
+ },
25
+ encode(id) {
26
+ if (!id) return void 0;
27
+ return Buffer.from(id.toString(), "utf-8").toString("base64");
28
+ },
29
+ decode(token, type = "bigint") {
30
+ const value = Buffer.from(token, "base64").toString("utf-8");
31
+ if (type === "bigint") return BigInt(value);
32
+ if (type === "number") return Number(value);
33
+ return value;
34
+ }
63
35
  };
64
- var initialPageParam = {};
36
+ const initialPageParam = {};
65
37
  function getPreviousPageParam(first) {
66
- return (0, import_utils.hasText)(first.paging.prev) ? { prev: first.paging.prev } : null;
38
+ return (0, _shware_utils.hasText)(first.paging.prev) ? { prev: first.paging.prev } : null;
67
39
  }
68
40
  function getNextPageParam(last) {
69
- return (0, import_utils.hasText)(last.paging.next) ? { next: last.paging.next } : null;
41
+ return (0, _shware_utils.hasText)(last.paging.next) ? { next: last.paging.next } : null;
70
42
  }
71
- var Pages = {
72
- flatten(data) {
73
- return data.pages.flatMap((page) => page.data);
74
- },
75
- dedupe(data) {
76
- const seen = /* @__PURE__ */ new Set();
77
- const result = [];
78
- for (const page of data.pages) {
79
- for (const item of page.data) {
80
- if (!seen.has(item.id)) {
81
- seen.add(item.id);
82
- result.push(item);
83
- }
84
- }
85
- }
86
- return result;
87
- },
88
- prepend(item) {
89
- return (data) => {
90
- if (!data) return data;
91
- const [first, ...rest] = data.pages;
92
- if (!first) return { ...data, pages: [{ data: [item], paging: {} }] };
93
- return { ...data, pages: [{ ...first, data: [item, ...first.data] }, ...rest] };
94
- };
95
- },
96
- append(item) {
97
- return (data) => {
98
- if (!data) return data;
99
- const pages = data.pages;
100
- const last = pages[pages.length - 1];
101
- if (!last) return { ...data, pages: [{ data: [item], paging: {} }] };
102
- return { ...data, pages: [...pages.slice(0, -1), { ...last, data: [...last.data, item] }] };
103
- };
104
- },
105
- update(updater, predicate) {
106
- return (data) => {
107
- if (!data) return data;
108
- return {
109
- ...data,
110
- pages: data.pages.map((page) => ({
111
- ...page,
112
- data: page.data.map((item) => predicate(item) ? updater : item)
113
- }))
114
- };
115
- };
116
- },
117
- updateById(updated) {
118
- return this.update(updated, (item) => item.id === updated.id);
119
- },
120
- remove(predicate) {
121
- return (data) => {
122
- if (!data) return data;
123
- return {
124
- ...data,
125
- pages: data.pages.map((page) => ({
126
- ...page,
127
- data: page.data.filter((item) => !predicate(item))
128
- }))
129
- };
130
- };
131
- },
132
- removeById(id) {
133
- return this.remove((item) => item.id === id);
134
- }
43
+ const Pages = {
44
+ flatten(data) {
45
+ return data.pages.flatMap((page) => page.data);
46
+ },
47
+ dedupe(data) {
48
+ const seen = /* @__PURE__ */ new Set();
49
+ const result = [];
50
+ for (const page of data.pages) for (const item of page.data) if (!seen.has(item.id)) {
51
+ seen.add(item.id);
52
+ result.push(item);
53
+ }
54
+ return result;
55
+ },
56
+ prepend(item) {
57
+ return (data) => {
58
+ if (!data) return data;
59
+ const [first, ...rest] = data.pages;
60
+ if (!first) return {
61
+ ...data,
62
+ pages: [{
63
+ data: [item],
64
+ paging: {}
65
+ }]
66
+ };
67
+ return {
68
+ ...data,
69
+ pages: [{
70
+ ...first,
71
+ data: [item, ...first.data]
72
+ }, ...rest]
73
+ };
74
+ };
75
+ },
76
+ append(item) {
77
+ return (data) => {
78
+ if (!data) return data;
79
+ const pages = data.pages;
80
+ const last = pages[pages.length - 1];
81
+ if (!last) return {
82
+ ...data,
83
+ pages: [{
84
+ data: [item],
85
+ paging: {}
86
+ }]
87
+ };
88
+ return {
89
+ ...data,
90
+ pages: [...pages.slice(0, -1), {
91
+ ...last,
92
+ data: [...last.data, item]
93
+ }]
94
+ };
95
+ };
96
+ },
97
+ update(updater, predicate) {
98
+ return (data) => {
99
+ if (!data) return data;
100
+ return {
101
+ ...data,
102
+ pages: data.pages.map((page) => ({
103
+ ...page,
104
+ data: page.data.map((item) => predicate(item) ? updater : item)
105
+ }))
106
+ };
107
+ };
108
+ },
109
+ updateById(updated) {
110
+ return this.update(updated, (item) => item.id === updated.id);
111
+ },
112
+ remove(predicate) {
113
+ return (data) => {
114
+ if (!data) return data;
115
+ return {
116
+ ...data,
117
+ pages: data.pages.map((page) => ({
118
+ ...page,
119
+ data: page.data.filter((item) => !predicate(item))
120
+ }))
121
+ };
122
+ };
123
+ },
124
+ removeById(id) {
125
+ return this.remove((item) => item.id === id);
126
+ }
135
127
  };
136
- var Items = {
137
- push(newItems) {
138
- return (data) => {
139
- if (!data) return newItems;
140
- return [...data, ...newItems];
141
- };
142
- },
143
- unshift(newItems) {
144
- return (data) => {
145
- if (!data) return newItems;
146
- return [...newItems, ...data];
147
- };
148
- },
149
- pushAndDedupe(newItems) {
150
- return (data) => {
151
- if (!data) return newItems;
152
- const seen = /* @__PURE__ */ new Set();
153
- const result = [];
154
- for (const item of data) {
155
- if (!seen.has(item.id)) {
156
- seen.add(item.id);
157
- result.push(item);
158
- }
159
- }
160
- for (const item of newItems) {
161
- if (!seen.has(item.id)) {
162
- seen.add(item.id);
163
- result.push(item);
164
- }
165
- }
166
- return result;
167
- };
168
- },
169
- unshiftAndDedupe(newItems) {
170
- return (data) => {
171
- if (!data) return newItems;
172
- const seen = /* @__PURE__ */ new Set();
173
- const result = [];
174
- for (const item of newItems) {
175
- if (!seen.has(item.id)) {
176
- seen.add(item.id);
177
- result.push(item);
178
- }
179
- }
180
- for (const item of data) {
181
- if (!seen.has(item.id)) {
182
- seen.add(item.id);
183
- result.push(item);
184
- }
185
- }
186
- return result;
187
- };
188
- },
189
- update(updater, predicate) {
190
- return (data) => {
191
- if (!data) return data;
192
- return data.map((item) => predicate(item) ? updater : item);
193
- };
194
- },
195
- updateById(updated) {
196
- return this.update(updated, (item) => item.id === updated.id);
197
- },
198
- remove(predicate) {
199
- return (data) => {
200
- if (!data) return data;
201
- return data.filter((item) => !predicate(item));
202
- };
203
- },
204
- removeById(id) {
205
- return this.remove((item) => item.id === id);
206
- }
128
+ const Items = {
129
+ push(newItems) {
130
+ return (data) => {
131
+ if (!data) return newItems;
132
+ return [...data, ...newItems];
133
+ };
134
+ },
135
+ unshift(newItems) {
136
+ return (data) => {
137
+ if (!data) return newItems;
138
+ return [...newItems, ...data];
139
+ };
140
+ },
141
+ pushAndDedupe(newItems) {
142
+ return (data) => {
143
+ if (!data) return newItems;
144
+ const seen = /* @__PURE__ */ new Set();
145
+ const result = [];
146
+ for (const item of data) if (!seen.has(item.id)) {
147
+ seen.add(item.id);
148
+ result.push(item);
149
+ }
150
+ for (const item of newItems) if (!seen.has(item.id)) {
151
+ seen.add(item.id);
152
+ result.push(item);
153
+ }
154
+ return result;
155
+ };
156
+ },
157
+ unshiftAndDedupe(newItems) {
158
+ return (data) => {
159
+ if (!data) return newItems;
160
+ const seen = /* @__PURE__ */ new Set();
161
+ const result = [];
162
+ for (const item of newItems) if (!seen.has(item.id)) {
163
+ seen.add(item.id);
164
+ result.push(item);
165
+ }
166
+ for (const item of data) if (!seen.has(item.id)) {
167
+ seen.add(item.id);
168
+ result.push(item);
169
+ }
170
+ return result;
171
+ };
172
+ },
173
+ update(updater, predicate) {
174
+ return (data) => {
175
+ if (!data) return data;
176
+ return data.map((item) => predicate(item) ? updater : item);
177
+ };
178
+ },
179
+ updateById(updated) {
180
+ return this.update(updated, (item) => item.id === updated.id);
181
+ },
182
+ remove(predicate) {
183
+ return (data) => {
184
+ if (!data) return data;
185
+ return data.filter((item) => !predicate(item));
186
+ };
187
+ },
188
+ removeById(id) {
189
+ return this.remove((item) => item.id === id);
190
+ }
207
191
  };
208
- // Annotate the CommonJS export names for ESM import in node:
209
- 0 && (module.exports = {
210
- Cursor,
211
- Items,
212
- Pages,
213
- getNextPageParam,
214
- getPreviousPageParam,
215
- initialPageParam,
216
- pageParamsSchema
217
- });
192
+ //#endregion
193
+ exports.Cursor = Cursor;
194
+ exports.Items = Items;
195
+ exports.Pages = Pages;
196
+ exports.getNextPageParam = getNextPageParam;
197
+ exports.getPreviousPageParam = getPreviousPageParam;
198
+ exports.initialPageParam = initialPageParam;
199
+ exports.pageParamsSchema = pageParamsSchema;
200
+
218
201
  //# sourceMappingURL=response.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/response.ts"],"sourcesContent":["import { hasText } from '@shware/utils';\nimport { _default, coerce, int, maximum, minimum, object, optional, string } from 'zod/mini';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type Empty = {};\nexport type EntityId = string | number;\nexport type Entity = { id: EntityId };\n\nexport type Response<T = never> = { data: T };\n\nexport type InitParams = { limit: number; parent?: string };\nexport type NextParams = { limit: number; parent?: string; next: string };\nexport type PrevParams = { limit: number; parent?: string; prev: string };\nexport type PageParams = { limit: number; prev?: string; next?: string };\nexport type ParentPageParams = { limit: number; parent: string; prev?: string; next?: string };\nexport type Page<T = never> = { data: T[]; paging: { next?: string; prev?: string } };\n\nexport function pageParamsSchema(max = 100, defaultLimit = 20) {\n return object({\n limit: _default(coerce.number().check(int(), minimum(1), maximum(max)), defaultLimit),\n prev: optional(string()),\n next: optional(string()),\n });\n}\n\nexport const Cursor = {\n of(\n prev: bigint | number | string | undefined,\n next: bigint | number | string | undefined\n ): Page['paging'] {\n return {\n prev: prev ? this.encode(prev) : undefined,\n next: next ? this.encode(next) : undefined,\n };\n },\n empty(): Page['paging'] {\n return { prev: undefined, next: undefined };\n },\n encode(id: bigint | number | string | undefined): string | undefined {\n if (!id) return undefined;\n return Buffer.from(id.toString(), 'utf-8').toString('base64');\n },\n decode<T extends 'bigint' | 'number' | 'string' = 'bigint'>(\n token: string,\n type: T = 'bigint' as T\n ): T extends 'bigint' ? bigint : T extends 'number' ? number : string {\n const value = Buffer.from(token, 'base64').toString('utf-8');\n if (type === 'bigint')\n return BigInt(value) as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n if (type === 'number')\n return Number(value) as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n return value as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n },\n};\n\nexport const initialPageParam: Page['paging'] = {};\n\nexport function getPreviousPageParam<T = never>(first: Page<T>): Page['paging'] | null {\n return hasText(first.paging.prev) ? { prev: first.paging.prev } : null;\n}\n\nexport function getNextPageParam<T = never>(last: Page<T>): Page['paging'] | null {\n return hasText(last.paging.next) ? { next: last.paging.next } : null;\n}\n\nexport type InfinitePageData<T> = {\n pages: Array<Page<T>>;\n pageParams: Array<Page['paging']>;\n};\n\nexport const Pages = {\n flatten<T>(data: InfinitePageData<T>): T[] {\n return data.pages.flatMap((page) => page.data);\n },\n dedupe<T extends Entity>(data: InfinitePageData<T>): T[] {\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const page of data.pages) {\n for (const item of page.data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n }\n return result;\n },\n prepend<T>(item: T) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n const [first, ...rest] = data.pages;\n if (!first) return { ...data, pages: [{ data: [item], paging: {} }] };\n return { ...data, pages: [{ ...first, data: [item, ...first.data] }, ...rest] };\n };\n },\n append<T>(item: T) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n const pages = data.pages;\n const last = pages[pages.length - 1];\n if (!last) return { ...data, pages: [{ data: [item], paging: {} }] };\n return { ...data, pages: [...pages.slice(0, -1), { ...last, data: [...last.data, item] }] };\n };\n },\n update<T>(updater: T, predicate: (item: T) => boolean) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n return {\n ...data,\n pages: data.pages.map((page) => ({\n ...page,\n data: page.data.map((item) => (predicate(item) ? updater : item)),\n })),\n };\n };\n },\n updateById<T extends Entity>(updated: T) {\n return this.update<T>(updated, (item) => item.id === updated.id);\n },\n remove<T>(predicate: (item: T) => boolean) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n return {\n ...data,\n pages: data.pages.map((page) => ({\n ...page,\n data: page.data.filter((item) => !predicate(item)),\n })),\n };\n };\n },\n removeById<T extends Entity>(id: EntityId) {\n return this.remove<T>((item) => item.id === id);\n },\n};\n\nexport const Items = {\n push<T>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n return [...data, ...newItems];\n };\n },\n unshift<T>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n return [...newItems, ...data];\n };\n },\n pushAndDedupe<T extends Entity>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const item of data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n for (const item of newItems) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n return result;\n };\n },\n unshiftAndDedupe<T extends Entity>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const item of newItems) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n for (const item of data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n return result;\n };\n },\n update<T>(updater: T, predicate: (item: T) => boolean) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return data;\n return data.map((item) => (predicate(item) ? updater : item));\n };\n },\n updateById<T extends Entity>(updated: T) {\n return this.update<T>(updated, (item) => item.id === updated.id);\n },\n remove<T>(predicate: (item: T) => boolean) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return data;\n return data.filter((item) => !predicate(item));\n };\n },\n removeById<T extends Entity>(id: EntityId) {\n return this.remove<T>((item) => item.id === id);\n },\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"response.cjs","names":["coerce"],"sources":["../src/response.ts"],"sourcesContent":["import { hasText } from '@shware/utils';\nimport { _default, coerce, int, maximum, minimum, object, optional, string } from 'zod/mini';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type Empty = {};\nexport type EntityId = string | number;\nexport type Entity = { id: EntityId };\n\nexport type Response<T = never> = { data: T };\n\nexport type InitParams = { limit: number; parent?: string };\nexport type NextParams = { limit: number; parent?: string; next: string };\nexport type PrevParams = { limit: number; parent?: string; prev: string };\nexport type PageParams = { limit: number; prev?: string; next?: string };\nexport type ParentPageParams = { limit: number; parent: string; prev?: string; next?: string };\nexport type Page<T = never> = { data: T[]; paging: { next?: string; prev?: string } };\n\nexport function pageParamsSchema(max = 100, defaultLimit = 20) {\n return object({\n limit: _default(coerce.number().check(int(), minimum(1), maximum(max)), defaultLimit),\n prev: optional(string()),\n next: optional(string()),\n });\n}\n\nexport const Cursor = {\n of(\n prev: bigint | number | string | undefined,\n next: bigint | number | string | undefined\n ): Page['paging'] {\n return {\n prev: prev ? this.encode(prev) : undefined,\n next: next ? this.encode(next) : undefined,\n };\n },\n empty(): Page['paging'] {\n return { prev: undefined, next: undefined };\n },\n encode(id: bigint | number | string | undefined): string | undefined {\n if (!id) return undefined;\n return Buffer.from(id.toString(), 'utf-8').toString('base64');\n },\n decode<T extends 'bigint' | 'number' | 'string' = 'bigint'>(\n token: string,\n type: T = 'bigint' as T\n ): T extends 'bigint' ? bigint : T extends 'number' ? number : string {\n const value = Buffer.from(token, 'base64').toString('utf-8');\n if (type === 'bigint')\n return BigInt(value) as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n if (type === 'number')\n return Number(value) as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n return value as T extends 'bigint' ? bigint : T extends 'number' ? number : string;\n },\n};\n\nexport const initialPageParam: Page['paging'] = {};\n\nexport function getPreviousPageParam<T = never>(first: Page<T>): Page['paging'] | null {\n return hasText(first.paging.prev) ? { prev: first.paging.prev } : null;\n}\n\nexport function getNextPageParam<T = never>(last: Page<T>): Page['paging'] | null {\n return hasText(last.paging.next) ? { next: last.paging.next } : null;\n}\n\nexport type InfinitePageData<T> = {\n pages: Array<Page<T>>;\n pageParams: Array<Page['paging']>;\n};\n\nexport const Pages = {\n flatten<T>(data: InfinitePageData<T>): T[] {\n return data.pages.flatMap((page) => page.data);\n },\n dedupe<T extends Entity>(data: InfinitePageData<T>): T[] {\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const page of data.pages) {\n for (const item of page.data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n }\n return result;\n },\n prepend<T>(item: T) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n const [first, ...rest] = data.pages;\n if (!first) return { ...data, pages: [{ data: [item], paging: {} }] };\n return { ...data, pages: [{ ...first, data: [item, ...first.data] }, ...rest] };\n };\n },\n append<T>(item: T) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n const pages = data.pages;\n const last = pages[pages.length - 1];\n if (!last) return { ...data, pages: [{ data: [item], paging: {} }] };\n return { ...data, pages: [...pages.slice(0, -1), { ...last, data: [...last.data, item] }] };\n };\n },\n update<T>(updater: T, predicate: (item: T) => boolean) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n return {\n ...data,\n pages: data.pages.map((page) => ({\n ...page,\n data: page.data.map((item) => (predicate(item) ? updater : item)),\n })),\n };\n };\n },\n updateById<T extends Entity>(updated: T) {\n return this.update<T>(updated, (item) => item.id === updated.id);\n },\n remove<T>(predicate: (item: T) => boolean) {\n return (data: InfinitePageData<T> | undefined): InfinitePageData<T> | undefined => {\n if (!data) return data;\n return {\n ...data,\n pages: data.pages.map((page) => ({\n ...page,\n data: page.data.filter((item) => !predicate(item)),\n })),\n };\n };\n },\n removeById<T extends Entity>(id: EntityId) {\n return this.remove<T>((item) => item.id === id);\n },\n};\n\nexport const Items = {\n push<T>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n return [...data, ...newItems];\n };\n },\n unshift<T>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n return [...newItems, ...data];\n };\n },\n pushAndDedupe<T extends Entity>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const item of data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n for (const item of newItems) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n return result;\n };\n },\n unshiftAndDedupe<T extends Entity>(newItems: T[]) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return newItems;\n const seen = new Set<EntityId>();\n const result: T[] = [];\n for (const item of newItems) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n for (const item of data) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n result.push(item);\n }\n }\n return result;\n };\n },\n update<T>(updater: T, predicate: (item: T) => boolean) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return data;\n return data.map((item) => (predicate(item) ? updater : item));\n };\n },\n updateById<T extends Entity>(updated: T) {\n return this.update<T>(updated, (item) => item.id === updated.id);\n },\n remove<T>(predicate: (item: T) => boolean) {\n return (data: T[] | undefined): T[] | undefined => {\n if (!data) return data;\n return data.filter((item) => !predicate(item));\n };\n },\n removeById<T extends Entity>(id: EntityId) {\n return this.remove<T>((item) => item.id === id);\n },\n};\n"],"mappings":";;;;AAiBA,SAAgB,iBAAiB,MAAM,KAAK,eAAe,IAAI;CAC7D,QAAA,GAAA,SAAA,OAAA,CAAc;EACZ,QAAA,GAAA,SAAA,SAAA,CAAgBA,SAAAA,OAAO,OAAO,CAAC,CAAC,OAAA,GAAA,SAAA,IAAA,CAAU,IAAA,GAAA,SAAA,QAAA,CAAW,CAAC,IAAA,GAAA,SAAA,QAAA,CAAW,GAAG,CAAC,GAAG,YAAY;EACpF,OAAA,GAAA,SAAA,SAAA,EAAA,GAAA,SAAA,OAAA,CAAsB,CAAC;EACvB,OAAA,GAAA,SAAA,SAAA,EAAA,GAAA,SAAA,OAAA,CAAsB,CAAC;CACzB,CAAC;AACH;AAEA,MAAa,SAAS;CACpB,GACE,MACA,MACgB;EAChB,OAAO;GACL,MAAM,OAAO,KAAK,OAAO,IAAI,IAAI,KAAA;GACjC,MAAM,OAAO,KAAK,OAAO,IAAI,IAAI,KAAA;EACnC;CACF;CACA,QAAwB;EACtB,OAAO;GAAE,MAAM,KAAA;GAAW,MAAM,KAAA;EAAU;CAC5C;CACA,OAAO,IAA8D;EACnE,IAAI,CAAC,IAAI,OAAO,KAAA;EAChB,OAAO,OAAO,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,SAAS,QAAQ;CAC9D;CACA,OACE,OACA,OAAU,UAC0D;EACpE,MAAM,QAAQ,OAAO,KAAK,OAAO,QAAQ,CAAC,CAAC,SAAS,OAAO;EAC3D,IAAI,SAAS,UACX,OAAO,OAAO,KAAK;EACrB,IAAI,SAAS,UACX,OAAO,OAAO,KAAK;EACrB,OAAO;CACT;AACF;AAEA,MAAa,mBAAmC,CAAC;AAEjD,SAAgB,qBAAgC,OAAuC;CACrF,QAAA,GAAA,cAAA,QAAA,CAAe,MAAM,OAAO,IAAI,IAAI,EAAE,MAAM,MAAM,OAAO,KAAK,IAAI;AACpE;AAEA,SAAgB,iBAA4B,MAAsC;CAChF,QAAA,GAAA,cAAA,QAAA,CAAe,KAAK,OAAO,IAAI,IAAI,EAAE,MAAM,KAAK,OAAO,KAAK,IAAI;AAClE;AAOA,MAAa,QAAQ;CACnB,QAAW,MAAgC;EACzC,OAAO,KAAK,MAAM,SAAS,SAAS,KAAK,IAAI;CAC/C;CACA,OAAyB,MAAgC;EACvD,MAAM,uBAAO,IAAI,IAAc;EAC/B,MAAM,SAAc,CAAC;EACrB,KAAK,MAAM,QAAQ,KAAK,OACtB,KAAK,MAAM,QAAQ,KAAK,MACtB,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG;GACtB,KAAK,IAAI,KAAK,EAAE;GAChB,OAAO,KAAK,IAAI;EAClB;EAGJ,OAAO;CACT;CACA,QAAW,MAAS;EAClB,QAAQ,SAA2E;GACjF,IAAI,CAAC,MAAM,OAAO;GAClB,MAAM,CAAC,OAAO,GAAG,QAAQ,KAAK;GAC9B,IAAI,CAAC,OAAO,OAAO;IAAE,GAAG;IAAM,OAAO,CAAC;KAAE,MAAM,CAAC,IAAI;KAAG,QAAQ,CAAC;IAAE,CAAC;GAAE;GACpE,OAAO;IAAE,GAAG;IAAM,OAAO,CAAC;KAAE,GAAG;KAAO,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI;IAAE,GAAG,GAAG,IAAI;GAAE;EAChF;CACF;CACA,OAAU,MAAS;EACjB,QAAQ,SAA2E;GACjF,IAAI,CAAC,MAAM,OAAO;GAClB,MAAM,QAAQ,KAAK;GACnB,MAAM,OAAO,MAAM,MAAM,SAAS;GAClC,IAAI,CAAC,MAAM,OAAO;IAAE,GAAG;IAAM,OAAO,CAAC;KAAE,MAAM,CAAC,IAAI;KAAG,QAAQ,CAAC;IAAE,CAAC;GAAE;GACnE,OAAO;IAAE,GAAG;IAAM,OAAO,CAAC,GAAG,MAAM,MAAM,GAAG,EAAE,GAAG;KAAE,GAAG;KAAM,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI;IAAE,CAAC;GAAE;EAC5F;CACF;CACA,OAAU,SAAY,WAAiC;EACrD,QAAQ,SAA2E;GACjF,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO;IACL,GAAG;IACH,OAAO,KAAK,MAAM,KAAK,UAAU;KAC/B,GAAG;KACH,MAAM,KAAK,KAAK,KAAK,SAAU,UAAU,IAAI,IAAI,UAAU,IAAK;IAClE,EAAE;GACJ;EACF;CACF;CACA,WAA6B,SAAY;EACvC,OAAO,KAAK,OAAU,UAAU,SAAS,KAAK,OAAO,QAAQ,EAAE;CACjE;CACA,OAAU,WAAiC;EACzC,QAAQ,SAA2E;GACjF,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO;IACL,GAAG;IACH,OAAO,KAAK,MAAM,KAAK,UAAU;KAC/B,GAAG;KACH,MAAM,KAAK,KAAK,QAAQ,SAAS,CAAC,UAAU,IAAI,CAAC;IACnD,EAAE;GACJ;EACF;CACF;CACA,WAA6B,IAAc;EACzC,OAAO,KAAK,QAAW,SAAS,KAAK,OAAO,EAAE;CAChD;AACF;AAEA,MAAa,QAAQ;CACnB,KAAQ,UAAe;EACrB,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO,CAAC,GAAG,MAAM,GAAG,QAAQ;EAC9B;CACF;CACA,QAAW,UAAe;EACxB,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI;EAC9B;CACF;CACA,cAAgC,UAAe;EAC7C,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,MAAM,uBAAO,IAAI,IAAc;GAC/B,MAAM,SAAc,CAAC;GACrB,KAAK,MAAM,QAAQ,MACjB,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG;IACtB,KAAK,IAAI,KAAK,EAAE;IAChB,OAAO,KAAK,IAAI;GAClB;GAEF,KAAK,MAAM,QAAQ,UACjB,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG;IACtB,KAAK,IAAI,KAAK,EAAE;IAChB,OAAO,KAAK,IAAI;GAClB;GAEF,OAAO;EACT;CACF;CACA,iBAAmC,UAAe;EAChD,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,MAAM,uBAAO,IAAI,IAAc;GAC/B,MAAM,SAAc,CAAC;GACrB,KAAK,MAAM,QAAQ,UACjB,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG;IACtB,KAAK,IAAI,KAAK,EAAE;IAChB,OAAO,KAAK,IAAI;GAClB;GAEF,KAAK,MAAM,QAAQ,MACjB,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,GAAG;IACtB,KAAK,IAAI,KAAK,EAAE;IAChB,OAAO,KAAK,IAAI;GAClB;GAEF,OAAO;EACT;CACF;CACA,OAAU,SAAY,WAAiC;EACrD,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO,KAAK,KAAK,SAAU,UAAU,IAAI,IAAI,UAAU,IAAK;EAC9D;CACF;CACA,WAA6B,SAAY;EACvC,OAAO,KAAK,OAAU,UAAU,SAAS,KAAK,OAAO,QAAQ,EAAE;CACjE;CACA,OAAU,WAAiC;EACzC,QAAQ,SAA2C;GACjD,IAAI,CAAC,MAAM,OAAO;GAClB,OAAO,KAAK,QAAQ,SAAS,CAAC,UAAU,IAAI,CAAC;EAC/C;CACF;CACA,WAA6B,IAAc;EACzC,OAAO,KAAK,QAAW,SAAS,KAAK,OAAO,EAAE;CAChD;AACF"}
@@ -1,83 +1,82 @@
1
- import * as zod_v4_core from 'zod/v4/core';
2
- import * as zod_mini from 'zod/mini';
3
-
1
+ //#region src/response.d.ts
4
2
  type Empty = {};
5
3
  type EntityId = string | number;
6
4
  type Entity = {
7
- id: EntityId;
5
+ id: EntityId;
8
6
  };
9
7
  type Response<T = never> = {
10
- data: T;
8
+ data: T;
11
9
  };
12
10
  type InitParams = {
13
- limit: number;
14
- parent?: string;
11
+ limit: number;
12
+ parent?: string;
15
13
  };
16
14
  type NextParams = {
17
- limit: number;
18
- parent?: string;
19
- next: string;
15
+ limit: number;
16
+ parent?: string;
17
+ next: string;
20
18
  };
21
19
  type PrevParams = {
22
- limit: number;
23
- parent?: string;
24
- prev: string;
20
+ limit: number;
21
+ parent?: string;
22
+ prev: string;
25
23
  };
26
24
  type PageParams = {
27
- limit: number;
28
- prev?: string;
29
- next?: string;
25
+ limit: number;
26
+ prev?: string;
27
+ next?: string;
30
28
  };
31
29
  type ParentPageParams = {
32
- limit: number;
33
- parent: string;
34
- prev?: string;
35
- next?: string;
30
+ limit: number;
31
+ parent: string;
32
+ prev?: string;
33
+ next?: string;
36
34
  };
37
35
  type Page<T = never> = {
38
- data: T[];
39
- paging: {
40
- next?: string;
41
- prev?: string;
42
- };
36
+ data: T[];
37
+ paging: {
38
+ next?: string;
39
+ prev?: string;
40
+ };
43
41
  };
44
- declare function pageParamsSchema(max?: number, defaultLimit?: number): zod_mini.ZodMiniObject<{
45
- limit: zod_mini.ZodMiniDefault<zod_mini.ZodMiniNumber<unknown>>;
46
- prev: zod_mini.ZodMiniOptional<zod_mini.ZodMiniString<string>>;
47
- next: zod_mini.ZodMiniOptional<zod_mini.ZodMiniString<string>>;
48
- }, zod_v4_core.$strip>;
42
+ declare function pageParamsSchema(max?: number, defaultLimit?: number): import("zod/mini").ZodMiniObject<{
43
+ limit: import("zod/mini").ZodMiniDefault<import("zod/mini").ZodMiniNumber<unknown>>;
44
+ prev: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
45
+ next: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
46
+ }, import("zod/v4/core").$strip>;
49
47
  declare const Cursor: {
50
- of(prev: bigint | number | string | undefined, next: bigint | number | string | undefined): Page["paging"];
51
- empty(): Page["paging"];
52
- encode(id: bigint | number | string | undefined): string | undefined;
53
- decode<T extends "bigint" | "number" | "string" = "bigint">(token: string, type?: T): T extends "bigint" ? bigint : T extends "number" ? number : string;
48
+ of(prev: bigint | number | string | undefined, next: bigint | number | string | undefined): Page['paging'];
49
+ empty(): Page['paging'];
50
+ encode(id: bigint | number | string | undefined): string | undefined;
51
+ decode<T extends 'bigint' | 'number' | 'string' = 'bigint'>(token: string, type?: T): T extends 'bigint' ? bigint : T extends 'number' ? number : string;
54
52
  };
55
53
  declare const initialPageParam: Page['paging'];
56
54
  declare function getPreviousPageParam<T = never>(first: Page<T>): Page['paging'] | null;
57
55
  declare function getNextPageParam<T = never>(last: Page<T>): Page['paging'] | null;
58
56
  type InfinitePageData<T> = {
59
- pages: Array<Page<T>>;
60
- pageParams: Array<Page['paging']>;
57
+ pages: Array<Page<T>>;
58
+ pageParams: Array<Page['paging']>;
61
59
  };
62
60
  declare const Pages: {
63
- flatten<T>(data: InfinitePageData<T>): T[];
64
- dedupe<T extends Entity>(data: InfinitePageData<T>): T[];
65
- prepend<T>(item: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
66
- append<T>(item: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
67
- update<T>(updater: T, predicate: (item: T) => boolean): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
68
- updateById<T extends Entity>(updated: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
69
- remove<T>(predicate: (item: T) => boolean): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
70
- removeById<T extends Entity>(id: EntityId): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
61
+ flatten<T>(data: InfinitePageData<T>): T[];
62
+ dedupe<T extends Entity>(data: InfinitePageData<T>): T[];
63
+ prepend<T>(item: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
64
+ append<T>(item: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
65
+ update<T>(updater: T, predicate: (item: T) => boolean): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
66
+ updateById<T extends Entity>(updated: T): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
67
+ remove<T>(predicate: (item: T) => boolean): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
68
+ removeById<T extends Entity>(id: EntityId): (data: InfinitePageData<T> | undefined) => InfinitePageData<T> | undefined;
71
69
  };
72
70
  declare const Items: {
73
- push<T>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
74
- unshift<T>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
75
- pushAndDedupe<T extends Entity>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
76
- unshiftAndDedupe<T extends Entity>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
77
- update<T>(updater: T, predicate: (item: T) => boolean): (data: T[] | undefined) => T[] | undefined;
78
- updateById<T extends Entity>(updated: T): (data: T[] | undefined) => T[] | undefined;
79
- remove<T>(predicate: (item: T) => boolean): (data: T[] | undefined) => T[] | undefined;
80
- removeById<T extends Entity>(id: EntityId): (data: T[] | undefined) => T[] | undefined;
71
+ push<T>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
72
+ unshift<T>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
73
+ pushAndDedupe<T extends Entity>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
74
+ unshiftAndDedupe<T extends Entity>(newItems: T[]): (data: T[] | undefined) => T[] | undefined;
75
+ update<T>(updater: T, predicate: (item: T) => boolean): (data: T[] | undefined) => T[] | undefined;
76
+ updateById<T extends Entity>(updated: T): (data: T[] | undefined) => T[] | undefined;
77
+ remove<T>(predicate: (item: T) => boolean): (data: T[] | undefined) => T[] | undefined;
78
+ removeById<T extends Entity>(id: EntityId): (data: T[] | undefined) => T[] | undefined;
81
79
  };
82
-
83
- export { Cursor, type Empty, type Entity, type EntityId, type InfinitePageData, type InitParams, Items, type NextParams, type Page, type PageParams, Pages, type ParentPageParams, type PrevParams, type Response, getNextPageParam, getPreviousPageParam, initialPageParam, pageParamsSchema };
80
+ //#endregion
81
+ export { Cursor, Empty, Entity, EntityId, InfinitePageData, InitParams, Items, NextParams, Page, PageParams, Pages, ParentPageParams, PrevParams, Response, getNextPageParam, getPreviousPageParam, initialPageParam, pageParamsSchema };
82
+ //# sourceMappingURL=response.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.cts","names":[],"sources":["../src/response.ts"],"mappings":";KAIY;KACA;KACA;EAAW,IAAI;;KAEf,SAAS;EAAe,MAAM;;KAE9B;EAAe;EAAe;;KAC9B;EAAe;EAAe;EAAiB;;KAC/C;EAAe;EAAe;EAAiB;;KAC/C;EAAe;EAAe;EAAe;;KAC7C;EAAqB;EAAe;EAAgB;EAAe;;KACnE,KAAK;EAAe,MAAM;EAAK;IAAU;IAAe;;;iBAEpD,iBAAiB,cAAW,2CAAiB;;;;;cAQhD;EACX,GAAE,4CAC0C,6CAEzC;EAMH,SAAS;EAGT,OAAM;EAIN,OAAO,qDAAmD,eAC3C,OACP,IACL,8BAA8B;;cAUtB,kBAAkB;iBAEf,qBAAqB,WAAW,OAAO,KAAK,KAAK;iBAIjD,iBAAiB,WAAW,MAAM,KAAK,KAAK;KAIhD,iBAAiB;EAC3B,OAAO,MAAM,KAAK;EAClB,YAAY,MAAM;;cAGP;EACX,QAAQ,GAAC,MAAQ,iBAAiB,KAAK;EAGvC,OAAO,UAAU,QAAM,MAAQ,iBAAiB,KAAK;EAarD,QAAQ,GAAC,MAAQ,KAAC,MACF,iBAAiB,mBAAiB,iBAAiB;EAOnE,OAAO,GAAC,MAAQ,KAAC,MACD,iBAAiB,mBAAiB,iBAAiB;EAQnE,OAAO,GAAC,SAAW,GAAC,YAAc,MAAM,iBAAa,MACrC,iBAAiB,mBAAiB,iBAAiB;EAWnE,WAAW,UAAU,QAAM,SAAW,KAAC,MAAA,iBAAA,mBAAA,iBAAA;EAGvC,OAAO,GAAC,YAAc,MAAM,iBAAa,MACzB,iBAAiB,mBAAiB,iBAAiB;EAWnE,WAAW,UAAU,QAAM,IAAM,YAAQ,MAAA,iBAAA,mBAAA,iBAAA;;cAK9B;EACX,KAAK,GAAC,UAAY,OAAG,MACL,oBAAkB;EAKlC,QAAQ,GAAC,UAAY,OAAG,MACR,oBAAkB;EAKlC,cAAc,UAAU,QAAM,UAAY,OAAG,MAC7B,oBAAkB;EAmBlC,iBAAiB,UAAU,QAAM,UAAY,OAAG,MAChC,oBAAkB;EAmBlC,OAAO,GAAC,SAAW,GAAC,YAAc,MAAM,iBAAa,MACrC,oBAAkB;EAKlC,WAAW,UAAU,QAAM,SAAW,KAAC,MAAA,oBAAA;EAGvC,OAAO,GAAC,YAAc,MAAM,iBAAa,MACzB,oBAAkB;EAKlC,WAAW,UAAU,QAAM,IAAM,YAAQ,MAAA,oBAAA"}