@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,54 +0,0 @@
1
- ## Buffers
2
-
3
- NAN's `node::Buffer` helpers exist as the API has changed across supported Node versions. Use these methods to ensure compatibility.
4
-
5
- - <a href="#api_nan_new_buffer"><b><code>Nan::NewBuffer()</code></b></a>
6
- - <a href="#api_nan_copy_buffer"><b><code>Nan::CopyBuffer()</code></b></a>
7
- - <a href="#api_nan_free_callback"><b><code>Nan::FreeCallback()</code></b></a>
8
-
9
- <a name="api_nan_new_buffer"></a>
10
- ### Nan::NewBuffer()
11
-
12
- Allocate a new `node::Buffer` object with the specified size and optional data. Calls `node::Buffer::New()`.
13
-
14
- Note that when creating a `Buffer` using `Nan::NewBuffer()` and an existing `char*`, it is assumed that the ownership of the pointer is being transferred to the new `Buffer` for management.
15
- When a `node::Buffer` instance is garbage collected and a `FreeCallback` has not been specified, `data` will be disposed of via a call to `free()`.
16
- You _must not_ free the memory space manually once you have created a `Buffer` in this way.
17
-
18
- Signature:
19
-
20
- ```c++
21
- Nan::MaybeLocal<v8::Object> Nan::NewBuffer(uint32_t size)
22
- Nan::MaybeLocal<v8::Object> Nan::NewBuffer(char* data, uint32_t size)
23
- Nan::MaybeLocal<v8::Object> Nan::NewBuffer(char *data,
24
- size_t length,
25
- Nan::FreeCallback callback,
26
- void *hint)
27
- ```
28
-
29
-
30
- <a name="api_nan_copy_buffer"></a>
31
- ### Nan::CopyBuffer()
32
-
33
- Similar to [`Nan::NewBuffer()`](#api_nan_new_buffer) except that an implicit memcpy will occur within Node. Calls `node::Buffer::Copy()`.
34
-
35
- Management of the `char*` is left to the user, you should manually free the memory space if necessary as the new `Buffer` will have its own copy.
36
-
37
- Signature:
38
-
39
- ```c++
40
- Nan::MaybeLocal<v8::Object> Nan::CopyBuffer(const char *data, uint32_t size)
41
- ```
42
-
43
-
44
- <a name="api_nan_free_callback"></a>
45
- ### Nan::FreeCallback()
46
-
47
- A free callback that can be provided to [`Nan::NewBuffer()`](#api_nan_new_buffer).
48
- The supplied callback will be invoked when the `Buffer` undergoes garbage collection.
49
-
50
- Signature:
51
-
52
- ```c++
53
- typedef void (*FreeCallback)(char *data, void *hint);
54
- ```
@@ -1,76 +0,0 @@
1
- ## Nan::Callback
2
-
3
- `Nan::Callback` makes it easier to use `v8::Function` handles as callbacks. A class that wraps a `v8::Function` handle, protecting it from garbage collection and making it particularly useful for storage and use across asynchronous execution.
4
-
5
- - <a href="#api_nan_callback"><b><code>Nan::Callback</code></b></a>
6
-
7
- <a name="api_nan_callback"></a>
8
- ### Nan::Callback
9
-
10
- ```c++
11
- class Callback {
12
- public:
13
- Callback();
14
-
15
- explicit Callback(const v8::Local<v8::Function> &fn);
16
-
17
- ~Callback();
18
-
19
- bool operator==(const Callback &other) const;
20
-
21
- bool operator!=(const Callback &other) const;
22
-
23
- v8::Local<v8::Function> operator*() const;
24
-
25
- MaybeLocal<v8::Value> operator()(AsyncResource* async_resource,
26
- v8::Local<v8::Object> target,
27
- int argc = 0,
28
- v8::Local<v8::Value> argv[] = 0) const;
29
-
30
- MaybeLocal<v8::Value> operator()(AsyncResource* async_resource,
31
- int argc = 0,
32
- v8::Local<v8::Value> argv[] = 0) const;
33
-
34
- void SetFunction(const v8::Local<v8::Function> &fn);
35
-
36
- v8::Local<v8::Function> GetFunction() const;
37
-
38
- bool IsEmpty() const;
39
-
40
- void Reset(const v8::Local<v8::Function> &fn);
41
-
42
- void Reset();
43
-
44
- MaybeLocal<v8::Value> Call(v8::Local<v8::Object> target,
45
- int argc,
46
- v8::Local<v8::Value> argv[],
47
- AsyncResource* async_resource) const;
48
- MaybeLocal<v8::Value> Call(int argc,
49
- v8::Local<v8::Value> argv[],
50
- AsyncResource* async_resource) const;
51
-
52
- // Deprecated versions. Use the versions that accept an async_resource instead
53
- // as they run the callback in the correct async context as specified by the
54
- // resource. If you want to call a synchronous JS function (i.e. on a
55
- // non-empty JS stack), you can use Nan::Call instead.
56
- v8::Local<v8::Value> operator()(v8::Local<v8::Object> target,
57
- int argc = 0,
58
- v8::Local<v8::Value> argv[] = 0) const;
59
-
60
- v8::Local<v8::Value> operator()(int argc = 0,
61
- v8::Local<v8::Value> argv[] = 0) const;
62
- v8::Local<v8::Value> Call(v8::Local<v8::Object> target,
63
- int argc,
64
- v8::Local<v8::Value> argv[]) const;
65
-
66
- v8::Local<v8::Value> Call(int argc, v8::Local<v8::Value> argv[]) const;
67
- };
68
- ```
69
-
70
- Example usage:
71
-
72
- ```c++
73
- v8::Local<v8::Function> function;
74
- Nan::Callback callback(function);
75
- callback.Call(0, 0);
76
- ```
@@ -1,41 +0,0 @@
1
- ## Converters
2
-
3
- NAN contains functions that convert `v8::Value`s to other `v8::Value` types and native types. Since type conversion is not guaranteed to succeed, they return `Nan::Maybe` types. These converters can be used in place of `value->ToX()` and `value->XValue()` (where `X` is one of the types, e.g. `Boolean`) in a way that provides a consistent interface across V8 versions. Newer versions of V8 use the new `v8::Maybe` and `v8::MaybeLocal` types for these conversions, older versions don't have this functionality so it is provided by NAN.
4
-
5
- - <a href="#api_nan_to"><b><code>Nan::To()</code></b></a>
6
-
7
- <a name="api_nan_to"></a>
8
- ### Nan::To()
9
-
10
- Converts a `v8::Local<v8::Value>` to a different subtype of `v8::Value` or to a native data type. Returns a `Nan::MaybeLocal<>` or a `Nan::Maybe<>` accordingly.
11
-
12
- See [maybe_types.md](./maybe_types.md) for more information on `Nan::Maybe` types.
13
-
14
- Signatures:
15
-
16
- ```c++
17
- // V8 types
18
- Nan::MaybeLocal<v8::Boolean> Nan::To<v8::Boolean>(v8::Local<v8::Value> val);
19
- Nan::MaybeLocal<v8::Int32> Nan::To<v8::Int32>(v8::Local<v8::Value> val);
20
- Nan::MaybeLocal<v8::Integer> Nan::To<v8::Integer>(v8::Local<v8::Value> val);
21
- Nan::MaybeLocal<v8::Object> Nan::To<v8::Object>(v8::Local<v8::Value> val);
22
- Nan::MaybeLocal<v8::Number> Nan::To<v8::Number>(v8::Local<v8::Value> val);
23
- Nan::MaybeLocal<v8::String> Nan::To<v8::String>(v8::Local<v8::Value> val);
24
- Nan::MaybeLocal<v8::Uint32> Nan::To<v8::Uint32>(v8::Local<v8::Value> val);
25
-
26
- // Native types
27
- Nan::Maybe<bool> Nan::To<bool>(v8::Local<v8::Value> val);
28
- Nan::Maybe<double> Nan::To<double>(v8::Local<v8::Value> val);
29
- Nan::Maybe<int32_t> Nan::To<int32_t>(v8::Local<v8::Value> val);
30
- Nan::Maybe<int64_t> Nan::To<int64_t>(v8::Local<v8::Value> val);
31
- Nan::Maybe<uint32_t> Nan::To<uint32_t>(v8::Local<v8::Value> val);
32
- ```
33
-
34
- ### Example
35
-
36
- ```c++
37
- v8::Local<v8::Value> val;
38
- Nan::MaybeLocal<v8::String> str = Nan::To<v8::String>(val);
39
- Nan::Maybe<double> d = Nan::To<double>(val);
40
- ```
41
-
@@ -1,226 +0,0 @@
1
- ## Errors
2
-
3
- NAN includes helpers for creating, throwing and catching Errors as much of this functionality varies across the supported versions of V8 and must be abstracted.
4
-
5
- Note that an Error object is simply a specialized form of `v8::Value`.
6
-
7
- Also consult the V8 Embedders Guide section on [Exceptions](https://developers.google.com/v8/embed#exceptions) for more information.
8
-
9
- - <a href="#api_nan_error"><b><code>Nan::Error()</code></b></a>
10
- - <a href="#api_nan_range_error"><b><code>Nan::RangeError()</code></b></a>
11
- - <a href="#api_nan_reference_error"><b><code>Nan::ReferenceError()</code></b></a>
12
- - <a href="#api_nan_syntax_error"><b><code>Nan::SyntaxError()</code></b></a>
13
- - <a href="#api_nan_type_error"><b><code>Nan::TypeError()</code></b></a>
14
- - <a href="#api_nan_throw_error"><b><code>Nan::ThrowError()</code></b></a>
15
- - <a href="#api_nan_throw_range_error"><b><code>Nan::ThrowRangeError()</code></b></a>
16
- - <a href="#api_nan_throw_reference_error"><b><code>Nan::ThrowReferenceError()</code></b></a>
17
- - <a href="#api_nan_throw_syntax_error"><b><code>Nan::ThrowSyntaxError()</code></b></a>
18
- - <a href="#api_nan_throw_type_error"><b><code>Nan::ThrowTypeError()</code></b></a>
19
- - <a href="#api_nan_fatal_exception"><b><code>Nan::FatalException()</code></b></a>
20
- - <a href="#api_nan_errno_exception"><b><code>Nan::ErrnoException()</code></b></a>
21
- - <a href="#api_nan_try_catch"><b><code>Nan::TryCatch</code></b></a>
22
-
23
-
24
- <a name="api_nan_error"></a>
25
- ### Nan::Error()
26
-
27
- Create a new Error object using the [v8::Exception](https://v8docs.nodesource.com/node-8.16/da/d6a/classv8_1_1_exception.html) class in a way that is compatible across the supported versions of V8.
28
-
29
- Note that an Error object is simply a specialized form of `v8::Value`.
30
-
31
- Signature:
32
-
33
- ```c++
34
- v8::Local<v8::Value> Nan::Error(const char *msg);
35
- v8::Local<v8::Value> Nan::Error(v8::Local<v8::String> msg);
36
- ```
37
-
38
-
39
- <a name="api_nan_range_error"></a>
40
- ### Nan::RangeError()
41
-
42
- Create a new RangeError object using the [v8::Exception](https://v8docs.nodesource.com/node-8.16/da/d6a/classv8_1_1_exception.html) class in a way that is compatible across the supported versions of V8.
43
-
44
- Note that an RangeError object is simply a specialized form of `v8::Value`.
45
-
46
- Signature:
47
-
48
- ```c++
49
- v8::Local<v8::Value> Nan::RangeError(const char *msg);
50
- v8::Local<v8::Value> Nan::RangeError(v8::Local<v8::String> msg);
51
- ```
52
-
53
-
54
- <a name="api_nan_reference_error"></a>
55
- ### Nan::ReferenceError()
56
-
57
- Create a new ReferenceError object using the [v8::Exception](https://v8docs.nodesource.com/node-8.16/da/d6a/classv8_1_1_exception.html) class in a way that is compatible across the supported versions of V8.
58
-
59
- Note that an ReferenceError object is simply a specialized form of `v8::Value`.
60
-
61
- Signature:
62
-
63
- ```c++
64
- v8::Local<v8::Value> Nan::ReferenceError(const char *msg);
65
- v8::Local<v8::Value> Nan::ReferenceError(v8::Local<v8::String> msg);
66
- ```
67
-
68
-
69
- <a name="api_nan_syntax_error"></a>
70
- ### Nan::SyntaxError()
71
-
72
- Create a new SyntaxError object using the [v8::Exception](https://v8docs.nodesource.com/node-8.16/da/d6a/classv8_1_1_exception.html) class in a way that is compatible across the supported versions of V8.
73
-
74
- Note that an SyntaxError object is simply a specialized form of `v8::Value`.
75
-
76
- Signature:
77
-
78
- ```c++
79
- v8::Local<v8::Value> Nan::SyntaxError(const char *msg);
80
- v8::Local<v8::Value> Nan::SyntaxError(v8::Local<v8::String> msg);
81
- ```
82
-
83
-
84
- <a name="api_nan_type_error"></a>
85
- ### Nan::TypeError()
86
-
87
- Create a new TypeError object using the [v8::Exception](https://v8docs.nodesource.com/node-8.16/da/d6a/classv8_1_1_exception.html) class in a way that is compatible across the supported versions of V8.
88
-
89
- Note that an TypeError object is simply a specialized form of `v8::Value`.
90
-
91
- Signature:
92
-
93
- ```c++
94
- v8::Local<v8::Value> Nan::TypeError(const char *msg);
95
- v8::Local<v8::Value> Nan::TypeError(v8::Local<v8::String> msg);
96
- ```
97
-
98
-
99
- <a name="api_nan_throw_error"></a>
100
- ### Nan::ThrowError()
101
-
102
- Throw an Error object (a specialized `v8::Value` as above) in the current context. If a `msg` is provided, a new Error object will be created.
103
-
104
- Signature:
105
-
106
- ```c++
107
- void Nan::ThrowError(const char *msg);
108
- void Nan::ThrowError(v8::Local<v8::String> msg);
109
- void Nan::ThrowError(v8::Local<v8::Value> error);
110
- ```
111
-
112
-
113
- <a name="api_nan_throw_range_error"></a>
114
- ### Nan::ThrowRangeError()
115
-
116
- Throw an RangeError object (a specialized `v8::Value` as above) in the current context. If a `msg` is provided, a new RangeError object will be created.
117
-
118
- Signature:
119
-
120
- ```c++
121
- void Nan::ThrowRangeError(const char *msg);
122
- void Nan::ThrowRangeError(v8::Local<v8::String> msg);
123
- void Nan::ThrowRangeError(v8::Local<v8::Value> error);
124
- ```
125
-
126
-
127
- <a name="api_nan_throw_reference_error"></a>
128
- ### Nan::ThrowReferenceError()
129
-
130
- Throw an ReferenceError object (a specialized `v8::Value` as above) in the current context. If a `msg` is provided, a new ReferenceError object will be created.
131
-
132
- Signature:
133
-
134
- ```c++
135
- void Nan::ThrowReferenceError(const char *msg);
136
- void Nan::ThrowReferenceError(v8::Local<v8::String> msg);
137
- void Nan::ThrowReferenceError(v8::Local<v8::Value> error);
138
- ```
139
-
140
-
141
- <a name="api_nan_throw_syntax_error"></a>
142
- ### Nan::ThrowSyntaxError()
143
-
144
- Throw an SyntaxError object (a specialized `v8::Value` as above) in the current context. If a `msg` is provided, a new SyntaxError object will be created.
145
-
146
- Signature:
147
-
148
- ```c++
149
- void Nan::ThrowSyntaxError(const char *msg);
150
- void Nan::ThrowSyntaxError(v8::Local<v8::String> msg);
151
- void Nan::ThrowSyntaxError(v8::Local<v8::Value> error);
152
- ```
153
-
154
-
155
- <a name="api_nan_throw_type_error"></a>
156
- ### Nan::ThrowTypeError()
157
-
158
- Throw an TypeError object (a specialized `v8::Value` as above) in the current context. If a `msg` is provided, a new TypeError object will be created.
159
-
160
- Signature:
161
-
162
- ```c++
163
- void Nan::ThrowTypeError(const char *msg);
164
- void Nan::ThrowTypeError(v8::Local<v8::String> msg);
165
- void Nan::ThrowTypeError(v8::Local<v8::Value> error);
166
- ```
167
-
168
- <a name="api_nan_fatal_exception"></a>
169
- ### Nan::FatalException()
170
-
171
- Replaces `node::FatalException()` which has a different API across supported versions of Node. For use with [`Nan::TryCatch`](#api_nan_try_catch).
172
-
173
- Signature:
174
-
175
- ```c++
176
- void Nan::FatalException(const Nan::TryCatch& try_catch);
177
- ```
178
-
179
- <a name="api_nan_errno_exception"></a>
180
- ### Nan::ErrnoException()
181
-
182
- Replaces `node::ErrnoException()` which has a different API across supported versions of Node.
183
-
184
- Signature:
185
-
186
- ```c++
187
- v8::Local<v8::Value> Nan::ErrnoException(int errorno,
188
- const char* syscall = NULL,
189
- const char* message = NULL,
190
- const char* path = NULL);
191
- ```
192
-
193
-
194
- <a name="api_nan_try_catch"></a>
195
- ### Nan::TryCatch
196
-
197
- A simple wrapper around [`v8::TryCatch`](https://v8docs.nodesource.com/node-8.16/d4/dc6/classv8_1_1_try_catch.html) compatible with all supported versions of V8. Can be used as a direct replacement in most cases. See also [`Nan::FatalException()`](#api_nan_fatal_exception) for an internal use compatible with `node::FatalException`.
198
-
199
- Signature:
200
-
201
- ```c++
202
- class Nan::TryCatch {
203
- public:
204
- Nan::TryCatch();
205
-
206
- bool HasCaught() const;
207
-
208
- bool CanContinue() const;
209
-
210
- v8::Local<v8::Value> ReThrow();
211
-
212
- v8::Local<v8::Value> Exception() const;
213
-
214
- // Nan::MaybeLocal for older versions of V8
215
- v8::MaybeLocal<v8::Value> StackTrace() const;
216
-
217
- v8::Local<v8::Message> Message() const;
218
-
219
- void Reset();
220
-
221
- void SetVerbose(bool value);
222
-
223
- void SetCaptureMessage(bool value);
224
- };
225
- ```
226
-
@@ -1,62 +0,0 @@
1
- ## JSON
2
-
3
- The _JSON_ object provides the c++ versions of the methods offered by the `JSON` object in javascript. V8 exposes these methods via the `v8::JSON` object.
4
-
5
- - <a href="#api_nan_json_parse"><b><code>Nan::JSON.Parse</code></b></a>
6
- - <a href="#api_nan_json_stringify"><b><code>Nan::JSON.Stringify</code></b></a>
7
-
8
- Refer to the V8 JSON object in the [V8 documentation](https://v8docs.nodesource.com/node-8.16/da/d6f/classv8_1_1_j_s_o_n.html) for more information about these methods and their arguments.
9
-
10
- <a name="api_nan_json_parse"></a>
11
-
12
- ### Nan::JSON.Parse
13
-
14
- A simple wrapper around [`v8::JSON::Parse`](https://v8docs.nodesource.com/node-8.16/da/d6f/classv8_1_1_j_s_o_n.html#a936310d2540fb630ed37d3ee3ffe4504).
15
-
16
- Definition:
17
-
18
- ```c++
19
- Nan::MaybeLocal<v8::Value> Nan::JSON::Parse(v8::Local<v8::String> json_string);
20
- ```
21
-
22
- Use `JSON.Parse(json_string)` to parse a string into a `v8::Value`.
23
-
24
- Example:
25
-
26
- ```c++
27
- v8::Local<v8::String> json_string = Nan::New("{ \"JSON\": \"object\" }").ToLocalChecked();
28
-
29
- Nan::JSON NanJSON;
30
- Nan::MaybeLocal<v8::Value> result = NanJSON.Parse(json_string);
31
- if (!result.IsEmpty()) {
32
- v8::Local<v8::Value> val = result.ToLocalChecked();
33
- }
34
- ```
35
-
36
- <a name="api_nan_json_stringify"></a>
37
-
38
- ### Nan::JSON.Stringify
39
-
40
- A simple wrapper around [`v8::JSON::Stringify`](https://v8docs.nodesource.com/node-8.16/da/d6f/classv8_1_1_j_s_o_n.html#a44b255c3531489ce43f6110209138860).
41
-
42
- Definition:
43
-
44
- ```c++
45
- Nan::MaybeLocal<v8::String> Nan::JSON::Stringify(v8::Local<v8::Object> json_object, v8::Local<v8::String> gap = v8::Local<v8::String>());
46
- ```
47
-
48
- Use `JSON.Stringify(value)` to stringify a `v8::Object`.
49
-
50
- Example:
51
-
52
- ```c++
53
- // using `v8::Local<v8::Value> val` from the `JSON::Parse` example
54
- v8::Local<v8::Object> obj = Nan::To<v8::Object>(val).ToLocalChecked();
55
-
56
- Nan::JSON NanJSON;
57
- Nan::MaybeLocal<v8::String> result = NanJSON.Stringify(obj);
58
- if (!result.IsEmpty()) {
59
- v8::Local<v8::String> stringified = result.ToLocalChecked();
60
- }
61
- ```
62
-