@contrast/agent 4.5.0 → 4.7.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 (157) hide show
  1. package/bin/VERSION +1 -1
  2. package/bin/linux/contrast-service +0 -0
  3. package/bin/mac/contrast-service +0 -0
  4. package/bin/windows/contrast-service.exe +0 -0
  5. package/lib/assess/membrane/source-membrane.js +4 -18
  6. package/lib/assess/policy/propagators.json +11 -21
  7. package/lib/assess/policy/rules.json +5 -0
  8. package/lib/assess/policy/signatures.json +15 -0
  9. package/lib/assess/propagators/dustjs/escape-html.js +22 -0
  10. package/lib/assess/propagators/dustjs/escape-js.js +22 -0
  11. package/lib/assess/propagators/encode-uri/encode-uri-component.js +22 -0
  12. package/lib/assess/propagators/encode-uri/encode-uri.js +22 -0
  13. package/lib/assess/propagators/index.js +0 -2
  14. package/lib/assess/propagators/joi/values.js +26 -11
  15. package/lib/assess/propagators/mustache/escape.js +22 -0
  16. package/lib/assess/propagators/path/common.js +155 -46
  17. package/lib/assess/propagators/path/join.js +5 -1
  18. package/lib/assess/propagators/path/normalize.js +1 -2
  19. package/lib/assess/propagators/path/resolve.js +11 -2
  20. package/lib/assess/propagators/template-escape.js +84 -0
  21. package/lib/assess/propagators/templates.js +2 -3
  22. package/lib/assess/sinks/dustjs-linkedin-xss.js +131 -0
  23. package/lib/core/arch-components/dynamodb.js +1 -2
  24. package/lib/core/arch-components/dynamodbv3.js +44 -0
  25. package/lib/core/arch-components/index.js +1 -0
  26. package/lib/core/arch-components/rethinkdb.js +53 -0
  27. package/lib/core/async-storage/hooks/bluebird.js +20 -0
  28. package/lib/core/config/options.js +2 -1
  29. package/lib/core/stacktrace.js +3 -4
  30. package/lib/feature-set.js +2 -1
  31. package/lib/hooks/frameworks/base.js +8 -2
  32. package/lib/hooks/frameworks/http.js +23 -16
  33. package/lib/hooks/frameworks/http2.js +73 -0
  34. package/lib/hooks/frameworks/index.js +8 -3
  35. package/lib/hooks/http.js +112 -128
  36. package/lib/hooks/patcher.js +69 -48
  37. package/lib/hooks/require.js +16 -22
  38. package/lib/instrumentation.js +0 -3
  39. package/lib/protect/rules/cmd-injection-command-backdoors/backdoor-detector.js +3 -3
  40. package/lib/protect/rules/signatures/reflected-xss/helpers/function-call.js +1 -1
  41. package/lib/protect/rules/xss/helpers/function-call.js +1 -1
  42. package/lib/util/clean-stack.js +1 -1
  43. package/lib/util/clean-string/brackets.js +3 -3
  44. package/lib/util/ip-analyzer.js +1 -1
  45. package/lib/util/some.js +27 -0
  46. package/lib/util/source-map.js +1 -1
  47. package/lib/util/xml-analyzer/external-entity-finder.js +1 -1
  48. package/package.json +14 -16
  49. package/lib/hooks/frameworks/https.js +0 -42
  50. package/node_modules/bindings/LICENSE.md +0 -22
  51. package/node_modules/bindings/README.md +0 -98
  52. package/node_modules/bindings/bindings.js +0 -221
  53. package/node_modules/bindings/package.json +0 -32
  54. package/node_modules/file-uri-to-path/.npmignore +0 -1
  55. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  56. package/node_modules/file-uri-to-path/History.md +0 -21
  57. package/node_modules/file-uri-to-path/LICENSE +0 -20
  58. package/node_modules/file-uri-to-path/README.md +0 -74
  59. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  60. package/node_modules/file-uri-to-path/index.js +0 -66
  61. package/node_modules/file-uri-to-path/package.json +0 -36
  62. package/node_modules/file-uri-to-path/test/test.js +0 -24
  63. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  64. package/node_modules/glossy/LICENSE +0 -19
  65. package/node_modules/glossy/README.md +0 -129
  66. package/node_modules/glossy/index.js +0 -12
  67. package/node_modules/glossy/lib/glossy/parse.js +0 -520
  68. package/node_modules/glossy/lib/glossy/produce.js +0 -459
  69. package/node_modules/glossy/package.json +0 -47
  70. package/node_modules/glossy/test/decide.js +0 -7
  71. package/node_modules/glossy/test/decode_pri.js +0 -24
  72. package/node_modules/glossy/test/parse_3164.js +0 -104
  73. package/node_modules/glossy/test/parse_5424.js +0 -106
  74. package/node_modules/glossy/test/parse_5848.js +0 -40
  75. package/node_modules/glossy/test/parse_8601.js +0 -14
  76. package/node_modules/glossy/test/parse_rfc3339.js +0 -9
  77. package/node_modules/glossy/test/produce.js +0 -162
  78. package/node_modules/glossy/test/runner.js +0 -40
  79. package/node_modules/glossy/test/structure_data.js +0 -24
  80. package/node_modules/nan/CHANGELOG.md +0 -537
  81. package/node_modules/nan/LICENSE.md +0 -13
  82. package/node_modules/nan/README.md +0 -455
  83. package/node_modules/nan/doc/asyncworker.md +0 -146
  84. package/node_modules/nan/doc/buffers.md +0 -54
  85. package/node_modules/nan/doc/callback.md +0 -76
  86. package/node_modules/nan/doc/converters.md +0 -41
  87. package/node_modules/nan/doc/errors.md +0 -226
  88. package/node_modules/nan/doc/json.md +0 -62
  89. package/node_modules/nan/doc/maybe_types.md +0 -583
  90. package/node_modules/nan/doc/methods.md +0 -664
  91. package/node_modules/nan/doc/new.md +0 -147
  92. package/node_modules/nan/doc/node_misc.md +0 -123
  93. package/node_modules/nan/doc/object_wrappers.md +0 -263
  94. package/node_modules/nan/doc/persistent.md +0 -296
  95. package/node_modules/nan/doc/scopes.md +0 -73
  96. package/node_modules/nan/doc/script.md +0 -38
  97. package/node_modules/nan/doc/string_bytes.md +0 -62
  98. package/node_modules/nan/doc/v8_internals.md +0 -199
  99. package/node_modules/nan/doc/v8_misc.md +0 -85
  100. package/node_modules/nan/include_dirs.js +0 -1
  101. package/node_modules/nan/nan.h +0 -2898
  102. package/node_modules/nan/nan_callbacks.h +0 -88
  103. package/node_modules/nan/nan_callbacks_12_inl.h +0 -514
  104. package/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
  105. package/node_modules/nan/nan_converters.h +0 -72
  106. package/node_modules/nan/nan_converters_43_inl.h +0 -68
  107. package/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
  108. package/node_modules/nan/nan_define_own_property_helper.h +0 -29
  109. package/node_modules/nan/nan_implementation_12_inl.h +0 -430
  110. package/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
  111. package/node_modules/nan/nan_json.h +0 -166
  112. package/node_modules/nan/nan_maybe_43_inl.h +0 -356
  113. package/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
  114. package/node_modules/nan/nan_new.h +0 -340
  115. package/node_modules/nan/nan_object_wrap.h +0 -156
  116. package/node_modules/nan/nan_persistent_12_inl.h +0 -132
  117. package/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
  118. package/node_modules/nan/nan_private.h +0 -73
  119. package/node_modules/nan/nan_string_bytes.h +0 -305
  120. package/node_modules/nan/nan_typedarray_contents.h +0 -96
  121. package/node_modules/nan/nan_weak.h +0 -437
  122. package/node_modules/nan/package.json +0 -41
  123. package/node_modules/nan/tools/1to2.js +0 -412
  124. package/node_modules/nan/tools/README.md +0 -14
  125. package/node_modules/nan/tools/package.json +0 -19
  126. package/node_modules/unix-dgram/LICENSE +0 -13
  127. package/node_modules/unix-dgram/README.md +0 -107
  128. package/node_modules/unix-dgram/binding.gyp +0 -20
  129. package/node_modules/unix-dgram/build/Makefile +0 -324
  130. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram/src/unix_dgram.o.d +0 -58
  131. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram.node.d +0 -1
  132. package/node_modules/unix-dgram/build/Release/.deps/Release/unix_dgram.node.d +0 -1
  133. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram/src/unix_dgram.o +0 -0
  134. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram.node +0 -0
  135. package/node_modules/unix-dgram/build/Release/unix_dgram.node +0 -0
  136. package/node_modules/unix-dgram/build/binding.Makefile +0 -6
  137. package/node_modules/unix-dgram/build/config.gypi +0 -213
  138. package/node_modules/unix-dgram/build/unix_dgram.target.mk +0 -159
  139. package/node_modules/unix-dgram/lib/unix_dgram.js +0 -168
  140. package/node_modules/unix-dgram/package.json +0 -36
  141. package/node_modules/unix-dgram/src/unix_dgram.cc +0 -404
  142. package/node_modules/unix-dgram/src/win_dummy.cc +0 -7
  143. package/node_modules/unix-dgram/test/test-connect-callback.js +0 -68
  144. package/node_modules/unix-dgram/test/test-connect.js +0 -53
  145. package/node_modules/unix-dgram/test/test-dgram-unix.js +0 -58
  146. package/node_modules/unix-dgram/test/test-send-error.js +0 -26
  147. package/node_modules/winston-syslog/.eslintrc +0 -7
  148. package/node_modules/winston-syslog/.travis.yml +0 -14
  149. package/node_modules/winston-syslog/CHANGELOG.md +0 -9
  150. package/node_modules/winston-syslog/LICENSE +0 -20
  151. package/node_modules/winston-syslog/README.md +0 -135
  152. package/node_modules/winston-syslog/lib/utils.js +0 -26
  153. package/node_modules/winston-syslog/lib/winston-syslog.js +0 -385
  154. package/node_modules/winston-syslog/package.json +0 -56
  155. package/node_modules/winston-syslog/test/format-test.js +0 -122
  156. package/node_modules/winston-syslog/test/syslog-test.js +0 -95
  157. package/node_modules/winston-syslog/test/unix-connect-test.js +0 -133
@@ -1,437 +0,0 @@
1
- /*********************************************************************
2
- * NAN - Native Abstractions for Node.js
3
- *
4
- * Copyright (c) 2018 NAN contributors
5
- *
6
- * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
7
- ********************************************************************/
8
-
9
- #ifndef NAN_WEAK_H_
10
- #define NAN_WEAK_H_
11
-
12
- static const int kInternalFieldsInWeakCallback = 2;
13
- static const int kNoInternalFieldIndex = -1;
14
-
15
- #if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 4 || \
16
- (V8_MAJOR_VERSION == 4 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 3))
17
- # define NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ \
18
- v8::WeakCallbackInfo<WeakCallbackInfo<T> > const&
19
- # define NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ \
20
- NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
21
- # define NAN_WEAK_PARAMETER_CALLBACK_SIG_ NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
22
- # define NAN_WEAK_TWOFIELD_CALLBACK_SIG_ NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
23
- #elif NODE_MODULE_VERSION > IOJS_1_1_MODULE_VERSION
24
- # define NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ \
25
- v8::PhantomCallbackData<WeakCallbackInfo<T> > const&
26
- # define NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ \
27
- NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
28
- # define NAN_WEAK_PARAMETER_CALLBACK_SIG_ NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
29
- # define NAN_WEAK_TWOFIELD_CALLBACK_SIG_ NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
30
- #elif NODE_MODULE_VERSION > NODE_0_12_MODULE_VERSION
31
- # define NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ \
32
- v8::PhantomCallbackData<WeakCallbackInfo<T> > const&
33
- # define NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ \
34
- v8::InternalFieldsCallbackData<WeakCallbackInfo<T>, void> const&
35
- # define NAN_WEAK_PARAMETER_CALLBACK_SIG_ NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
36
- # define NAN_WEAK_TWOFIELD_CALLBACK_SIG_ NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
37
- #elif NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
38
- # define NAN_WEAK_CALLBACK_DATA_TYPE_ \
39
- v8::WeakCallbackData<S, WeakCallbackInfo<T> > const&
40
- # define NAN_WEAK_CALLBACK_SIG_ NAN_WEAK_CALLBACK_DATA_TYPE_
41
- #else
42
- # define NAN_WEAK_CALLBACK_DATA_TYPE_ void *
43
- # define NAN_WEAK_CALLBACK_SIG_ \
44
- v8::Persistent<v8::Value>, NAN_WEAK_CALLBACK_DATA_TYPE_
45
- #endif
46
-
47
- template<typename T>
48
- class WeakCallbackInfo {
49
- public:
50
- typedef void (*Callback)(const WeakCallbackInfo<T>& data);
51
- WeakCallbackInfo(
52
- Persistent<v8::Value> *persistent
53
- , Callback callback
54
- , void *parameter
55
- , void *field1 = 0
56
- , void *field2 = 0) :
57
- callback_(callback), isolate_(0), parameter_(parameter) {
58
- std::memcpy(&persistent_, persistent, sizeof (v8::Persistent<v8::Value>));
59
- internal_fields_[0] = field1;
60
- internal_fields_[1] = field2;
61
- }
62
- inline v8::Isolate *GetIsolate() const { return isolate_; }
63
- inline T *GetParameter() const { return static_cast<T*>(parameter_); }
64
- inline void *GetInternalField(int index) const {
65
- assert((index == 0 || index == 1) && "internal field index out of bounds");
66
- if (index == 0) {
67
- return internal_fields_[0];
68
- } else {
69
- return internal_fields_[1];
70
- }
71
- }
72
-
73
- private:
74
- NAN_DISALLOW_ASSIGN_COPY_MOVE(WeakCallbackInfo)
75
- Callback callback_;
76
- v8::Isolate *isolate_;
77
- void *parameter_;
78
- void *internal_fields_[kInternalFieldsInWeakCallback];
79
- v8::Persistent<v8::Value> persistent_;
80
- template<typename S, typename M> friend class Persistent;
81
- template<typename S> friend class PersistentBase;
82
- #if NODE_MODULE_VERSION <= NODE_0_12_MODULE_VERSION
83
- # if NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
84
- template<typename S>
85
- static void invoke(NAN_WEAK_CALLBACK_SIG_ data);
86
- template<typename S>
87
- static WeakCallbackInfo *unwrap(NAN_WEAK_CALLBACK_DATA_TYPE_ data);
88
- # else
89
- static void invoke(NAN_WEAK_CALLBACK_SIG_ data);
90
- static WeakCallbackInfo *unwrap(NAN_WEAK_CALLBACK_DATA_TYPE_ data);
91
- # endif
92
- #else
93
- # if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 4 || \
94
- (V8_MAJOR_VERSION == 4 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 3))
95
- template<bool isFirstPass>
96
- static void invokeparameter(NAN_WEAK_PARAMETER_CALLBACK_SIG_ data);
97
- template<bool isFirstPass>
98
- static void invoketwofield(NAN_WEAK_TWOFIELD_CALLBACK_SIG_ data);
99
- # else
100
- static void invokeparameter(NAN_WEAK_PARAMETER_CALLBACK_SIG_ data);
101
- static void invoketwofield(NAN_WEAK_TWOFIELD_CALLBACK_SIG_ data);
102
- # endif
103
- static WeakCallbackInfo *unwrapparameter(
104
- NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ data);
105
- static WeakCallbackInfo *unwraptwofield(
106
- NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ data);
107
- #endif
108
- };
109
-
110
-
111
- #if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 4 || \
112
- (V8_MAJOR_VERSION == 4 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 3))
113
-
114
- template<typename T>
115
- template<bool isFirstPass>
116
- void
117
- WeakCallbackInfo<T>::invokeparameter(NAN_WEAK_PARAMETER_CALLBACK_SIG_ data) {
118
- WeakCallbackInfo<T> *cbinfo = unwrapparameter(data);
119
- if (isFirstPass) {
120
- cbinfo->persistent_.Reset();
121
- data.SetSecondPassCallback(invokeparameter<false>);
122
- } else {
123
- cbinfo->callback_(*cbinfo);
124
- delete cbinfo;
125
- }
126
- }
127
-
128
- template<typename T>
129
- template<bool isFirstPass>
130
- void
131
- WeakCallbackInfo<T>::invoketwofield(NAN_WEAK_TWOFIELD_CALLBACK_SIG_ data) {
132
- WeakCallbackInfo<T> *cbinfo = unwraptwofield(data);
133
- if (isFirstPass) {
134
- cbinfo->persistent_.Reset();
135
- data.SetSecondPassCallback(invoketwofield<false>);
136
- } else {
137
- cbinfo->callback_(*cbinfo);
138
- delete cbinfo;
139
- }
140
- }
141
-
142
- template<typename T>
143
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwrapparameter(
144
- NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ data) {
145
- WeakCallbackInfo<T> *cbinfo =
146
- static_cast<WeakCallbackInfo<T>*>(data.GetParameter());
147
- cbinfo->isolate_ = data.GetIsolate();
148
- return cbinfo;
149
- }
150
-
151
- template<typename T>
152
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwraptwofield(
153
- NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ data) {
154
- WeakCallbackInfo<T> *cbinfo =
155
- static_cast<WeakCallbackInfo<T>*>(data.GetInternalField(0));
156
- cbinfo->isolate_ = data.GetIsolate();
157
- return cbinfo;
158
- }
159
-
160
- #undef NAN_WEAK_PARAMETER_CALLBACK_SIG_
161
- #undef NAN_WEAK_TWOFIELD_CALLBACK_SIG_
162
- #undef NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
163
- #undef NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
164
- # elif NODE_MODULE_VERSION > NODE_0_12_MODULE_VERSION
165
-
166
- template<typename T>
167
- void
168
- WeakCallbackInfo<T>::invokeparameter(NAN_WEAK_PARAMETER_CALLBACK_SIG_ data) {
169
- WeakCallbackInfo<T> *cbinfo = unwrapparameter(data);
170
- cbinfo->persistent_.Reset();
171
- cbinfo->callback_(*cbinfo);
172
- delete cbinfo;
173
- }
174
-
175
- template<typename T>
176
- void
177
- WeakCallbackInfo<T>::invoketwofield(NAN_WEAK_TWOFIELD_CALLBACK_SIG_ data) {
178
- WeakCallbackInfo<T> *cbinfo = unwraptwofield(data);
179
- cbinfo->persistent_.Reset();
180
- cbinfo->callback_(*cbinfo);
181
- delete cbinfo;
182
- }
183
-
184
- template<typename T>
185
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwrapparameter(
186
- NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_ data) {
187
- WeakCallbackInfo<T> *cbinfo =
188
- static_cast<WeakCallbackInfo<T>*>(data.GetParameter());
189
- cbinfo->isolate_ = data.GetIsolate();
190
- return cbinfo;
191
- }
192
-
193
- template<typename T>
194
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwraptwofield(
195
- NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_ data) {
196
- WeakCallbackInfo<T> *cbinfo =
197
- static_cast<WeakCallbackInfo<T>*>(data.GetInternalField1());
198
- cbinfo->isolate_ = data.GetIsolate();
199
- return cbinfo;
200
- }
201
-
202
- #undef NAN_WEAK_PARAMETER_CALLBACK_SIG_
203
- #undef NAN_WEAK_TWOFIELD_CALLBACK_SIG_
204
- #undef NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
205
- #undef NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
206
- #elif NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
207
-
208
- template<typename T>
209
- template<typename S>
210
- void WeakCallbackInfo<T>::invoke(NAN_WEAK_CALLBACK_SIG_ data) {
211
- WeakCallbackInfo<T> *cbinfo = unwrap(data);
212
- cbinfo->persistent_.Reset();
213
- cbinfo->callback_(*cbinfo);
214
- delete cbinfo;
215
- }
216
-
217
- template<typename T>
218
- template<typename S>
219
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwrap(
220
- NAN_WEAK_CALLBACK_DATA_TYPE_ data) {
221
- void *parameter = data.GetParameter();
222
- WeakCallbackInfo<T> *cbinfo =
223
- static_cast<WeakCallbackInfo<T>*>(parameter);
224
- cbinfo->isolate_ = data.GetIsolate();
225
- return cbinfo;
226
- }
227
-
228
- #undef NAN_WEAK_CALLBACK_SIG_
229
- #undef NAN_WEAK_CALLBACK_DATA_TYPE_
230
- #else
231
-
232
- template<typename T>
233
- void WeakCallbackInfo<T>::invoke(NAN_WEAK_CALLBACK_SIG_ data) {
234
- WeakCallbackInfo<T> *cbinfo = unwrap(data);
235
- cbinfo->persistent_.Dispose();
236
- cbinfo->persistent_.Clear();
237
- cbinfo->callback_(*cbinfo);
238
- delete cbinfo;
239
- }
240
-
241
- template<typename T>
242
- WeakCallbackInfo<T> *WeakCallbackInfo<T>::unwrap(
243
- NAN_WEAK_CALLBACK_DATA_TYPE_ data) {
244
- WeakCallbackInfo<T> *cbinfo =
245
- static_cast<WeakCallbackInfo<T>*>(data);
246
- cbinfo->isolate_ = v8::Isolate::GetCurrent();
247
- return cbinfo;
248
- }
249
-
250
- #undef NAN_WEAK_CALLBACK_SIG_
251
- #undef NAN_WEAK_CALLBACK_DATA_TYPE_
252
- #endif
253
-
254
- #if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 4 || \
255
- (V8_MAJOR_VERSION == 4 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 3))
256
- template<typename T, typename M>
257
- template<typename P>
258
- inline void Persistent<T, M>::SetWeak(
259
- P *parameter
260
- , typename WeakCallbackInfo<P>::Callback callback
261
- , WeakCallbackType type) {
262
- WeakCallbackInfo<P> *wcbd;
263
- if (type == WeakCallbackType::kParameter) {
264
- wcbd = new WeakCallbackInfo<P>(
265
- reinterpret_cast<Persistent<v8::Value>*>(this)
266
- , callback
267
- , parameter);
268
- v8::PersistentBase<T>::SetWeak(
269
- wcbd
270
- , WeakCallbackInfo<P>::template invokeparameter<true>
271
- , type);
272
- } else {
273
- v8::Local<v8::Value>* self_v(reinterpret_cast<v8::Local<v8::Value>*>(this));
274
- assert((*self_v)->IsObject());
275
- v8::Local<v8::Object> self((*self_v).As<v8::Object>());
276
- int count = self->InternalFieldCount();
277
- void *internal_fields[kInternalFieldsInWeakCallback] = {0, 0};
278
- for (int i = 0; i < count && i < kInternalFieldsInWeakCallback; i++) {
279
- internal_fields[i] = self->GetAlignedPointerFromInternalField(i);
280
- }
281
- wcbd = new WeakCallbackInfo<P>(
282
- reinterpret_cast<Persistent<v8::Value>*>(this)
283
- , callback
284
- , 0
285
- , internal_fields[0]
286
- , internal_fields[1]);
287
- self->SetAlignedPointerInInternalField(0, wcbd);
288
- v8::PersistentBase<T>::SetWeak(
289
- static_cast<WeakCallbackInfo<P>*>(0)
290
- , WeakCallbackInfo<P>::template invoketwofield<true>
291
- , type);
292
- }
293
- }
294
- #elif NODE_MODULE_VERSION > IOJS_1_1_MODULE_VERSION
295
- template<typename T, typename M>
296
- template<typename P>
297
- inline void Persistent<T, M>::SetWeak(
298
- P *parameter
299
- , typename WeakCallbackInfo<P>::Callback callback
300
- , WeakCallbackType type) {
301
- WeakCallbackInfo<P> *wcbd;
302
- if (type == WeakCallbackType::kParameter) {
303
- wcbd = new WeakCallbackInfo<P>(
304
- reinterpret_cast<Persistent<v8::Value>*>(this)
305
- , callback
306
- , parameter);
307
- v8::PersistentBase<T>::SetPhantom(
308
- wcbd
309
- , WeakCallbackInfo<P>::invokeparameter);
310
- } else {
311
- v8::Local<v8::Value>* self_v(reinterpret_cast<v8::Local<v8::Value>*>(this));
312
- assert((*self_v)->IsObject());
313
- v8::Local<v8::Object> self((*self_v).As<v8::Object>());
314
- int count = self->InternalFieldCount();
315
- void *internal_fields[kInternalFieldsInWeakCallback] = {0, 0};
316
- for (int i = 0; i < count && i < kInternalFieldsInWeakCallback; i++) {
317
- internal_fields[i] = self->GetAlignedPointerFromInternalField(i);
318
- }
319
- wcbd = new WeakCallbackInfo<P>(
320
- reinterpret_cast<Persistent<v8::Value>*>(this)
321
- , callback
322
- , 0
323
- , internal_fields[0]
324
- , internal_fields[1]);
325
- self->SetAlignedPointerInInternalField(0, wcbd);
326
- v8::PersistentBase<T>::SetPhantom(
327
- static_cast<WeakCallbackInfo<P>*>(0)
328
- , WeakCallbackInfo<P>::invoketwofield
329
- , 0
330
- , count > 1 ? 1 : kNoInternalFieldIndex);
331
- }
332
- }
333
- #elif NODE_MODULE_VERSION > NODE_0_12_MODULE_VERSION
334
- template<typename T, typename M>
335
- template<typename P>
336
- inline void Persistent<T, M>::SetWeak(
337
- P *parameter
338
- , typename WeakCallbackInfo<P>::Callback callback
339
- , WeakCallbackType type) {
340
- WeakCallbackInfo<P> *wcbd;
341
- if (type == WeakCallbackType::kParameter) {
342
- wcbd = new WeakCallbackInfo<P>(
343
- reinterpret_cast<Persistent<v8::Value>*>(this)
344
- , callback
345
- , parameter);
346
- v8::PersistentBase<T>::SetPhantom(
347
- wcbd
348
- , WeakCallbackInfo<P>::invokeparameter);
349
- } else {
350
- v8::Local<v8::Value>* self_v(reinterpret_cast<v8::Local<v8::Value>*>(this));
351
- assert((*self_v)->IsObject());
352
- v8::Local<v8::Object> self((*self_v).As<v8::Object>());
353
- int count = self->InternalFieldCount();
354
- void *internal_fields[kInternalFieldsInWeakCallback] = {0, 0};
355
- for (int i = 0; i < count && i < kInternalFieldsInWeakCallback; i++) {
356
- internal_fields[i] = self->GetAlignedPointerFromInternalField(i);
357
- }
358
- wcbd = new WeakCallbackInfo<P>(
359
- reinterpret_cast<Persistent<v8::Value>*>(this)
360
- , callback
361
- , 0
362
- , internal_fields[0]
363
- , internal_fields[1]);
364
- self->SetAlignedPointerInInternalField(0, wcbd);
365
- v8::PersistentBase<T>::SetPhantom(
366
- WeakCallbackInfo<P>::invoketwofield
367
- , 0
368
- , count > 1 ? 1 : kNoInternalFieldIndex);
369
- }
370
- }
371
- #elif NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION
372
- template<typename T, typename M>
373
- template<typename P>
374
- inline void Persistent<T, M>::SetWeak(
375
- P *parameter
376
- , typename WeakCallbackInfo<P>::Callback callback
377
- , WeakCallbackType type) {
378
- WeakCallbackInfo<P> *wcbd;
379
- if (type == WeakCallbackType::kParameter) {
380
- wcbd = new WeakCallbackInfo<P>(
381
- reinterpret_cast<Persistent<v8::Value>*>(this)
382
- , callback
383
- , parameter);
384
- v8::PersistentBase<T>::SetWeak(wcbd, WeakCallbackInfo<P>::invoke);
385
- } else {
386
- v8::Local<v8::Value>* self_v(reinterpret_cast<v8::Local<v8::Value>*>(this));
387
- assert((*self_v)->IsObject());
388
- v8::Local<v8::Object> self((*self_v).As<v8::Object>());
389
- int count = self->InternalFieldCount();
390
- void *internal_fields[kInternalFieldsInWeakCallback] = {0, 0};
391
- for (int i = 0; i < count && i < kInternalFieldsInWeakCallback; i++) {
392
- internal_fields[i] = self->GetAlignedPointerFromInternalField(i);
393
- }
394
- wcbd = new WeakCallbackInfo<P>(
395
- reinterpret_cast<Persistent<v8::Value>*>(this)
396
- , callback
397
- , 0
398
- , internal_fields[0]
399
- , internal_fields[1]);
400
- v8::PersistentBase<T>::SetWeak(wcbd, WeakCallbackInfo<P>::invoke);
401
- }
402
- }
403
- #else
404
- template<typename T>
405
- template<typename P>
406
- inline void PersistentBase<T>::SetWeak(
407
- P *parameter
408
- , typename WeakCallbackInfo<P>::Callback callback
409
- , WeakCallbackType type) {
410
- WeakCallbackInfo<P> *wcbd;
411
- if (type == WeakCallbackType::kParameter) {
412
- wcbd = new WeakCallbackInfo<P>(
413
- reinterpret_cast<Persistent<v8::Value>*>(this)
414
- , callback
415
- , parameter);
416
- persistent.MakeWeak(wcbd, WeakCallbackInfo<P>::invoke);
417
- } else {
418
- v8::Local<v8::Value>* self_v(reinterpret_cast<v8::Local<v8::Value>*>(this));
419
- assert((*self_v)->IsObject());
420
- v8::Local<v8::Object> self((*self_v).As<v8::Object>());
421
- int count = self->InternalFieldCount();
422
- void *internal_fields[kInternalFieldsInWeakCallback] = {0, 0};
423
- for (int i = 0; i < count && i < kInternalFieldsInWeakCallback; i++) {
424
- internal_fields[i] = self->GetPointerFromInternalField(i);
425
- }
426
- wcbd = new WeakCallbackInfo<P>(
427
- reinterpret_cast<Persistent<v8::Value>*>(this)
428
- , callback
429
- , 0
430
- , internal_fields[0]
431
- , internal_fields[1]);
432
- persistent.MakeWeak(wcbd, WeakCallbackInfo<P>::invoke);
433
- }
434
- }
435
- #endif
436
-
437
- #endif // NAN_WEAK_H_
@@ -1,41 +0,0 @@
1
- {
2
- "name": "nan",
3
- "version": "2.14.2",
4
- "description": "Native Abstractions for Node.js: C++ header for Node 0.8 -> 14 compatibility",
5
- "main": "include_dirs.js",
6
- "repository": {
7
- "type": "git",
8
- "url": "git://github.com/nodejs/nan.git"
9
- },
10
- "scripts": {
11
- "test": "tap --gc --stderr test/js/*-test.js",
12
- "test:worker": "node --experimental-worker test/tap-as-worker.js --gc --stderr test/js/*-test.js",
13
- "rebuild-tests": "node-gyp rebuild --msvs_version=2015 --directory test",
14
- "docs": "doc/.build.sh"
15
- },
16
- "contributors": [
17
- "Rod Vagg <r@va.gg> (https://github.com/rvagg)",
18
- "Benjamin Byholm <bbyholm@abo.fi> (https://github.com/kkoopa/)",
19
- "Trevor Norris <trev.norris@gmail.com> (https://github.com/trevnorris)",
20
- "Nathan Rajlich <nathan@tootallnate.net> (https://github.com/TooTallNate)",
21
- "Brett Lawson <brett19@gmail.com> (https://github.com/brett19)",
22
- "Ben Noordhuis <info@bnoordhuis.nl> (https://github.com/bnoordhuis)",
23
- "David Siegel <david@artcom.de> (https://github.com/agnat)",
24
- "Michael Ira Krufky <mkrufky@gmail.com> (https://github.com/mkrufky)"
25
- ],
26
- "devDependencies": {
27
- "bindings": "~1.2.1",
28
- "commander": "^2.8.1",
29
- "glob": "^5.0.14",
30
- "request": "=2.81.0",
31
- "node-gyp": "~3.6.2",
32
- "readable-stream": "^2.1.4",
33
- "tap": "~0.7.1",
34
- "xtend": "~4.0.0"
35
- },
36
- "license": "MIT"
37
-
38
- ,"_resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"
39
- ,"_integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
40
- ,"_from": "nan@2.14.2"
41
- }