visaljs 0.0.7 → 0.0.9
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/README.md +68 -4
- package/THIRD_PARTY_LICENSES +1216 -0
- package/cli.js +4461 -321
- package/node/include/js_node.h +57 -1
- package/node/include/js_uv.h +8 -1
- package/node/prelude/_http_agent.js +5 -0
- package/node/prelude/_http_server.js +7 -0
- package/node/prelude/_stream_duplex.js +4 -0
- package/node/prelude/_stream_passthrough.js +4 -0
- package/node/prelude/_stream_readable.js +4 -0
- package/node/prelude/_stream_transform.js +4 -0
- package/node/prelude/_stream_writable.js +4 -0
- package/node/prelude/assert.js +1334 -0
- package/node/prelude/assert_strict.js +12 -0
- package/node/prelude/async_hooks.js +1 -1
- package/node/prelude/buffer.js +43 -3
- package/node/prelude/child_process.js +1098 -0
- package/node/prelude/cluster.js +52 -0
- package/node/prelude/console.js +328 -0
- package/node/prelude/constants.js +10 -0
- package/node/prelude/crypto.js +1 -1
- package/node/prelude/diagnostics_channel.js +1 -1
- package/node/prelude/dns.js +8 -2
- package/node/prelude/domain.js +115 -0
- package/node/prelude/events.js +148 -16
- package/node/prelude/fs.js +1138 -151
- package/node/prelude/fs_promises.js +117 -11
- package/node/prelude/http.js +784 -301
- package/node/prelude/http2.js +1 -1
- package/node/prelude/https.js +159 -0
- package/node/prelude/inspector.js +27 -0
- package/node/prelude/inspector_promises.js +4 -0
- package/node/prelude/internal/async_context.js +1 -1
- package/node/prelude/internal/buffer_transcode.js +44 -0
- package/node/prelude/internal/comparisons.js +916 -0
- package/node/prelude/internal/compression_streams.js +153 -0
- package/node/prelude/internal/crypto/asym.js +27 -14
- package/node/prelude/internal/crypto/cipher.js +16 -5
- package/node/prelude/internal/crypto/diffiehellman.js +3 -2
- package/node/prelude/internal/crypto/hash.js +2 -1
- package/node/prelude/internal/crypto/kdf.js +14 -9
- package/node/prelude/internal/crypto/keys.js +63 -50
- package/node/prelude/internal/crypto/random.js +2 -1
- package/node/prelude/internal/crypto/util.js +4 -4
- package/node/prelude/internal/dotenv.js +98 -0
- package/node/prelude/internal/errors.js +21 -5
- package/node/prelude/internal/events_extras.js +113 -0
- package/node/prelude/internal/events_on.js +100 -0
- package/node/prelude/internal/features.js +72 -0
- package/node/prelude/internal/fetch.js +364 -0
- package/node/prelude/internal/form_data.js +376 -0
- package/node/prelude/internal/fs_bigint_stats.js +41 -0
- package/node/prelude/internal/fs_blob.js +19 -0
- package/node/prelude/internal/fs_cp.js +709 -0
- package/node/prelude/internal/fs_dir.js +166 -0
- package/node/prelude/internal/fs_filehandle.js +287 -0
- package/node/prelude/internal/fs_glob.js +296 -0
- package/node/prelude/internal/fs_statfs.js +42 -0
- package/node/prelude/internal/fs_stats.js +89 -0
- package/node/prelude/internal/fs_streams.js +541 -0
- package/node/prelude/internal/fs_utils.js +286 -0
- package/node/prelude/internal/fs_watch.js +580 -0
- package/node/prelude/internal/http_agent.js +114 -2
- package/node/prelude/internal/http_symbols.js +3 -0
- package/node/prelude/internal/mime.js +249 -0
- package/node/prelude/internal/net.js +1 -0
- package/node/prelude/internal/net_bound.js +123 -0
- package/node/prelude/internal/net_onread.js +73 -0
- package/node/prelude/internal/net_tos.js +54 -0
- package/node/prelude/internal/parse_args.js +288 -0
- package/node/prelude/internal/perf_histogram.js +435 -0
- package/node/prelude/internal/perf_observe.js +125 -0
- package/node/prelude/internal/performance_global.js +19 -0
- package/node/prelude/internal/process_events.js +49 -1
- package/node/prelude/internal/process_memory.js +14 -0
- package/node/prelude/internal/process_more.js +414 -0
- package/node/prelude/internal/process_signals.js +2 -1
- package/node/prelude/internal/process_stdin.js +52 -0
- package/node/prelude/internal/process_stdio.js +36 -0
- package/node/prelude/internal/querystring.js +0 -0
- package/node/prelude/internal/readline.js +338 -0
- package/node/prelude/internal/socketaddress.js +8 -4
- package/node/prelude/internal/source_map.js +122 -0
- package/node/prelude/internal/stream_compose.js +74 -0
- package/node/prelude/internal/stream_from.js +6 -0
- package/node/prelude/internal/stream_operators.js +23 -0
- package/node/prelude/internal/stream_pipeline.js +7 -0
- package/node/prelude/internal/stream_transform.js +10 -0
- package/node/prelude/internal/stream_web_adapters.js +143 -0
- package/node/prelude/internal/streams/add_abort_signal.js +58 -0
- package/node/prelude/internal/streams/compose.js +244 -0
- package/node/prelude/internal/streams/destroy.js +358 -0
- package/node/prelude/internal/streams/duplex.js +199 -0
- package/node/prelude/internal/streams/duplexify.js +378 -0
- package/node/prelude/internal/streams/end_of_stream.js +387 -0
- package/node/prelude/internal/streams/errors.js +216 -0
- package/node/prelude/internal/streams/from.js +211 -0
- package/node/prelude/internal/streams/legacy.js +120 -0
- package/node/prelude/internal/streams/operators.js +375 -0
- package/node/prelude/internal/streams/passthrough.js +45 -0
- package/node/prelude/internal/streams/pipeline.js +468 -0
- package/node/prelude/internal/streams/readable.js +1835 -0
- package/node/prelude/internal/streams/state.js +48 -0
- package/node/prelude/internal/streams/transform.js +203 -0
- package/node/prelude/internal/streams/utils.js +355 -0
- package/node/prelude/internal/streams/validators.js +108 -0
- package/node/prelude/internal/streams/writable.js +1160 -0
- package/node/prelude/internal/structured_clone.js +238 -0
- package/node/prelude/internal/system_errors.js +37 -0
- package/node/prelude/internal/test_runner/mock.js +431 -0
- package/node/prelude/internal/test_runner/reporters.js +404 -0
- package/node/prelude/internal/test_runner/test.js +1571 -0
- package/node/prelude/internal/timers.js +38 -7
- package/node/prelude/internal/timers_global.js +1 -1
- package/node/prelude/internal/tls/common.js +8 -2
- package/node/prelude/internal/tls/wrap.js +5 -16
- package/node/prelude/internal/tls/x509.js +1 -1
- package/node/prelude/internal/tty_read_stream.js +39 -0
- package/node/prelude/internal/tty_streams.js +3 -0
- package/node/prelude/internal/util_debuglog.js +68 -0
- package/node/prelude/internal/util_diff.js +63 -0
- package/node/prelude/internal/util_more.js +111 -0
- package/node/prelude/internal/util_styles.js +76 -0
- package/node/prelude/internal/zlib_engines.js +1 -1
- package/node/prelude/module.js +219 -8
- package/node/prelude/net.js +197 -49
- package/node/prelude/os.js +88 -11
- package/node/prelude/path.js +11 -7
- package/node/prelude/path_posix.js +1 -1
- package/node/prelude/path_win32.js +1 -1
- package/node/prelude/perf_hooks.js +151 -0
- package/node/prelude/process.js +36 -1
- package/node/prelude/punycode.js +188 -0
- package/node/prelude/querystring.js +1 -1
- package/node/prelude/readline.js +8 -0
- package/node/prelude/readline_promises.js +88 -0
- package/node/prelude/repl.js +38 -0
- package/node/prelude/sea.js +23 -0
- package/node/prelude/stream.js +70 -1332
- package/node/prelude/stream_consumers.js +34 -0
- package/node/prelude/stream_promises.js +1 -1
- package/node/prelude/stream_web.js +15 -2
- package/node/prelude/string_decoder.js +1 -1
- package/node/prelude/sys.js +7 -0
- package/node/prelude/test.js +56 -0
- package/node/prelude/test_reporters.js +269 -0
- package/node/prelude/timers.js +7 -84
- package/node/prelude/timers_promises.js +1 -1
- package/node/prelude/tls.js +2 -1
- package/node/prelude/trace_events.js +52 -0
- package/node/prelude/tty.js +10 -4
- package/node/prelude/url.js +88 -27
- package/node/prelude/util.js +121 -5
- package/node/prelude/util_types.js +4 -3
- package/node/prelude/v8.js +814 -0
- package/node/prelude/vm.js +86 -0
- package/node/prelude/wasi.js +10 -0
- package/node/prelude/worker_threads.js +56 -0
- package/node/prelude/zlib.js +58 -25
- package/node/src/host_brotli.c +59 -11
- package/node/src/host_fs.c +342 -11
- package/node/src/host_fswatch.c +170 -0
- package/node/src/host_http.c +292 -39
- package/node/src/host_loop.c +25 -2
- package/node/src/host_net.c +130 -16
- package/node/src/host_os.c +55 -1
- package/node/src/host_proc.c +291 -0
- package/node/src/host_process.c +488 -0
- package/node/src/host_sys.c +64 -2
- package/node/src/host_zlib.c +27 -7
- package/node/src/host_zstd.c +41 -6
- package/node/third_party/hdrhistogram/LICENSE +42 -0
- package/node/third_party/hdrhistogram/README.md +5 -0
- package/node/third_party/libuv/LICENSE +0 -0
- package/node/third_party/libuv/LICENSE-extra +36 -0
- package/node/third_party/libuv/include/uv/aix.h +0 -0
- package/node/third_party/libuv/include/uv/bsd.h +0 -0
- package/node/third_party/libuv/include/uv/darwin.h +0 -0
- package/node/third_party/libuv/include/uv/errno.h +0 -0
- package/node/third_party/libuv/include/uv/linux.h +0 -0
- package/node/third_party/libuv/include/uv/os390.h +0 -0
- package/node/third_party/libuv/include/uv/posix.h +0 -0
- package/node/third_party/libuv/include/uv/sunos.h +0 -0
- package/node/third_party/libuv/include/uv/threadpool.h +0 -0
- package/node/third_party/libuv/include/uv/tree.h +0 -0
- package/node/third_party/libuv/include/uv/unix.h +0 -0
- package/node/third_party/libuv/include/uv/version.h +0 -0
- package/node/third_party/libuv/include/uv/win.h +0 -0
- package/node/third_party/libuv/include/uv.h +0 -0
- package/node/third_party/libuv/src/fs-poll.c +0 -0
- package/node/third_party/libuv/src/heap-inl.h +0 -0
- package/node/third_party/libuv/src/idna.c +0 -0
- package/node/third_party/libuv/src/idna.h +0 -0
- package/node/third_party/libuv/src/inet.c +0 -0
- package/node/third_party/libuv/src/queue.h +0 -0
- package/node/third_party/libuv/src/random.c +0 -0
- package/node/third_party/libuv/src/strscpy.c +0 -0
- package/node/third_party/libuv/src/strscpy.h +0 -0
- package/node/third_party/libuv/src/strtok.c +0 -0
- package/node/third_party/libuv/src/strtok.h +0 -0
- package/node/third_party/libuv/src/thread-common.c +0 -0
- package/node/third_party/libuv/src/threadpool.c +0 -0
- package/node/third_party/libuv/src/timer.c +0 -0
- package/node/third_party/libuv/src/unix/async.c +0 -0
- package/node/third_party/libuv/src/unix/bsd-ifaddrs.c +0 -0
- package/node/third_party/libuv/src/unix/core.c +0 -0
- package/node/third_party/libuv/src/unix/darwin-proctitle.c +0 -0
- package/node/third_party/libuv/src/unix/darwin-stub.h +0 -0
- package/node/third_party/libuv/src/unix/darwin-syscalls.h +0 -0
- package/node/third_party/libuv/src/unix/darwin.c +0 -0
- package/node/third_party/libuv/src/unix/dl.c +0 -0
- package/node/third_party/libuv/src/unix/fs.c +0 -0
- package/node/third_party/libuv/src/unix/fsevents.c +0 -0
- package/node/third_party/libuv/src/unix/getaddrinfo.c +0 -0
- package/node/third_party/libuv/src/unix/getnameinfo.c +0 -0
- package/node/third_party/libuv/src/unix/internal.h +0 -0
- package/node/third_party/libuv/src/unix/kqueue.c +0 -0
- package/node/third_party/libuv/src/unix/linux.c +0 -0
- package/node/third_party/libuv/src/unix/loop-watcher.c +0 -0
- package/node/third_party/libuv/src/unix/loop.c +0 -0
- package/node/third_party/libuv/src/unix/pipe.c +0 -0
- package/node/third_party/libuv/src/unix/poll.c +0 -0
- package/node/third_party/libuv/src/unix/process.c +0 -0
- package/node/third_party/libuv/src/unix/procfs-exepath.c +0 -0
- package/node/third_party/libuv/src/unix/proctitle.c +0 -0
- package/node/third_party/libuv/src/unix/random-devurandom.c +0 -0
- package/node/third_party/libuv/src/unix/random-getentropy.c +0 -0
- package/node/third_party/libuv/src/unix/random-getrandom.c +0 -0
- package/node/third_party/libuv/src/unix/random-sysctl-linux.c +0 -0
- package/node/third_party/libuv/src/unix/signal.c +0 -0
- package/node/third_party/libuv/src/unix/stream.c +0 -0
- package/node/third_party/libuv/src/unix/tcp.c +0 -0
- package/node/third_party/libuv/src/unix/thread.c +0 -0
- package/node/third_party/libuv/src/unix/tty.c +0 -0
- package/node/third_party/libuv/src/unix/udp.c +0 -0
- package/node/third_party/libuv/src/uv-common.c +0 -0
- package/node/third_party/libuv/src/uv-common.h +0 -0
- package/node/third_party/libuv/src/uv-data-getter-setters.c +0 -0
- package/node/third_party/libuv/src/version.c +0 -0
- package/node/third_party/llhttp/LICENSE +0 -0
- package/node/third_party/llhttp/api.c +0 -0
- package/node/third_party/llhttp/http.c +0 -0
- package/node/third_party/llhttp/llhttp.c +0 -0
- package/node/third_party/llhttp/llhttp.h +0 -0
- package/node/third_party/nodejs/LICENSE +47 -0
- package/node/third_party/nodejs/README.md +5 -0
- package/node/third_party/parseargs/LICENSE +21 -0
- package/node/third_party/parseargs/README.md +5 -0
- package/node/third_party/punycode/LICENSE +20 -0
- package/node/third_party/punycode/README.md +5 -0
- package/node/third_party/zlib/LICENSE.chromium +27 -0
- package/package.json +1 -1
- package/prebuilt/darwin-arm64/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/darwin-arm64/brotli-7995bbdacc52e51c.a +0 -0
- package/prebuilt/darwin-arm64/uv-72ab666eae197cd8.a +0 -0
- package/prebuilt/darwin-arm64/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/darwin-arm64/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/darwin-x64/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/darwin-x64/brotli-7995bbdacc52e51c.a +0 -0
- package/prebuilt/darwin-x64/uv-72ab666eae197cd8.a +0 -0
- package/prebuilt/darwin-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/darwin-x64/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/linux-arm64/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/linux-arm64/brotli-65481ff838ce9def.a +0 -0
- package/prebuilt/linux-arm64/uv-f1353f50ff983f3c.a +0 -0
- package/prebuilt/linux-arm64/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/linux-arm64/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/linux-arm64-musl/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/linux-arm64-musl/brotli-65481ff838ce9def.a +0 -0
- package/prebuilt/linux-arm64-musl/uv-f1353f50ff983f3c.a +0 -0
- package/prebuilt/linux-arm64-musl/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/linux-arm64-musl/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/linux-x64/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/linux-x64/brotli-65481ff838ce9def.a +0 -0
- package/prebuilt/linux-x64/uv-f1353f50ff983f3c.a +0 -0
- package/prebuilt/linux-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/linux-x64/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/linux-x64-musl/boringssl-4a47438eaf7e73ba.a +0 -0
- package/prebuilt/linux-x64-musl/brotli-65481ff838ce9def.a +0 -0
- package/prebuilt/linux-x64-musl/uv-f1353f50ff983f3c.a +0 -0
- package/prebuilt/linux-x64-musl/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/linux-x64-musl/zstd-015315ac7c784c73.a +0 -0
- package/prebuilt/win32-x64/boringssl-ce573858472b7fc9.a +0 -0
- package/prebuilt/win32-x64/brotli-20d86a61f30baeb3.a +0 -0
- package/prebuilt/win32-x64/uv-b11bae65d7fced82.a +0 -0
- package/prebuilt/win32-x64/zlib-4ce2317a4c3f5fb5.a +0 -0
- package/prebuilt/win32-x64/zstd-015315ac7c784c73.a +0 -0
- package/runtime/include/js_atoms.gen.h +0 -0
- package/runtime/include/js_atoms.h +5 -1
- package/runtime/include/js_bigint.h +1 -1
- package/runtime/include/js_buffer.h +4 -4
- package/runtime/include/js_builtins.h +41 -3
- package/runtime/include/js_console.h +9 -4
- package/runtime/include/js_convert.h +1 -1
- package/runtime/include/js_core.def +5 -4
- package/runtime/include/js_crypto.h +1 -1
- package/runtime/include/js_error.h +1 -1
- package/runtime/include/js_exception.h +21 -1
- package/runtime/include/js_function.h +33 -9
- package/runtime/include/js_gc.h +172 -30
- package/runtime/include/js_generator.h +2 -2
- package/runtime/include/js_host.h +19 -1
- package/runtime/include/js_jobs.h +5 -5
- package/runtime/include/js_module.h +1 -1
- package/runtime/include/js_object.h +142 -15
- package/runtime/include/js_ops.h +107 -5
- package/runtime/include/js_promise.h +3 -3
- package/runtime/include/js_regexp.h +1 -1
- package/runtime/include/js_runtime.h +0 -0
- package/runtime/include/js_symbol.h +1 -1
- package/runtime/include/js_web.h +5 -1
- package/runtime/include/jscell.h +22 -15
- package/runtime/include/jscontext.h +82 -39
- package/runtime/include/jsnum.h +1 -1
- package/runtime/include/jsstring.h +19 -6
- package/runtime/include/jsvalue.h +7 -3
- package/runtime/src/arguments.c +2 -2
- package/runtime/src/array.c +4 -1
- package/runtime/src/arraybuffer.c +19 -7
- package/runtime/src/async_iter.c +4 -3
- package/runtime/src/atoms.c +38 -4
- package/runtime/src/base64.c +2 -2
- package/runtime/src/bigint.c +1 -1
- package/runtime/src/blob.c +22 -9
- package/runtime/src/boringssl_support.cc +1 -1
- package/runtime/src/buffer.c +299 -91
- package/runtime/src/builtin_table.c +1 -1
- package/runtime/src/builtins.c +30 -4
- package/runtime/src/builtins_util.h +0 -0
- package/runtime/src/collections.c +18 -3
- package/runtime/src/components.c +1 -1
- package/runtime/src/console.c +14 -7
- package/runtime/src/convert.c +0 -0
- package/runtime/src/core_all.c +1 -1
- package/runtime/src/crypto.c +1 -1
- package/runtime/src/crypto_asym.c +1 -1
- package/runtime/src/crypto_bn.c +1 -1
- package/runtime/src/crypto_cipher.c +10 -3
- package/runtime/src/crypto_hash.c +1 -1
- package/runtime/src/crypto_host.c +1 -1
- package/runtime/src/crypto_internal.h +1 -1
- package/runtime/src/crypto_kdf.c +1 -1
- package/runtime/src/crypto_key.c +14 -1
- package/runtime/src/crypto_pkey.c +1 -1
- package/runtime/src/crypto_subtle.c +142 -58
- package/runtime/src/crypto_tls.c +1 -1
- package/runtime/src/date.c +5 -2
- package/runtime/src/domexception.c +2 -2
- package/runtime/src/elements.c +56 -17
- package/runtime/src/elements.h +7 -2
- package/runtime/src/encoding.c +1 -1
- package/runtime/src/error.c +4 -4
- package/runtime/src/events.c +42 -14
- package/runtime/src/exception.c +1 -1
- package/runtime/src/fetch.c +241 -17
- package/runtime/src/function.c +31 -19
- package/runtime/src/gc.c +1720 -211
- package/runtime/src/gc_visit.h +87 -0
- package/runtime/src/generator.c +5 -3
- package/runtime/src/global.c +14 -6
- package/runtime/src/headers.c +10 -10
- package/runtime/src/inspect.c +76 -17
- package/runtime/src/internal.h +9 -6
- package/runtime/src/iterate.c +94 -2
- package/runtime/src/iterator.c +1 -1
- package/runtime/src/jobs.c +11 -5
- package/runtime/src/jsnum.c +2 -2
- package/runtime/src/json.c +1 -1
- package/runtime/src/math.c +9 -1
- package/runtime/src/module.c +3 -3
- package/runtime/src/number.c +0 -0
- package/runtime/src/object.c +107 -74
- package/runtime/src/ops.c +21 -3
- package/runtime/src/os.c +192 -1
- package/runtime/src/os.h +33 -2
- package/runtime/src/process.c +73 -8
- package/runtime/src/promise.c +4 -4
- package/runtime/src/proxy.c +1 -1
- package/runtime/src/reflect.c +1 -1
- package/runtime/src/regexp.c +700 -11
- package/runtime/src/regexp_anchor.h +1 -1
- package/runtime/src/regexp_message.h +1 -1
- package/runtime/src/shape.c +78 -20
- package/runtime/src/shape.h +0 -0
- package/runtime/src/streams.c +22 -8
- package/runtime/src/streams.h +0 -0
- package/runtime/src/string.c +64 -25
- package/runtime/src/string_builtins.c +7 -7
- package/runtime/src/symbol.c +2 -7
- package/runtime/src/test_host.c +3 -3
- package/runtime/src/tls_roots.gen.h +102 -620
- package/runtime/src/typedarray.c +8 -3
- package/runtime/src/tznames.gen.h +2 -1
- package/runtime/src/uri.c +1 -1
- package/runtime/src/url.c +42 -39
- package/runtime/src/weak.c +110 -36
- package/runtime/src/web.c +21 -3
- package/runtime/src/wrapper.c +0 -0
- package/runtime/src/writable.c +7 -6
- package/runtime/third_party/ada-idna/LICENSE-MIT +0 -0
- package/runtime/third_party/ada-idna/README.md +7 -7
- package/runtime/third_party/ada-idna/convert.mjs +89 -27
- package/runtime/third_party/ada-idna/idna.c +30 -31
- package/runtime/third_party/ada-idna/idna.h +0 -0
- package/runtime/third_party/ada-idna/idna_tables.h +2272 -1952
- package/runtime/third_party/boringssl/third_party/fiat/LICENSE +15 -0
- package/runtime/third_party/mozilla-ca/LICENSE +373 -0
- package/runtime/third_party/mozilla-ca/README.md +9 -0
- package/runtime/third_party/nodejs/LICENSE +47 -0
- package/runtime/third_party/nodejs/README.md +7 -0
- package/runtime/third_party/quickjs-dtoa/LICENSE +0 -0
- package/runtime/third_party/quickjs-dtoa/README.md +1 -1
- package/runtime/third_party/quickjs-dtoa/dtoa.c +0 -0
- package/runtime/third_party/quickjs-dtoa/dtoa.h +0 -0
- package/runtime/third_party/quickjs-dtoa/dtoa_compat.h +0 -0
- package/runtime/third_party/quickjs-regexp/LICENSE +0 -0
- package/runtime/third_party/quickjs-regexp/README.md +2 -2
- package/runtime/third_party/quickjs-regexp/cutils.c +0 -0
- package/runtime/third_party/quickjs-regexp/cutils.h +0 -0
- package/runtime/third_party/quickjs-regexp/libregexp-opcode.h +0 -0
- package/runtime/third_party/quickjs-regexp/libregexp.c +0 -0
- package/runtime/third_party/quickjs-regexp/libregexp.h +0 -0
- package/runtime/third_party/quickjs-regexp/libunicode-table.h +0 -0
- package/runtime/third_party/quickjs-regexp/libunicode.c +0 -0
- package/runtime/third_party/quickjs-regexp/libunicode.h +0 -0
- package/runtime/third_party/unicode/LICENSE +39 -0
- package/runtime/third_party/unicode/README.md +9 -0
- package/runtime/third_party/v8-ieee754/LICENSE +0 -0
- package/runtime/third_party/v8-ieee754/LICENSE.fdlibm +10 -0
- package/runtime/third_party/v8-ieee754/README.md +3 -2
- package/runtime/third_party/v8-ieee754/convert.py +0 -0
- package/runtime/third_party/v8-ieee754/ieee754.c +0 -0
- package/runtime/third_party/v8-ieee754/ieee754.h +0 -0
- package/runtime/tools/regexp_compile.c +2 -2
|
@@ -1,21 +1,97 @@
|
|
|
1
1
|
// Generates idna_tables.h from Ada's ada_idna.cpp (the single-file IDNA of ada-url/ada, the
|
|
2
2
|
// version Node bundles): the UTS #46 mapping table and the label-validity data, packed for C.
|
|
3
|
+
// Ada 4 keeps its tables in a raw-DEFLATE blob, read here as Ada reads it: a two-level table
|
|
4
|
+
// (64 code points a block) of statuses and UTF-8 mappings, bidi ranges and combining ranges.
|
|
3
5
|
//
|
|
4
6
|
// node runtime/third_party/ada-idna/convert.mjs <ada>/src/ada_idna.cpp
|
|
7
|
+
import { Buffer } from "node:buffer";
|
|
5
8
|
import { readFileSync, writeFileSync } from "node:fs";
|
|
6
9
|
import { join } from "node:path";
|
|
7
10
|
import process from "node:process";
|
|
11
|
+
import { inflateRawSync } from "node:zlib";
|
|
8
12
|
|
|
9
13
|
const source = readFileSync(process.argv[2], "utf8");
|
|
10
14
|
const version = /\/\/ IDNA\s+([\d.]+)/.exec(source)[1];
|
|
11
15
|
|
|
16
|
+
/** A `constexpr` number of the source, by name. */
|
|
17
|
+
function constant(name) {
|
|
18
|
+
const m = new RegExp(`constexpr\\s+(?:size_t|uint32_t|uint16_t)\\s+${name}\\s*=\\s*(0x[0-9a-fA-F]+|\\d+)u?;`).exec(source);
|
|
19
|
+
if (!m) throw new Error(`no constant ${name}`);
|
|
20
|
+
return Number(m[1]);
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
/** The numbers of the C++ array `name` (comments dropped). */
|
|
13
24
|
function array(name) {
|
|
14
|
-
const m = new RegExp(`\\b${name}\\[[^\\]]*\\]
|
|
25
|
+
const m = new RegExp(`\\b${name}\\[[^\\]]*\\]\\s*=\\s*\\{([\\s\\S]*?)\\};`).exec(source);
|
|
15
26
|
if (!m) throw new Error(`no array ${name}`);
|
|
16
27
|
return m[1].replace(/\/\/.*$/gm, "").match(/0x[0-9a-fA-F]+|\d+/g).map(Number);
|
|
17
28
|
}
|
|
18
29
|
|
|
30
|
+
/* the blob: inflated, little-endian sections at the offsets Ada names */
|
|
31
|
+
const blob = inflateRawSync(Buffer.from(array("compressed")));
|
|
32
|
+
if (blob.length !== constant("uncompressed_size")) throw new Error("the inflated tables aren't Ada's size");
|
|
33
|
+
const section = (name, size) => {
|
|
34
|
+
const at = constant(`off_${name}`), count = constant(`count_${name}`);
|
|
35
|
+
const read = { 1: (i) => blob[at + i], 2: (i) => blob.readUInt16LE(at + 2 * i), 4: (i) => blob.readUInt32LE(at + 4 * i),
|
|
36
|
+
8: (i) => blob.readBigUInt64LE(at + 8 * i) }[size];
|
|
37
|
+
return Array.from({ length: count }, (_, i) => read(i));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/* ---- the mapping: each code point's status, and its mapping when mapped ---------------------- */
|
|
41
|
+
|
|
42
|
+
const VALID = 0xffff, DISALLOWED = 0xfffe, IGNORED = 0, BOOL_FLAG = 0x8000;
|
|
43
|
+
const stage1 = section("idna_stage1", 2);
|
|
44
|
+
const stage2 = section("idna_stage2", 2);
|
|
45
|
+
const boolBlocks = section("idna_bool_blocks", 8);
|
|
46
|
+
const utf8 = section("idna_utf8_mappings", 1);
|
|
47
|
+
const LOW_END = constant("IDNA_LOW_RANGE_END");
|
|
48
|
+
const HIGH_IGNORED_START = constant("IDNA_HIGH_IGNORED_START");
|
|
49
|
+
const HIGH_IGNORED_END = constant("IDNA_HIGH_IGNORED_END");
|
|
50
|
+
|
|
51
|
+
/** Ada's idna_lookup: VALID, DISALLOWED, IGNORED, or an offset into the UTF-8 mappings. */
|
|
52
|
+
function lookup(cp) {
|
|
53
|
+
if (cp < LOW_END) {
|
|
54
|
+
const ref = stage1[cp >> 6];
|
|
55
|
+
if (ref & BOOL_FLAG) {
|
|
56
|
+
const bit = (ref & ~BOOL_FLAG) * 64 + (cp & 63);
|
|
57
|
+
return (boolBlocks[bit >> 6] >> BigInt(bit & 63)) & 1n ? VALID : DISALLOWED;
|
|
58
|
+
}
|
|
59
|
+
return stage2[ref + (cp & 63)];
|
|
60
|
+
}
|
|
61
|
+
return cp >= HIGH_IGNORED_START && cp < HIGH_IGNORED_END ? IGNORED : DISALLOWED;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** The code points of the NUL-terminated UTF-8 mapping at `at`. */
|
|
65
|
+
function mappingAt(at) {
|
|
66
|
+
let end = at;
|
|
67
|
+
while (utf8[end] !== 0) end++;
|
|
68
|
+
return [...Buffer.from(utf8.slice(at, end)).toString("utf8")].map((c) => c.codePointAt(0));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ranges of equal status (and, mapped, equal mapping), as idna.c reads them: status 0 ignored,
|
|
72
|
+
1 valid, 2 disallowed, 3 mapped */
|
|
73
|
+
const entries = [];
|
|
74
|
+
for (let cp = 0; cp <= 0x10ffff; cp++) {
|
|
75
|
+
const v = lookup(cp);
|
|
76
|
+
const status = v === VALID ? 1 : v === DISALLOWED ? 2 : v === IGNORED ? 0 : 3;
|
|
77
|
+
const mapping = status === 3 ? mappingAt(v) : null;
|
|
78
|
+
const last = entries[entries.length - 1];
|
|
79
|
+
if (last && last.status === status && (status !== 3 || last.mapping.join() === mapping.join())) continue;
|
|
80
|
+
entries.push({ first: cp, status, mapping });
|
|
81
|
+
}
|
|
82
|
+
const mappings = [];
|
|
83
|
+
const keys = [];
|
|
84
|
+
const indices = [];
|
|
85
|
+
for (const { first, status, mapping } of entries) {
|
|
86
|
+
if (first >= 1 << 21 || (mapping && mapping.length >= 32)) throw new Error("table entry out of range");
|
|
87
|
+
keys.push((first | (status << 21) | ((mapping ? mapping.length : 0) << 23)) >>> 0);
|
|
88
|
+
indices.push(mapping ? mappings.length : 0);
|
|
89
|
+
if (mapping) mappings.push(...mapping);
|
|
90
|
+
}
|
|
91
|
+
if (mappings.length > 0xffff) throw new Error("mappings past a 16-bit index");
|
|
92
|
+
|
|
93
|
+
/* ---- label validity ----------------------------------------------------------------------- */
|
|
94
|
+
|
|
19
95
|
/** Sorted code points as [first, last] ranges. */
|
|
20
96
|
function ranges(points) {
|
|
21
97
|
const out = [];
|
|
@@ -34,28 +110,14 @@ function rows(values, perLine, hex = true) {
|
|
|
34
110
|
return lines.join("\n");
|
|
35
111
|
}
|
|
36
112
|
|
|
37
|
-
/*
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
for (let i = 0; i <
|
|
44
|
-
|
|
45
|
-
const code = d & 0xff;
|
|
46
|
-
const mapped = code > 2;
|
|
47
|
-
if (first >= 1 << 21 || (mapped && d >>> 24 >= 32)) throw new Error("table entry out of range");
|
|
48
|
-
keys.push((first | ((mapped ? 3 : code) << 21) | ((mapped ? d >>> 24 : 0) << 23)) >>> 0);
|
|
49
|
-
indices.push(mapped ? (d >>> 8) & 0xffff : 0);
|
|
50
|
-
}
|
|
51
|
-
const mappings = array("mappings");
|
|
52
|
-
|
|
53
|
-
/* the bidi classes, in Ada's enum order */
|
|
54
|
-
const DIRECTIONS = ["NONE", "BN", "CS", "ES", "ON", "EN", "L", "R", "NSM", "AL", "AN", "ET", "WS", "RLO", "LRO", "PDF", "RLE", "RLI", "FSI", "PDI", "LRI", "B", "S", "LRE"];
|
|
55
|
-
const dirSource = /dir_table\[\]\s*=\s*\{([\s\S]*?)\};/.exec(source)[1];
|
|
56
|
-
const dirs = [...dirSource.matchAll(/\{(0x[0-9a-f]+),\s*(0x[0-9a-f]+),\s*direction::(\w+)\}/g)].map((m) => [Number(m[1]), Number(m[2]), DIRECTIONS.indexOf(m[3])]);
|
|
57
|
-
|
|
58
|
-
const sets = Object.fromEntries(["combining", "virama", "R", "L", "D"].map((n) => [n, ranges(array(`static uint32_t ${n}`))]));
|
|
113
|
+
/* the bidi classes: Ada's ranges, in its enum's order (idna.c's enum idna_direction) */
|
|
114
|
+
const dirFirst = section("dir_start", 4);
|
|
115
|
+
const dirLast = section("dir_final", 4);
|
|
116
|
+
const dirClass = section("dir_value", 1);
|
|
117
|
+
const combiningFlat = section("combining_flat", 4);
|
|
118
|
+
const combining = [];
|
|
119
|
+
for (let i = 0; i < combiningFlat.length; i += 2) combining.push([combiningFlat[i], combiningFlat[i + 1]]);
|
|
120
|
+
const sets = { combining, ...Object.fromEntries(["virama", "R", "L", "D"].map((n) => [n, ranges(array(`constexpr static uint32_t ${n}`))])) };
|
|
59
121
|
|
|
60
122
|
const out = [];
|
|
61
123
|
out.push(`/* Generated by runtime/third_party/ada-idna/convert.mjs from Ada's ada_idna.cpp (IDNA ${version}). Do not edit.`);
|
|
@@ -70,10 +132,10 @@ out.push(`static const uint16_t idna_table_index[${indices.length}] = {\n${rows(
|
|
|
70
132
|
out.push(`static const uint32_t idna_mappings[${mappings.length}] = {\n${rows(mappings, 10)}\n};`);
|
|
71
133
|
out.push("");
|
|
72
134
|
out.push("/* Bidi classes (RFC 5893), as Ada's ranges: first, last, class (enum idna_direction). */");
|
|
73
|
-
out.push(`#define IDNA_DIR_COUNT ${
|
|
74
|
-
out.push(`static const uint32_t idna_dir_first[${
|
|
75
|
-
out.push(`static const uint32_t idna_dir_last[${
|
|
76
|
-
out.push(`static const uint8_t idna_dir_class[${
|
|
135
|
+
out.push(`#define IDNA_DIR_COUNT ${dirFirst.length}`);
|
|
136
|
+
out.push(`static const uint32_t idna_dir_first[${dirFirst.length}] = {\n${rows(dirFirst, 10)}\n};`);
|
|
137
|
+
out.push(`static const uint32_t idna_dir_last[${dirLast.length}] = {\n${rows(dirLast, 10)}\n};`);
|
|
138
|
+
out.push(`static const uint8_t idna_dir_class[${dirClass.length}] = {\n${rows(dirClass, 24, false)}\n};`);
|
|
77
139
|
out.push("");
|
|
78
140
|
out.push("/* Code point sets of the label-validity rules, as sorted [first, last] ranges. */");
|
|
79
141
|
for (const [name, rs] of Object.entries(sets)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/* UTS #46 domain to ASCII: a C port of Ada's IDNA (src/ada_idna.cpp of ada-url/ada
|
|
2
|
-
* version Node
|
|
1
|
+
/* UTS #46 domain to ASCII: a C port of Ada's IDNA (src/ada_idna.cpp of ada-url/ada 4.0.0, the
|
|
2
|
+
* version Node v24 bundles; mapping.cpp, punycode.cpp, validity.cpp and to_ascii.cpp), kept
|
|
3
3
|
* step for step, including Ada's quirks, so that hosts come out as Node's do. Copyright Yagiz
|
|
4
4
|
* Nizipli and Daniel Lemire; MIT license (LICENSE-MIT). visaljs's changes: C instead of C++
|
|
5
5
|
* (code point buffers instead of std::u32string), tables packed by convert.mjs, and
|
|
@@ -182,6 +182,8 @@ static bool punycode_to_utf32(const char *input, size_t len, U32 *out) {
|
|
|
182
182
|
written_out++;
|
|
183
183
|
++i;
|
|
184
184
|
}
|
|
185
|
+
/* a label that decodes to an xn-- label (encoded twice) is refused: whatwg/url#803 */
|
|
186
|
+
if (out->n >= 4 && out->v[0] == 'x' && out->v[1] == 'n' && out->v[2] == '-' && out->v[3] == '-') return false;
|
|
185
187
|
return true;
|
|
186
188
|
}
|
|
187
189
|
|
|
@@ -196,7 +198,7 @@ static bool utf32_to_punycode(const uint32_t *input, size_t len, Bytes *out) {
|
|
|
196
198
|
++h;
|
|
197
199
|
bytes_push(out, (char)c);
|
|
198
200
|
}
|
|
199
|
-
if (c > 0x10ffff || (c >=
|
|
201
|
+
if (c > 0x10ffff || (c >= 0xd800 && c < 0xe000)) return false;
|
|
200
202
|
}
|
|
201
203
|
size_t b = h;
|
|
202
204
|
if (b > 0) bytes_push(out, '-');
|
|
@@ -289,14 +291,18 @@ static bool is_label_valid(const uint32_t *label, size_t n) {
|
|
|
289
291
|
unsigned directions = 0;
|
|
290
292
|
for (size_t i = 0; i < n; i++) directions |= 1u << find_direction(label[i]);
|
|
291
293
|
if (!(directions & ((1u << DIR_R) | (1u << DIR_AL) | (1u << DIR_AN)))) return true;
|
|
292
|
-
if (find_direction(label[0]) == DIR_L) { /* LTR
|
|
293
|
-
for (size_t i = 0; i
|
|
294
|
+
if (find_direction(label[0]) == DIR_L) { /* LTR */
|
|
295
|
+
for (size_t i = 0; i <= last_non_nsm; i++) {
|
|
294
296
|
int d = find_direction(label[i]);
|
|
295
297
|
if (!(d == DIR_L || d == DIR_EN || d == DIR_ES || d == DIR_CS || d == DIR_ET || d == DIR_ON || d == DIR_BN || d == DIR_NSM))
|
|
296
298
|
return false;
|
|
297
299
|
}
|
|
298
|
-
|
|
300
|
+
int last = find_direction(label[last_non_nsm]);
|
|
301
|
+
return last == DIR_L || last == DIR_EN;
|
|
299
302
|
}
|
|
303
|
+
/* RTL: it must begin with R or AL (a leading AN, or anything else, doesn't start one) */
|
|
304
|
+
int first = find_direction(label[0]);
|
|
305
|
+
if (first != DIR_R && first != DIR_AL) return false;
|
|
300
306
|
bool has_an = false, has_en = false;
|
|
301
307
|
for (size_t i = 0; i <= last_non_nsm; i++) {
|
|
302
308
|
int d = find_direction(label[i]);
|
|
@@ -318,11 +324,16 @@ static bool is_label_valid(const uint32_t *label, size_t n) {
|
|
|
318
324
|
|
|
319
325
|
/* ---- To ASCII (to_ascii.cpp) --------------------------------------------------------------- */
|
|
320
326
|
|
|
321
|
-
/* An xn-- label (its punycode after the prefix): it must decode
|
|
322
|
-
* already, and be valid. */
|
|
327
|
+
/* An xn-- label of a domain that isn't all ASCII (its punycode after the prefix): it must decode
|
|
328
|
+
* to something not ASCII, be mapped and normalized already, and be valid. */
|
|
323
329
|
static bool check_punycode_label(const char *puny, size_t len) {
|
|
324
330
|
U32 decoded = { 0 }, mapped = { 0 }, normal = { 0 };
|
|
325
331
|
bool ok = punycode_to_utf32(puny, len, &decoded);
|
|
332
|
+
if (ok) {
|
|
333
|
+
bool ascii = true;
|
|
334
|
+
for (size_t i = 0; i < decoded.n && ascii; i++) ascii = decoded.v[i] < 0x80;
|
|
335
|
+
ok = !ascii;
|
|
336
|
+
}
|
|
326
337
|
if (ok) {
|
|
327
338
|
map(decoded.v, decoded.n, &mapped);
|
|
328
339
|
ok = u32_equal(decoded.v, decoded.n, mapped.v, mapped.n);
|
|
@@ -338,36 +349,24 @@ static bool check_punycode_label(const char *puny, size_t len) {
|
|
|
338
349
|
return ok;
|
|
339
350
|
}
|
|
340
351
|
|
|
352
|
+
/* An ASCII domain: lowercased, as the URL standard's domain to ASCII (beStrict false) has it,
|
|
353
|
+
* whatever its labels (xn-- ones aren't checked) */
|
|
341
354
|
static char *from_ascii_to_ascii(const uint32_t *domain, size_t n, size_t *out_len) {
|
|
342
|
-
Bytes
|
|
343
|
-
for (size_t i = 0; i < n; i++) bytes_push(&
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
bool last = dot == NULL;
|
|
348
|
-
size_t label_size = last ? mapped.n - label_start : (size_t)(dot - (mapped.v + label_start));
|
|
349
|
-
const char *label = mapped.v + label_start;
|
|
350
|
-
label_start += last ? label_size : label_size + 1;
|
|
351
|
-
if (label_size >= 4 && memcmp(label, "xn--", 4) == 0) {
|
|
352
|
-
bytes_append(&out, label, label_size);
|
|
353
|
-
if (!check_punycode_label(label + 4, label_size - 4)) goto fail;
|
|
354
|
-
} else {
|
|
355
|
-
bytes_append(&out, label, label_size);
|
|
356
|
-
}
|
|
357
|
-
if (!last) bytes_push(&out, '.');
|
|
355
|
+
Bytes out = { 0 };
|
|
356
|
+
for (size_t i = 0; i < n; i++) bytes_push(&out, (char)(domain[i] >= 'A' && domain[i] <= 'Z' ? domain[i] + 32 : domain[i]));
|
|
357
|
+
if (out.n == 0) {
|
|
358
|
+
free(out.v);
|
|
359
|
+
return NULL;
|
|
358
360
|
}
|
|
359
|
-
free(mapped.v);
|
|
360
|
-
if (out.n == 0) goto fail_out;
|
|
361
361
|
*out_len = out.n;
|
|
362
362
|
return out.v;
|
|
363
|
-
fail:
|
|
364
|
-
free(mapped.v);
|
|
365
|
-
fail_out:
|
|
366
|
-
free(out.v);
|
|
367
|
-
return NULL;
|
|
368
363
|
}
|
|
369
364
|
|
|
370
365
|
char *idna_to_ascii(const uint32_t *domain, size_t n, size_t *out_len) {
|
|
366
|
+
/* Ada's bound on the input, in UTF-8 bytes */
|
|
367
|
+
size_t bytes = 0;
|
|
368
|
+
for (size_t i = 0; i < n; i++) bytes += domain[i] < 0x80 ? 1 : domain[i] < 0x800 ? 2 : domain[i] < 0x10000 ? 3 : 4;
|
|
369
|
+
if (bytes > 16384) return NULL;
|
|
371
370
|
bool ascii = true;
|
|
372
371
|
for (size_t i = 0; i < n && ascii; i++) ascii = domain[i] < 0x80;
|
|
373
372
|
if (ascii) return from_ascii_to_ascii(domain, n, out_len);
|
|
File without changes
|