@recode-js/next-toolkit 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/README.md +27 -0
  2. package/dist/NextToolkitProvider.d.ts +8 -0
  3. package/dist/NextToolkitProvider.d.ts.map +1 -0
  4. package/dist/NextToolkitProvider.js +12 -0
  5. package/dist/NextToolkitProvider.js.map +1 -0
  6. package/dist/_virtual/_commonjsHelpers.js +6 -0
  7. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  8. package/dist/_virtual/browser.js +4 -0
  9. package/dist/_virtual/browser.js.map +1 -0
  10. package/dist/_virtual/index.js +4 -0
  11. package/dist/_virtual/index.js.map +1 -0
  12. package/dist/_virtual/index2.js +4 -0
  13. package/dist/_virtual/index2.js.map +1 -0
  14. package/dist/_virtual/index3.js +4 -0
  15. package/dist/_virtual/index3.js.map +1 -0
  16. package/dist/_virtual/node.js +4 -0
  17. package/dist/_virtual/node.js.map +1 -0
  18. package/dist/_virtual/use-sync-external-store-with-selector.development.js +4 -0
  19. package/dist/_virtual/use-sync-external-store-with-selector.development.js.map +1 -0
  20. package/dist/_virtual/use-sync-external-store-with-selector.production.js +4 -0
  21. package/dist/_virtual/use-sync-external-store-with-selector.production.js.map +1 -0
  22. package/dist/_virtual/with-selector.js +4 -0
  23. package/dist/_virtual/with-selector.js.map +1 -0
  24. package/dist/axios/api.d.ts +16 -0
  25. package/dist/axios/api.d.ts.map +1 -0
  26. package/dist/axios/api.js +11 -0
  27. package/dist/axios/api.js.map +1 -0
  28. package/dist/components/auth/Form.d.ts +10 -0
  29. package/dist/components/auth/Form.d.ts.map +1 -0
  30. package/dist/components/auth/Form.js +49 -0
  31. package/dist/components/auth/Form.js.map +1 -0
  32. package/dist/components/auth/auth.d.ts +8 -0
  33. package/dist/components/auth/auth.d.ts.map +1 -0
  34. package/dist/components/auth/auth.js +18 -0
  35. package/dist/components/auth/auth.js.map +1 -0
  36. package/dist/components/auth/formActions.d.ts +17 -0
  37. package/dist/components/auth/formActions.d.ts.map +1 -0
  38. package/dist/components/auth/formActions.js +58 -0
  39. package/dist/components/auth/formActions.js.map +1 -0
  40. package/dist/components/auth/login/LoginPage.d.ts +7 -0
  41. package/dist/components/auth/login/LoginPage.d.ts.map +1 -0
  42. package/dist/components/auth/login/LoginPage.js +18 -0
  43. package/dist/components/auth/login/LoginPage.js.map +1 -0
  44. package/dist/components/auth/login/login.d.ts +1 -0
  45. package/dist/components/auth/login/login.d.ts.map +1 -0
  46. package/dist/components/auth/register/RegisterPage.d.ts +7 -0
  47. package/dist/components/auth/register/RegisterPage.d.ts.map +1 -0
  48. package/dist/components/auth/register/RegisterPage.js +18 -0
  49. package/dist/components/auth/register/RegisterPage.js.map +1 -0
  50. package/dist/components/auth/register/register.d.ts +1 -0
  51. package/dist/components/auth/register/register.d.ts.map +1 -0
  52. package/dist/components/auth/styles/form.module.css.js +4 -0
  53. package/dist/components/auth/styles/form.module.css.js.map +1 -0
  54. package/dist/components/common/Button.d.ts +25 -0
  55. package/dist/components/common/Button.d.ts.map +1 -0
  56. package/dist/components/common/Button.js +25 -0
  57. package/dist/components/common/Button.js.map +1 -0
  58. package/dist/components/common/styles/button.module.css.js +4 -0
  59. package/dist/components/common/styles/button.module.css.js.map +1 -0
  60. package/dist/components/navigation/NavigatorProvider.d.ts +10 -0
  61. package/dist/components/navigation/NavigatorProvider.d.ts.map +1 -0
  62. package/dist/components/navigation/NavigatorProvider.js +15 -0
  63. package/dist/components/navigation/NavigatorProvider.js.map +1 -0
  64. package/dist/components/navigation/bottom-tab/BottomTab.d.ts +12 -0
  65. package/dist/components/navigation/bottom-tab/BottomTab.d.ts.map +1 -0
  66. package/dist/components/navigation/bottom-tab/BottomTab.js +45 -0
  67. package/dist/components/navigation/bottom-tab/BottomTab.js.map +1 -0
  68. package/dist/components/navigation/bottom-tab/bottom-tab.module.css.js +4 -0
  69. package/dist/components/navigation/bottom-tab/bottom-tab.module.css.js.map +1 -0
  70. package/dist/components/navigation/drawer/Drawer.d.ts +21 -0
  71. package/dist/components/navigation/drawer/Drawer.d.ts.map +1 -0
  72. package/dist/components/navigation/drawer/Drawer.js +91 -0
  73. package/dist/components/navigation/drawer/Drawer.js.map +1 -0
  74. package/dist/components/navigation/drawer/drawer.module.css.js +4 -0
  75. package/dist/components/navigation/drawer/drawer.module.css.js.map +1 -0
  76. package/dist/components/navigation/header/Header.d.ts +7 -0
  77. package/dist/components/navigation/header/Header.d.ts.map +1 -0
  78. package/dist/components/navigation/header/Header.js +32 -0
  79. package/dist/components/navigation/header/Header.js.map +1 -0
  80. package/dist/components/navigation/header/header.module.css.js +4 -0
  81. package/dist/components/navigation/header/header.module.css.js.map +1 -0
  82. package/dist/components/navigation/navigatior-provider.module.css.js +4 -0
  83. package/dist/components/navigation/navigatior-provider.module.css.js.map +1 -0
  84. package/dist/components/toast/Toast.d.ts +9 -0
  85. package/dist/components/toast/Toast.d.ts.map +1 -0
  86. package/dist/components/toast/Toast.js +92 -0
  87. package/dist/components/toast/Toast.js.map +1 -0
  88. package/dist/components/toast/ToastExamples.d.ts +2 -0
  89. package/dist/components/toast/ToastExamples.d.ts.map +1 -0
  90. package/dist/components/toast/ToastExamples.js +74 -0
  91. package/dist/components/toast/ToastExamples.js.map +1 -0
  92. package/dist/components/toast/toast.module.css.js +4 -0
  93. package/dist/components/toast/toast.module.css.js.map +1 -0
  94. package/dist/index.d.ts +11 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +9 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.js +969 -0
  99. package/dist/node_modules/@reduxjs/toolkit/dist/redux-toolkit.modern.js.map +1 -0
  100. package/dist/node_modules/axios/index.js +26 -0
  101. package/dist/node_modules/axios/index.js.map +1 -0
  102. package/dist/node_modules/axios/lib/adapters/adapters.js +129 -0
  103. package/dist/node_modules/axios/lib/adapters/adapters.js.map +1 -0
  104. package/dist/node_modules/axios/lib/adapters/fetch.js +289 -0
  105. package/dist/node_modules/axios/lib/adapters/fetch.js.map +1 -0
  106. package/dist/node_modules/axios/lib/adapters/http.js +895 -0
  107. package/dist/node_modules/axios/lib/adapters/http.js.map +1 -0
  108. package/dist/node_modules/axios/lib/adapters/xhr.js +203 -0
  109. package/dist/node_modules/axios/lib/adapters/xhr.js.map +1 -0
  110. package/dist/node_modules/axios/lib/axios.js +88 -0
  111. package/dist/node_modules/axios/lib/axios.js.map +1 -0
  112. package/dist/node_modules/axios/lib/cancel/CancelToken.js +135 -0
  113. package/dist/node_modules/axios/lib/cancel/CancelToken.js.map +1 -0
  114. package/dist/node_modules/axios/lib/cancel/CanceledError.js +25 -0
  115. package/dist/node_modules/axios/lib/cancel/CanceledError.js.map +1 -0
  116. package/dist/node_modules/axios/lib/cancel/isCancel.js +7 -0
  117. package/dist/node_modules/axios/lib/cancel/isCancel.js.map +1 -0
  118. package/dist/node_modules/axios/lib/core/Axios.js +238 -0
  119. package/dist/node_modules/axios/lib/core/Axios.js.map +1 -0
  120. package/dist/node_modules/axios/lib/core/AxiosError.js +110 -0
  121. package/dist/node_modules/axios/lib/core/AxiosError.js.map +1 -0
  122. package/dist/node_modules/axios/lib/core/AxiosHeaders.js +314 -0
  123. package/dist/node_modules/axios/lib/core/AxiosHeaders.js.map +1 -0
  124. package/dist/node_modules/axios/lib/core/InterceptorManager.js +71 -0
  125. package/dist/node_modules/axios/lib/core/InterceptorManager.js.map +1 -0
  126. package/dist/node_modules/axios/lib/core/buildFullPath.js +24 -0
  127. package/dist/node_modules/axios/lib/core/buildFullPath.js.map +1 -0
  128. package/dist/node_modules/axios/lib/core/dispatchRequest.js +83 -0
  129. package/dist/node_modules/axios/lib/core/dispatchRequest.js.map +1 -0
  130. package/dist/node_modules/axios/lib/core/mergeConfig.js +108 -0
  131. package/dist/node_modules/axios/lib/core/mergeConfig.js.map +1 -0
  132. package/dist/node_modules/axios/lib/core/settle.js +29 -0
  133. package/dist/node_modules/axios/lib/core/settle.js.map +1 -0
  134. package/dist/node_modules/axios/lib/core/transformData.js +30 -0
  135. package/dist/node_modules/axios/lib/core/transformData.js.map +1 -0
  136. package/dist/node_modules/axios/lib/defaults/index.js +161 -0
  137. package/dist/node_modules/axios/lib/defaults/index.js.map +1 -0
  138. package/dist/node_modules/axios/lib/defaults/transitional.js +9 -0
  139. package/dist/node_modules/axios/lib/defaults/transitional.js.map +1 -0
  140. package/dist/node_modules/axios/lib/env/data.js +4 -0
  141. package/dist/node_modules/axios/lib/env/data.js.map +1 -0
  142. package/dist/node_modules/axios/lib/helpers/AxiosTransformStream.js +143 -0
  143. package/dist/node_modules/axios/lib/helpers/AxiosTransformStream.js.map +1 -0
  144. package/dist/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +58 -0
  145. package/dist/node_modules/axios/lib/helpers/AxiosURLSearchParams.js.map +1 -0
  146. package/dist/node_modules/axios/lib/helpers/HttpStatusCode.js +78 -0
  147. package/dist/node_modules/axios/lib/helpers/HttpStatusCode.js.map +1 -0
  148. package/dist/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +28 -0
  149. package/dist/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js.map +1 -0
  150. package/dist/node_modules/axios/lib/helpers/bind.js +16 -0
  151. package/dist/node_modules/axios/lib/helpers/bind.js.map +1 -0
  152. package/dist/node_modules/axios/lib/helpers/buildURL.js +69 -0
  153. package/dist/node_modules/axios/lib/helpers/buildURL.js.map +1 -0
  154. package/dist/node_modules/axios/lib/helpers/callbackify.js +17 -0
  155. package/dist/node_modules/axios/lib/helpers/callbackify.js.map +1 -0
  156. package/dist/node_modules/axios/lib/helpers/combineURLs.js +17 -0
  157. package/dist/node_modules/axios/lib/helpers/combineURLs.js.map +1 -0
  158. package/dist/node_modules/axios/lib/helpers/composeSignals.js +49 -0
  159. package/dist/node_modules/axios/lib/helpers/composeSignals.js.map +1 -0
  160. package/dist/node_modules/axios/lib/helpers/cookies.js +55 -0
  161. package/dist/node_modules/axios/lib/helpers/cookies.js.map +1 -0
  162. package/dist/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +76 -0
  163. package/dist/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js.map +1 -0
  164. package/dist/node_modules/axios/lib/helpers/formDataToJSON.js +95 -0
  165. package/dist/node_modules/axios/lib/helpers/formDataToJSON.js.map +1 -0
  166. package/dist/node_modules/axios/lib/helpers/formDataToStream.js +113 -0
  167. package/dist/node_modules/axios/lib/helpers/formDataToStream.js.map +1 -0
  168. package/dist/node_modules/axios/lib/helpers/fromDataURI.js +55 -0
  169. package/dist/node_modules/axios/lib/helpers/fromDataURI.js.map +1 -0
  170. package/dist/node_modules/axios/lib/helpers/isAbsoluteURL.js +17 -0
  171. package/dist/node_modules/axios/lib/helpers/isAbsoluteURL.js.map +1 -0
  172. package/dist/node_modules/axios/lib/helpers/isAxiosError.js +16 -0
  173. package/dist/node_modules/axios/lib/helpers/isAxiosError.js.map +1 -0
  174. package/dist/node_modules/axios/lib/helpers/isURLSameOrigin.js +17 -0
  175. package/dist/node_modules/axios/lib/helpers/isURLSameOrigin.js.map +1 -0
  176. package/dist/node_modules/axios/lib/helpers/parseHeaders.js +57 -0
  177. package/dist/node_modules/axios/lib/helpers/parseHeaders.js.map +1 -0
  178. package/dist/node_modules/axios/lib/helpers/parseProtocol.js +8 -0
  179. package/dist/node_modules/axios/lib/helpers/parseProtocol.js.map +1 -0
  180. package/dist/node_modules/axios/lib/helpers/progressEventReducer.js +47 -0
  181. package/dist/node_modules/axios/lib/helpers/progressEventReducer.js.map +1 -0
  182. package/dist/node_modules/axios/lib/helpers/readBlob.js +16 -0
  183. package/dist/node_modules/axios/lib/helpers/readBlob.js.map +1 -0
  184. package/dist/node_modules/axios/lib/helpers/resolveConfig.js +63 -0
  185. package/dist/node_modules/axios/lib/helpers/resolveConfig.js.map +1 -0
  186. package/dist/node_modules/axios/lib/helpers/speedometer.js +55 -0
  187. package/dist/node_modules/axios/lib/helpers/speedometer.js.map +1 -0
  188. package/dist/node_modules/axios/lib/helpers/spread.js +30 -0
  189. package/dist/node_modules/axios/lib/helpers/spread.js.map +1 -0
  190. package/dist/node_modules/axios/lib/helpers/throttle.js +45 -0
  191. package/dist/node_modules/axios/lib/helpers/throttle.js.map +1 -0
  192. package/dist/node_modules/axios/lib/helpers/toFormData.js +222 -0
  193. package/dist/node_modules/axios/lib/helpers/toFormData.js.map +1 -0
  194. package/dist/node_modules/axios/lib/helpers/toURLEncodedForm.js +21 -0
  195. package/dist/node_modules/axios/lib/helpers/toURLEncodedForm.js.map +1 -0
  196. package/dist/node_modules/axios/lib/helpers/trackStream.js +89 -0
  197. package/dist/node_modules/axios/lib/helpers/trackStream.js.map +1 -0
  198. package/dist/node_modules/axios/lib/helpers/validator.js +101 -0
  199. package/dist/node_modules/axios/lib/helpers/validator.js.map +1 -0
  200. package/dist/node_modules/axios/lib/platform/common/utils.js +46 -0
  201. package/dist/node_modules/axios/lib/platform/common/utils.js.map +1 -0
  202. package/dist/node_modules/axios/lib/platform/index.js +10 -0
  203. package/dist/node_modules/axios/lib/platform/index.js.map +1 -0
  204. package/dist/node_modules/axios/lib/platform/node/classes/FormData.js +3 -0
  205. package/dist/node_modules/axios/lib/platform/node/classes/FormData.js.map +1 -0
  206. package/dist/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +7 -0
  207. package/dist/node_modules/axios/lib/platform/node/classes/URLSearchParams.js.map +1 -0
  208. package/dist/node_modules/axios/lib/platform/node/index.js +41 -0
  209. package/dist/node_modules/axios/lib/platform/node/index.js.map +1 -0
  210. package/dist/node_modules/axios/lib/utils.js +784 -0
  211. package/dist/node_modules/axios/lib/utils.js.map +1 -0
  212. package/dist/node_modules/debug/src/browser.js +287 -0
  213. package/dist/node_modules/debug/src/browser.js.map +1 -0
  214. package/dist/node_modules/debug/src/common.js +304 -0
  215. package/dist/node_modules/debug/src/common.js.map +1 -0
  216. package/dist/node_modules/debug/src/index.js +24 -0
  217. package/dist/node_modules/debug/src/index.js.map +1 -0
  218. package/dist/node_modules/debug/src/node.js +280 -0
  219. package/dist/node_modules/debug/src/node.js.map +1 -0
  220. package/dist/node_modules/follow-redirects/debug.js +20 -0
  221. package/dist/node_modules/follow-redirects/debug.js.map +1 -0
  222. package/dist/node_modules/follow-redirects/index.js +701 -0
  223. package/dist/node_modules/follow-redirects/index.js.map +1 -0
  224. package/dist/node_modules/immer/dist/immer.js +860 -0
  225. package/dist/node_modules/immer/dist/immer.js.map +1 -0
  226. package/dist/node_modules/proxy-from-env/index.js +112 -0
  227. package/dist/node_modules/proxy-from-env/index.js.map +1 -0
  228. package/dist/node_modules/react-redux/dist/react-redux.js +348 -0
  229. package/dist/node_modules/react-redux/dist/react-redux.js.map +1 -0
  230. package/dist/node_modules/redux/dist/redux.js +362 -0
  231. package/dist/node_modules/redux/dist/redux.js.map +1 -0
  232. package/dist/node_modules/redux-thunk/dist/redux-thunk.js +15 -0
  233. package/dist/node_modules/redux-thunk/dist/redux-thunk.js.map +1 -0
  234. package/dist/node_modules/reselect/dist/reselect.js +322 -0
  235. package/dist/node_modules/reselect/dist/reselect.js.map +1 -0
  236. package/dist/node_modules/server-only/index.js +5 -0
  237. package/dist/node_modules/server-only/index.js.map +1 -0
  238. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +108 -0
  239. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js.map +1 -0
  240. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +96 -0
  241. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js.map +1 -0
  242. package/dist/node_modules/use-sync-external-store/with-selector.js +14 -0
  243. package/dist/node_modules/use-sync-external-store/with-selector.js.map +1 -0
  244. package/dist/store/StoreProvider.d.ts +7 -0
  245. package/dist/store/StoreProvider.d.ts.map +1 -0
  246. package/dist/store/StoreProvider.js +11 -0
  247. package/dist/store/StoreProvider.js.map +1 -0
  248. package/dist/store/features/drawer/drawer.slice.d.ts +12 -0
  249. package/dist/store/features/drawer/drawer.slice.d.ts.map +1 -0
  250. package/dist/store/features/drawer/drawer.slice.js +26 -0
  251. package/dist/store/features/drawer/drawer.slice.js.map +1 -0
  252. package/dist/store/features/toast/toastSlice.d.ts +16 -0
  253. package/dist/store/features/toast/toastSlice.d.ts.map +1 -0
  254. package/dist/store/features/toast/toastSlice.js +26 -0
  255. package/dist/store/features/toast/toastSlice.js.map +1 -0
  256. package/dist/store/hooks.d.ts +10 -0
  257. package/dist/store/hooks.d.ts.map +1 -0
  258. package/dist/store/hooks.js +8 -0
  259. package/dist/store/hooks.js.map +1 -0
  260. package/dist/store/store.d.ts +16 -0
  261. package/dist/store/store.d.ts.map +1 -0
  262. package/dist/store/store.js +13 -0
  263. package/dist/store/store.js.map +1 -0
  264. package/dist/styles.css +2 -0
  265. package/dist/styles.css.map +1 -0
  266. package/package.json +57 -0
@@ -0,0 +1,701 @@
1
+ import { getDefaultExportFromCjs } from '../../_virtual/_commonjsHelpers.js';
2
+ import { __module as followRedirects$1 } from '../../_virtual/index2.js';
3
+ import require$$0 from 'url';
4
+ import require$$1 from 'http';
5
+ import require$$2 from 'https';
6
+ import stream from 'stream';
7
+ import require$$4 from 'assert';
8
+ import { d as debug_1 } from './debug.js';
9
+
10
+ var url = require$$0;
11
+ var URL = url.URL;
12
+ var http = require$$1;
13
+ var https = require$$2;
14
+ var Writable = stream.Writable;
15
+ var assert = require$$4;
16
+ var debug = debug_1;
17
+
18
+ // Preventive platform detection
19
+ // istanbul ignore next
20
+ (function detectUnsupportedEnvironment() {
21
+ var looksLikeNode = typeof process !== "undefined";
22
+ var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined";
23
+ var looksLikeV8 = isFunction(Error.captureStackTrace);
24
+ if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {
25
+ console.warn("The follow-redirects package should be excluded from browser builds.");
26
+ }
27
+ }());
28
+
29
+ // Whether to use the native URL object or the legacy url module
30
+ var useNativeURL = false;
31
+ try {
32
+ assert(new URL(""));
33
+ }
34
+ catch (error) {
35
+ useNativeURL = error.code === "ERR_INVALID_URL";
36
+ }
37
+
38
+ // URL fields to preserve in copy operations
39
+ var preservedUrlFields = [
40
+ "auth",
41
+ "host",
42
+ "hostname",
43
+ "href",
44
+ "path",
45
+ "pathname",
46
+ "port",
47
+ "protocol",
48
+ "query",
49
+ "search",
50
+ "hash",
51
+ ];
52
+
53
+ // Create handlers that pass events from native requests
54
+ var events = ["abort", "aborted", "connect", "error", "socket", "timeout"];
55
+ var eventHandlers = Object.create(null);
56
+ events.forEach(function (event) {
57
+ eventHandlers[event] = function (arg1, arg2, arg3) {
58
+ this._redirectable.emit(event, arg1, arg2, arg3);
59
+ };
60
+ });
61
+
62
+ // Error types with codes
63
+ var InvalidUrlError = createErrorType(
64
+ "ERR_INVALID_URL",
65
+ "Invalid URL",
66
+ TypeError
67
+ );
68
+ var RedirectionError = createErrorType(
69
+ "ERR_FR_REDIRECTION_FAILURE",
70
+ "Redirected request failed"
71
+ );
72
+ var TooManyRedirectsError = createErrorType(
73
+ "ERR_FR_TOO_MANY_REDIRECTS",
74
+ "Maximum number of redirects exceeded",
75
+ RedirectionError
76
+ );
77
+ var MaxBodyLengthExceededError = createErrorType(
78
+ "ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
79
+ "Request body larger than maxBodyLength limit"
80
+ );
81
+ var WriteAfterEndError = createErrorType(
82
+ "ERR_STREAM_WRITE_AFTER_END",
83
+ "write after end"
84
+ );
85
+
86
+ // istanbul ignore next
87
+ var destroy = Writable.prototype.destroy || noop;
88
+
89
+ // An HTTP(S) request that can be redirected
90
+ function RedirectableRequest(options, responseCallback) {
91
+ // Initialize the request
92
+ Writable.call(this);
93
+ this._sanitizeOptions(options);
94
+ this._options = options;
95
+ this._ended = false;
96
+ this._ending = false;
97
+ this._redirectCount = 0;
98
+ this._redirects = [];
99
+ this._requestBodyLength = 0;
100
+ this._requestBodyBuffers = [];
101
+
102
+ // Attach a callback if passed
103
+ if (responseCallback) {
104
+ this.on("response", responseCallback);
105
+ }
106
+
107
+ // React to responses of native requests
108
+ var self = this;
109
+ this._onNativeResponse = function (response) {
110
+ try {
111
+ self._processResponse(response);
112
+ }
113
+ catch (cause) {
114
+ self.emit("error", cause instanceof RedirectionError ?
115
+ cause : new RedirectionError({ cause: cause }));
116
+ }
117
+ };
118
+
119
+ // Perform the first request
120
+ this._performRequest();
121
+ }
122
+ RedirectableRequest.prototype = Object.create(Writable.prototype);
123
+
124
+ RedirectableRequest.prototype.abort = function () {
125
+ destroyRequest(this._currentRequest);
126
+ this._currentRequest.abort();
127
+ this.emit("abort");
128
+ };
129
+
130
+ RedirectableRequest.prototype.destroy = function (error) {
131
+ destroyRequest(this._currentRequest, error);
132
+ destroy.call(this, error);
133
+ return this;
134
+ };
135
+
136
+ // Writes buffered data to the current native request
137
+ RedirectableRequest.prototype.write = function (data, encoding, callback) {
138
+ // Writing is not allowed if end has been called
139
+ if (this._ending) {
140
+ throw new WriteAfterEndError();
141
+ }
142
+
143
+ // Validate input and shift parameters if necessary
144
+ if (!isString(data) && !isBuffer(data)) {
145
+ throw new TypeError("data should be a string, Buffer or Uint8Array");
146
+ }
147
+ if (isFunction(encoding)) {
148
+ callback = encoding;
149
+ encoding = null;
150
+ }
151
+
152
+ // Ignore empty buffers, since writing them doesn't invoke the callback
153
+ // https://github.com/nodejs/node/issues/22066
154
+ if (data.length === 0) {
155
+ if (callback) {
156
+ callback();
157
+ }
158
+ return;
159
+ }
160
+ // Only write when we don't exceed the maximum body length
161
+ if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
162
+ this._requestBodyLength += data.length;
163
+ this._requestBodyBuffers.push({ data: data, encoding: encoding });
164
+ this._currentRequest.write(data, encoding, callback);
165
+ }
166
+ // Error when we exceed the maximum body length
167
+ else {
168
+ this.emit("error", new MaxBodyLengthExceededError());
169
+ this.abort();
170
+ }
171
+ };
172
+
173
+ // Ends the current native request
174
+ RedirectableRequest.prototype.end = function (data, encoding, callback) {
175
+ // Shift parameters if necessary
176
+ if (isFunction(data)) {
177
+ callback = data;
178
+ data = encoding = null;
179
+ }
180
+ else if (isFunction(encoding)) {
181
+ callback = encoding;
182
+ encoding = null;
183
+ }
184
+
185
+ // Write data if needed and end
186
+ if (!data) {
187
+ this._ended = this._ending = true;
188
+ this._currentRequest.end(null, null, callback);
189
+ }
190
+ else {
191
+ var self = this;
192
+ var currentRequest = this._currentRequest;
193
+ this.write(data, encoding, function () {
194
+ self._ended = true;
195
+ currentRequest.end(null, null, callback);
196
+ });
197
+ this._ending = true;
198
+ }
199
+ };
200
+
201
+ // Sets a header value on the current native request
202
+ RedirectableRequest.prototype.setHeader = function (name, value) {
203
+ this._options.headers[name] = value;
204
+ this._currentRequest.setHeader(name, value);
205
+ };
206
+
207
+ // Clears a header value on the current native request
208
+ RedirectableRequest.prototype.removeHeader = function (name) {
209
+ delete this._options.headers[name];
210
+ this._currentRequest.removeHeader(name);
211
+ };
212
+
213
+ // Global timeout for all underlying requests
214
+ RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
215
+ var self = this;
216
+
217
+ // Destroys the socket on timeout
218
+ function destroyOnTimeout(socket) {
219
+ socket.setTimeout(msecs);
220
+ socket.removeListener("timeout", socket.destroy);
221
+ socket.addListener("timeout", socket.destroy);
222
+ }
223
+
224
+ // Sets up a timer to trigger a timeout event
225
+ function startTimer(socket) {
226
+ if (self._timeout) {
227
+ clearTimeout(self._timeout);
228
+ }
229
+ self._timeout = setTimeout(function () {
230
+ self.emit("timeout");
231
+ clearTimer();
232
+ }, msecs);
233
+ destroyOnTimeout(socket);
234
+ }
235
+
236
+ // Stops a timeout from triggering
237
+ function clearTimer() {
238
+ // Clear the timeout
239
+ if (self._timeout) {
240
+ clearTimeout(self._timeout);
241
+ self._timeout = null;
242
+ }
243
+
244
+ // Clean up all attached listeners
245
+ self.removeListener("abort", clearTimer);
246
+ self.removeListener("error", clearTimer);
247
+ self.removeListener("response", clearTimer);
248
+ self.removeListener("close", clearTimer);
249
+ if (callback) {
250
+ self.removeListener("timeout", callback);
251
+ }
252
+ if (!self.socket) {
253
+ self._currentRequest.removeListener("socket", startTimer);
254
+ }
255
+ }
256
+
257
+ // Attach callback if passed
258
+ if (callback) {
259
+ this.on("timeout", callback);
260
+ }
261
+
262
+ // Start the timer if or when the socket is opened
263
+ if (this.socket) {
264
+ startTimer(this.socket);
265
+ }
266
+ else {
267
+ this._currentRequest.once("socket", startTimer);
268
+ }
269
+
270
+ // Clean up on events
271
+ this.on("socket", destroyOnTimeout);
272
+ this.on("abort", clearTimer);
273
+ this.on("error", clearTimer);
274
+ this.on("response", clearTimer);
275
+ this.on("close", clearTimer);
276
+
277
+ return this;
278
+ };
279
+
280
+ // Proxy all other public ClientRequest methods
281
+ [
282
+ "flushHeaders", "getHeader",
283
+ "setNoDelay", "setSocketKeepAlive",
284
+ ].forEach(function (method) {
285
+ RedirectableRequest.prototype[method] = function (a, b) {
286
+ return this._currentRequest[method](a, b);
287
+ };
288
+ });
289
+
290
+ // Proxy all public ClientRequest properties
291
+ ["aborted", "connection", "socket"].forEach(function (property) {
292
+ Object.defineProperty(RedirectableRequest.prototype, property, {
293
+ get: function () { return this._currentRequest[property]; },
294
+ });
295
+ });
296
+
297
+ RedirectableRequest.prototype._sanitizeOptions = function (options) {
298
+ // Ensure headers are always present
299
+ if (!options.headers) {
300
+ options.headers = {};
301
+ }
302
+
303
+ // Since http.request treats host as an alias of hostname,
304
+ // but the url module interprets host as hostname plus port,
305
+ // eliminate the host property to avoid confusion.
306
+ if (options.host) {
307
+ // Use hostname if set, because it has precedence
308
+ if (!options.hostname) {
309
+ options.hostname = options.host;
310
+ }
311
+ delete options.host;
312
+ }
313
+
314
+ // Complete the URL object when necessary
315
+ if (!options.pathname && options.path) {
316
+ var searchPos = options.path.indexOf("?");
317
+ if (searchPos < 0) {
318
+ options.pathname = options.path;
319
+ }
320
+ else {
321
+ options.pathname = options.path.substring(0, searchPos);
322
+ options.search = options.path.substring(searchPos);
323
+ }
324
+ }
325
+ };
326
+
327
+
328
+ // Executes the next native request (initial or redirect)
329
+ RedirectableRequest.prototype._performRequest = function () {
330
+ // Load the native protocol
331
+ var protocol = this._options.protocol;
332
+ var nativeProtocol = this._options.nativeProtocols[protocol];
333
+ if (!nativeProtocol) {
334
+ throw new TypeError("Unsupported protocol " + protocol);
335
+ }
336
+
337
+ // If specified, use the agent corresponding to the protocol
338
+ // (HTTP and HTTPS use different types of agents)
339
+ if (this._options.agents) {
340
+ var scheme = protocol.slice(0, -1);
341
+ this._options.agent = this._options.agents[scheme];
342
+ }
343
+
344
+ // Create the native request and set up its event handlers
345
+ var request = this._currentRequest =
346
+ nativeProtocol.request(this._options, this._onNativeResponse);
347
+ request._redirectable = this;
348
+ for (var event of events) {
349
+ request.on(event, eventHandlers[event]);
350
+ }
351
+
352
+ // RFC7230§5.3.1: When making a request directly to an origin server, […]
353
+ // a client MUST send only the absolute path […] as the request-target.
354
+ this._currentUrl = /^\//.test(this._options.path) ?
355
+ url.format(this._options) :
356
+ // When making a request to a proxy, […]
357
+ // a client MUST send the target URI in absolute-form […].
358
+ this._options.path;
359
+
360
+ // End a redirected request
361
+ // (The first request must be ended explicitly with RedirectableRequest#end)
362
+ if (this._isRedirect) {
363
+ // Write the request entity and end
364
+ var i = 0;
365
+ var self = this;
366
+ var buffers = this._requestBodyBuffers;
367
+ (function writeNext(error) {
368
+ // Only write if this request has not been redirected yet
369
+ // istanbul ignore else
370
+ if (request === self._currentRequest) {
371
+ // Report any write errors
372
+ // istanbul ignore if
373
+ if (error) {
374
+ self.emit("error", error);
375
+ }
376
+ // Write the next buffer if there are still left
377
+ else if (i < buffers.length) {
378
+ var buffer = buffers[i++];
379
+ // istanbul ignore else
380
+ if (!request.finished) {
381
+ request.write(buffer.data, buffer.encoding, writeNext);
382
+ }
383
+ }
384
+ // End the request if `end` has been called on us
385
+ else if (self._ended) {
386
+ request.end();
387
+ }
388
+ }
389
+ }());
390
+ }
391
+ };
392
+
393
+ // Processes a response from the current native request
394
+ RedirectableRequest.prototype._processResponse = function (response) {
395
+ // Store the redirected response
396
+ var statusCode = response.statusCode;
397
+ if (this._options.trackRedirects) {
398
+ this._redirects.push({
399
+ url: this._currentUrl,
400
+ headers: response.headers,
401
+ statusCode: statusCode,
402
+ });
403
+ }
404
+
405
+ // RFC7231§6.4: The 3xx (Redirection) class of status code indicates
406
+ // that further action needs to be taken by the user agent in order to
407
+ // fulfill the request. If a Location header field is provided,
408
+ // the user agent MAY automatically redirect its request to the URI
409
+ // referenced by the Location field value,
410
+ // even if the specific status code is not understood.
411
+
412
+ // If the response is not a redirect; return it as-is
413
+ var location = response.headers.location;
414
+ if (!location || this._options.followRedirects === false ||
415
+ statusCode < 300 || statusCode >= 400) {
416
+ response.responseUrl = this._currentUrl;
417
+ response.redirects = this._redirects;
418
+ this.emit("response", response);
419
+
420
+ // Clean up
421
+ this._requestBodyBuffers = [];
422
+ return;
423
+ }
424
+
425
+ // The response is a redirect, so abort the current request
426
+ destroyRequest(this._currentRequest);
427
+ // Discard the remainder of the response to avoid waiting for data
428
+ response.destroy();
429
+
430
+ // RFC7231§6.4: A client SHOULD detect and intervene
431
+ // in cyclical redirections (i.e., "infinite" redirection loops).
432
+ if (++this._redirectCount > this._options.maxRedirects) {
433
+ throw new TooManyRedirectsError();
434
+ }
435
+
436
+ // Store the request headers if applicable
437
+ var requestHeaders;
438
+ var beforeRedirect = this._options.beforeRedirect;
439
+ if (beforeRedirect) {
440
+ requestHeaders = Object.assign({
441
+ // The Host header was set by nativeProtocol.request
442
+ Host: response.req.getHeader("host"),
443
+ }, this._options.headers);
444
+ }
445
+
446
+ // RFC7231§6.4: Automatic redirection needs to done with
447
+ // care for methods not known to be safe, […]
448
+ // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change
449
+ // the request method from POST to GET for the subsequent request.
450
+ var method = this._options.method;
451
+ if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" ||
452
+ // RFC7231§6.4.4: The 303 (See Other) status code indicates that
453
+ // the server is redirecting the user agent to a different resource […]
454
+ // A user agent can perform a retrieval request targeting that URI
455
+ // (a GET or HEAD request if using HTTP) […]
456
+ (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {
457
+ this._options.method = "GET";
458
+ // Drop a possible entity and headers related to it
459
+ this._requestBodyBuffers = [];
460
+ removeMatchingHeaders(/^content-/i, this._options.headers);
461
+ }
462
+
463
+ // Drop the Host header, as the redirect might lead to a different host
464
+ var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);
465
+
466
+ // If the redirect is relative, carry over the host of the last request
467
+ var currentUrlParts = parseUrl(this._currentUrl);
468
+ var currentHost = currentHostHeader || currentUrlParts.host;
469
+ var currentUrl = /^\w+:/.test(location) ? this._currentUrl :
470
+ url.format(Object.assign(currentUrlParts, { host: currentHost }));
471
+
472
+ // Create the redirected request
473
+ var redirectUrl = resolveUrl(location, currentUrl);
474
+ debug("redirecting to", redirectUrl.href);
475
+ this._isRedirect = true;
476
+ spreadUrlObject(redirectUrl, this._options);
477
+
478
+ // Drop confidential headers when redirecting to a less secure protocol
479
+ // or to a different domain that is not a superdomain
480
+ if (redirectUrl.protocol !== currentUrlParts.protocol &&
481
+ redirectUrl.protocol !== "https:" ||
482
+ redirectUrl.host !== currentHost &&
483
+ !isSubdomain(redirectUrl.host, currentHost)) {
484
+ removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
485
+ }
486
+
487
+ // Evaluate the beforeRedirect callback
488
+ if (isFunction(beforeRedirect)) {
489
+ var responseDetails = {
490
+ headers: response.headers,
491
+ statusCode: statusCode,
492
+ };
493
+ var requestDetails = {
494
+ url: currentUrl,
495
+ method: method,
496
+ headers: requestHeaders,
497
+ };
498
+ beforeRedirect(this._options, responseDetails, requestDetails);
499
+ this._sanitizeOptions(this._options);
500
+ }
501
+
502
+ // Perform the redirected request
503
+ this._performRequest();
504
+ };
505
+
506
+ // Wraps the key/value object of protocols with redirect functionality
507
+ function wrap(protocols) {
508
+ // Default settings
509
+ var exports$1 = {
510
+ maxRedirects: 21,
511
+ maxBodyLength: 10 * 1024 * 1024,
512
+ };
513
+
514
+ // Wrap each protocol
515
+ var nativeProtocols = {};
516
+ Object.keys(protocols).forEach(function (scheme) {
517
+ var protocol = scheme + ":";
518
+ var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
519
+ var wrappedProtocol = exports$1[scheme] = Object.create(nativeProtocol);
520
+
521
+ // Executes a request, following redirects
522
+ function request(input, options, callback) {
523
+ // Parse parameters, ensuring that input is an object
524
+ if (isURL(input)) {
525
+ input = spreadUrlObject(input);
526
+ }
527
+ else if (isString(input)) {
528
+ input = spreadUrlObject(parseUrl(input));
529
+ }
530
+ else {
531
+ callback = options;
532
+ options = validateUrl(input);
533
+ input = { protocol: protocol };
534
+ }
535
+ if (isFunction(options)) {
536
+ callback = options;
537
+ options = null;
538
+ }
539
+
540
+ // Set defaults
541
+ options = Object.assign({
542
+ maxRedirects: exports$1.maxRedirects,
543
+ maxBodyLength: exports$1.maxBodyLength,
544
+ }, input, options);
545
+ options.nativeProtocols = nativeProtocols;
546
+ if (!isString(options.host) && !isString(options.hostname)) {
547
+ options.hostname = "::1";
548
+ }
549
+
550
+ assert.equal(options.protocol, protocol, "protocol mismatch");
551
+ debug("options", options);
552
+ return new RedirectableRequest(options, callback);
553
+ }
554
+
555
+ // Executes a GET request, following redirects
556
+ function get(input, options, callback) {
557
+ var wrappedRequest = wrappedProtocol.request(input, options, callback);
558
+ wrappedRequest.end();
559
+ return wrappedRequest;
560
+ }
561
+
562
+ // Expose the properties on the wrapped protocol
563
+ Object.defineProperties(wrappedProtocol, {
564
+ request: { value: request, configurable: true, enumerable: true, writable: true },
565
+ get: { value: get, configurable: true, enumerable: true, writable: true },
566
+ });
567
+ });
568
+ return exports$1;
569
+ }
570
+
571
+ function noop() { /* empty */ }
572
+
573
+ function parseUrl(input) {
574
+ var parsed;
575
+ // istanbul ignore else
576
+ if (useNativeURL) {
577
+ parsed = new URL(input);
578
+ }
579
+ else {
580
+ // Ensure the URL is valid and absolute
581
+ parsed = validateUrl(url.parse(input));
582
+ if (!isString(parsed.protocol)) {
583
+ throw new InvalidUrlError({ input });
584
+ }
585
+ }
586
+ return parsed;
587
+ }
588
+
589
+ function resolveUrl(relative, base) {
590
+ // istanbul ignore next
591
+ return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));
592
+ }
593
+
594
+ function validateUrl(input) {
595
+ if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) {
596
+ throw new InvalidUrlError({ input: input.href || input });
597
+ }
598
+ if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) {
599
+ throw new InvalidUrlError({ input: input.href || input });
600
+ }
601
+ return input;
602
+ }
603
+
604
+ function spreadUrlObject(urlObject, target) {
605
+ var spread = target || {};
606
+ for (var key of preservedUrlFields) {
607
+ spread[key] = urlObject[key];
608
+ }
609
+
610
+ // Fix IPv6 hostname
611
+ if (spread.hostname.startsWith("[")) {
612
+ spread.hostname = spread.hostname.slice(1, -1);
613
+ }
614
+ // Ensure port is a number
615
+ if (spread.port !== "") {
616
+ spread.port = Number(spread.port);
617
+ }
618
+ // Concatenate path
619
+ spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;
620
+
621
+ return spread;
622
+ }
623
+
624
+ function removeMatchingHeaders(regex, headers) {
625
+ var lastValue;
626
+ for (var header in headers) {
627
+ if (regex.test(header)) {
628
+ lastValue = headers[header];
629
+ delete headers[header];
630
+ }
631
+ }
632
+ return (lastValue === null || typeof lastValue === "undefined") ?
633
+ undefined : String(lastValue).trim();
634
+ }
635
+
636
+ function createErrorType(code, message, baseClass) {
637
+ // Create constructor
638
+ function CustomError(properties) {
639
+ // istanbul ignore else
640
+ if (isFunction(Error.captureStackTrace)) {
641
+ Error.captureStackTrace(this, this.constructor);
642
+ }
643
+ Object.assign(this, properties || {});
644
+ this.code = code;
645
+ this.message = this.cause ? message + ": " + this.cause.message : message;
646
+ }
647
+
648
+ // Attach constructor and set default properties
649
+ CustomError.prototype = new (baseClass || Error)();
650
+ Object.defineProperties(CustomError.prototype, {
651
+ constructor: {
652
+ value: CustomError,
653
+ enumerable: false,
654
+ },
655
+ name: {
656
+ value: "Error [" + code + "]",
657
+ enumerable: false,
658
+ },
659
+ });
660
+ return CustomError;
661
+ }
662
+
663
+ function destroyRequest(request, error) {
664
+ for (var event of events) {
665
+ request.removeListener(event, eventHandlers[event]);
666
+ }
667
+ request.on("error", noop);
668
+ request.destroy(error);
669
+ }
670
+
671
+ function isSubdomain(subdomain, domain) {
672
+ assert(isString(subdomain) && isString(domain));
673
+ var dot = subdomain.length - domain.length - 1;
674
+ return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain);
675
+ }
676
+
677
+ function isString(value) {
678
+ return typeof value === "string" || value instanceof String;
679
+ }
680
+
681
+ function isFunction(value) {
682
+ return typeof value === "function";
683
+ }
684
+
685
+ function isBuffer(value) {
686
+ return typeof value === "object" && ("length" in value);
687
+ }
688
+
689
+ function isURL(value) {
690
+ return URL && value instanceof URL;
691
+ }
692
+
693
+ // Exports
694
+ followRedirects$1.exports = wrap({ http: http, https: https });
695
+ followRedirects$1.exports.wrap = wrap;
696
+
697
+ var followRedirectsExports = followRedirects$1.exports;
698
+ var followRedirects = /*@__PURE__*/getDefaultExportFromCjs(followRedirectsExports);
699
+
700
+ export { followRedirects as default };
701
+ //# sourceMappingURL=index.js.map