@netlify/plugin-nextjs 4.40.1 → 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.
Files changed (161) hide show
  1. package/lib/helpers/edge.js +1 -0
  2. package/lib/templates/vendor.js +20 -0
  3. package/package.json +7 -4
  4. package/src/templates/edge/next-dev.js +3 -3
  5. package/src/templates/edge/shims.js +6 -6
  6. package/src/templates/edge-shared/next-utils.ts +3 -3
  7. package/src/templates/edge-shared/utils.ts +1 -1
  8. package/src/templates/vendor/deno.land/std@0.134.0/fmt/colors.ts +536 -0
  9. package/src/templates/vendor/deno.land/std@0.134.0/testing/_diff.ts +360 -0
  10. package/src/templates/vendor/deno.land/std@0.134.0/testing/asserts.ts +866 -0
  11. package/src/templates/vendor/deno.land/std@0.175.0/_util/asserts.ts +25 -0
  12. package/src/templates/vendor/deno.land/std@0.175.0/_util/os.ts +23 -0
  13. package/src/templates/vendor/deno.land/std@0.175.0/async/abortable.ts +149 -0
  14. package/src/templates/vendor/deno.land/std@0.175.0/async/deadline.ts +30 -0
  15. package/src/templates/vendor/deno.land/std@0.175.0/async/debounce.ts +79 -0
  16. package/src/templates/vendor/deno.land/std@0.175.0/async/deferred.ts +48 -0
  17. package/src/templates/vendor/deno.land/std@0.175.0/async/delay.ts +67 -0
  18. package/src/templates/vendor/deno.land/std@0.175.0/async/mod.ts +18 -0
  19. package/src/templates/vendor/deno.land/std@0.175.0/async/mux_async_iterator.ts +97 -0
  20. package/src/templates/vendor/deno.land/std@0.175.0/async/pool.ts +95 -0
  21. package/src/templates/vendor/deno.land/std@0.175.0/async/retry.ts +81 -0
  22. package/src/templates/vendor/deno.land/std@0.175.0/async/tee.ts +100 -0
  23. package/src/templates/vendor/deno.land/std@0.175.0/bytes/index_of_needle.ts +49 -0
  24. package/src/templates/vendor/deno.land/std@0.175.0/crypto/timing_safe_equal.ts +29 -0
  25. package/src/templates/vendor/deno.land/std@0.175.0/datetime/to_imf.ts +45 -0
  26. package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64.ts +144 -0
  27. package/src/templates/vendor/deno.land/std@0.175.0/encoding/base64url.ts +70 -0
  28. package/src/templates/vendor/deno.land/std@0.175.0/flags/mod.ts +785 -0
  29. package/src/templates/vendor/deno.land/std@0.175.0/fmt/colors.ts +569 -0
  30. package/src/templates/vendor/deno.land/std@0.175.0/fmt/printf.ts +939 -0
  31. package/src/templates/vendor/deno.land/std@0.175.0/http/cookie.ts +403 -0
  32. package/src/templates/vendor/deno.land/std@0.175.0/node/_core.ts +77 -0
  33. package/src/templates/vendor/deno.land/std@0.175.0/node/_events.d.ts +848 -0
  34. package/src/templates/vendor/deno.land/std@0.175.0/node/_events.mjs +1033 -0
  35. package/src/templates/vendor/deno.land/std@0.175.0/node/_global.d.ts +66 -0
  36. package/src/templates/vendor/deno.land/std@0.175.0/node/_next_tick.ts +173 -0
  37. package/src/templates/vendor/deno.land/std@0.175.0/node/_process/exiting.ts +4 -0
  38. package/src/templates/vendor/deno.land/std@0.175.0/node/_process/process.ts +131 -0
  39. package/src/templates/vendor/deno.land/std@0.175.0/node/_process/stdio.mjs +7 -0
  40. package/src/templates/vendor/deno.land/std@0.175.0/node/_process/streams.mjs +146 -0
  41. package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.d.ts +1488 -0
  42. package/src/templates/vendor/deno.land/std@0.175.0/node/_stream.mjs +746 -0
  43. package/src/templates/vendor/deno.land/std@0.175.0/node/_util/_util_callbackify.ts +129 -0
  44. package/src/templates/vendor/deno.land/std@0.175.0/node/_utils.ts +206 -0
  45. package/src/templates/vendor/deno.land/std@0.175.0/node/assert.ts +940 -0
  46. package/src/templates/vendor/deno.land/std@0.175.0/node/assertion_error.ts +579 -0
  47. package/src/templates/vendor/deno.land/std@0.175.0/node/async_hooks.ts +331 -0
  48. package/src/templates/vendor/deno.land/std@0.175.0/node/buffer.ts +13 -0
  49. package/src/templates/vendor/deno.land/std@0.175.0/node/events.ts +14 -0
  50. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.d.ts +2074 -0
  51. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/buffer.mjs +2607 -0
  52. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/_keys.ts +16 -0
  53. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/crypto/constants.ts +5 -0
  54. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/error_codes.ts +7 -0
  55. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/errors.ts +2867 -0
  56. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/fixed_queue.ts +123 -0
  57. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/hide_stack_frames.ts +16 -0
  58. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/net.ts +95 -0
  59. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/normalize_encoding.mjs +72 -0
  60. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/options.ts +45 -0
  61. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/primordials.mjs +30 -0
  62. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/process/per_thread.mjs +272 -0
  63. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/callbacks.mjs +137 -0
  64. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/readline/utils.mjs +580 -0
  65. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/destroy.mjs +320 -0
  66. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/end-of-stream.mjs +229 -0
  67. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/streams/utils.mjs +242 -0
  68. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/comparisons.ts +669 -0
  69. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/debuglog.ts +118 -0
  70. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/inspect.mjs +2237 -0
  71. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util/types.ts +113 -0
  72. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/util.mjs +143 -0
  73. package/src/templates/vendor/deno.land/std@0.175.0/node/internal/validators.mjs +317 -0
  74. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_libuv_winerror.ts +229 -0
  75. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_listen.ts +16 -0
  76. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_node.ts +18 -0
  77. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_timingSafeEqual.ts +12 -0
  78. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_utils.ts +86 -0
  79. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/_winerror.ts +16873 -0
  80. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/ares.ts +66 -0
  81. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/async_wrap.ts +152 -0
  82. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/buffer.ts +130 -0
  83. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/cares_wrap.ts +541 -0
  84. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/config.ts +3 -0
  85. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/connection_wrap.ts +80 -0
  86. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/constants.ts +900 -0
  87. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/contextify.ts +3 -0
  88. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/credentials.ts +3 -0
  89. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/crypto.ts +14 -0
  90. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/errors.ts +3 -0
  91. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs.ts +3 -0
  92. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_dir.ts +3 -0
  93. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/fs_event_wrap.ts +3 -0
  94. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/handle_wrap.ts +50 -0
  95. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/heap_utils.ts +3 -0
  96. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/http_parser.ts +3 -0
  97. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/icu.ts +3 -0
  98. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/inspector.ts +3 -0
  99. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/js_stream.ts +3 -0
  100. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/messaging.ts +3 -0
  101. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/mod.ts +108 -0
  102. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/module_wrap.ts +3 -0
  103. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/native_module.ts +3 -0
  104. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/natives.ts +3 -0
  105. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_file.ts +84 -0
  106. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/node_options.ts +39 -0
  107. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/options.ts +3 -0
  108. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/os.ts +3 -0
  109. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/performance.ts +3 -0
  110. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/pipe_wrap.ts +392 -0
  111. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/process_methods.ts +3 -0
  112. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/report.ts +3 -0
  113. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/serdes.ts +3 -0
  114. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/signal_wrap.ts +3 -0
  115. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/spawn_sync.ts +3 -0
  116. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/stream_wrap.ts +354 -0
  117. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/string_decoder.ts +15 -0
  118. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/symbols.ts +27 -0
  119. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/task_queue.ts +3 -0
  120. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tcp_wrap.ts +488 -0
  121. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/timers.ts +3 -0
  122. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tls_wrap.ts +3 -0
  123. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/trace_events.ts +3 -0
  124. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/tty_wrap.ts +3 -0
  125. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/types.ts +186 -0
  126. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/udp_wrap.ts +496 -0
  127. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/url.ts +3 -0
  128. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/util.ts +126 -0
  129. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/uv.ts +437 -0
  130. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/v8.ts +3 -0
  131. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/worker.ts +3 -0
  132. package/src/templates/vendor/deno.land/std@0.175.0/node/internal_binding/zlib.ts +3 -0
  133. package/src/templates/vendor/deno.land/std@0.175.0/node/process.ts +705 -0
  134. package/src/templates/vendor/deno.land/std@0.175.0/node/stream.ts +37 -0
  135. package/src/templates/vendor/deno.land/std@0.175.0/node/string_decoder.ts +337 -0
  136. package/src/templates/vendor/deno.land/std@0.175.0/node/util/types.ts +4 -0
  137. package/src/templates/vendor/deno.land/std@0.175.0/node/util.ts +289 -0
  138. package/src/templates/vendor/deno.land/std@0.175.0/path/_constants.ts +49 -0
  139. package/src/templates/vendor/deno.land/std@0.175.0/path/_interface.ts +30 -0
  140. package/src/templates/vendor/deno.land/std@0.175.0/path/_util.ts +194 -0
  141. package/src/templates/vendor/deno.land/std@0.175.0/path/common.ts +40 -0
  142. package/src/templates/vendor/deno.land/std@0.175.0/path/glob.ts +418 -0
  143. package/src/templates/vendor/deno.land/std@0.175.0/path/mod.ts +53 -0
  144. package/src/templates/vendor/deno.land/std@0.175.0/path/posix.ts +487 -0
  145. package/src/templates/vendor/deno.land/std@0.175.0/path/separator.ts +7 -0
  146. package/src/templates/vendor/deno.land/std@0.175.0/path/win32.ts +962 -0
  147. package/src/templates/vendor/deno.land/std@0.175.0/streams/write_all.ts +64 -0
  148. package/src/templates/vendor/deno.land/std@0.175.0/testing/_diff.ts +440 -0
  149. package/src/templates/vendor/deno.land/std@0.175.0/testing/_format.ts +23 -0
  150. package/src/templates/vendor/deno.land/std@0.175.0/testing/asserts.ts +906 -0
  151. package/src/templates/vendor/deno.land/std@0.175.0/types.d.ts +89 -0
  152. package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/index.ts +133 -0
  153. package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/asyncify.js +112 -0
  154. package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.d.ts +88 -0
  155. package/src/templates/vendor/deno.land/x/html_rewriter@v0.1.0-pre.17/vendor/html_rewriter.js +974 -0
  156. package/src/templates/vendor/deno.land/x/path_to_regexp@v6.2.1/index.ts +621 -0
  157. package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/compiled/cookie.js +13 -0
  158. package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js +12 -0
  159. package/src/templates/vendor/esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js +5 -0
  160. package/src/templates/vendor/import_map.json +13 -0
  161. package/src/templates/vendor/raw.githubusercontent.com/worker-tools/resolvable-promise/master/index.ts +50 -0
@@ -0,0 +1,705 @@
1
+ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
2
+ // Copyright Joyent, Inc. and Node.js contributors. All rights reserved. MIT license.
3
+
4
+ import { notImplemented, warnNotImplemented } from "./_utils.ts";
5
+ import { EventEmitter } from "./events.ts";
6
+ import { validateString } from "./internal/validators.mjs";
7
+ import {
8
+ ERR_INVALID_ARG_TYPE,
9
+ ERR_UNKNOWN_SIGNAL,
10
+ errnoException,
11
+ } from "./internal/errors.ts";
12
+ import { getOptionValue } from "./internal/options.ts";
13
+ import { assert } from "../_util/asserts.ts";
14
+ import { fromFileUrl, join } from "../path/mod.ts";
15
+ import {
16
+ arch,
17
+ chdir,
18
+ cwd,
19
+ env,
20
+ nextTick as _nextTick,
21
+ pid,
22
+ platform,
23
+ version,
24
+ versions,
25
+ } from "./_process/process.ts";
26
+ import { _exiting } from "./_process/exiting.ts";
27
+ export {
28
+ _nextTick as nextTick,
29
+ arch,
30
+ argv,
31
+ chdir,
32
+ cwd,
33
+ env,
34
+ pid,
35
+ platform,
36
+ version,
37
+ versions,
38
+ };
39
+ import {
40
+ stderr as stderr_,
41
+ stdin as stdin_,
42
+ stdout as stdout_,
43
+ } from "./_process/streams.mjs";
44
+ import { core } from "./_core.ts";
45
+ import { processTicksAndRejections } from "./_next_tick.ts";
46
+
47
+ // TODO(kt3k): Give better types to stdio objects
48
+ // deno-lint-ignore no-explicit-any
49
+ const stderr = stderr_ as any;
50
+ // deno-lint-ignore no-explicit-any
51
+ const stdin = stdin_ as any;
52
+ // deno-lint-ignore no-explicit-any
53
+ const stdout = stdout_ as any;
54
+ export { stderr, stdin, stdout };
55
+ import { getBinding } from "./internal_binding/mod.ts";
56
+ import * as constants from "./internal_binding/constants.ts";
57
+ import * as uv from "./internal_binding/uv.ts";
58
+ import type { BindingName } from "./internal_binding/mod.ts";
59
+ import { buildAllowedFlags } from "./internal/process/per_thread.mjs";
60
+
61
+ // @ts-ignore Deno[Deno.internal] is used on purpose here
62
+ const DenoCommand = Deno[Deno.internal]?.nodeUnstable?.Command ||
63
+ Deno.Command;
64
+
65
+ const notImplementedEvents = [
66
+ "disconnect",
67
+ "message",
68
+ "multipleResolves",
69
+ "rejectionHandled",
70
+ "worker",
71
+ ];
72
+
73
+ // The first 2 items are placeholders.
74
+ // They will be overwritten by the below Object.defineProperty calls.
75
+ const argv = ["", "", ...Deno.args];
76
+ // Overwrites the 1st item with getter.
77
+ Object.defineProperty(argv, "0", { get: Deno.execPath });
78
+ // Overwrites the 2st item with getter.
79
+ Object.defineProperty(argv, "1", {
80
+ get: () => {
81
+ if (Deno.mainModule.startsWith("file:")) {
82
+ return fromFileUrl(Deno.mainModule);
83
+ } else {
84
+ return join(Deno.cwd(), "$deno$node.js");
85
+ }
86
+ },
87
+ });
88
+
89
+ /** https://nodejs.org/api/process.html#process_process_exit_code */
90
+ export const exit = (code?: number | string) => {
91
+ if (code || code === 0) {
92
+ if (typeof code === "string") {
93
+ const parsedCode = parseInt(code);
94
+ process.exitCode = isNaN(parsedCode) ? undefined : parsedCode;
95
+ } else {
96
+ process.exitCode = code;
97
+ }
98
+ }
99
+
100
+ if (!process._exiting) {
101
+ process._exiting = true;
102
+ // FIXME(bartlomieju): this is wrong, we won't be using syscall to exit
103
+ // and thus the `unload` event will not be emitted to properly trigger "emit"
104
+ // event on `process`.
105
+ process.emit("exit", process.exitCode || 0);
106
+ }
107
+
108
+ Deno.exit(process.exitCode || 0);
109
+ };
110
+
111
+ function addReadOnlyProcessAlias(
112
+ name: string,
113
+ option: string,
114
+ enumerable = true,
115
+ ) {
116
+ const value = getOptionValue(option);
117
+
118
+ if (value) {
119
+ Object.defineProperty(process, name, {
120
+ writable: false,
121
+ configurable: true,
122
+ enumerable,
123
+ value,
124
+ });
125
+ }
126
+ }
127
+
128
+ function createWarningObject(
129
+ warning: string,
130
+ type: string,
131
+ code?: string,
132
+ // deno-lint-ignore ban-types
133
+ ctor?: Function,
134
+ detail?: string,
135
+ ): Error {
136
+ assert(typeof warning === "string");
137
+
138
+ // deno-lint-ignore no-explicit-any
139
+ const warningErr: any = new Error(warning);
140
+ warningErr.name = String(type || "Warning");
141
+
142
+ if (code !== undefined) {
143
+ warningErr.code = code;
144
+ }
145
+ if (detail !== undefined) {
146
+ warningErr.detail = detail;
147
+ }
148
+
149
+ // @ts-ignore this function is not available in lib.dom.d.ts
150
+ Error.captureStackTrace(warningErr, ctor || process.emitWarning);
151
+
152
+ return warningErr;
153
+ }
154
+
155
+ function doEmitWarning(warning: Error) {
156
+ process.emit("warning", warning);
157
+ }
158
+
159
+ /** https://nodejs.org/api/process.html#process_process_emitwarning_warning_options */
160
+ export function emitWarning(
161
+ warning: string | Error,
162
+ type:
163
+ // deno-lint-ignore ban-types
164
+ | { type: string; detail: string; code: string; ctor: Function }
165
+ | string
166
+ | null,
167
+ code?: string,
168
+ // deno-lint-ignore ban-types
169
+ ctor?: Function,
170
+ ) {
171
+ let detail;
172
+
173
+ if (type !== null && typeof type === "object" && !Array.isArray(type)) {
174
+ ctor = type.ctor;
175
+ code = type.code;
176
+
177
+ if (typeof type.detail === "string") {
178
+ detail = type.detail;
179
+ }
180
+
181
+ type = type.type || "Warning";
182
+ } else if (typeof type === "function") {
183
+ ctor = type;
184
+ code = undefined;
185
+ type = "Warning";
186
+ }
187
+
188
+ if (type !== undefined) {
189
+ validateString(type, "type");
190
+ }
191
+
192
+ if (typeof code === "function") {
193
+ ctor = code;
194
+ code = undefined;
195
+ } else if (code !== undefined) {
196
+ validateString(code, "code");
197
+ }
198
+
199
+ if (typeof warning === "string") {
200
+ warning = createWarningObject(warning, type as string, code, ctor, detail);
201
+ } else if (!(warning instanceof Error)) {
202
+ throw new ERR_INVALID_ARG_TYPE("warning", ["Error", "string"], warning);
203
+ }
204
+
205
+ if (warning.name === "DeprecationWarning") {
206
+ // deno-lint-ignore no-explicit-any
207
+ if ((process as any).noDeprecation) {
208
+ return;
209
+ }
210
+
211
+ // deno-lint-ignore no-explicit-any
212
+ if ((process as any).throwDeprecation) {
213
+ // Delay throwing the error to guarantee that all former warnings were
214
+ // properly logged.
215
+ return process.nextTick(() => {
216
+ throw warning;
217
+ });
218
+ }
219
+ }
220
+
221
+ process.nextTick(doEmitWarning, warning);
222
+ }
223
+
224
+ export function hrtime(time?: [number, number]): [number, number] {
225
+ const milli = performance.now();
226
+ const sec = Math.floor(milli / 1000);
227
+ const nano = Math.floor(milli * 1_000_000 - sec * 1_000_000_000);
228
+ if (!time) {
229
+ return [sec, nano];
230
+ }
231
+ const [prevSec, prevNano] = time;
232
+ return [sec - prevSec, nano - prevNano];
233
+ }
234
+
235
+ hrtime.bigint = function (): BigInt {
236
+ const [sec, nano] = hrtime();
237
+ return BigInt(sec) * 1_000_000_000n + BigInt(nano);
238
+ };
239
+
240
+ export function memoryUsage(): {
241
+ rss: number;
242
+ heapTotal: number;
243
+ heapUsed: number;
244
+ external: number;
245
+ arrayBuffers: number;
246
+ } {
247
+ return {
248
+ ...Deno.memoryUsage(),
249
+ arrayBuffers: 0,
250
+ };
251
+ }
252
+
253
+ memoryUsage.rss = function (): number {
254
+ return memoryUsage().rss;
255
+ };
256
+
257
+ // Returns a negative error code than can be recognized by errnoException
258
+ function _kill(pid: number, sig: number): number {
259
+ let errCode;
260
+
261
+ if (sig === 0) {
262
+ let status;
263
+ if (Deno.build.os === "windows") {
264
+ status = (new DenoCommand("powershell.exe", {
265
+ args: ["Get-Process", "-pid", pid],
266
+ })).outputSync();
267
+ } else {
268
+ status = (new DenoCommand("kill", {
269
+ args: ["-0", pid],
270
+ })).outputSync();
271
+ }
272
+
273
+ if (!status.success) {
274
+ errCode = uv.codeMap.get("ESRCH");
275
+ }
276
+ } else {
277
+ // Reverse search the shortname based on the numeric code
278
+ const maybeSignal = Object.entries(constants.os.signals).find((
279
+ [_, numericCode],
280
+ ) => numericCode === sig);
281
+
282
+ if (!maybeSignal) {
283
+ errCode = uv.codeMap.get("EINVAL");
284
+ } else {
285
+ try {
286
+ Deno.kill(pid, maybeSignal[0] as Deno.Signal);
287
+ } catch (e) {
288
+ if (e instanceof TypeError) {
289
+ throw notImplemented(maybeSignal[0]);
290
+ }
291
+
292
+ throw e;
293
+ }
294
+ }
295
+ }
296
+
297
+ if (!errCode) {
298
+ return 0;
299
+ } else {
300
+ return errCode;
301
+ }
302
+ }
303
+
304
+ export function kill(pid: number, sig: string | number = "SIGTERM") {
305
+ if (pid != (pid | 0)) {
306
+ throw new ERR_INVALID_ARG_TYPE("pid", "number", pid);
307
+ }
308
+
309
+ let err;
310
+ if (typeof sig === "number") {
311
+ err = process._kill(pid, sig);
312
+ } else {
313
+ if (sig in constants.os.signals) {
314
+ // @ts-ignore Index previously checked
315
+ err = process._kill(pid, constants.os.signals[sig]);
316
+ } else {
317
+ throw new ERR_UNKNOWN_SIGNAL(sig);
318
+ }
319
+ }
320
+
321
+ if (err) {
322
+ throw errnoException(err, "kill");
323
+ }
324
+
325
+ return true;
326
+ }
327
+
328
+ // deno-lint-ignore no-explicit-any
329
+ function uncaughtExceptionHandler(err: any, origin: string) {
330
+ // The origin parameter can be 'unhandledRejection' or 'uncaughtException'
331
+ // depending on how the uncaught exception was created. In Node.js,
332
+ // exceptions thrown from the top level of a CommonJS module are reported as
333
+ // 'uncaughtException', while exceptions thrown from the top level of an ESM
334
+ // module are reported as 'unhandledRejection'. Deno does not have a true
335
+ // CommonJS implementation, so all exceptions thrown from the top level are
336
+ // reported as 'uncaughtException'.
337
+ process.emit("uncaughtExceptionMonitor", err, origin);
338
+ process.emit("uncaughtException", err, origin);
339
+ }
340
+
341
+ let execPath: string | null = null;
342
+
343
+ class Process extends EventEmitter {
344
+ constructor() {
345
+ super();
346
+
347
+ globalThis.addEventListener("unhandledrejection", (event) => {
348
+ if (process.listenerCount("unhandledRejection") === 0) {
349
+ // The Node.js default behavior is to raise an uncaught exception if
350
+ // an unhandled rejection occurs and there are no unhandledRejection
351
+ // listeners.
352
+ if (process.listenerCount("uncaughtException") === 0) {
353
+ throw event.reason;
354
+ }
355
+
356
+ event.preventDefault();
357
+ uncaughtExceptionHandler(event.reason, "unhandledRejection");
358
+ return;
359
+ }
360
+
361
+ event.preventDefault();
362
+ process.emit("unhandledRejection", event.reason, event.promise);
363
+ });
364
+
365
+ globalThis.addEventListener("error", (event) => {
366
+ if (process.listenerCount("uncaughtException") > 0) {
367
+ event.preventDefault();
368
+ }
369
+
370
+ uncaughtExceptionHandler(event.error, "uncaughtException");
371
+ });
372
+
373
+ globalThis.addEventListener("beforeunload", (e) => {
374
+ super.emit("beforeExit", process.exitCode || 0);
375
+ processTicksAndRejections();
376
+ if (core.eventLoopHasMoreWork()) {
377
+ e.preventDefault();
378
+ }
379
+ });
380
+
381
+ globalThis.addEventListener("unload", () => {
382
+ if (!process._exiting) {
383
+ process._exiting = true;
384
+ super.emit("exit", process.exitCode || 0);
385
+ }
386
+ });
387
+ }
388
+
389
+ /** https://nodejs.org/api/process.html#process_process_arch */
390
+ arch = arch;
391
+
392
+ /**
393
+ * https://nodejs.org/api/process.html#process_process_argv
394
+ * Read permissions are required in order to get the executable route
395
+ */
396
+ argv = argv;
397
+
398
+ /** https://nodejs.org/api/process.html#process_process_chdir_directory */
399
+ chdir = chdir;
400
+
401
+ /** https://nodejs.org/api/process.html#processconfig */
402
+ config = {
403
+ target_defaults: {},
404
+ variables: {},
405
+ };
406
+
407
+ /** https://nodejs.org/api/process.html#process_process_cwd */
408
+ cwd = cwd;
409
+
410
+ /**
411
+ * https://nodejs.org/api/process.html#process_process_env
412
+ * Requires env permissions
413
+ */
414
+ env = env;
415
+
416
+ /** https://nodejs.org/api/process.html#process_process_execargv */
417
+ execArgv: string[] = [];
418
+
419
+ /** https://nodejs.org/api/process.html#process_process_exit_code */
420
+ exit = exit;
421
+
422
+ _exiting = _exiting;
423
+
424
+ /** https://nodejs.org/api/process.html#processexitcode_1 */
425
+ exitCode: undefined | number = undefined;
426
+
427
+ // Typed as any to avoid importing "module" module for types
428
+ // deno-lint-ignore no-explicit-any
429
+ mainModule: any = undefined;
430
+
431
+ /** https://nodejs.org/api/process.html#process_process_nexttick_callback_args */
432
+ nextTick = _nextTick;
433
+
434
+ /** https://nodejs.org/api/process.html#process_process_events */
435
+ override on(event: "exit", listener: (code: number) => void): this;
436
+ override on(
437
+ event: typeof notImplementedEvents[number],
438
+ // deno-lint-ignore ban-types
439
+ listener: Function,
440
+ ): this;
441
+ // deno-lint-ignore no-explicit-any
442
+ override on(event: string, listener: (...args: any[]) => void): this {
443
+ if (notImplementedEvents.includes(event)) {
444
+ warnNotImplemented(`process.on("${event}")`);
445
+ super.on(event, listener);
446
+ } else if (event.startsWith("SIG")) {
447
+ if (event === "SIGBREAK" && Deno.build.os !== "windows") {
448
+ // Ignores SIGBREAK if the platform is not windows.
449
+ } else if (event === "SIGTERM" && Deno.build.os === "windows") {
450
+ // Ignores SIGTERM on windows.
451
+ } else {
452
+ Deno.addSignalListener(event as Deno.Signal, listener);
453
+ }
454
+ } else {
455
+ super.on(event, listener);
456
+ }
457
+
458
+ return this;
459
+ }
460
+
461
+ override off(event: "exit", listener: (code: number) => void): this;
462
+ override off(
463
+ event: typeof notImplementedEvents[number],
464
+ // deno-lint-ignore ban-types
465
+ listener: Function,
466
+ ): this;
467
+ // deno-lint-ignore no-explicit-any
468
+ override off(event: string, listener: (...args: any[]) => void): this {
469
+ if (notImplementedEvents.includes(event)) {
470
+ warnNotImplemented(`process.off("${event}")`);
471
+ super.off(event, listener);
472
+ } else if (event.startsWith("SIG")) {
473
+ if (event === "SIGBREAK" && Deno.build.os !== "windows") {
474
+ // Ignores SIGBREAK if the platform is not windows.
475
+ } else if (event === "SIGTERM" && Deno.build.os === "windows") {
476
+ // Ignores SIGTERM on windows.
477
+ } else {
478
+ Deno.removeSignalListener(event as Deno.Signal, listener);
479
+ }
480
+ } else {
481
+ super.off(event, listener);
482
+ }
483
+
484
+ return this;
485
+ }
486
+
487
+ // deno-lint-ignore no-explicit-any
488
+ override emit(event: string, ...args: any[]): boolean {
489
+ if (event.startsWith("SIG")) {
490
+ if (event === "SIGBREAK" && Deno.build.os !== "windows") {
491
+ // Ignores SIGBREAK if the platform is not windows.
492
+ } else {
493
+ Deno.kill(Deno.pid, event as Deno.Signal);
494
+ }
495
+ } else {
496
+ return super.emit(event, ...args);
497
+ }
498
+
499
+ return true;
500
+ }
501
+
502
+ override prependListener(
503
+ event: "exit",
504
+ listener: (code: number) => void,
505
+ ): this;
506
+ override prependListener(
507
+ event: typeof notImplementedEvents[number],
508
+ // deno-lint-ignore ban-types
509
+ listener: Function,
510
+ ): this;
511
+ override prependListener(
512
+ event: string,
513
+ // deno-lint-ignore no-explicit-any
514
+ listener: (...args: any[]) => void,
515
+ ): this {
516
+ if (notImplementedEvents.includes(event)) {
517
+ warnNotImplemented(`process.prependListener("${event}")`);
518
+ super.prependListener(event, listener);
519
+ } else if (event.startsWith("SIG")) {
520
+ if (event === "SIGBREAK" && Deno.build.os !== "windows") {
521
+ // Ignores SIGBREAK if the platform is not windows.
522
+ } else {
523
+ Deno.addSignalListener(event as Deno.Signal, listener);
524
+ }
525
+ } else {
526
+ super.prependListener(event, listener);
527
+ }
528
+
529
+ return this;
530
+ }
531
+
532
+ /** https://nodejs.org/api/process.html#process_process_pid */
533
+ pid = pid;
534
+
535
+ /** https://nodejs.org/api/process.html#process_process_platform */
536
+ platform = platform;
537
+
538
+ override addListener(event: "exit", listener: (code: number) => void): this;
539
+ override addListener(
540
+ event: typeof notImplementedEvents[number],
541
+ // deno-lint-ignore ban-types
542
+ listener: Function,
543
+ ): this;
544
+ override addListener(
545
+ event: string,
546
+ // deno-lint-ignore no-explicit-any
547
+ listener: (...args: any[]) => void,
548
+ ): this {
549
+ if (notImplementedEvents.includes(event)) {
550
+ warnNotImplemented(`process.addListener("${event}")`);
551
+ }
552
+
553
+ return this.on(event, listener);
554
+ }
555
+
556
+ override removeListener(
557
+ event: "exit",
558
+ listener: (code: number) => void,
559
+ ): this;
560
+ override removeListener(
561
+ event: typeof notImplementedEvents[number],
562
+ // deno-lint-ignore ban-types
563
+ listener: Function,
564
+ ): this;
565
+ override removeListener(
566
+ event: string,
567
+ // deno-lint-ignore no-explicit-any
568
+ listener: (...args: any[]) => void,
569
+ ): this {
570
+ if (notImplementedEvents.includes(event)) {
571
+ warnNotImplemented(`process.removeListener("${event}")`);
572
+ }
573
+
574
+ return this.off(event, listener);
575
+ }
576
+
577
+ /**
578
+ * Returns the current high-resolution real time in a [seconds, nanoseconds]
579
+ * tuple.
580
+ *
581
+ * Note: You need to give --allow-hrtime permission to Deno to actually get
582
+ * nanoseconds precision values. If you don't give 'hrtime' permission, the returned
583
+ * values only have milliseconds precision.
584
+ *
585
+ * `time` is an optional parameter that must be the result of a previous process.hrtime() call to diff with the current time.
586
+ *
587
+ * These times are relative to an arbitrary time in the past, and not related to the time of day and therefore not subject to clock drift. The primary use is for measuring performance between intervals.
588
+ * https://nodejs.org/api/process.html#process_process_hrtime_time
589
+ */
590
+ hrtime = hrtime;
591
+
592
+ /**
593
+ * @private
594
+ *
595
+ * NodeJS internal, use process.kill instead
596
+ */
597
+ _kill = _kill;
598
+
599
+ /** https://nodejs.org/api/process.html#processkillpid-signal */
600
+ kill = kill;
601
+
602
+ memoryUsage = memoryUsage;
603
+
604
+ /** https://nodejs.org/api/process.html#process_process_stderr */
605
+ stderr = stderr;
606
+
607
+ /** https://nodejs.org/api/process.html#process_process_stdin */
608
+ stdin = stdin;
609
+
610
+ /** https://nodejs.org/api/process.html#process_process_stdout */
611
+ stdout = stdout;
612
+
613
+ /** https://nodejs.org/api/process.html#process_process_version */
614
+ version = version;
615
+
616
+ /** https://nodejs.org/api/process.html#process_process_versions */
617
+ versions = versions;
618
+
619
+ /** https://nodejs.org/api/process.html#process_process_emitwarning_warning_options */
620
+ emitWarning = emitWarning;
621
+
622
+ binding(name: BindingName) {
623
+ return getBinding(name);
624
+ }
625
+
626
+ /** https://nodejs.org/api/process.html#processumaskmask */
627
+ umask() {
628
+ // Always return the system default umask value.
629
+ // We don't use Deno.umask here because it has a race
630
+ // condition bug.
631
+ // See https://github.com/denoland/deno_std/issues/1893#issuecomment-1032897779
632
+ return 0o22;
633
+ }
634
+
635
+ /** This method is removed on Windows */
636
+ getgid?(): number {
637
+ return Deno.gid()!;
638
+ }
639
+
640
+ /** This method is removed on Windows */
641
+ getuid?(): number {
642
+ return Deno.uid()!;
643
+ }
644
+
645
+ // TODO(kt3k): Implement this when we added -e option to node compat mode
646
+ _eval: string | undefined = undefined;
647
+
648
+ /** https://nodejs.org/api/process.html#processexecpath */
649
+ get execPath() {
650
+ if (execPath) {
651
+ return execPath;
652
+ }
653
+ execPath = Deno.execPath();
654
+ return execPath;
655
+ }
656
+
657
+ set execPath(path: string) {
658
+ execPath = path;
659
+ }
660
+
661
+ #startTime = Date.now();
662
+ /** https://nodejs.org/api/process.html#processuptime */
663
+ uptime() {
664
+ return (Date.now() - this.#startTime) / 1000;
665
+ }
666
+
667
+ #allowedFlags = buildAllowedFlags();
668
+ /** https://nodejs.org/api/process.html#processallowednodeenvironmentflags */
669
+ get allowedNodeEnvironmentFlags() {
670
+ return this.#allowedFlags;
671
+ }
672
+
673
+ features = { inspector: false };
674
+
675
+ // TODO(kt3k): Get the value from --no-deprecation flag.
676
+ noDeprecation = false;
677
+ }
678
+
679
+ if (Deno.build.os === "windows") {
680
+ delete Process.prototype.getgid;
681
+ delete Process.prototype.getuid;
682
+ }
683
+
684
+ /** https://nodejs.org/api/process.html#process_process */
685
+ const process = new Process();
686
+
687
+ Object.defineProperty(process, Symbol.toStringTag, {
688
+ enumerable: false,
689
+ writable: true,
690
+ configurable: false,
691
+ value: "process",
692
+ });
693
+
694
+ addReadOnlyProcessAlias("noDeprecation", "--no-deprecation");
695
+ addReadOnlyProcessAlias("throwDeprecation", "--throw-deprecation");
696
+
697
+ export const removeListener = process.removeListener;
698
+ export const removeAllListeners = process.removeAllListeners;
699
+
700
+ export default process;
701
+
702
+ //TODO(Soremwar)
703
+ //Remove on 1.0
704
+ //Kept for backwards compatibility with std
705
+ export { process };