@contrast/agent 4.4.1 → 4.6.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 (156) 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/hapi/route-coverage.js +3 -3
  6. package/lib/assess/membrane/index.js +2 -8
  7. package/lib/assess/membrane/source-membrane.js +3 -4
  8. package/lib/assess/models/base-event.js +2 -2
  9. package/lib/assess/models/call-context.js +0 -3
  10. package/lib/assess/policy/propagators.json +20 -0
  11. package/lib/assess/policy/signatures.json +103 -0
  12. package/lib/assess/propagators/path/common.js +165 -36
  13. package/lib/assess/propagators/path/join.js +5 -1
  14. package/lib/assess/propagators/path/normalize.js +5 -1
  15. package/lib/assess/propagators/path/resolve.js +11 -2
  16. package/lib/assess/response-scanning/autocomplete-missing.js +0 -2
  17. package/lib/assess/response-scanning/parameter-pollution.js +0 -2
  18. package/lib/core/arch-components/dynamodb.js +1 -2
  19. package/lib/core/arch-components/dynamodbv3.js +44 -0
  20. package/lib/core/arch-components/index.js +1 -0
  21. package/lib/core/async-storage/hooks/bluebird.js +20 -0
  22. package/lib/core/config/options.js +3 -2
  23. package/lib/core/express/utils.js +1 -1
  24. package/lib/core/logger/debug-logger.js +15 -17
  25. package/lib/core/stacktrace.js +3 -4
  26. package/lib/feature-set.js +2 -1
  27. package/lib/hooks/encoding.js +1 -1
  28. package/lib/hooks/frameworks/base.js +8 -2
  29. package/lib/hooks/frameworks/http.js +23 -16
  30. package/lib/hooks/frameworks/http2.js +73 -0
  31. package/lib/hooks/frameworks/index.js +8 -3
  32. package/lib/hooks/http.js +112 -128
  33. package/lib/hooks/patcher.js +10 -12
  34. package/lib/hooks/require.js +16 -22
  35. package/lib/instrumentation.js +0 -3
  36. package/lib/protect/analysis/aho-corasick.js +13 -30
  37. package/lib/protect/rules/cmd-injection-command-backdoors/backdoor-detector.js +3 -3
  38. package/lib/protect/rules/signatures/reflected-xss/helpers/function-call.js +1 -1
  39. package/lib/protect/rules/xss/helpers/function-call.js +1 -1
  40. package/lib/util/clean-stack.js +1 -1
  41. package/lib/util/clean-string/brackets.js +3 -3
  42. package/lib/util/clean-string/concatenations.js +1 -1
  43. package/lib/util/clean-string/util.js +1 -2
  44. package/lib/util/ip-analyzer.js +1 -1
  45. package/lib/util/some.js +27 -0
  46. package/lib/util/xml-analyzer/external-entity-finder.js +1 -1
  47. package/package.json +14 -15
  48. package/lib/hooks/frameworks/https.js +0 -42
  49. package/node_modules/bindings/LICENSE.md +0 -22
  50. package/node_modules/bindings/README.md +0 -98
  51. package/node_modules/bindings/bindings.js +0 -221
  52. package/node_modules/bindings/package.json +0 -32
  53. package/node_modules/file-uri-to-path/.npmignore +0 -1
  54. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  55. package/node_modules/file-uri-to-path/History.md +0 -21
  56. package/node_modules/file-uri-to-path/LICENSE +0 -20
  57. package/node_modules/file-uri-to-path/README.md +0 -74
  58. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  59. package/node_modules/file-uri-to-path/index.js +0 -66
  60. package/node_modules/file-uri-to-path/package.json +0 -36
  61. package/node_modules/file-uri-to-path/test/test.js +0 -24
  62. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  63. package/node_modules/glossy/LICENSE +0 -19
  64. package/node_modules/glossy/README.md +0 -129
  65. package/node_modules/glossy/index.js +0 -12
  66. package/node_modules/glossy/lib/glossy/parse.js +0 -520
  67. package/node_modules/glossy/lib/glossy/produce.js +0 -459
  68. package/node_modules/glossy/package.json +0 -47
  69. package/node_modules/glossy/test/decide.js +0 -7
  70. package/node_modules/glossy/test/decode_pri.js +0 -24
  71. package/node_modules/glossy/test/parse_3164.js +0 -104
  72. package/node_modules/glossy/test/parse_5424.js +0 -106
  73. package/node_modules/glossy/test/parse_5848.js +0 -40
  74. package/node_modules/glossy/test/parse_8601.js +0 -14
  75. package/node_modules/glossy/test/parse_rfc3339.js +0 -9
  76. package/node_modules/glossy/test/produce.js +0 -162
  77. package/node_modules/glossy/test/runner.js +0 -40
  78. package/node_modules/glossy/test/structure_data.js +0 -24
  79. package/node_modules/nan/CHANGELOG.md +0 -537
  80. package/node_modules/nan/LICENSE.md +0 -13
  81. package/node_modules/nan/README.md +0 -455
  82. package/node_modules/nan/doc/asyncworker.md +0 -146
  83. package/node_modules/nan/doc/buffers.md +0 -54
  84. package/node_modules/nan/doc/callback.md +0 -76
  85. package/node_modules/nan/doc/converters.md +0 -41
  86. package/node_modules/nan/doc/errors.md +0 -226
  87. package/node_modules/nan/doc/json.md +0 -62
  88. package/node_modules/nan/doc/maybe_types.md +0 -583
  89. package/node_modules/nan/doc/methods.md +0 -664
  90. package/node_modules/nan/doc/new.md +0 -147
  91. package/node_modules/nan/doc/node_misc.md +0 -123
  92. package/node_modules/nan/doc/object_wrappers.md +0 -263
  93. package/node_modules/nan/doc/persistent.md +0 -296
  94. package/node_modules/nan/doc/scopes.md +0 -73
  95. package/node_modules/nan/doc/script.md +0 -38
  96. package/node_modules/nan/doc/string_bytes.md +0 -62
  97. package/node_modules/nan/doc/v8_internals.md +0 -199
  98. package/node_modules/nan/doc/v8_misc.md +0 -85
  99. package/node_modules/nan/include_dirs.js +0 -1
  100. package/node_modules/nan/nan.h +0 -2898
  101. package/node_modules/nan/nan_callbacks.h +0 -88
  102. package/node_modules/nan/nan_callbacks_12_inl.h +0 -514
  103. package/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
  104. package/node_modules/nan/nan_converters.h +0 -72
  105. package/node_modules/nan/nan_converters_43_inl.h +0 -68
  106. package/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
  107. package/node_modules/nan/nan_define_own_property_helper.h +0 -29
  108. package/node_modules/nan/nan_implementation_12_inl.h +0 -430
  109. package/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
  110. package/node_modules/nan/nan_json.h +0 -166
  111. package/node_modules/nan/nan_maybe_43_inl.h +0 -356
  112. package/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
  113. package/node_modules/nan/nan_new.h +0 -340
  114. package/node_modules/nan/nan_object_wrap.h +0 -156
  115. package/node_modules/nan/nan_persistent_12_inl.h +0 -132
  116. package/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
  117. package/node_modules/nan/nan_private.h +0 -73
  118. package/node_modules/nan/nan_string_bytes.h +0 -305
  119. package/node_modules/nan/nan_typedarray_contents.h +0 -96
  120. package/node_modules/nan/nan_weak.h +0 -437
  121. package/node_modules/nan/package.json +0 -41
  122. package/node_modules/nan/tools/1to2.js +0 -412
  123. package/node_modules/nan/tools/README.md +0 -14
  124. package/node_modules/nan/tools/package.json +0 -19
  125. package/node_modules/unix-dgram/LICENSE +0 -13
  126. package/node_modules/unix-dgram/README.md +0 -107
  127. package/node_modules/unix-dgram/binding.gyp +0 -20
  128. package/node_modules/unix-dgram/build/Makefile +0 -324
  129. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram/src/unix_dgram.o.d +0 -58
  130. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram.node.d +0 -1
  131. package/node_modules/unix-dgram/build/Release/.deps/Release/unix_dgram.node.d +0 -1
  132. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram/src/unix_dgram.o +0 -0
  133. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram.node +0 -0
  134. package/node_modules/unix-dgram/build/Release/unix_dgram.node +0 -0
  135. package/node_modules/unix-dgram/build/binding.Makefile +0 -6
  136. package/node_modules/unix-dgram/build/config.gypi +0 -213
  137. package/node_modules/unix-dgram/build/unix_dgram.target.mk +0 -159
  138. package/node_modules/unix-dgram/lib/unix_dgram.js +0 -168
  139. package/node_modules/unix-dgram/package.json +0 -36
  140. package/node_modules/unix-dgram/src/unix_dgram.cc +0 -404
  141. package/node_modules/unix-dgram/src/win_dummy.cc +0 -7
  142. package/node_modules/unix-dgram/test/test-connect-callback.js +0 -68
  143. package/node_modules/unix-dgram/test/test-connect.js +0 -53
  144. package/node_modules/unix-dgram/test/test-dgram-unix.js +0 -58
  145. package/node_modules/unix-dgram/test/test-send-error.js +0 -26
  146. package/node_modules/winston-syslog/.eslintrc +0 -7
  147. package/node_modules/winston-syslog/.travis.yml +0 -14
  148. package/node_modules/winston-syslog/CHANGELOG.md +0 -9
  149. package/node_modules/winston-syslog/LICENSE +0 -20
  150. package/node_modules/winston-syslog/README.md +0 -135
  151. package/node_modules/winston-syslog/lib/utils.js +0 -26
  152. package/node_modules/winston-syslog/lib/winston-syslog.js +0 -385
  153. package/node_modules/winston-syslog/package.json +0 -56
  154. package/node_modules/winston-syslog/test/format-test.js +0 -122
  155. package/node_modules/winston-syslog/test/syslog-test.js +0 -95
  156. 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
- }