@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,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
-