@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.
- package/bin/VERSION +1 -1
- package/bin/linux/contrast-service +0 -0
- package/bin/mac/contrast-service +0 -0
- package/bin/windows/contrast-service.exe +0 -0
- package/lib/assess/membrane/source-membrane.js +4 -18
- package/lib/assess/policy/propagators.json +11 -21
- package/lib/assess/policy/rules.json +5 -0
- package/lib/assess/policy/signatures.json +15 -0
- package/lib/assess/propagators/dustjs/escape-html.js +22 -0
- package/lib/assess/propagators/dustjs/escape-js.js +22 -0
- package/lib/assess/propagators/encode-uri/encode-uri-component.js +22 -0
- package/lib/assess/propagators/encode-uri/encode-uri.js +22 -0
- package/lib/assess/propagators/index.js +0 -2
- package/lib/assess/propagators/joi/values.js +26 -11
- package/lib/assess/propagators/mustache/escape.js +22 -0
- package/lib/assess/propagators/path/common.js +155 -46
- package/lib/assess/propagators/path/join.js +5 -1
- package/lib/assess/propagators/path/normalize.js +1 -2
- package/lib/assess/propagators/path/resolve.js +11 -2
- package/lib/assess/propagators/template-escape.js +84 -0
- package/lib/assess/propagators/templates.js +2 -3
- package/lib/assess/sinks/dustjs-linkedin-xss.js +131 -0
- package/lib/core/arch-components/dynamodb.js +1 -2
- package/lib/core/arch-components/dynamodbv3.js +44 -0
- package/lib/core/arch-components/index.js +1 -0
- package/lib/core/arch-components/rethinkdb.js +53 -0
- package/lib/core/async-storage/hooks/bluebird.js +20 -0
- package/lib/core/config/options.js +2 -1
- package/lib/core/stacktrace.js +3 -4
- package/lib/feature-set.js +2 -1
- package/lib/hooks/frameworks/base.js +8 -2
- package/lib/hooks/frameworks/http.js +23 -16
- package/lib/hooks/frameworks/http2.js +73 -0
- package/lib/hooks/frameworks/index.js +8 -3
- package/lib/hooks/http.js +112 -128
- package/lib/hooks/patcher.js +69 -48
- package/lib/hooks/require.js +16 -22
- package/lib/instrumentation.js +0 -3
- package/lib/protect/rules/cmd-injection-command-backdoors/backdoor-detector.js +3 -3
- package/lib/protect/rules/signatures/reflected-xss/helpers/function-call.js +1 -1
- package/lib/protect/rules/xss/helpers/function-call.js +1 -1
- package/lib/util/clean-stack.js +1 -1
- package/lib/util/clean-string/brackets.js +3 -3
- package/lib/util/ip-analyzer.js +1 -1
- package/lib/util/some.js +27 -0
- package/lib/util/source-map.js +1 -1
- package/lib/util/xml-analyzer/external-entity-finder.js +1 -1
- package/package.json +14 -16
- package/lib/hooks/frameworks/https.js +0 -42
- package/node_modules/bindings/LICENSE.md +0 -22
- package/node_modules/bindings/README.md +0 -98
- package/node_modules/bindings/bindings.js +0 -221
- package/node_modules/bindings/package.json +0 -32
- package/node_modules/file-uri-to-path/.npmignore +0 -1
- package/node_modules/file-uri-to-path/.travis.yml +0 -30
- package/node_modules/file-uri-to-path/History.md +0 -21
- package/node_modules/file-uri-to-path/LICENSE +0 -20
- package/node_modules/file-uri-to-path/README.md +0 -74
- package/node_modules/file-uri-to-path/index.d.ts +0 -2
- package/node_modules/file-uri-to-path/index.js +0 -66
- package/node_modules/file-uri-to-path/package.json +0 -36
- package/node_modules/file-uri-to-path/test/test.js +0 -24
- package/node_modules/file-uri-to-path/test/tests.json +0 -13
- package/node_modules/glossy/LICENSE +0 -19
- package/node_modules/glossy/README.md +0 -129
- package/node_modules/glossy/index.js +0 -12
- package/node_modules/glossy/lib/glossy/parse.js +0 -520
- package/node_modules/glossy/lib/glossy/produce.js +0 -459
- package/node_modules/glossy/package.json +0 -47
- package/node_modules/glossy/test/decide.js +0 -7
- package/node_modules/glossy/test/decode_pri.js +0 -24
- package/node_modules/glossy/test/parse_3164.js +0 -104
- package/node_modules/glossy/test/parse_5424.js +0 -106
- package/node_modules/glossy/test/parse_5848.js +0 -40
- package/node_modules/glossy/test/parse_8601.js +0 -14
- package/node_modules/glossy/test/parse_rfc3339.js +0 -9
- package/node_modules/glossy/test/produce.js +0 -162
- package/node_modules/glossy/test/runner.js +0 -40
- package/node_modules/glossy/test/structure_data.js +0 -24
- package/node_modules/nan/CHANGELOG.md +0 -537
- package/node_modules/nan/LICENSE.md +0 -13
- package/node_modules/nan/README.md +0 -455
- package/node_modules/nan/doc/asyncworker.md +0 -146
- package/node_modules/nan/doc/buffers.md +0 -54
- package/node_modules/nan/doc/callback.md +0 -76
- package/node_modules/nan/doc/converters.md +0 -41
- package/node_modules/nan/doc/errors.md +0 -226
- package/node_modules/nan/doc/json.md +0 -62
- package/node_modules/nan/doc/maybe_types.md +0 -583
- package/node_modules/nan/doc/methods.md +0 -664
- package/node_modules/nan/doc/new.md +0 -147
- package/node_modules/nan/doc/node_misc.md +0 -123
- package/node_modules/nan/doc/object_wrappers.md +0 -263
- package/node_modules/nan/doc/persistent.md +0 -296
- package/node_modules/nan/doc/scopes.md +0 -73
- package/node_modules/nan/doc/script.md +0 -38
- package/node_modules/nan/doc/string_bytes.md +0 -62
- package/node_modules/nan/doc/v8_internals.md +0 -199
- package/node_modules/nan/doc/v8_misc.md +0 -85
- package/node_modules/nan/include_dirs.js +0 -1
- package/node_modules/nan/nan.h +0 -2898
- package/node_modules/nan/nan_callbacks.h +0 -88
- package/node_modules/nan/nan_callbacks_12_inl.h +0 -514
- package/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
- package/node_modules/nan/nan_converters.h +0 -72
- package/node_modules/nan/nan_converters_43_inl.h +0 -68
- package/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
- package/node_modules/nan/nan_define_own_property_helper.h +0 -29
- package/node_modules/nan/nan_implementation_12_inl.h +0 -430
- package/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
- package/node_modules/nan/nan_json.h +0 -166
- package/node_modules/nan/nan_maybe_43_inl.h +0 -356
- package/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
- package/node_modules/nan/nan_new.h +0 -340
- package/node_modules/nan/nan_object_wrap.h +0 -156
- package/node_modules/nan/nan_persistent_12_inl.h +0 -132
- package/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
- package/node_modules/nan/nan_private.h +0 -73
- package/node_modules/nan/nan_string_bytes.h +0 -305
- package/node_modules/nan/nan_typedarray_contents.h +0 -96
- package/node_modules/nan/nan_weak.h +0 -437
- package/node_modules/nan/package.json +0 -41
- package/node_modules/nan/tools/1to2.js +0 -412
- package/node_modules/nan/tools/README.md +0 -14
- package/node_modules/nan/tools/package.json +0 -19
- package/node_modules/unix-dgram/LICENSE +0 -13
- package/node_modules/unix-dgram/README.md +0 -107
- package/node_modules/unix-dgram/binding.gyp +0 -20
- package/node_modules/unix-dgram/build/Makefile +0 -324
- package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram/src/unix_dgram.o.d +0 -58
- package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram.node.d +0 -1
- package/node_modules/unix-dgram/build/Release/.deps/Release/unix_dgram.node.d +0 -1
- package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram/src/unix_dgram.o +0 -0
- package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram.node +0 -0
- package/node_modules/unix-dgram/build/Release/unix_dgram.node +0 -0
- package/node_modules/unix-dgram/build/binding.Makefile +0 -6
- package/node_modules/unix-dgram/build/config.gypi +0 -213
- package/node_modules/unix-dgram/build/unix_dgram.target.mk +0 -159
- package/node_modules/unix-dgram/lib/unix_dgram.js +0 -168
- package/node_modules/unix-dgram/package.json +0 -36
- package/node_modules/unix-dgram/src/unix_dgram.cc +0 -404
- package/node_modules/unix-dgram/src/win_dummy.cc +0 -7
- package/node_modules/unix-dgram/test/test-connect-callback.js +0 -68
- package/node_modules/unix-dgram/test/test-connect.js +0 -53
- package/node_modules/unix-dgram/test/test-dgram-unix.js +0 -58
- package/node_modules/unix-dgram/test/test-send-error.js +0 -26
- package/node_modules/winston-syslog/.eslintrc +0 -7
- package/node_modules/winston-syslog/.travis.yml +0 -14
- package/node_modules/winston-syslog/CHANGELOG.md +0 -9
- package/node_modules/winston-syslog/LICENSE +0 -20
- package/node_modules/winston-syslog/README.md +0 -135
- package/node_modules/winston-syslog/lib/utils.js +0 -26
- package/node_modules/winston-syslog/lib/winston-syslog.js +0 -385
- package/node_modules/winston-syslog/package.json +0 -56
- package/node_modules/winston-syslog/test/format-test.js +0 -122
- package/node_modules/winston-syslog/test/syslog-test.js +0 -95
- 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
|
-
}
|