@netlify/plugin-nextjs 4.40.0 → 4.40.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/helpers/edge.js +4 -2
- package/lib/templates/getHandler.js +1 -2
- package/lib/templates/handlerUtils.js +14 -1
- package/lib/templates/server.js +9 -8
- package/lib/templates/vendor.js +20 -0
- package/package.json +7 -4
- package/src/templates/edge/next-dev.js +3 -3
- package/src/templates/edge/shims.js +6 -6
- package/src/templates/edge-shared/next-utils.ts +3 -3
- package/src/templates/edge-shared/utils.ts +1 -1
- package/src/templates/vendor/deno.land/std@0.134.0/fmt/colors.ts +536 -0
- package/src/templates/vendor/deno.land/std@0.134.0/testing/_diff.ts +360 -0
- package/src/templates/vendor/deno.land/std@0.134.0/testing/asserts.ts +866 -0
- package/src/templates/vendor/deno.land/std@0.175.0/_util/asserts.ts +25 -0
- package/src/templates/vendor/deno.land/std@0.175.0/_util/os.ts +23 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/abortable.ts +149 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/deadline.ts +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/debounce.ts +79 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/deferred.ts +48 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/delay.ts +67 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/mod.ts +18 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/mux_async_iterator.ts +97 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/pool.ts +95 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/retry.ts +81 -0
- package/src/templates/vendor/deno.land/std@0.175.0/async/tee.ts +100 -0
- package/src/templates/vendor/deno.land/std@0.175.0/bytes/index_of_needle.ts +49 -0
- package/src/templates/vendor/deno.land/std@0.175.0/crypto/timing_safe_equal.ts +29 -0
- package/src/templates/vendor/deno.land/std@0.175.0/datetime/to_imf.ts +45 -0
- package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64.ts +144 -0
- package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64url.ts +70 -0
- package/src/templates/vendor/deno.land/std@0.175.0/flags/mod.ts +785 -0
- package/src/templates/vendor/deno.land/std@0.175.0/fmt/colors.ts +569 -0
- package/src/templates/vendor/deno.land/std@0.175.0/fmt/printf.ts +939 -0
- package/src/templates/vendor/deno.land/std@0.175.0/http/cookie.ts +403 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_core.ts +77 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_events.d.ts +848 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_events.mjs +1033 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_global.d.ts +66 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_next_tick.ts +173 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/exiting.ts +4 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/process.ts +131 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/stdio.mjs +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_process/streams.mjs +146 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.d.ts +1488 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.mjs +746 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_util/_util_callbackify.ts +129 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/_utils.ts +206 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/assert.ts +940 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/assertion_error.ts +579 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/async_hooks.ts +331 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/buffer.ts +13 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/events.ts +14 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.d.ts +2074 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.mjs +2607 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/_keys.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/constants.ts +5 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/error_codes.ts +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/errors.ts +2867 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/fixed_queue.ts +123 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/hide_stack_frames.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/net.ts +95 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/normalize_encoding.mjs +72 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/options.ts +45 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/primordials.mjs +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/process/per_thread.mjs +272 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/callbacks.mjs +137 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/utils.mjs +580 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/destroy.mjs +320 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/end-of-stream.mjs +229 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/utils.mjs +242 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/comparisons.ts +669 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/debuglog.ts +118 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/inspect.mjs +2237 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/types.ts +113 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util.mjs +143 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal/validators.mjs +317 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_libuv_winerror.ts +229 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_listen.ts +16 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_node.ts +18 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_timingSafeEqual.ts +12 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_utils.ts +86 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_winerror.ts +16873 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/ares.ts +66 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/async_wrap.ts +152 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/buffer.ts +130 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/cares_wrap.ts +541 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/config.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/connection_wrap.ts +80 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/constants.ts +900 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/contextify.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/credentials.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/crypto.ts +14 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/errors.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_dir.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_event_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/handle_wrap.ts +50 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/heap_utils.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/http_parser.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/icu.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/inspector.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/js_stream.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/messaging.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/mod.ts +108 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/module_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/native_module.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/natives.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_file.ts +84 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_options.ts +39 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/options.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/os.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/performance.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/pipe_wrap.ts +392 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/process_methods.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/report.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/serdes.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/signal_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/spawn_sync.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/stream_wrap.ts +354 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/string_decoder.ts +15 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/symbols.ts +27 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/task_queue.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tcp_wrap.ts +488 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/timers.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tls_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/trace_events.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tty_wrap.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/types.ts +186 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/udp_wrap.ts +496 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/url.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/util.ts +126 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/uv.ts +437 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/v8.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/worker.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/zlib.ts +3 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/process.ts +705 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/stream.ts +37 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/string_decoder.ts +337 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/util/types.ts +4 -0
- package/src/templates/vendor/deno.land/std@0.175.0/node/util.ts +289 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_constants.ts +49 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_interface.ts +30 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/_util.ts +194 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/common.ts +40 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/glob.ts +418 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/mod.ts +53 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/posix.ts +487 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/separator.ts +7 -0
- package/src/templates/vendor/deno.land/std@0.175.0/path/win32.ts +962 -0
- package/src/templates/vendor/deno.land/std@0.175.0/streams/write_all.ts +64 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/_diff.ts +440 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/_format.ts +23 -0
- package/src/templates/vendor/deno.land/std@0.175.0/testing/asserts.ts +906 -0
- package/src/templates/vendor/deno.land/std@0.175.0/types.d.ts +89 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts +133 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/asyncify.js +112 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.d.ts +88 -0
- package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.js +974 -0
- package/src/templates/vendor/deno.land/x/path_to_regexp@v6.2.1/index.ts +621 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js +13 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js +12 -0
- package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js +5 -0
- package/src/templates/vendor/import_map.json +13 -0
- package/src/templates/vendor/raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts +50 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
//
|
|
3
|
+
// Adapted from Node.js. Copyright Joyent, Inc. and other Node contributors.
|
|
4
|
+
//
|
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
6
|
+
// copy of this software and associated documentation files (the
|
|
7
|
+
// "Software"), to deal in the Software without restriction, including
|
|
8
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
10
|
+
// persons to whom the Software is furnished to do so, subject to the
|
|
11
|
+
// following conditions:
|
|
12
|
+
//
|
|
13
|
+
// The above copyright notice and this permission notice shall be included
|
|
14
|
+
// in all copies or substantial portions of the Software.
|
|
15
|
+
//
|
|
16
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
17
|
+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
19
|
+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
20
|
+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
21
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
22
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
import * as bindingTypes from "../../internal_binding/types.ts";
|
|
25
|
+
export { isCryptoKey, isKeyObject } from "../crypto/_keys.ts";
|
|
26
|
+
|
|
27
|
+
// https://tc39.es/ecma262/#sec-get-%typedarray%.prototype-@@tostringtag
|
|
28
|
+
const _getTypedArrayToStringTag = Object.getOwnPropertyDescriptor(
|
|
29
|
+
Object.getPrototypeOf(Uint8Array).prototype,
|
|
30
|
+
Symbol.toStringTag,
|
|
31
|
+
)!.get!;
|
|
32
|
+
|
|
33
|
+
export function isArrayBufferView(value: unknown): boolean {
|
|
34
|
+
return ArrayBuffer.isView(value);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function isBigInt64Array(value: unknown): boolean {
|
|
38
|
+
return _getTypedArrayToStringTag.call(value) === "BigInt64Array";
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function isBigUint64Array(value: unknown): boolean {
|
|
42
|
+
return _getTypedArrayToStringTag.call(value) === "BigUint64Array";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function isFloat32Array(value: unknown): boolean {
|
|
46
|
+
return _getTypedArrayToStringTag.call(value) === "Float32Array";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function isFloat64Array(value: unknown): boolean {
|
|
50
|
+
return _getTypedArrayToStringTag.call(value) === "Float64Array";
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function isInt8Array(value: unknown): boolean {
|
|
54
|
+
return _getTypedArrayToStringTag.call(value) === "Int8Array";
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function isInt16Array(value: unknown): boolean {
|
|
58
|
+
return _getTypedArrayToStringTag.call(value) === "Int16Array";
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function isInt32Array(value: unknown): boolean {
|
|
62
|
+
return _getTypedArrayToStringTag.call(value) === "Int32Array";
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function isTypedArray(value: unknown): boolean {
|
|
66
|
+
return _getTypedArrayToStringTag.call(value) !== undefined;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function isUint8Array(value: unknown): value is Uint8Array {
|
|
70
|
+
return _getTypedArrayToStringTag.call(value) === "Uint8Array";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function isUint8ClampedArray(value: unknown): boolean {
|
|
74
|
+
return _getTypedArrayToStringTag.call(value) === "Uint8ClampedArray";
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function isUint16Array(value: unknown): boolean {
|
|
78
|
+
return _getTypedArrayToStringTag.call(value) === "Uint16Array";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function isUint32Array(value: unknown): boolean {
|
|
82
|
+
return _getTypedArrayToStringTag.call(value) === "Uint32Array";
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export const {
|
|
86
|
+
// isExternal,
|
|
87
|
+
isDate,
|
|
88
|
+
isArgumentsObject,
|
|
89
|
+
isBigIntObject,
|
|
90
|
+
isBooleanObject,
|
|
91
|
+
isNumberObject,
|
|
92
|
+
isStringObject,
|
|
93
|
+
isSymbolObject,
|
|
94
|
+
isNativeError,
|
|
95
|
+
isRegExp,
|
|
96
|
+
isAsyncFunction,
|
|
97
|
+
isGeneratorFunction,
|
|
98
|
+
isGeneratorObject,
|
|
99
|
+
isPromise,
|
|
100
|
+
isMap,
|
|
101
|
+
isSet,
|
|
102
|
+
isMapIterator,
|
|
103
|
+
isSetIterator,
|
|
104
|
+
isWeakMap,
|
|
105
|
+
isWeakSet,
|
|
106
|
+
isArrayBuffer,
|
|
107
|
+
isDataView,
|
|
108
|
+
isSharedArrayBuffer,
|
|
109
|
+
isProxy,
|
|
110
|
+
isModuleNamespaceObject,
|
|
111
|
+
isAnyArrayBuffer,
|
|
112
|
+
isBoxedPrimitive,
|
|
113
|
+
} = bindingTypes;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
import { validateFunction } from "./validators.mjs";
|
|
3
|
+
import { normalizeEncoding, slowCases } from "./normalize_encoding.mjs";
|
|
4
|
+
export { normalizeEncoding, slowCases };
|
|
5
|
+
import { ObjectCreate, StringPrototypeToUpperCase } from "./primordials.mjs";
|
|
6
|
+
import { ERR_UNKNOWN_SIGNAL } from "./errors.ts";
|
|
7
|
+
import { os } from "../internal_binding/constants.ts";
|
|
8
|
+
|
|
9
|
+
const { signals } = os;
|
|
10
|
+
|
|
11
|
+
export const customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
|
|
12
|
+
export const kEnumerableProperty = Object.create(null);
|
|
13
|
+
kEnumerableProperty.enumerable = true;
|
|
14
|
+
|
|
15
|
+
export const kEmptyObject = Object.freeze(Object.create(null));
|
|
16
|
+
|
|
17
|
+
export function once(callback) {
|
|
18
|
+
let called = false;
|
|
19
|
+
return function (...args) {
|
|
20
|
+
if (called) return;
|
|
21
|
+
called = true;
|
|
22
|
+
Reflect.apply(callback, this, args);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function createDeferredPromise() {
|
|
27
|
+
let resolve;
|
|
28
|
+
let reject;
|
|
29
|
+
const promise = new Promise((res, rej) => {
|
|
30
|
+
resolve = res;
|
|
31
|
+
reject = rej;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return { promise, resolve, reject };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// In addition to being accessible through util.promisify.custom,
|
|
38
|
+
// this symbol is registered globally and can be accessed in any environment as
|
|
39
|
+
// Symbol.for('nodejs.util.promisify.custom').
|
|
40
|
+
const kCustomPromisifiedSymbol = Symbol.for("nodejs.util.promisify.custom");
|
|
41
|
+
// This is an internal Node symbol used by functions returning multiple
|
|
42
|
+
// arguments, e.g. ['bytesRead', 'buffer'] for fs.read().
|
|
43
|
+
const kCustomPromisifyArgsSymbol = Symbol.for(
|
|
44
|
+
"nodejs.util.promisify.customArgs",
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
export const customPromisifyArgs = kCustomPromisifyArgsSymbol;
|
|
48
|
+
|
|
49
|
+
export function promisify(
|
|
50
|
+
original,
|
|
51
|
+
) {
|
|
52
|
+
validateFunction(original, "original");
|
|
53
|
+
if (original[kCustomPromisifiedSymbol]) {
|
|
54
|
+
const fn = original[kCustomPromisifiedSymbol];
|
|
55
|
+
|
|
56
|
+
validateFunction(fn, "util.promisify.custom");
|
|
57
|
+
|
|
58
|
+
return Object.defineProperty(fn, kCustomPromisifiedSymbol, {
|
|
59
|
+
value: fn,
|
|
60
|
+
enumerable: false,
|
|
61
|
+
writable: false,
|
|
62
|
+
configurable: true,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Names to create an object from in case the callback receives multiple
|
|
67
|
+
// arguments, e.g. ['bytesRead', 'buffer'] for fs.read.
|
|
68
|
+
const argumentNames = original[kCustomPromisifyArgsSymbol];
|
|
69
|
+
function fn(...args) {
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
args.push((err, ...values) => {
|
|
72
|
+
if (err) {
|
|
73
|
+
return reject(err);
|
|
74
|
+
}
|
|
75
|
+
if (argumentNames !== undefined && values.length > 1) {
|
|
76
|
+
const obj = {};
|
|
77
|
+
for (let i = 0; i < argumentNames.length; i++) {
|
|
78
|
+
obj[argumentNames[i]] = values[i];
|
|
79
|
+
}
|
|
80
|
+
resolve(obj);
|
|
81
|
+
} else {
|
|
82
|
+
resolve(values[0]);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
Reflect.apply(original, this, args);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
|
|
90
|
+
|
|
91
|
+
Object.defineProperty(fn, kCustomPromisifiedSymbol, {
|
|
92
|
+
value: fn,
|
|
93
|
+
enumerable: false,
|
|
94
|
+
writable: false,
|
|
95
|
+
configurable: true,
|
|
96
|
+
});
|
|
97
|
+
return Object.defineProperties(
|
|
98
|
+
fn,
|
|
99
|
+
Object.getOwnPropertyDescriptors(original),
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
let signalsToNamesMapping;
|
|
104
|
+
function getSignalsToNamesMapping() {
|
|
105
|
+
if (signalsToNamesMapping !== undefined) {
|
|
106
|
+
return signalsToNamesMapping;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
signalsToNamesMapping = ObjectCreate(null);
|
|
110
|
+
for (const key in signals) {
|
|
111
|
+
signalsToNamesMapping[signals[key]] = key;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return signalsToNamesMapping;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function convertToValidSignal(signal) {
|
|
118
|
+
if (typeof signal === "number" && getSignalsToNamesMapping()[signal]) {
|
|
119
|
+
return signal;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (typeof signal === "string") {
|
|
123
|
+
const signalName = signals[StringPrototypeToUpperCase(signal)];
|
|
124
|
+
if (signalName) return signalName;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
throw new ERR_UNKNOWN_SIGNAL(signal);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
promisify.custom = kCustomPromisifiedSymbol;
|
|
131
|
+
|
|
132
|
+
export default {
|
|
133
|
+
convertToValidSignal,
|
|
134
|
+
createDeferredPromise,
|
|
135
|
+
customInspectSymbol,
|
|
136
|
+
customPromisifyArgs,
|
|
137
|
+
kEmptyObject,
|
|
138
|
+
kEnumerableProperty,
|
|
139
|
+
normalizeEncoding,
|
|
140
|
+
once,
|
|
141
|
+
promisify,
|
|
142
|
+
slowCases,
|
|
143
|
+
};
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
|
2
|
+
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
|
3
|
+
|
|
4
|
+
import { codes } from "./error_codes.ts";
|
|
5
|
+
import { hideStackFrames } from "./hide_stack_frames.ts";
|
|
6
|
+
import { isArrayBufferView } from "./util/types.ts";
|
|
7
|
+
import { normalizeEncoding } from "./normalize_encoding.mjs";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @param {number} value
|
|
11
|
+
* @returns {boolean}
|
|
12
|
+
*/
|
|
13
|
+
function isInt32(value) {
|
|
14
|
+
return value === (value | 0);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {unknown} value
|
|
19
|
+
* @returns {boolean}
|
|
20
|
+
*/
|
|
21
|
+
function isUint32(value) {
|
|
22
|
+
return value === (value >>> 0);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const octalReg = /^[0-7]+$/;
|
|
26
|
+
const modeDesc = "must be a 32-bit unsigned integer or an octal string";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Parse and validate values that will be converted into mode_t (the S_*
|
|
30
|
+
* constants). Only valid numbers and octal strings are allowed. They could be
|
|
31
|
+
* converted to 32-bit unsigned integers or non-negative signed integers in the
|
|
32
|
+
* C++ land, but any value higher than 0o777 will result in platform-specific
|
|
33
|
+
* behaviors.
|
|
34
|
+
*
|
|
35
|
+
* @param {*} value Values to be validated
|
|
36
|
+
* @param {string} name Name of the argument
|
|
37
|
+
* @param {number} [def] If specified, will be returned for invalid values
|
|
38
|
+
* @returns {number}
|
|
39
|
+
*/
|
|
40
|
+
function parseFileMode(value, name, def) {
|
|
41
|
+
value ??= def;
|
|
42
|
+
if (typeof value === "string") {
|
|
43
|
+
if (!octalReg.test(value)) {
|
|
44
|
+
throw new codes.ERR_INVALID_ARG_VALUE(name, value, modeDesc);
|
|
45
|
+
}
|
|
46
|
+
value = Number.parseInt(value, 8);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
validateInt32(value, name, 0, 2 ** 32 - 1);
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const validateBuffer = hideStackFrames((buffer, name = "buffer") => {
|
|
54
|
+
if (!isArrayBufferView(buffer)) {
|
|
55
|
+
throw new codes.ERR_INVALID_ARG_TYPE(
|
|
56
|
+
name,
|
|
57
|
+
["Buffer", "TypedArray", "DataView"],
|
|
58
|
+
buffer,
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const validateInteger = hideStackFrames(
|
|
64
|
+
(
|
|
65
|
+
value,
|
|
66
|
+
name,
|
|
67
|
+
min = Number.MIN_SAFE_INTEGER,
|
|
68
|
+
max = Number.MAX_SAFE_INTEGER,
|
|
69
|
+
) => {
|
|
70
|
+
if (typeof value !== "number") {
|
|
71
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "number", value);
|
|
72
|
+
}
|
|
73
|
+
if (!Number.isInteger(value)) {
|
|
74
|
+
throw new codes.ERR_OUT_OF_RANGE(name, "an integer", value);
|
|
75
|
+
}
|
|
76
|
+
if (value < min || value > max) {
|
|
77
|
+
throw new codes.ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @param {unknown} value
|
|
84
|
+
* @param {string} name
|
|
85
|
+
* @param {{
|
|
86
|
+
* allowArray?: boolean,
|
|
87
|
+
* allowFunction?: boolean,
|
|
88
|
+
* nullable?: boolean
|
|
89
|
+
* }} [options]
|
|
90
|
+
*/
|
|
91
|
+
const validateObject = hideStackFrames((value, name, options) => {
|
|
92
|
+
const useDefaultOptions = options == null;
|
|
93
|
+
const allowArray = useDefaultOptions ? false : options.allowArray;
|
|
94
|
+
const allowFunction = useDefaultOptions ? false : options.allowFunction;
|
|
95
|
+
const nullable = useDefaultOptions ? false : options.nullable;
|
|
96
|
+
if (
|
|
97
|
+
(!nullable && value === null) ||
|
|
98
|
+
(!allowArray && Array.isArray(value)) ||
|
|
99
|
+
(typeof value !== "object" && (
|
|
100
|
+
!allowFunction || typeof value !== "function"
|
|
101
|
+
))
|
|
102
|
+
) {
|
|
103
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "Object", value);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const validateInt32 = hideStackFrames(
|
|
108
|
+
(value, name, min = -2147483648, max = 2147483647) => {
|
|
109
|
+
// The defaults for min and max correspond to the limits of 32-bit integers.
|
|
110
|
+
if (!isInt32(value)) {
|
|
111
|
+
if (typeof value !== "number") {
|
|
112
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "number", value);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (!Number.isInteger(value)) {
|
|
116
|
+
throw new codes.ERR_OUT_OF_RANGE(name, "an integer", value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
throw new codes.ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (value < min || value > max) {
|
|
123
|
+
throw new codes.ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
const validateUint32 = hideStackFrames(
|
|
129
|
+
(value, name, positive) => {
|
|
130
|
+
if (!isUint32(value)) {
|
|
131
|
+
if (typeof value !== "number") {
|
|
132
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "number", value);
|
|
133
|
+
}
|
|
134
|
+
if (!Number.isInteger(value)) {
|
|
135
|
+
throw new codes.ERR_OUT_OF_RANGE(name, "an integer", value);
|
|
136
|
+
}
|
|
137
|
+
const min = positive ? 1 : 0;
|
|
138
|
+
// 2 ** 32 === 4294967296
|
|
139
|
+
throw new codes.ERR_OUT_OF_RANGE(
|
|
140
|
+
name,
|
|
141
|
+
`>= ${min} && < 4294967296`,
|
|
142
|
+
value,
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
if (positive && value === 0) {
|
|
146
|
+
throw new codes.ERR_OUT_OF_RANGE(name, ">= 1 && < 4294967296", value);
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* @param {unknown} value
|
|
153
|
+
* @param {string} name
|
|
154
|
+
*/
|
|
155
|
+
function validateString(value, name) {
|
|
156
|
+
if (typeof value !== "string") {
|
|
157
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "string", value);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @param {unknown} value
|
|
163
|
+
* @param {string} name
|
|
164
|
+
*/
|
|
165
|
+
function validateNumber(value, name) {
|
|
166
|
+
if (typeof value !== "number") {
|
|
167
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "number", value);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* @param {unknown} value
|
|
173
|
+
* @param {string} name
|
|
174
|
+
*/
|
|
175
|
+
function validateBoolean(value, name) {
|
|
176
|
+
if (typeof value !== "boolean") {
|
|
177
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "boolean", value);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* @param {unknown} value
|
|
183
|
+
* @param {string} name
|
|
184
|
+
* @param {unknown[]} oneOf
|
|
185
|
+
*/
|
|
186
|
+
const validateOneOf = hideStackFrames(
|
|
187
|
+
(value, name, oneOf) => {
|
|
188
|
+
if (!Array.prototype.includes.call(oneOf, value)) {
|
|
189
|
+
const allowed = Array.prototype.join.call(
|
|
190
|
+
Array.prototype.map.call(
|
|
191
|
+
oneOf,
|
|
192
|
+
(v) => (typeof v === "string" ? `'${v}'` : String(v)),
|
|
193
|
+
),
|
|
194
|
+
", ",
|
|
195
|
+
);
|
|
196
|
+
const reason = "must be one of: " + allowed;
|
|
197
|
+
|
|
198
|
+
throw new codes.ERR_INVALID_ARG_VALUE(name, value, reason);
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
export function validateEncoding(data, encoding) {
|
|
204
|
+
const normalizedEncoding = normalizeEncoding(encoding);
|
|
205
|
+
const length = data.length;
|
|
206
|
+
|
|
207
|
+
if (normalizedEncoding === "hex" && length % 2 !== 0) {
|
|
208
|
+
throw new codes.ERR_INVALID_ARG_VALUE(
|
|
209
|
+
"encoding",
|
|
210
|
+
encoding,
|
|
211
|
+
`is invalid for data of length ${length}`,
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Check that the port number is not NaN when coerced to a number,
|
|
217
|
+
// is an integer and that it falls within the legal range of port numbers.
|
|
218
|
+
/**
|
|
219
|
+
* @param {string} name
|
|
220
|
+
* @returns {number}
|
|
221
|
+
*/
|
|
222
|
+
function validatePort(port, name = "Port", allowZero = true) {
|
|
223
|
+
if (
|
|
224
|
+
(typeof port !== "number" && typeof port !== "string") ||
|
|
225
|
+
(typeof port === "string" &&
|
|
226
|
+
String.prototype.trim.call(port).length === 0) ||
|
|
227
|
+
+port !== (+port >>> 0) ||
|
|
228
|
+
port > 0xFFFF ||
|
|
229
|
+
(port === 0 && !allowZero)
|
|
230
|
+
) {
|
|
231
|
+
throw new codes.ERR_SOCKET_BAD_PORT(name, port, allowZero);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return port;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* @param {unknown} signal
|
|
239
|
+
* @param {string} name
|
|
240
|
+
*/
|
|
241
|
+
const validateAbortSignal = hideStackFrames(
|
|
242
|
+
(signal, name) => {
|
|
243
|
+
if (
|
|
244
|
+
signal !== undefined &&
|
|
245
|
+
(signal === null ||
|
|
246
|
+
typeof signal !== "object" ||
|
|
247
|
+
!("aborted" in signal))
|
|
248
|
+
) {
|
|
249
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
);
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @param {unknown} value
|
|
256
|
+
* @param {string} name
|
|
257
|
+
*/
|
|
258
|
+
const validateFunction = hideStackFrames(
|
|
259
|
+
(value, name) => {
|
|
260
|
+
if (typeof value !== "function") {
|
|
261
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "Function", value);
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* @param {unknown} value
|
|
268
|
+
* @param {string} name
|
|
269
|
+
*/
|
|
270
|
+
const validateArray = hideStackFrames(
|
|
271
|
+
(value, name, minLength = 0) => {
|
|
272
|
+
if (!Array.isArray(value)) {
|
|
273
|
+
throw new codes.ERR_INVALID_ARG_TYPE(name, "Array", value);
|
|
274
|
+
}
|
|
275
|
+
if (value.length < minLength) {
|
|
276
|
+
const reason = `must be longer than ${minLength}`;
|
|
277
|
+
throw new codes.ERR_INVALID_ARG_VALUE(name, value, reason);
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
export default {
|
|
283
|
+
isInt32,
|
|
284
|
+
isUint32,
|
|
285
|
+
parseFileMode,
|
|
286
|
+
validateAbortSignal,
|
|
287
|
+
validateArray,
|
|
288
|
+
validateBoolean,
|
|
289
|
+
validateBuffer,
|
|
290
|
+
validateFunction,
|
|
291
|
+
validateInt32,
|
|
292
|
+
validateInteger,
|
|
293
|
+
validateNumber,
|
|
294
|
+
validateObject,
|
|
295
|
+
validateOneOf,
|
|
296
|
+
validatePort,
|
|
297
|
+
validateString,
|
|
298
|
+
validateUint32,
|
|
299
|
+
};
|
|
300
|
+
export {
|
|
301
|
+
isInt32,
|
|
302
|
+
isUint32,
|
|
303
|
+
parseFileMode,
|
|
304
|
+
validateAbortSignal,
|
|
305
|
+
validateArray,
|
|
306
|
+
validateBoolean,
|
|
307
|
+
validateBuffer,
|
|
308
|
+
validateFunction,
|
|
309
|
+
validateInt32,
|
|
310
|
+
validateInteger,
|
|
311
|
+
validateNumber,
|
|
312
|
+
validateObject,
|
|
313
|
+
validateOneOf,
|
|
314
|
+
validatePort,
|
|
315
|
+
validateString,
|
|
316
|
+
validateUint32,
|
|
317
|
+
};
|