@contrast/agent 4.5.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/bin/VERSION +1 -1
  2. package/bin/linux/contrast-service +0 -0
  3. package/bin/mac/contrast-service +0 -0
  4. package/bin/windows/contrast-service.exe +0 -0
  5. package/lib/assess/membrane/source-membrane.js +4 -18
  6. package/lib/assess/policy/propagators.json +11 -21
  7. package/lib/assess/policy/rules.json +5 -0
  8. package/lib/assess/policy/signatures.json +15 -0
  9. package/lib/assess/propagators/dustjs/escape-html.js +22 -0
  10. package/lib/assess/propagators/dustjs/escape-js.js +22 -0
  11. package/lib/assess/propagators/encode-uri/encode-uri-component.js +22 -0
  12. package/lib/assess/propagators/encode-uri/encode-uri.js +22 -0
  13. package/lib/assess/propagators/index.js +0 -2
  14. package/lib/assess/propagators/joi/values.js +26 -11
  15. package/lib/assess/propagators/mustache/escape.js +22 -0
  16. package/lib/assess/propagators/path/common.js +155 -46
  17. package/lib/assess/propagators/path/join.js +5 -1
  18. package/lib/assess/propagators/path/normalize.js +1 -2
  19. package/lib/assess/propagators/path/resolve.js +11 -2
  20. package/lib/assess/propagators/template-escape.js +84 -0
  21. package/lib/assess/propagators/templates.js +2 -3
  22. package/lib/assess/sinks/dustjs-linkedin-xss.js +131 -0
  23. package/lib/core/arch-components/dynamodb.js +1 -2
  24. package/lib/core/arch-components/dynamodbv3.js +44 -0
  25. package/lib/core/arch-components/index.js +1 -0
  26. package/lib/core/arch-components/rethinkdb.js +53 -0
  27. package/lib/core/async-storage/hooks/bluebird.js +20 -0
  28. package/lib/core/config/options.js +2 -1
  29. package/lib/core/stacktrace.js +3 -4
  30. package/lib/feature-set.js +2 -1
  31. package/lib/hooks/frameworks/base.js +8 -2
  32. package/lib/hooks/frameworks/http.js +23 -16
  33. package/lib/hooks/frameworks/http2.js +73 -0
  34. package/lib/hooks/frameworks/index.js +8 -3
  35. package/lib/hooks/http.js +112 -128
  36. package/lib/hooks/patcher.js +69 -48
  37. package/lib/hooks/require.js +16 -22
  38. package/lib/instrumentation.js +0 -3
  39. package/lib/protect/rules/cmd-injection-command-backdoors/backdoor-detector.js +3 -3
  40. package/lib/protect/rules/signatures/reflected-xss/helpers/function-call.js +1 -1
  41. package/lib/protect/rules/xss/helpers/function-call.js +1 -1
  42. package/lib/util/clean-stack.js +1 -1
  43. package/lib/util/clean-string/brackets.js +3 -3
  44. package/lib/util/ip-analyzer.js +1 -1
  45. package/lib/util/some.js +27 -0
  46. package/lib/util/source-map.js +1 -1
  47. package/lib/util/xml-analyzer/external-entity-finder.js +1 -1
  48. package/package.json +14 -16
  49. package/lib/hooks/frameworks/https.js +0 -42
  50. package/node_modules/bindings/LICENSE.md +0 -22
  51. package/node_modules/bindings/README.md +0 -98
  52. package/node_modules/bindings/bindings.js +0 -221
  53. package/node_modules/bindings/package.json +0 -32
  54. package/node_modules/file-uri-to-path/.npmignore +0 -1
  55. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  56. package/node_modules/file-uri-to-path/History.md +0 -21
  57. package/node_modules/file-uri-to-path/LICENSE +0 -20
  58. package/node_modules/file-uri-to-path/README.md +0 -74
  59. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  60. package/node_modules/file-uri-to-path/index.js +0 -66
  61. package/node_modules/file-uri-to-path/package.json +0 -36
  62. package/node_modules/file-uri-to-path/test/test.js +0 -24
  63. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  64. package/node_modules/glossy/LICENSE +0 -19
  65. package/node_modules/glossy/README.md +0 -129
  66. package/node_modules/glossy/index.js +0 -12
  67. package/node_modules/glossy/lib/glossy/parse.js +0 -520
  68. package/node_modules/glossy/lib/glossy/produce.js +0 -459
  69. package/node_modules/glossy/package.json +0 -47
  70. package/node_modules/glossy/test/decide.js +0 -7
  71. package/node_modules/glossy/test/decode_pri.js +0 -24
  72. package/node_modules/glossy/test/parse_3164.js +0 -104
  73. package/node_modules/glossy/test/parse_5424.js +0 -106
  74. package/node_modules/glossy/test/parse_5848.js +0 -40
  75. package/node_modules/glossy/test/parse_8601.js +0 -14
  76. package/node_modules/glossy/test/parse_rfc3339.js +0 -9
  77. package/node_modules/glossy/test/produce.js +0 -162
  78. package/node_modules/glossy/test/runner.js +0 -40
  79. package/node_modules/glossy/test/structure_data.js +0 -24
  80. package/node_modules/nan/CHANGELOG.md +0 -537
  81. package/node_modules/nan/LICENSE.md +0 -13
  82. package/node_modules/nan/README.md +0 -455
  83. package/node_modules/nan/doc/asyncworker.md +0 -146
  84. package/node_modules/nan/doc/buffers.md +0 -54
  85. package/node_modules/nan/doc/callback.md +0 -76
  86. package/node_modules/nan/doc/converters.md +0 -41
  87. package/node_modules/nan/doc/errors.md +0 -226
  88. package/node_modules/nan/doc/json.md +0 -62
  89. package/node_modules/nan/doc/maybe_types.md +0 -583
  90. package/node_modules/nan/doc/methods.md +0 -664
  91. package/node_modules/nan/doc/new.md +0 -147
  92. package/node_modules/nan/doc/node_misc.md +0 -123
  93. package/node_modules/nan/doc/object_wrappers.md +0 -263
  94. package/node_modules/nan/doc/persistent.md +0 -296
  95. package/node_modules/nan/doc/scopes.md +0 -73
  96. package/node_modules/nan/doc/script.md +0 -38
  97. package/node_modules/nan/doc/string_bytes.md +0 -62
  98. package/node_modules/nan/doc/v8_internals.md +0 -199
  99. package/node_modules/nan/doc/v8_misc.md +0 -85
  100. package/node_modules/nan/include_dirs.js +0 -1
  101. package/node_modules/nan/nan.h +0 -2898
  102. package/node_modules/nan/nan_callbacks.h +0 -88
  103. package/node_modules/nan/nan_callbacks_12_inl.h +0 -514
  104. package/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
  105. package/node_modules/nan/nan_converters.h +0 -72
  106. package/node_modules/nan/nan_converters_43_inl.h +0 -68
  107. package/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
  108. package/node_modules/nan/nan_define_own_property_helper.h +0 -29
  109. package/node_modules/nan/nan_implementation_12_inl.h +0 -430
  110. package/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
  111. package/node_modules/nan/nan_json.h +0 -166
  112. package/node_modules/nan/nan_maybe_43_inl.h +0 -356
  113. package/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
  114. package/node_modules/nan/nan_new.h +0 -340
  115. package/node_modules/nan/nan_object_wrap.h +0 -156
  116. package/node_modules/nan/nan_persistent_12_inl.h +0 -132
  117. package/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
  118. package/node_modules/nan/nan_private.h +0 -73
  119. package/node_modules/nan/nan_string_bytes.h +0 -305
  120. package/node_modules/nan/nan_typedarray_contents.h +0 -96
  121. package/node_modules/nan/nan_weak.h +0 -437
  122. package/node_modules/nan/package.json +0 -41
  123. package/node_modules/nan/tools/1to2.js +0 -412
  124. package/node_modules/nan/tools/README.md +0 -14
  125. package/node_modules/nan/tools/package.json +0 -19
  126. package/node_modules/unix-dgram/LICENSE +0 -13
  127. package/node_modules/unix-dgram/README.md +0 -107
  128. package/node_modules/unix-dgram/binding.gyp +0 -20
  129. package/node_modules/unix-dgram/build/Makefile +0 -324
  130. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram/src/unix_dgram.o.d +0 -58
  131. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram.node.d +0 -1
  132. package/node_modules/unix-dgram/build/Release/.deps/Release/unix_dgram.node.d +0 -1
  133. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram/src/unix_dgram.o +0 -0
  134. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram.node +0 -0
  135. package/node_modules/unix-dgram/build/Release/unix_dgram.node +0 -0
  136. package/node_modules/unix-dgram/build/binding.Makefile +0 -6
  137. package/node_modules/unix-dgram/build/config.gypi +0 -213
  138. package/node_modules/unix-dgram/build/unix_dgram.target.mk +0 -159
  139. package/node_modules/unix-dgram/lib/unix_dgram.js +0 -168
  140. package/node_modules/unix-dgram/package.json +0 -36
  141. package/node_modules/unix-dgram/src/unix_dgram.cc +0 -404
  142. package/node_modules/unix-dgram/src/win_dummy.cc +0 -7
  143. package/node_modules/unix-dgram/test/test-connect-callback.js +0 -68
  144. package/node_modules/unix-dgram/test/test-connect.js +0 -53
  145. package/node_modules/unix-dgram/test/test-dgram-unix.js +0 -58
  146. package/node_modules/unix-dgram/test/test-send-error.js +0 -26
  147. package/node_modules/winston-syslog/.eslintrc +0 -7
  148. package/node_modules/winston-syslog/.travis.yml +0 -14
  149. package/node_modules/winston-syslog/CHANGELOG.md +0 -9
  150. package/node_modules/winston-syslog/LICENSE +0 -20
  151. package/node_modules/winston-syslog/README.md +0 -135
  152. package/node_modules/winston-syslog/lib/utils.js +0 -26
  153. package/node_modules/winston-syslog/lib/winston-syslog.js +0 -385
  154. package/node_modules/winston-syslog/package.json +0 -56
  155. package/node_modules/winston-syslog/test/format-test.js +0 -122
  156. package/node_modules/winston-syslog/test/syslog-test.js +0 -95
  157. package/node_modules/winston-syslog/test/unix-connect-test.js +0 -133
@@ -1,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
- ```