node-red-contrib-web-worldmap 2.29.0 → 2.30.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 (188) hide show
  1. package/.github/FUNDING.yml +13 -0
  2. package/CHANGELOG.md +5 -2
  3. package/README.md +3 -0
  4. package/node_modules/array-flatten/package.json +6 -9
  5. package/node_modules/body-parser/HISTORY.md +18 -0
  6. package/node_modules/body-parser/README.md +9 -1
  7. package/node_modules/body-parser/SECURITY.md +25 -0
  8. package/node_modules/body-parser/lib/read.js +26 -2
  9. package/node_modules/body-parser/lib/types/json.js +10 -4
  10. package/node_modules/body-parser/package.json +24 -20
  11. package/node_modules/call-bind/.eslintignore +1 -0
  12. package/node_modules/call-bind/.eslintrc +17 -0
  13. package/node_modules/call-bind/.github/FUNDING.yml +12 -0
  14. package/node_modules/call-bind/.nycrc +13 -0
  15. package/node_modules/call-bind/CHANGELOG.md +42 -0
  16. package/node_modules/call-bind/LICENSE +21 -0
  17. package/node_modules/call-bind/README.md +2 -0
  18. package/node_modules/call-bind/callBound.js +15 -0
  19. package/node_modules/call-bind/index.js +47 -0
  20. package/node_modules/call-bind/package.json +108 -0
  21. package/node_modules/call-bind/test/callBound.js +55 -0
  22. package/node_modules/call-bind/test/index.js +66 -0
  23. package/node_modules/cookie/HISTORY.md +8 -0
  24. package/node_modules/cookie/README.md +50 -34
  25. package/node_modules/cookie/SECURITY.md +25 -0
  26. package/node_modules/cookie/index.js +83 -15
  27. package/node_modules/cookie/package.json +17 -15
  28. package/node_modules/cookie-signature/package.json +6 -9
  29. package/node_modules/depd/History.md +7 -0
  30. package/node_modules/depd/LICENSE +1 -1
  31. package/node_modules/depd/Readme.md +8 -8
  32. package/node_modules/depd/index.js +29 -13
  33. package/node_modules/depd/package.json +25 -24
  34. package/node_modules/destroy/LICENSE +1 -0
  35. package/node_modules/destroy/README.md +15 -12
  36. package/node_modules/destroy/index.js +147 -13
  37. package/node_modules/destroy/package.json +29 -20
  38. package/node_modules/ee-first/package.json +6 -9
  39. package/node_modules/encodeurl/package.json +11 -14
  40. package/node_modules/escape-html/package.json +11 -14
  41. package/node_modules/etag/package.json +11 -14
  42. package/node_modules/express/History.md +54 -0
  43. package/node_modules/express/Readme.md +39 -31
  44. package/node_modules/express/lib/application.js +18 -1
  45. package/node_modules/express/lib/response.js +40 -18
  46. package/node_modules/express/lib/router/index.js +20 -15
  47. package/node_modules/express/lib/router/route.js +9 -0
  48. package/node_modules/express/lib/utils.js +1 -0
  49. package/node_modules/express/lib/view.js +1 -1
  50. package/node_modules/express/package.json +25 -26
  51. package/node_modules/finalhandler/HISTORY.md +8 -0
  52. package/node_modules/finalhandler/LICENSE +1 -1
  53. package/node_modules/finalhandler/README.md +5 -6
  54. package/node_modules/finalhandler/SECURITY.md +25 -0
  55. package/node_modules/finalhandler/index.js +8 -3
  56. package/node_modules/finalhandler/package.json +30 -32
  57. package/node_modules/fresh/package.json +6 -9
  58. package/node_modules/function-bind/.editorconfig +20 -0
  59. package/node_modules/function-bind/.eslintrc +15 -0
  60. package/node_modules/function-bind/.jscs.json +176 -0
  61. package/node_modules/function-bind/.npmignore +22 -0
  62. package/node_modules/function-bind/.travis.yml +168 -0
  63. package/node_modules/function-bind/LICENSE +20 -0
  64. package/node_modules/function-bind/README.md +48 -0
  65. package/node_modules/function-bind/implementation.js +52 -0
  66. package/node_modules/function-bind/index.js +5 -0
  67. package/node_modules/function-bind/package.json +96 -0
  68. package/node_modules/function-bind/test/.eslintrc +9 -0
  69. package/node_modules/function-bind/test/index.js +252 -0
  70. package/node_modules/get-intrinsic/.eslintrc +37 -0
  71. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  72. package/node_modules/get-intrinsic/.nycrc +9 -0
  73. package/node_modules/get-intrinsic/CHANGELOG.md +98 -0
  74. package/node_modules/get-intrinsic/LICENSE +21 -0
  75. package/node_modules/get-intrinsic/README.md +71 -0
  76. package/node_modules/get-intrinsic/index.js +334 -0
  77. package/node_modules/get-intrinsic/package.json +120 -0
  78. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  79. package/node_modules/has/LICENSE-MIT +22 -0
  80. package/node_modules/has/README.md +18 -0
  81. package/node_modules/has/package.json +73 -0
  82. package/node_modules/has/src/index.js +5 -0
  83. package/node_modules/has/test/index.js +10 -0
  84. package/node_modules/has-symbols/.eslintrc +11 -0
  85. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  86. package/node_modules/has-symbols/.nycrc +9 -0
  87. package/node_modules/has-symbols/CHANGELOG.md +75 -0
  88. package/node_modules/has-symbols/LICENSE +21 -0
  89. package/node_modules/has-symbols/README.md +46 -0
  90. package/node_modules/has-symbols/index.js +13 -0
  91. package/node_modules/has-symbols/package.json +126 -0
  92. package/node_modules/has-symbols/shams.js +42 -0
  93. package/node_modules/has-symbols/test/index.js +22 -0
  94. package/node_modules/has-symbols/test/shams/core-js.js +28 -0
  95. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +28 -0
  96. package/node_modules/has-symbols/test/tests.js +56 -0
  97. package/node_modules/http-errors/HISTORY.md +15 -0
  98. package/node_modules/http-errors/README.md +2 -2
  99. package/node_modules/http-errors/index.js +15 -25
  100. package/node_modules/http-errors/package.json +22 -20
  101. package/node_modules/media-typer/package.json +6 -9
  102. package/node_modules/merge-descriptors/package.json +6 -9
  103. package/node_modules/methods/package.json +11 -14
  104. package/node_modules/object-inspect/.eslintrc +53 -0
  105. package/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  106. package/node_modules/object-inspect/.nycrc +13 -0
  107. package/node_modules/object-inspect/CHANGELOG.md +360 -0
  108. package/node_modules/object-inspect/LICENSE +21 -0
  109. package/node_modules/object-inspect/example/all.js +23 -0
  110. package/node_modules/object-inspect/example/circular.js +6 -0
  111. package/node_modules/object-inspect/example/fn.js +5 -0
  112. package/node_modules/object-inspect/example/inspect.js +10 -0
  113. package/node_modules/object-inspect/index.js +512 -0
  114. package/node_modules/object-inspect/package-support.json +20 -0
  115. package/node_modules/object-inspect/package.json +122 -0
  116. package/node_modules/object-inspect/readme.markdown +86 -0
  117. package/node_modules/object-inspect/test/bigint.js +58 -0
  118. package/node_modules/object-inspect/test/browser/dom.js +15 -0
  119. package/node_modules/object-inspect/test/circular.js +16 -0
  120. package/node_modules/object-inspect/test/deep.js +12 -0
  121. package/node_modules/object-inspect/test/element.js +53 -0
  122. package/node_modules/object-inspect/test/err.js +48 -0
  123. package/node_modules/object-inspect/test/fakes.js +29 -0
  124. package/node_modules/object-inspect/test/fn.js +76 -0
  125. package/node_modules/object-inspect/test/has.js +15 -0
  126. package/node_modules/object-inspect/test/holes.js +15 -0
  127. package/node_modules/object-inspect/test/indent-option.js +271 -0
  128. package/node_modules/object-inspect/test/inspect.js +139 -0
  129. package/node_modules/object-inspect/test/lowbyte.js +12 -0
  130. package/node_modules/object-inspect/test/number.js +58 -0
  131. package/node_modules/object-inspect/test/quoteStyle.js +17 -0
  132. package/node_modules/object-inspect/test/toStringTag.js +40 -0
  133. package/node_modules/object-inspect/test/undef.js +12 -0
  134. package/node_modules/object-inspect/test/values.js +211 -0
  135. package/node_modules/object-inspect/test-core-js.js +26 -0
  136. package/node_modules/object-inspect/util.inspect.js +1 -0
  137. package/node_modules/on-finished/HISTORY.md +10 -0
  138. package/node_modules/on-finished/README.md +28 -20
  139. package/node_modules/on-finished/index.js +51 -13
  140. package/node_modules/on-finished/package.json +25 -20
  141. package/node_modules/path-to-regexp/package.json +6 -9
  142. package/node_modules/qs/CHANGELOG.md +22 -5
  143. package/node_modules/qs/README.md +7 -0
  144. package/node_modules/qs/dist/qs.js +1207 -5
  145. package/node_modules/qs/lib/parse.js +6 -0
  146. package/node_modules/qs/lib/stringify.js +33 -3
  147. package/node_modules/qs/package.json +16 -13
  148. package/node_modules/qs/test/parse.js +9 -0
  149. package/node_modules/qs/test/stringify.js +62 -1
  150. package/node_modules/raw-body/HISTORY.md +14 -0
  151. package/node_modules/raw-body/LICENSE +1 -1
  152. package/node_modules/raw-body/README.md +4 -0
  153. package/node_modules/raw-body/SECURITY.md +24 -0
  154. package/node_modules/raw-body/index.js +45 -2
  155. package/node_modules/raw-body/package.json +16 -15
  156. package/node_modules/send/HISTORY.md +15 -0
  157. package/node_modules/send/LICENSE +1 -1
  158. package/node_modules/send/README.md +2 -2
  159. package/node_modules/send/SECURITY.md +24 -0
  160. package/node_modules/send/index.js +37 -27
  161. package/node_modules/send/package.json +22 -21
  162. package/node_modules/serve-static/HISTORY.md +12 -0
  163. package/node_modules/serve-static/README.md +1 -1
  164. package/node_modules/serve-static/package.json +16 -16
  165. package/node_modules/side-channel/.eslintignore +1 -0
  166. package/node_modules/side-channel/.eslintrc +11 -0
  167. package/node_modules/side-channel/.github/FUNDING.yml +12 -0
  168. package/node_modules/side-channel/.nycrc +13 -0
  169. package/node_modules/side-channel/CHANGELOG.md +65 -0
  170. package/node_modules/side-channel/LICENSE +21 -0
  171. package/node_modules/side-channel/README.md +2 -0
  172. package/node_modules/side-channel/index.js +124 -0
  173. package/node_modules/side-channel/package.json +95 -0
  174. package/node_modules/side-channel/test/index.js +78 -0
  175. package/node_modules/statuses/HISTORY.md +17 -0
  176. package/node_modules/statuses/README.md +51 -42
  177. package/node_modules/statuses/codes.json +2 -3
  178. package/node_modules/statuses/index.js +52 -19
  179. package/node_modules/statuses/package.json +29 -31
  180. package/node_modules/unpipe/package.json +7 -9
  181. package/node_modules/utils-merge/package.json +6 -9
  182. package/package.json +2 -2
  183. package/worldmap/worldmap.js +22 -7
  184. package/worldmap.html +16 -0
  185. package/worldmap.js +553 -551
  186. package/node_modules/depd/lib/compat/callsite-tostring.js +0 -103
  187. package/node_modules/depd/lib/compat/event-listener-count.js +0 -22
  188. package/node_modules/depd/lib/compat/index.js +0 -79
@@ -0,0 +1,168 @@
1
+ language: node_js
2
+ os:
3
+ - linux
4
+ node_js:
5
+ - "8.4"
6
+ - "7.10"
7
+ - "6.11"
8
+ - "5.12"
9
+ - "4.8"
10
+ - "iojs-v3.3"
11
+ - "iojs-v2.5"
12
+ - "iojs-v1.8"
13
+ - "0.12"
14
+ - "0.10"
15
+ - "0.8"
16
+ before_install:
17
+ - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
18
+ - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
19
+ install:
20
+ - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
21
+ script:
22
+ - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
23
+ - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
24
+ - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
25
+ - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
26
+ sudo: false
27
+ env:
28
+ - TEST=true
29
+ matrix:
30
+ fast_finish: true
31
+ include:
32
+ - node_js: "node"
33
+ env: PRETEST=true
34
+ - node_js: "4"
35
+ env: COVERAGE=true
36
+ - node_js: "8.3"
37
+ env: TEST=true ALLOW_FAILURE=true
38
+ - node_js: "8.2"
39
+ env: TEST=true ALLOW_FAILURE=true
40
+ - node_js: "8.1"
41
+ env: TEST=true ALLOW_FAILURE=true
42
+ - node_js: "8.0"
43
+ env: TEST=true ALLOW_FAILURE=true
44
+ - node_js: "7.9"
45
+ env: TEST=true ALLOW_FAILURE=true
46
+ - node_js: "7.8"
47
+ env: TEST=true ALLOW_FAILURE=true
48
+ - node_js: "7.7"
49
+ env: TEST=true ALLOW_FAILURE=true
50
+ - node_js: "7.6"
51
+ env: TEST=true ALLOW_FAILURE=true
52
+ - node_js: "7.5"
53
+ env: TEST=true ALLOW_FAILURE=true
54
+ - node_js: "7.4"
55
+ env: TEST=true ALLOW_FAILURE=true
56
+ - node_js: "7.3"
57
+ env: TEST=true ALLOW_FAILURE=true
58
+ - node_js: "7.2"
59
+ env: TEST=true ALLOW_FAILURE=true
60
+ - node_js: "7.1"
61
+ env: TEST=true ALLOW_FAILURE=true
62
+ - node_js: "7.0"
63
+ env: TEST=true ALLOW_FAILURE=true
64
+ - node_js: "6.10"
65
+ env: TEST=true ALLOW_FAILURE=true
66
+ - node_js: "6.9"
67
+ env: TEST=true ALLOW_FAILURE=true
68
+ - node_js: "6.8"
69
+ env: TEST=true ALLOW_FAILURE=true
70
+ - node_js: "6.7"
71
+ env: TEST=true ALLOW_FAILURE=true
72
+ - node_js: "6.6"
73
+ env: TEST=true ALLOW_FAILURE=true
74
+ - node_js: "6.5"
75
+ env: TEST=true ALLOW_FAILURE=true
76
+ - node_js: "6.4"
77
+ env: TEST=true ALLOW_FAILURE=true
78
+ - node_js: "6.3"
79
+ env: TEST=true ALLOW_FAILURE=true
80
+ - node_js: "6.2"
81
+ env: TEST=true ALLOW_FAILURE=true
82
+ - node_js: "6.1"
83
+ env: TEST=true ALLOW_FAILURE=true
84
+ - node_js: "6.0"
85
+ env: TEST=true ALLOW_FAILURE=true
86
+ - node_js: "5.11"
87
+ env: TEST=true ALLOW_FAILURE=true
88
+ - node_js: "5.10"
89
+ env: TEST=true ALLOW_FAILURE=true
90
+ - node_js: "5.9"
91
+ env: TEST=true ALLOW_FAILURE=true
92
+ - node_js: "5.8"
93
+ env: TEST=true ALLOW_FAILURE=true
94
+ - node_js: "5.7"
95
+ env: TEST=true ALLOW_FAILURE=true
96
+ - node_js: "5.6"
97
+ env: TEST=true ALLOW_FAILURE=true
98
+ - node_js: "5.5"
99
+ env: TEST=true ALLOW_FAILURE=true
100
+ - node_js: "5.4"
101
+ env: TEST=true ALLOW_FAILURE=true
102
+ - node_js: "5.3"
103
+ env: TEST=true ALLOW_FAILURE=true
104
+ - node_js: "5.2"
105
+ env: TEST=true ALLOW_FAILURE=true
106
+ - node_js: "5.1"
107
+ env: TEST=true ALLOW_FAILURE=true
108
+ - node_js: "5.0"
109
+ env: TEST=true ALLOW_FAILURE=true
110
+ - node_js: "4.7"
111
+ env: TEST=true ALLOW_FAILURE=true
112
+ - node_js: "4.6"
113
+ env: TEST=true ALLOW_FAILURE=true
114
+ - node_js: "4.5"
115
+ env: TEST=true ALLOW_FAILURE=true
116
+ - node_js: "4.4"
117
+ env: TEST=true ALLOW_FAILURE=true
118
+ - node_js: "4.3"
119
+ env: TEST=true ALLOW_FAILURE=true
120
+ - node_js: "4.2"
121
+ env: TEST=true ALLOW_FAILURE=true
122
+ - node_js: "4.1"
123
+ env: TEST=true ALLOW_FAILURE=true
124
+ - node_js: "4.0"
125
+ env: TEST=true ALLOW_FAILURE=true
126
+ - node_js: "iojs-v3.2"
127
+ env: TEST=true ALLOW_FAILURE=true
128
+ - node_js: "iojs-v3.1"
129
+ env: TEST=true ALLOW_FAILURE=true
130
+ - node_js: "iojs-v3.0"
131
+ env: TEST=true ALLOW_FAILURE=true
132
+ - node_js: "iojs-v2.4"
133
+ env: TEST=true ALLOW_FAILURE=true
134
+ - node_js: "iojs-v2.3"
135
+ env: TEST=true ALLOW_FAILURE=true
136
+ - node_js: "iojs-v2.2"
137
+ env: TEST=true ALLOW_FAILURE=true
138
+ - node_js: "iojs-v2.1"
139
+ env: TEST=true ALLOW_FAILURE=true
140
+ - node_js: "iojs-v2.0"
141
+ env: TEST=true ALLOW_FAILURE=true
142
+ - node_js: "iojs-v1.7"
143
+ env: TEST=true ALLOW_FAILURE=true
144
+ - node_js: "iojs-v1.6"
145
+ env: TEST=true ALLOW_FAILURE=true
146
+ - node_js: "iojs-v1.5"
147
+ env: TEST=true ALLOW_FAILURE=true
148
+ - node_js: "iojs-v1.4"
149
+ env: TEST=true ALLOW_FAILURE=true
150
+ - node_js: "iojs-v1.3"
151
+ env: TEST=true ALLOW_FAILURE=true
152
+ - node_js: "iojs-v1.2"
153
+ env: TEST=true ALLOW_FAILURE=true
154
+ - node_js: "iojs-v1.1"
155
+ env: TEST=true ALLOW_FAILURE=true
156
+ - node_js: "iojs-v1.0"
157
+ env: TEST=true ALLOW_FAILURE=true
158
+ - node_js: "0.11"
159
+ env: TEST=true ALLOW_FAILURE=true
160
+ - node_js: "0.9"
161
+ env: TEST=true ALLOW_FAILURE=true
162
+ - node_js: "0.6"
163
+ env: TEST=true ALLOW_FAILURE=true
164
+ - node_js: "0.4"
165
+ env: TEST=true ALLOW_FAILURE=true
166
+ allow_failures:
167
+ - os: osx
168
+ - env: TEST=true ALLOW_FAILURE=true
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013 Raynos.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
20
+
@@ -0,0 +1,48 @@
1
+ # function-bind
2
+
3
+ <!--
4
+ [![build status][travis-svg]][travis-url]
5
+ [![NPM version][npm-badge-svg]][npm-url]
6
+ [![Coverage Status][5]][6]
7
+ [![gemnasium Dependency Status][7]][8]
8
+ [![Dependency status][deps-svg]][deps-url]
9
+ [![Dev Dependency status][dev-deps-svg]][dev-deps-url]
10
+ -->
11
+
12
+ <!-- [![browser support][11]][12] -->
13
+
14
+ Implementation of function.prototype.bind
15
+
16
+ ## Example
17
+
18
+ I mainly do this for unit tests I run on phantomjs.
19
+ PhantomJS does not have Function.prototype.bind :(
20
+
21
+ ```js
22
+ Function.prototype.bind = require("function-bind")
23
+ ```
24
+
25
+ ## Installation
26
+
27
+ `npm install function-bind`
28
+
29
+ ## Contributors
30
+
31
+ - Raynos
32
+
33
+ ## MIT Licenced
34
+
35
+ [travis-svg]: https://travis-ci.org/Raynos/function-bind.svg
36
+ [travis-url]: https://travis-ci.org/Raynos/function-bind
37
+ [npm-badge-svg]: https://badge.fury.io/js/function-bind.svg
38
+ [npm-url]: https://npmjs.org/package/function-bind
39
+ [5]: https://coveralls.io/repos/Raynos/function-bind/badge.png
40
+ [6]: https://coveralls.io/r/Raynos/function-bind
41
+ [7]: https://gemnasium.com/Raynos/function-bind.png
42
+ [8]: https://gemnasium.com/Raynos/function-bind
43
+ [deps-svg]: https://david-dm.org/Raynos/function-bind.svg
44
+ [deps-url]: https://david-dm.org/Raynos/function-bind
45
+ [dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg
46
+ [dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies
47
+ [11]: https://ci.testling.com/Raynos/function-bind.png
48
+ [12]: https://ci.testling.com/Raynos/function-bind
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ /* eslint no-invalid-this: 1 */
4
+
5
+ var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
6
+ var slice = Array.prototype.slice;
7
+ var toStr = Object.prototype.toString;
8
+ var funcType = '[object Function]';
9
+
10
+ module.exports = function bind(that) {
11
+ var target = this;
12
+ if (typeof target !== 'function' || toStr.call(target) !== funcType) {
13
+ throw new TypeError(ERROR_MESSAGE + target);
14
+ }
15
+ var args = slice.call(arguments, 1);
16
+
17
+ var bound;
18
+ var binder = function () {
19
+ if (this instanceof bound) {
20
+ var result = target.apply(
21
+ this,
22
+ args.concat(slice.call(arguments))
23
+ );
24
+ if (Object(result) === result) {
25
+ return result;
26
+ }
27
+ return this;
28
+ } else {
29
+ return target.apply(
30
+ that,
31
+ args.concat(slice.call(arguments))
32
+ );
33
+ }
34
+ };
35
+
36
+ var boundLength = Math.max(0, target.length - args.length);
37
+ var boundArgs = [];
38
+ for (var i = 0; i < boundLength; i++) {
39
+ boundArgs.push('$' + i);
40
+ }
41
+
42
+ bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
43
+
44
+ if (target.prototype) {
45
+ var Empty = function Empty() {};
46
+ Empty.prototype = target.prototype;
47
+ bound.prototype = new Empty();
48
+ Empty.prototype = null;
49
+ }
50
+
51
+ return bound;
52
+ };
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ var implementation = require('./implementation');
4
+
5
+ module.exports = Function.prototype.bind || implementation;
@@ -0,0 +1,96 @@
1
+ {
2
+ "_from": "function-bind@^1.1.1",
3
+ "_id": "function-bind@1.1.1",
4
+ "_inBundle": false,
5
+ "_integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
6
+ "_location": "/function-bind",
7
+ "_phantomChildren": {},
8
+ "_requested": {
9
+ "type": "range",
10
+ "registry": true,
11
+ "raw": "function-bind@^1.1.1",
12
+ "name": "function-bind",
13
+ "escapedName": "function-bind",
14
+ "rawSpec": "^1.1.1",
15
+ "saveSpec": null,
16
+ "fetchSpec": "^1.1.1"
17
+ },
18
+ "_requiredBy": [
19
+ "/call-bind",
20
+ "/get-intrinsic",
21
+ "/has"
22
+ ],
23
+ "_resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
24
+ "_shasum": "a56899d3ea3c9bab874bb9773b7c5ede92f4895d",
25
+ "_spec": "function-bind@^1.1.1",
26
+ "_where": "/Users/conway/Projects/worldmap/node_modules/call-bind",
27
+ "author": {
28
+ "name": "Raynos",
29
+ "email": "raynos2@gmail.com"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/Raynos/function-bind/issues",
33
+ "email": "raynos2@gmail.com"
34
+ },
35
+ "bundleDependencies": false,
36
+ "contributors": [
37
+ {
38
+ "name": "Raynos"
39
+ },
40
+ {
41
+ "name": "Jordan Harband",
42
+ "url": "https://github.com/ljharb"
43
+ }
44
+ ],
45
+ "dependencies": {},
46
+ "deprecated": false,
47
+ "description": "Implementation of Function.prototype.bind",
48
+ "devDependencies": {
49
+ "@ljharb/eslint-config": "^12.2.1",
50
+ "covert": "^1.1.0",
51
+ "eslint": "^4.5.0",
52
+ "jscs": "^3.0.7",
53
+ "tape": "^4.8.0"
54
+ },
55
+ "homepage": "https://github.com/Raynos/function-bind",
56
+ "keywords": [
57
+ "function",
58
+ "bind",
59
+ "shim",
60
+ "es5"
61
+ ],
62
+ "license": "MIT",
63
+ "main": "index",
64
+ "name": "function-bind",
65
+ "repository": {
66
+ "type": "git",
67
+ "url": "git://github.com/Raynos/function-bind.git"
68
+ },
69
+ "scripts": {
70
+ "coverage": "covert test/*.js",
71
+ "eslint": "eslint *.js */*.js",
72
+ "jscs": "jscs *.js */*.js",
73
+ "lint": "npm run jscs && npm run eslint",
74
+ "posttest": "npm run coverage -- --quiet",
75
+ "pretest": "npm run lint",
76
+ "test": "npm run tests-only",
77
+ "tests-only": "node test"
78
+ },
79
+ "testling": {
80
+ "files": "test/index.js",
81
+ "browsers": [
82
+ "ie/8..latest",
83
+ "firefox/16..latest",
84
+ "firefox/nightly",
85
+ "chrome/22..latest",
86
+ "chrome/canary",
87
+ "opera/12..latest",
88
+ "opera/next",
89
+ "safari/5.1..latest",
90
+ "ipad/6.0..latest",
91
+ "iphone/6.0..latest",
92
+ "android-browser/4.2..latest"
93
+ ]
94
+ },
95
+ "version": "1.1.1"
96
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "rules": {
3
+ "array-bracket-newline": 0,
4
+ "array-element-newline": 0,
5
+ "max-statements-per-line": [2, { "max": 2 }],
6
+ "no-invalid-this": 0,
7
+ "no-magic-numbers": 0,
8
+ }
9
+ }
@@ -0,0 +1,252 @@
1
+ // jscs:disable requireUseStrict
2
+
3
+ var test = require('tape');
4
+
5
+ var functionBind = require('../implementation');
6
+ var getCurrentContext = function () { return this; };
7
+
8
+ test('functionBind is a function', function (t) {
9
+ t.equal(typeof functionBind, 'function');
10
+ t.end();
11
+ });
12
+
13
+ test('non-functions', function (t) {
14
+ var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g];
15
+ t.plan(nonFunctions.length);
16
+ for (var i = 0; i < nonFunctions.length; ++i) {
17
+ try { functionBind.call(nonFunctions[i]); } catch (ex) {
18
+ t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i]));
19
+ }
20
+ }
21
+ t.end();
22
+ });
23
+
24
+ test('without a context', function (t) {
25
+ t.test('binds properly', function (st) {
26
+ var args, context;
27
+ var namespace = {
28
+ func: functionBind.call(function () {
29
+ args = Array.prototype.slice.call(arguments);
30
+ context = this;
31
+ })
32
+ };
33
+ namespace.func(1, 2, 3);
34
+ st.deepEqual(args, [1, 2, 3]);
35
+ st.equal(context, getCurrentContext.call());
36
+ st.end();
37
+ });
38
+
39
+ t.test('binds properly, and still supplies bound arguments', function (st) {
40
+ var args, context;
41
+ var namespace = {
42
+ func: functionBind.call(function () {
43
+ args = Array.prototype.slice.call(arguments);
44
+ context = this;
45
+ }, undefined, 1, 2, 3)
46
+ };
47
+ namespace.func(4, 5, 6);
48
+ st.deepEqual(args, [1, 2, 3, 4, 5, 6]);
49
+ st.equal(context, getCurrentContext.call());
50
+ st.end();
51
+ });
52
+
53
+ t.test('returns properly', function (st) {
54
+ var args;
55
+ var namespace = {
56
+ func: functionBind.call(function () {
57
+ args = Array.prototype.slice.call(arguments);
58
+ return this;
59
+ }, null)
60
+ };
61
+ var context = namespace.func(1, 2, 3);
62
+ st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
63
+ st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
64
+ st.end();
65
+ });
66
+
67
+ t.test('returns properly with bound arguments', function (st) {
68
+ var args;
69
+ var namespace = {
70
+ func: functionBind.call(function () {
71
+ args = Array.prototype.slice.call(arguments);
72
+ return this;
73
+ }, null, 1, 2, 3)
74
+ };
75
+ var context = namespace.func(4, 5, 6);
76
+ st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
77
+ st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
78
+ st.end();
79
+ });
80
+
81
+ t.test('called as a constructor', function (st) {
82
+ var thunkify = function (value) {
83
+ return function () { return value; };
84
+ };
85
+ st.test('returns object value', function (sst) {
86
+ var expectedReturnValue = [1, 2, 3];
87
+ var Constructor = functionBind.call(thunkify(expectedReturnValue), null);
88
+ var result = new Constructor();
89
+ sst.equal(result, expectedReturnValue);
90
+ sst.end();
91
+ });
92
+
93
+ st.test('does not return primitive value', function (sst) {
94
+ var Constructor = functionBind.call(thunkify(42), null);
95
+ var result = new Constructor();
96
+ sst.notEqual(result, 42);
97
+ sst.end();
98
+ });
99
+
100
+ st.test('object from bound constructor is instance of original and bound constructor', function (sst) {
101
+ var A = function (x) {
102
+ this.name = x || 'A';
103
+ };
104
+ var B = functionBind.call(A, null, 'B');
105
+
106
+ var result = new B();
107
+ sst.ok(result instanceof B, 'result is instance of bound constructor');
108
+ sst.ok(result instanceof A, 'result is instance of original constructor');
109
+ sst.end();
110
+ });
111
+
112
+ st.end();
113
+ });
114
+
115
+ t.end();
116
+ });
117
+
118
+ test('with a context', function (t) {
119
+ t.test('with no bound arguments', function (st) {
120
+ var args, context;
121
+ var boundContext = {};
122
+ var namespace = {
123
+ func: functionBind.call(function () {
124
+ args = Array.prototype.slice.call(arguments);
125
+ context = this;
126
+ }, boundContext)
127
+ };
128
+ namespace.func(1, 2, 3);
129
+ st.equal(context, boundContext, 'binds a context properly');
130
+ st.deepEqual(args, [1, 2, 3], 'supplies passed arguments');
131
+ st.end();
132
+ });
133
+
134
+ t.test('with bound arguments', function (st) {
135
+ var args, context;
136
+ var boundContext = {};
137
+ var namespace = {
138
+ func: functionBind.call(function () {
139
+ args = Array.prototype.slice.call(arguments);
140
+ context = this;
141
+ }, boundContext, 1, 2, 3)
142
+ };
143
+ namespace.func(4, 5, 6);
144
+ st.equal(context, boundContext, 'binds a context properly');
145
+ st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments');
146
+ st.end();
147
+ });
148
+
149
+ t.test('returns properly', function (st) {
150
+ var boundContext = {};
151
+ var args;
152
+ var namespace = {
153
+ func: functionBind.call(function () {
154
+ args = Array.prototype.slice.call(arguments);
155
+ return this;
156
+ }, boundContext)
157
+ };
158
+ var context = namespace.func(1, 2, 3);
159
+ st.equal(context, boundContext, 'returned context is bound context');
160
+ st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
161
+ st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
162
+ st.end();
163
+ });
164
+
165
+ t.test('returns properly with bound arguments', function (st) {
166
+ var boundContext = {};
167
+ var args;
168
+ var namespace = {
169
+ func: functionBind.call(function () {
170
+ args = Array.prototype.slice.call(arguments);
171
+ return this;
172
+ }, boundContext, 1, 2, 3)
173
+ };
174
+ var context = namespace.func(4, 5, 6);
175
+ st.equal(context, boundContext, 'returned context is bound context');
176
+ st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
177
+ st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
178
+ st.end();
179
+ });
180
+
181
+ t.test('passes the correct arguments when called as a constructor', function (st) {
182
+ var expected = { name: 'Correct' };
183
+ var namespace = {
184
+ Func: functionBind.call(function (arg) {
185
+ return arg;
186
+ }, { name: 'Incorrect' })
187
+ };
188
+ var returned = new namespace.Func(expected);
189
+ st.equal(returned, expected, 'returns the right arg when called as a constructor');
190
+ st.end();
191
+ });
192
+
193
+ t.test('has the new instance\'s context when called as a constructor', function (st) {
194
+ var actualContext;
195
+ var expectedContext = { foo: 'bar' };
196
+ var namespace = {
197
+ Func: functionBind.call(function () {
198
+ actualContext = this;
199
+ }, expectedContext)
200
+ };
201
+ var result = new namespace.Func();
202
+ st.equal(result instanceof namespace.Func, true);
203
+ st.notEqual(actualContext, expectedContext);
204
+ st.end();
205
+ });
206
+
207
+ t.end();
208
+ });
209
+
210
+ test('bound function length', function (t) {
211
+ t.test('sets a correct length without thisArg', function (st) {
212
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; });
213
+ st.equal(subject.length, 3);
214
+ st.equal(subject(1, 2, 3), 6);
215
+ st.end();
216
+ });
217
+
218
+ t.test('sets a correct length with thisArg', function (st) {
219
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {});
220
+ st.equal(subject.length, 3);
221
+ st.equal(subject(1, 2, 3), 6);
222
+ st.end();
223
+ });
224
+
225
+ t.test('sets a correct length without thisArg and first argument', function (st) {
226
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1);
227
+ st.equal(subject.length, 2);
228
+ st.equal(subject(2, 3), 6);
229
+ st.end();
230
+ });
231
+
232
+ t.test('sets a correct length with thisArg and first argument', function (st) {
233
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1);
234
+ st.equal(subject.length, 2);
235
+ st.equal(subject(2, 3), 6);
236
+ st.end();
237
+ });
238
+
239
+ t.test('sets a correct length without thisArg and too many arguments', function (st) {
240
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4);
241
+ st.equal(subject.length, 0);
242
+ st.equal(subject(), 6);
243
+ st.end();
244
+ });
245
+
246
+ t.test('sets a correct length with thisArg and too many arguments', function (st) {
247
+ var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4);
248
+ st.equal(subject.length, 0);
249
+ st.equal(subject(), 6);
250
+ st.end();
251
+ });
252
+ });
@@ -0,0 +1,37 @@
1
+ {
2
+ "root": true,
3
+
4
+ "extends": "@ljharb",
5
+
6
+ "env": {
7
+ "es6": true,
8
+ "es2017": true,
9
+ "es2020": true,
10
+ "es2021": true,
11
+ "es2022": true,
12
+ },
13
+
14
+ "rules": {
15
+ "array-bracket-newline": 0,
16
+ "complexity": 0,
17
+ "eqeqeq": [2, "allow-null"],
18
+ "func-name-matching": 0,
19
+ "id-length": 0,
20
+ "max-lines-per-function": [2, 90],
21
+ "max-params": [2, 4],
22
+ "max-statements": 0,
23
+ "max-statements-per-line": [2, { "max": 2 }],
24
+ "multiline-comment-style": 0,
25
+ "no-magic-numbers": 0,
26
+ "sort-keys": 0,
27
+ },
28
+
29
+ "overrides": [
30
+ {
31
+ "files": "test/**",
32
+ "rules": {
33
+ "new-cap": 0,
34
+ },
35
+ },
36
+ ],
37
+ }