@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,583 +0,0 @@
1
- ## Maybe Types
2
-
3
- The `Nan::MaybeLocal` and `Nan::Maybe` types are monads that encapsulate `v8::Local` handles that _may be empty_.
4
-
5
- * **Maybe Types**
6
- - <a href="#api_nan_maybe_local"><b><code>Nan::MaybeLocal</code></b></a>
7
- - <a href="#api_nan_maybe"><b><code>Nan::Maybe</code></b></a>
8
- - <a href="#api_nan_nothing"><b><code>Nan::Nothing</code></b></a>
9
- - <a href="#api_nan_just"><b><code>Nan::Just</code></b></a>
10
- * **Maybe Helpers**
11
- - <a href="#api_nan_call"><b><code>Nan::Call()</code></b></a>
12
- - <a href="#api_nan_to_detail_string"><b><code>Nan::ToDetailString()</code></b></a>
13
- - <a href="#api_nan_to_array_index"><b><code>Nan::ToArrayIndex()</code></b></a>
14
- - <a href="#api_nan_equals"><b><code>Nan::Equals()</code></b></a>
15
- - <a href="#api_nan_new_instance"><b><code>Nan::NewInstance()</code></b></a>
16
- - <a href="#api_nan_get_function"><b><code>Nan::GetFunction()</code></b></a>
17
- - <a href="#api_nan_set"><b><code>Nan::Set()</code></b></a>
18
- - <a href="#api_nan_define_own_property"><b><code>Nan::DefineOwnProperty()</code></b></a>
19
- - <a href="#api_nan_force_set"><del><b><code>Nan::ForceSet()</code></b></del></a>
20
- - <a href="#api_nan_get"><b><code>Nan::Get()</code></b></a>
21
- - <a href="#api_nan_get_property_attribute"><b><code>Nan::GetPropertyAttributes()</code></b></a>
22
- - <a href="#api_nan_has"><b><code>Nan::Has()</code></b></a>
23
- - <a href="#api_nan_delete"><b><code>Nan::Delete()</code></b></a>
24
- - <a href="#api_nan_get_property_names"><b><code>Nan::GetPropertyNames()</code></b></a>
25
- - <a href="#api_nan_get_own_property_names"><b><code>Nan::GetOwnPropertyNames()</code></b></a>
26
- - <a href="#api_nan_set_prototype"><b><code>Nan::SetPrototype()</code></b></a>
27
- - <a href="#api_nan_object_proto_to_string"><b><code>Nan::ObjectProtoToString()</code></b></a>
28
- - <a href="#api_nan_has_own_property"><b><code>Nan::HasOwnProperty()</code></b></a>
29
- - <a href="#api_nan_has_real_named_property"><b><code>Nan::HasRealNamedProperty()</code></b></a>
30
- - <a href="#api_nan_has_real_indexed_property"><b><code>Nan::HasRealIndexedProperty()</code></b></a>
31
- - <a href="#api_nan_has_real_named_callback_property"><b><code>Nan::HasRealNamedCallbackProperty()</code></b></a>
32
- - <a href="#api_nan_get_real_named_property_in_prototype_chain"><b><code>Nan::GetRealNamedPropertyInPrototypeChain()</code></b></a>
33
- - <a href="#api_nan_get_real_named_property"><b><code>Nan::GetRealNamedProperty()</code></b></a>
34
- - <a href="#api_nan_call_as_function"><b><code>Nan::CallAsFunction()</code></b></a>
35
- - <a href="#api_nan_call_as_constructor"><b><code>Nan::CallAsConstructor()</code></b></a>
36
- - <a href="#api_nan_get_source_line"><b><code>Nan::GetSourceLine()</code></b></a>
37
- - <a href="#api_nan_get_line_number"><b><code>Nan::GetLineNumber()</code></b></a>
38
- - <a href="#api_nan_get_start_column"><b><code>Nan::GetStartColumn()</code></b></a>
39
- - <a href="#api_nan_get_end_column"><b><code>Nan::GetEndColumn()</code></b></a>
40
- - <a href="#api_nan_clone_element_at"><b><code>Nan::CloneElementAt()</code></b></a>
41
- - <a href="#api_nan_has_private"><b><code>Nan::HasPrivate()</code></b></a>
42
- - <a href="#api_nan_get_private"><b><code>Nan::GetPrivate()</code></b></a>
43
- - <a href="#api_nan_set_private"><b><code>Nan::SetPrivate()</code></b></a>
44
- - <a href="#api_nan_delete_private"><b><code>Nan::DeletePrivate()</code></b></a>
45
- - <a href="#api_nan_make_maybe"><b><code>Nan::MakeMaybe()</code></b></a>
46
-
47
- <a name="api_nan_maybe_local"></a>
48
- ### Nan::MaybeLocal
49
-
50
- A `Nan::MaybeLocal<T>` is a wrapper around [`v8::Local<T>`](https://v8docs.nodesource.com/node-8.16/de/deb/classv8_1_1_local.html) that enforces a check that determines whether the `v8::Local<T>` is empty before it can be used.
51
-
52
- If an API method returns a `Nan::MaybeLocal`, the API method can potentially fail either because an exception is thrown, or because an exception is pending, e.g. because a previous API call threw an exception that hasn't been caught yet, or because a `v8::TerminateExecution` exception was thrown. In that case, an empty `Nan::MaybeLocal` is returned.
53
-
54
- Definition:
55
-
56
- ```c++
57
- template<typename T> class Nan::MaybeLocal {
58
- public:
59
- MaybeLocal();
60
-
61
- template<typename S> MaybeLocal(v8::Local<S> that);
62
-
63
- bool IsEmpty() const;
64
-
65
- template<typename S> bool ToLocal(v8::Local<S> *out);
66
-
67
- // Will crash if the MaybeLocal<> is empty.
68
- v8::Local<T> ToLocalChecked();
69
-
70
- template<typename S> v8::Local<S> FromMaybe(v8::Local<S> default_value) const;
71
- };
72
- ```
73
-
74
- See the documentation for [`v8::MaybeLocal`](https://v8docs.nodesource.com/node-8.16/d8/d7d/classv8_1_1_maybe_local.html) for further details.
75
-
76
- <a name="api_nan_maybe"></a>
77
- ### Nan::Maybe
78
-
79
- A simple `Nan::Maybe` type, representing an object which may or may not have a value, see https://hackage.haskell.org/package/base/docs/Data-Maybe.html.
80
-
81
- If an API method returns a `Nan::Maybe<>`, the API method can potentially fail either because an exception is thrown, or because an exception is pending, e.g. because a previous API call threw an exception that hasn't been caught yet, or because a `v8::TerminateExecution` exception was thrown. In that case, a "Nothing" value is returned.
82
-
83
- Definition:
84
-
85
- ```c++
86
- template<typename T> class Nan::Maybe {
87
- public:
88
- bool IsNothing() const;
89
- bool IsJust() const;
90
-
91
- // Will crash if the Maybe<> is nothing.
92
- T FromJust();
93
-
94
- T FromMaybe(const T& default_value);
95
-
96
- bool operator==(const Maybe &other);
97
-
98
- bool operator!=(const Maybe &other);
99
- };
100
- ```
101
-
102
- See the documentation for [`v8::Maybe`](https://v8docs.nodesource.com/node-8.16/d9/d4b/classv8_1_1_maybe.html) for further details.
103
-
104
- <a name="api_nan_nothing"></a>
105
- ### Nan::Nothing
106
-
107
- Construct an empty `Nan::Maybe` type representing _nothing_.
108
-
109
- ```c++
110
- template<typename T> Nan::Maybe<T> Nan::Nothing();
111
- ```
112
-
113
- <a name="api_nan_just"></a>
114
- ### Nan::Just
115
-
116
- Construct a `Nan::Maybe` type representing _just_ a value.
117
-
118
- ```c++
119
- template<typename T> Nan::Maybe<T> Nan::Just(const T &t);
120
- ```
121
-
122
- <a name="api_nan_call"></a>
123
- ### Nan::Call()
124
-
125
- A helper method for calling a synchronous [`v8::Function#Call()`](https://v8docs.nodesource.com/node-8.16/d5/d54/classv8_1_1_function.html#a9c3d0e4e13ddd7721fce238aa5b94a11) in a way compatible across supported versions of V8.
126
-
127
- For asynchronous callbacks, use Nan::Callback::Call along with an AsyncResource.
128
-
129
- Signature:
130
-
131
- ```c++
132
- Nan::MaybeLocal<v8::Value> Nan::Call(v8::Local<v8::Function> fun, v8::Local<v8::Object> recv, int argc, v8::Local<v8::Value> argv[]);
133
- Nan::MaybeLocal<v8::Value> Nan::Call(const Nan::Callback& callback, v8::Local<v8::Object> recv,
134
- int argc, v8::Local<v8::Value> argv[]);
135
- Nan::MaybeLocal<v8::Value> Nan::Call(const Nan::Callback& callback, int argc, v8::Local<v8::Value> argv[]);
136
- ```
137
-
138
-
139
- <a name="api_nan_to_detail_string"></a>
140
- ### Nan::ToDetailString()
141
-
142
- A helper method for calling [`v8::Value#ToDetailString()`](https://v8docs.nodesource.com/node-8.16/dc/d0a/classv8_1_1_value.html#a2f9770296dc2c8d274bc8cc0dca243e5) in a way compatible across supported versions of V8.
143
-
144
- Signature:
145
-
146
- ```c++
147
- Nan::MaybeLocal<v8::String> Nan::ToDetailString(v8::Local<v8::Value> val);
148
- ```
149
-
150
-
151
- <a name="api_nan_to_array_index"></a>
152
- ### Nan::ToArrayIndex()
153
-
154
- A helper method for calling [`v8::Value#ToArrayIndex()`](https://v8docs.nodesource.com/node-8.16/dc/d0a/classv8_1_1_value.html#acc5bbef3c805ec458470c0fcd6f13493) in a way compatible across supported versions of V8.
155
-
156
- Signature:
157
-
158
- ```c++
159
- Nan::MaybeLocal<v8::Uint32> Nan::ToArrayIndex(v8::Local<v8::Value> val);
160
- ```
161
-
162
-
163
- <a name="api_nan_equals"></a>
164
- ### Nan::Equals()
165
-
166
- A helper method for calling [`v8::Value#Equals()`](https://v8docs.nodesource.com/node-8.16/dc/d0a/classv8_1_1_value.html#a08fba1d776a59bbf6864b25f9152c64b) in a way compatible across supported versions of V8.
167
-
168
- Signature:
169
-
170
- ```c++
171
- Nan::Maybe<bool> Nan::Equals(v8::Local<v8::Value> a, v8::Local<v8::Value>(b));
172
- ```
173
-
174
-
175
- <a name="api_nan_new_instance"></a>
176
- ### Nan::NewInstance()
177
-
178
- A helper method for calling [`v8::Function#NewInstance()`](https://v8docs.nodesource.com/node-8.16/d5/d54/classv8_1_1_function.html#ae477558b10c14b76ed00e8dbab44ce5b) and [`v8::ObjectTemplate#NewInstance()`](https://v8docs.nodesource.com/node-8.16/db/d5f/classv8_1_1_object_template.html#ad605a7543cfbc5dab54cdb0883d14ae4) in a way compatible across supported versions of V8.
179
-
180
- Signature:
181
-
182
- ```c++
183
- Nan::MaybeLocal<v8::Object> Nan::NewInstance(v8::Local<v8::Function> h);
184
- Nan::MaybeLocal<v8::Object> Nan::NewInstance(v8::Local<v8::Function> h, int argc, v8::Local<v8::Value> argv[]);
185
- Nan::MaybeLocal<v8::Object> Nan::NewInstance(v8::Local<v8::ObjectTemplate> h);
186
- ```
187
-
188
-
189
- <a name="api_nan_get_function"></a>
190
- ### Nan::GetFunction()
191
-
192
- A helper method for calling [`v8::FunctionTemplate#GetFunction()`](https://v8docs.nodesource.com/node-8.16/d8/d83/classv8_1_1_function_template.html#a56d904662a86eca78da37d9bb0ed3705) in a way compatible across supported versions of V8.
193
-
194
- Signature:
195
-
196
- ```c++
197
- Nan::MaybeLocal<v8::Function> Nan::GetFunction(v8::Local<v8::FunctionTemplate> t);
198
- ```
199
-
200
-
201
- <a name="api_nan_set"></a>
202
- ### Nan::Set()
203
-
204
- A helper method for calling [`v8::Object#Set()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a67604ea3734f170c66026064ea808f20) in a way compatible across supported versions of V8.
205
-
206
- Signature:
207
-
208
- ```c++
209
- Nan::Maybe<bool> Nan::Set(v8::Local<v8::Object> obj,
210
- v8::Local<v8::Value> key,
211
- v8::Local<v8::Value> value)
212
- Nan::Maybe<bool> Nan::Set(v8::Local<v8::Object> obj,
213
- uint32_t index,
214
- v8::Local<v8::Value> value);
215
- ```
216
-
217
-
218
- <a name="api_nan_define_own_property"></a>
219
- ### Nan::DefineOwnProperty()
220
-
221
- A helper method for calling [`v8::Object#DefineOwnProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a6f76b2ed605cb8f9185b92de0033a820) in a way compatible across supported versions of V8.
222
-
223
- Signature:
224
-
225
- ```c++
226
- Nan::Maybe<bool> Nan::DefineOwnProperty(v8::Local<v8::Object> obj,
227
- v8::Local<v8::String> key,
228
- v8::Local<v8::Value> value,
229
- v8::PropertyAttribute attribs = v8::None);
230
- ```
231
-
232
-
233
- <a name="api_nan_force_set"></a>
234
- ### <del>Nan::ForceSet()</del>
235
-
236
- Deprecated, use <a href="#api_nan_define_own_property"><code>Nan::DefineOwnProperty()</code></a>.
237
-
238
- <del>A helper method for calling [`v8::Object#ForceSet()`](https://v8docs.nodesource.com/node-0.12/db/d85/classv8_1_1_object.html#acfbdfd7427b516ebdb5c47c4df5ed96c) in a way compatible across supported versions of V8.</del>
239
-
240
- Signature:
241
-
242
- ```c++
243
- NAN_DEPRECATED Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object> obj,
244
- v8::Local<v8::Value> key,
245
- v8::Local<v8::Value> value,
246
- v8::PropertyAttribute attribs = v8::None);
247
- ```
248
-
249
-
250
- <a name="api_nan_get"></a>
251
- ### Nan::Get()
252
-
253
- A helper method for calling [`v8::Object#Get()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a2565f03e736694f6b1e1cf22a0b4eac2) in a way compatible across supported versions of V8.
254
-
255
- Signature:
256
-
257
- ```c++
258
- Nan::MaybeLocal<v8::Value> Nan::Get(v8::Local<v8::Object> obj,
259
- v8::Local<v8::Value> key);
260
- Nan::MaybeLocal<v8::Value> Nan::Get(v8::Local<v8::Object> obj, uint32_t index);
261
- ```
262
-
263
-
264
- <a name="api_nan_get_property_attribute"></a>
265
- ### Nan::GetPropertyAttributes()
266
-
267
- A helper method for calling [`v8::Object#GetPropertyAttributes()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a9b898894da3d1db2714fd9325a54fe57) in a way compatible across supported versions of V8.
268
-
269
- Signature:
270
-
271
- ```c++
272
- Nan::Maybe<v8::PropertyAttribute> Nan::GetPropertyAttributes(
273
- v8::Local<v8::Object> obj,
274
- v8::Local<v8::Value> key);
275
- ```
276
-
277
-
278
- <a name="api_nan_has"></a>
279
- ### Nan::Has()
280
-
281
- A helper method for calling [`v8::Object#Has()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ab3c3d89ea7c2f9afd08965bd7299a41d) in a way compatible across supported versions of V8.
282
-
283
- Signature:
284
-
285
- ```c++
286
- Nan::Maybe<bool> Nan::Has(v8::Local<v8::Object> obj, v8::Local<v8::String> key);
287
- Nan::Maybe<bool> Nan::Has(v8::Local<v8::Object> obj, uint32_t index);
288
- ```
289
-
290
-
291
- <a name="api_nan_delete"></a>
292
- ### Nan::Delete()
293
-
294
- A helper method for calling [`v8::Object#Delete()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a48e4a19b2cedff867eecc73ddb7d377f) in a way compatible across supported versions of V8.
295
-
296
- Signature:
297
-
298
- ```c++
299
- Nan::Maybe<bool> Nan::Delete(v8::Local<v8::Object> obj,
300
- v8::Local<v8::String> key);
301
- Nan::Maybe<bool> Nan::Delete(v8::Local<v8::Object> obj, uint32_t index);
302
- ```
303
-
304
-
305
- <a name="api_nan_get_property_names"></a>
306
- ### Nan::GetPropertyNames()
307
-
308
- A helper method for calling [`v8::Object#GetPropertyNames()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#aced885270cfd2c956367b5eedc7fbfe8) in a way compatible across supported versions of V8.
309
-
310
- Signature:
311
-
312
- ```c++
313
- Nan::MaybeLocal<v8::Array> Nan::GetPropertyNames(v8::Local<v8::Object> obj);
314
- ```
315
-
316
-
317
- <a name="api_nan_get_own_property_names"></a>
318
- ### Nan::GetOwnPropertyNames()
319
-
320
- A helper method for calling [`v8::Object#GetOwnPropertyNames()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a79a6e4d66049b9aa648ed4dfdb23e6eb) in a way compatible across supported versions of V8.
321
-
322
- Signature:
323
-
324
- ```c++
325
- Nan::MaybeLocal<v8::Array> Nan::GetOwnPropertyNames(v8::Local<v8::Object> obj);
326
- ```
327
-
328
-
329
- <a name="api_nan_set_prototype"></a>
330
- ### Nan::SetPrototype()
331
-
332
- A helper method for calling [`v8::Object#SetPrototype()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a442706b22fceda6e6d1f632122a9a9f4) in a way compatible across supported versions of V8.
333
-
334
- Signature:
335
-
336
- ```c++
337
- Nan::Maybe<bool> Nan::SetPrototype(v8::Local<v8::Object> obj,
338
- v8::Local<v8::Value> prototype);
339
- ```
340
-
341
-
342
- <a name="api_nan_object_proto_to_string"></a>
343
- ### Nan::ObjectProtoToString()
344
-
345
- A helper method for calling [`v8::Object#ObjectProtoToString()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ab7a92b4dcf822bef72f6c0ac6fea1f0b) in a way compatible across supported versions of V8.
346
-
347
- Signature:
348
-
349
- ```c++
350
- Nan::MaybeLocal<v8::String> Nan::ObjectProtoToString(v8::Local<v8::Object> obj);
351
- ```
352
-
353
-
354
- <a name="api_nan_has_own_property"></a>
355
- ### Nan::HasOwnProperty()
356
-
357
- A helper method for calling [`v8::Object#HasOwnProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ab7b7245442ca6de1e1c145ea3fd653ff) in a way compatible across supported versions of V8.
358
-
359
- Signature:
360
-
361
- ```c++
362
- Nan::Maybe<bool> Nan::HasOwnProperty(v8::Local<v8::Object> obj,
363
- v8::Local<v8::String> key);
364
- ```
365
-
366
-
367
- <a name="api_nan_has_real_named_property"></a>
368
- ### Nan::HasRealNamedProperty()
369
-
370
- A helper method for calling [`v8::Object#HasRealNamedProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ad8b80a59c9eb3c1e6c3cd6c84571f767) in a way compatible across supported versions of V8.
371
-
372
- Signature:
373
-
374
- ```c++
375
- Nan::Maybe<bool> Nan::HasRealNamedProperty(v8::Local<v8::Object> obj,
376
- v8::Local<v8::String> key);
377
- ```
378
-
379
-
380
- <a name="api_nan_has_real_indexed_property"></a>
381
- ### Nan::HasRealIndexedProperty()
382
-
383
- A helper method for calling [`v8::Object#HasRealIndexedProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#af94fc1135a5e74a2193fb72c3a1b9855) in a way compatible across supported versions of V8.
384
-
385
- Signature:
386
-
387
- ```c++
388
- Nan::Maybe<bool> Nan::HasRealIndexedProperty(v8::Local<v8::Object> obj,
389
- uint32_t index);
390
- ```
391
-
392
-
393
- <a name="api_nan_has_real_named_callback_property"></a>
394
- ### Nan::HasRealNamedCallbackProperty()
395
-
396
- A helper method for calling [`v8::Object#HasRealNamedCallbackProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#af743b7ea132b89f84d34d164d0668811) in a way compatible across supported versions of V8.
397
-
398
- Signature:
399
-
400
- ```c++
401
- Nan::Maybe<bool> Nan::HasRealNamedCallbackProperty(
402
- v8::Local<v8::Object> obj,
403
- v8::Local<v8::String> key);
404
- ```
405
-
406
-
407
- <a name="api_nan_get_real_named_property_in_prototype_chain"></a>
408
- ### Nan::GetRealNamedPropertyInPrototypeChain()
409
-
410
- A helper method for calling [`v8::Object#GetRealNamedPropertyInPrototypeChain()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a8700b1862e6b4783716964ba4d5e6172) in a way compatible across supported versions of V8.
411
-
412
- Signature:
413
-
414
- ```c++
415
- Nan::MaybeLocal<v8::Value> Nan::GetRealNamedPropertyInPrototypeChain(
416
- v8::Local<v8::Object> obj,
417
- v8::Local<v8::String> key);
418
- ```
419
-
420
-
421
- <a name="api_nan_get_real_named_property"></a>
422
- ### Nan::GetRealNamedProperty()
423
-
424
- A helper method for calling [`v8::Object#GetRealNamedProperty()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a84471a824576a5994fdd0ffcbf99ccc0) in a way compatible across supported versions of V8.
425
-
426
- Signature:
427
-
428
- ```c++
429
- Nan::MaybeLocal<v8::Value> Nan::GetRealNamedProperty(v8::Local<v8::Object> obj,
430
- v8::Local<v8::String> key);
431
- ```
432
-
433
-
434
- <a name="api_nan_call_as_function"></a>
435
- ### Nan::CallAsFunction()
436
-
437
- A helper method for calling [`v8::Object#CallAsFunction()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ad3ffc36f3dfc3592ce2a96bc047ee2cd) in a way compatible across supported versions of V8.
438
-
439
- Signature:
440
-
441
- ```c++
442
- Nan::MaybeLocal<v8::Value> Nan::CallAsFunction(v8::Local<v8::Object> obj,
443
- v8::Local<v8::Object> recv,
444
- int argc,
445
- v8::Local<v8::Value> argv[]);
446
- ```
447
-
448
-
449
- <a name="api_nan_call_as_constructor"></a>
450
- ### Nan::CallAsConstructor()
451
-
452
- A helper method for calling [`v8::Object#CallAsConstructor()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a50d571de50d0b0dfb28795619d07a01b) in a way compatible across supported versions of V8.
453
-
454
- Signature:
455
-
456
- ```c++
457
- Nan::MaybeLocal<v8::Value> Nan::CallAsConstructor(v8::Local<v8::Object> obj,
458
- int argc,
459
- v8::Local<v8::Value> argv[]);
460
- ```
461
-
462
-
463
- <a name="api_nan_get_source_line"></a>
464
- ### Nan::GetSourceLine()
465
-
466
- A helper method for calling [`v8::Message#GetSourceLine()`](https://v8docs.nodesource.com/node-8.16/d9/d28/classv8_1_1_message.html#a849f7a6c41549d83d8159825efccd23a) in a way compatible across supported versions of V8.
467
-
468
- Signature:
469
-
470
- ```c++
471
- Nan::MaybeLocal<v8::String> Nan::GetSourceLine(v8::Local<v8::Message> msg);
472
- ```
473
-
474
-
475
- <a name="api_nan_get_line_number"></a>
476
- ### Nan::GetLineNumber()
477
-
478
- A helper method for calling [`v8::Message#GetLineNumber()`](https://v8docs.nodesource.com/node-8.16/d9/d28/classv8_1_1_message.html#adbe46c10a88a6565f2732a2d2adf99b9) in a way compatible across supported versions of V8.
479
-
480
- Signature:
481
-
482
- ```c++
483
- Nan::Maybe<int> Nan::GetLineNumber(v8::Local<v8::Message> msg);
484
- ```
485
-
486
-
487
- <a name="api_nan_get_start_column"></a>
488
- ### Nan::GetStartColumn()
489
-
490
- A helper method for calling [`v8::Message#GetStartColumn()`](https://v8docs.nodesource.com/node-8.16/d9/d28/classv8_1_1_message.html#a60ede616ba3822d712e44c7a74487ba6) in a way compatible across supported versions of V8.
491
-
492
- Signature:
493
-
494
- ```c++
495
- Nan::Maybe<int> Nan::GetStartColumn(v8::Local<v8::Message> msg);
496
- ```
497
-
498
-
499
- <a name="api_nan_get_end_column"></a>
500
- ### Nan::GetEndColumn()
501
-
502
- A helper method for calling [`v8::Message#GetEndColumn()`](https://v8docs.nodesource.com/node-8.16/d9/d28/classv8_1_1_message.html#aaa004cf19e529da980bc19fcb76d93be) in a way compatible across supported versions of V8.
503
-
504
- Signature:
505
-
506
- ```c++
507
- Nan::Maybe<int> Nan::GetEndColumn(v8::Local<v8::Message> msg);
508
- ```
509
-
510
-
511
- <a name="api_nan_clone_element_at"></a>
512
- ### Nan::CloneElementAt()
513
-
514
- A helper method for calling [`v8::Array#CloneElementAt()`](https://v8docs.nodesource.com/node-4.8/d3/d32/classv8_1_1_array.html#a1d3a878d4c1c7cae974dd50a1639245e) in a way compatible across supported versions of V8.
515
-
516
- Signature:
517
-
518
- ```c++
519
- Nan::MaybeLocal<v8::Object> Nan::CloneElementAt(v8::Local<v8::Array> array, uint32_t index);
520
- ```
521
-
522
- <a name="api_nan_has_private"></a>
523
- ### Nan::HasPrivate()
524
-
525
- A helper method for calling [`v8::Object#HasPrivate()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#af68a0b98066cfdeb8f943e98a40ba08d) in a way compatible across supported versions of V8.
526
-
527
- Signature:
528
-
529
- ```c++
530
- Nan::Maybe<bool> Nan::HasPrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key);
531
- ```
532
-
533
- <a name="api_nan_get_private"></a>
534
- ### Nan::GetPrivate()
535
-
536
- A helper method for calling [`v8::Object#GetPrivate()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a169f2da506acbec34deadd9149a1925a) in a way compatible across supported versions of V8.
537
-
538
- Signature:
539
-
540
- ```c++
541
- Nan::MaybeLocal<v8::Value> Nan::GetPrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key);
542
- ```
543
-
544
- <a name="api_nan_set_private"></a>
545
- ### Nan::SetPrivate()
546
-
547
- A helper method for calling [`v8::Object#SetPrivate()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#ace1769b0f3b86bfe9fda1010916360ee) in a way compatible across supported versions of V8.
548
-
549
- Signature:
550
-
551
- ```c++
552
- Nan::Maybe<bool> Nan::SetPrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key, v8::Local<v8::Value> value);
553
- ```
554
-
555
- <a name="api_nan_delete_private"></a>
556
- ### Nan::DeletePrivate()
557
-
558
- A helper method for calling [`v8::Object#DeletePrivate()`](https://v8docs.nodesource.com/node-8.16/db/d85/classv8_1_1_object.html#a138bb32a304f3982be02ad499693b8fd) in a way compatible across supported versions of V8.
559
-
560
- Signature:
561
-
562
- ```c++
563
- Nan::Maybe<bool> Nan::DeletePrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key);
564
- ```
565
-
566
- <a name="api_nan_make_maybe"></a>
567
- ### Nan::MakeMaybe()
568
-
569
- Wraps a `v8::Local<>` in a `Nan::MaybeLocal<>`. When called with a `Nan::MaybeLocal<>` it just returns its argument. This is useful in generic template code that builds on NAN.
570
-
571
- Synopsis:
572
-
573
- ```c++
574
- MaybeLocal<v8::Number> someNumber = MakeMaybe(New<v8::Number>(3.141592654));
575
- MaybeLocal<v8::String> someString = MakeMaybe(New<v8::String>("probably"));
576
- ```
577
-
578
- Signature:
579
-
580
- ```c++
581
- template <typename T, template <typename> class MaybeMaybe>
582
- Nan::MaybeLocal<T> Nan::MakeMaybe(MaybeMaybe<T> v);
583
- ```