electrobun 0.0.1 → 0.0.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/.gitmodules +3 -0
- package/dist/webview +0 -0
- package/package.json +1 -1
- package/src/cli/build/electrobun +0 -0
- package/example/assets/electrobun-logo-32-template.png +0 -0
- package/example/buildScript.ts +0 -1
- package/example/bun.lockb +0 -0
- package/example/electrobun.config +0 -48
- package/example/icon.iconset/icon_128x128.png +0 -0
- package/example/icon.iconset/icon_128x128@2x.png +0 -0
- package/example/icon.iconset/icon_16x16.png +0 -0
- package/example/icon.iconset/icon_16x16@2x.png +0 -0
- package/example/icon.iconset/icon_256x256.png +0 -0
- package/example/icon.iconset/icon_256x256@2x.png +0 -0
- package/example/icon.iconset/icon_32x32.png +0 -0
- package/example/icon.iconset/icon_32x32@2x.png +0 -0
- package/example/icon.iconset/icon_512x512.png +0 -0
- package/example/icon.iconset/icon_512x512@2x.png +0 -0
- package/example/package-lock.json +0 -32
- package/example/package.json +0 -11
- package/example/readme.md +0 -0
- package/example/src/bun/index.ts +0 -403
- package/example/src/mainview/index.css +0 -4
- package/example/src/mainview/index.html +0 -13
- package/example/src/mainview/index.ts +0 -45
- package/example/src/mainview/rpc.ts +0 -36
- package/example/src/myextension/preload.ts +0 -15
- package/example/src/myextension/rpc.ts +0 -15
- package/example/src/webviewtag/electrobun.png +0 -0
- package/example/src/webviewtag/index.html +0 -94
- package/example/src/webviewtag/index.ts +0 -26
- package/src/bsdiff/bsdiff.zig +0 -842
- package/src/bsdiff/bspatch.zig +0 -253
- package/src/bsdiff/build.zig +0 -73
- package/src/bsdiff/zig-out/bin/bsdiff +0 -0
- package/src/bsdiff/zig-out/bin/bspatch +0 -0
- package/src/bsdiff/zig-out/lib/libzstd.a +0 -0
- package/src/bsdiff/zstd/.buckconfig +0 -9
- package/src/bsdiff/zstd/.buckversion +0 -1
- package/src/bsdiff/zstd/.circleci/config.yml +0 -123
- package/src/bsdiff/zstd/.circleci/images/primary/Dockerfile +0 -9
- package/src/bsdiff/zstd/.cirrus.yml +0 -10
- package/src/bsdiff/zstd/.gitattributes +0 -21
- package/src/bsdiff/zstd/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
- package/src/bsdiff/zstd/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/src/bsdiff/zstd/.github/dependabot.yml +0 -6
- package/src/bsdiff/zstd/.github/workflows/commit.yml +0 -89
- package/src/bsdiff/zstd/.github/workflows/dev-long-tests.yml +0 -297
- package/src/bsdiff/zstd/.github/workflows/dev-short-tests.yml +0 -633
- package/src/bsdiff/zstd/.github/workflows/nightly.yml +0 -65
- package/src/bsdiff/zstd/.github/workflows/publish-release-artifacts.yml +0 -73
- package/src/bsdiff/zstd/.github/workflows/scorecards.yml +0 -64
- package/src/bsdiff/zstd/.github/workflows/windows-artifacts.yml +0 -58
- package/src/bsdiff/zstd/CHANGELOG +0 -837
- package/src/bsdiff/zstd/CODE_OF_CONDUCT.md +0 -5
- package/src/bsdiff/zstd/CONTRIBUTING.md +0 -489
- package/src/bsdiff/zstd/COPYING +0 -339
- package/src/bsdiff/zstd/LICENSE +0 -30
- package/src/bsdiff/zstd/Makefile +0 -457
- package/src/bsdiff/zstd/Package.swift +0 -36
- package/src/bsdiff/zstd/README.md +0 -227
- package/src/bsdiff/zstd/SECURITY.md +0 -15
- package/src/bsdiff/zstd/TESTING.md +0 -43
- package/src/bsdiff/zstd/build/LICENSE +0 -0
- package/src/bsdiff/zstd/build/README.md +0 -56
- package/src/bsdiff/zstd/build/VS2008/fullbench/fullbench.vcproj +0 -549
- package/src/bsdiff/zstd/build/VS2008/fuzzer/fuzzer.vcproj +0 -585
- package/src/bsdiff/zstd/build/VS2008/zstd/zstd.vcproj +0 -677
- package/src/bsdiff/zstd/build/VS2008/zstd.sln +0 -56
- package/src/bsdiff/zstd/build/VS2008/zstdlib/zstdlib.vcproj +0 -635
- package/src/bsdiff/zstd/build/VS2010/CompileAsCpp.props +0 -8
- package/src/bsdiff/zstd/build/VS2010/datagen/datagen.vcxproj +0 -170
- package/src/bsdiff/zstd/build/VS2010/fullbench/fullbench.vcxproj +0 -218
- package/src/bsdiff/zstd/build/VS2010/fullbench-dll/fullbench-dll.vcxproj +0 -189
- package/src/bsdiff/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +0 -223
- package/src/bsdiff/zstd/build/VS2010/libzstd/libzstd.vcxproj +0 -242
- package/src/bsdiff/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +0 -51
- package/src/bsdiff/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +0 -249
- package/src/bsdiff/zstd/build/VS2010/zstd/zstd.rc +0 -51
- package/src/bsdiff/zstd/build/VS2010/zstd/zstd.vcxproj +0 -265
- package/src/bsdiff/zstd/build/VS2010/zstd.sln +0 -89
- package/src/bsdiff/zstd/build/VS_scripts/README.md +0 -64
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2010.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2012.cmd +0 -6
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2013.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2015.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2017.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Community.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.VS2017Professional.cmd +0 -7
- package/src/bsdiff/zstd/build/VS_scripts/build.generic.cmd +0 -72
- package/src/bsdiff/zstd/build/cmake/CMakeLists.txt +0 -216
- package/src/bsdiff/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +0 -121
- package/src/bsdiff/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +0 -49
- package/src/bsdiff/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +0 -10
- package/src/bsdiff/zstd/build/cmake/CMakeModules/JoinPaths.cmake +0 -23
- package/src/bsdiff/zstd/build/cmake/README.md +0 -136
- package/src/bsdiff/zstd/build/cmake/contrib/CMakeLists.txt +0 -13
- package/src/bsdiff/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +0 -30
- package/src/bsdiff/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +0 -39
- package/src/bsdiff/zstd/build/cmake/lib/CMakeLists.txt +0 -253
- package/src/bsdiff/zstd/build/cmake/lib/cmake_uninstall.cmake.in +0 -22
- package/src/bsdiff/zstd/build/cmake/programs/CMakeLists.txt +0 -144
- package/src/bsdiff/zstd/build/cmake/tests/CMakeLists.txt +0 -118
- package/src/bsdiff/zstd/build/cmake/zstdConfig.cmake.in +0 -10
- package/src/bsdiff/zstd/build/meson/GetZstdLibraryVersion.py +0 -39
- package/src/bsdiff/zstd/build/meson/InstallSymlink.py +0 -55
- package/src/bsdiff/zstd/build/meson/README.md +0 -38
- package/src/bsdiff/zstd/build/meson/contrib/gen_html/meson.build +0 -30
- package/src/bsdiff/zstd/build/meson/contrib/meson.build +0 -12
- package/src/bsdiff/zstd/build/meson/contrib/pzstd/meson.build +0 -25
- package/src/bsdiff/zstd/build/meson/lib/meson.build +0 -167
- package/src/bsdiff/zstd/build/meson/meson.build +0 -145
- package/src/bsdiff/zstd/build/meson/meson_options.txt +0 -36
- package/src/bsdiff/zstd/build/meson/programs/meson.build +0 -124
- package/src/bsdiff/zstd/build/meson/tests/meson.build +0 -217
- package/src/bsdiff/zstd/build/meson/tests/valgrindTest.py +0 -90
- package/src/bsdiff/zstd/build/single_file_libs/README.md +0 -33
- package/src/bsdiff/zstd/build/single_file_libs/build_decoder_test.sh +0 -91
- package/src/bsdiff/zstd/build/single_file_libs/build_library_test.sh +0 -97
- package/src/bsdiff/zstd/build/single_file_libs/combine.py +0 -234
- package/src/bsdiff/zstd/build/single_file_libs/combine.sh +0 -249
- package/src/bsdiff/zstd/build/single_file_libs/create_single_file_decoder.sh +0 -19
- package/src/bsdiff/zstd/build/single_file_libs/create_single_file_library.sh +0 -19
- package/src/bsdiff/zstd/build/single_file_libs/examples/README.md +0 -11
- package/src/bsdiff/zstd/build/single_file_libs/examples/emscripten.c +0 -340
- package/src/bsdiff/zstd/build/single_file_libs/examples/roundtrip.c +0 -83
- package/src/bsdiff/zstd/build/single_file_libs/examples/shell.html +0 -31
- package/src/bsdiff/zstd/build/single_file_libs/examples/simple.c +0 -75
- package/src/bsdiff/zstd/build/single_file_libs/examples/testcard-dxt1.inl +0 -2731
- package/src/bsdiff/zstd/build/single_file_libs/examples/testcard-zstd.inl +0 -261
- package/src/bsdiff/zstd/build/single_file_libs/examples/testcard.png +0 -0
- package/src/bsdiff/zstd/build/single_file_libs/zstd-in.c +0 -90
- package/src/bsdiff/zstd/build/single_file_libs/zstddeclib-in.c +0 -62
- package/src/bsdiff/zstd/contrib/VS2005/README.md +0 -3
- package/src/bsdiff/zstd/contrib/VS2005/fullbench/fullbench.vcproj +0 -440
- package/src/bsdiff/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +0 -488
- package/src/bsdiff/zstd/contrib/VS2005/zstd/zstd.vcproj +0 -552
- package/src/bsdiff/zstd/contrib/VS2005/zstd.sln +0 -55
- package/src/bsdiff/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +0 -546
- package/src/bsdiff/zstd/contrib/cleanTabs +0 -2
- package/src/bsdiff/zstd/contrib/diagnose_corruption/Makefile +0 -35
- package/src/bsdiff/zstd/contrib/diagnose_corruption/check_flipped_bits.c +0 -400
- package/src/bsdiff/zstd/contrib/docker/Dockerfile +0 -20
- package/src/bsdiff/zstd/contrib/docker/README.md +0 -20
- package/src/bsdiff/zstd/contrib/externalSequenceProducer/Makefile +0 -40
- package/src/bsdiff/zstd/contrib/externalSequenceProducer/README.md +0 -14
- package/src/bsdiff/zstd/contrib/externalSequenceProducer/main.c +0 -107
- package/src/bsdiff/zstd/contrib/externalSequenceProducer/sequence_producer.c +0 -80
- package/src/bsdiff/zstd/contrib/externalSequenceProducer/sequence_producer.h +0 -26
- package/src/bsdiff/zstd/contrib/freestanding_lib/freestanding.py +0 -774
- package/src/bsdiff/zstd/contrib/gen_html/Makefile +0 -51
- package/src/bsdiff/zstd/contrib/gen_html/README.md +0 -31
- package/src/bsdiff/zstd/contrib/gen_html/gen-zstd-manual.sh +0 -9
- package/src/bsdiff/zstd/contrib/gen_html/gen_html.cpp +0 -224
- package/src/bsdiff/zstd/contrib/largeNbDicts/Makefile +0 -58
- package/src/bsdiff/zstd/contrib/largeNbDicts/README.md +0 -33
- package/src/bsdiff/zstd/contrib/largeNbDicts/largeNbDicts.c +0 -1085
- package/src/bsdiff/zstd/contrib/linux-kernel/Makefile +0 -108
- package/src/bsdiff/zstd/contrib/linux-kernel/README.md +0 -14
- package/src/bsdiff/zstd/contrib/linux-kernel/btrfs-benchmark.sh +0 -104
- package/src/bsdiff/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +0 -99
- package/src/bsdiff/zstd/contrib/linux-kernel/decompress_sources.h +0 -34
- package/src/bsdiff/zstd/contrib/linux-kernel/linux.mk +0 -43
- package/src/bsdiff/zstd/contrib/linux-kernel/linux_zstd.h +0 -447
- package/src/bsdiff/zstd/contrib/linux-kernel/mem.h +0 -262
- package/src/bsdiff/zstd/contrib/linux-kernel/squashfs-benchmark.sh +0 -39
- package/src/bsdiff/zstd/contrib/linux-kernel/test/Makefile +0 -49
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/asm/unaligned.h +0 -187
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/compiler.h +0 -23
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/errno.h +0 -15
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/kernel.h +0 -19
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/limits.h +0 -15
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/math64.h +0 -15
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/module.h +0 -20
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/printk.h +0 -15
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/stddef.h +0 -15
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/swab.h +0 -16
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/types.h +0 -16
- package/src/bsdiff/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +0 -745
- package/src/bsdiff/zstd/contrib/linux-kernel/test/macro-test.sh +0 -44
- package/src/bsdiff/zstd/contrib/linux-kernel/test/static_test.c +0 -52
- package/src/bsdiff/zstd/contrib/linux-kernel/test/test.c +0 -229
- package/src/bsdiff/zstd/contrib/linux-kernel/zstd_common_module.c +0 -29
- package/src/bsdiff/zstd/contrib/linux-kernel/zstd_compress_module.c +0 -164
- package/src/bsdiff/zstd/contrib/linux-kernel/zstd_decompress_module.c +0 -105
- package/src/bsdiff/zstd/contrib/linux-kernel/zstd_deps.h +0 -121
- package/src/bsdiff/zstd/contrib/match_finders/README.md +0 -42
- package/src/bsdiff/zstd/contrib/match_finders/zstd_edist.c +0 -558
- package/src/bsdiff/zstd/contrib/match_finders/zstd_edist.h +0 -70
- package/src/bsdiff/zstd/contrib/premake/premake4.lua +0 -6
- package/src/bsdiff/zstd/contrib/premake/zstd.lua +0 -80
- package/src/bsdiff/zstd/contrib/pzstd/BUCK +0 -72
- package/src/bsdiff/zstd/contrib/pzstd/ErrorHolder.h +0 -54
- package/src/bsdiff/zstd/contrib/pzstd/Logging.h +0 -72
- package/src/bsdiff/zstd/contrib/pzstd/Makefile +0 -265
- package/src/bsdiff/zstd/contrib/pzstd/Options.cpp +0 -424
- package/src/bsdiff/zstd/contrib/pzstd/Options.h +0 -71
- package/src/bsdiff/zstd/contrib/pzstd/Pzstd.cpp +0 -618
- package/src/bsdiff/zstd/contrib/pzstd/Pzstd.h +0 -153
- package/src/bsdiff/zstd/contrib/pzstd/README.md +0 -56
- package/src/bsdiff/zstd/contrib/pzstd/SkippableFrame.cpp +0 -30
- package/src/bsdiff/zstd/contrib/pzstd/SkippableFrame.h +0 -64
- package/src/bsdiff/zstd/contrib/pzstd/images/Cspeed.png +0 -0
- package/src/bsdiff/zstd/contrib/pzstd/images/Dspeed.png +0 -0
- package/src/bsdiff/zstd/contrib/pzstd/main.cpp +0 -27
- package/src/bsdiff/zstd/contrib/pzstd/test/BUCK +0 -37
- package/src/bsdiff/zstd/contrib/pzstd/test/OptionsTest.cpp +0 -536
- package/src/bsdiff/zstd/contrib/pzstd/test/PzstdTest.cpp +0 -149
- package/src/bsdiff/zstd/contrib/pzstd/test/RoundTrip.h +0 -86
- package/src/bsdiff/zstd/contrib/pzstd/test/RoundTripTest.cpp +0 -86
- package/src/bsdiff/zstd/contrib/pzstd/utils/BUCK +0 -75
- package/src/bsdiff/zstd/contrib/pzstd/utils/Buffer.h +0 -99
- package/src/bsdiff/zstd/contrib/pzstd/utils/FileSystem.h +0 -96
- package/src/bsdiff/zstd/contrib/pzstd/utils/Likely.h +0 -28
- package/src/bsdiff/zstd/contrib/pzstd/utils/Portability.h +0 -16
- package/src/bsdiff/zstd/contrib/pzstd/utils/Range.h +0 -133
- package/src/bsdiff/zstd/contrib/pzstd/utils/ResourcePool.h +0 -96
- package/src/bsdiff/zstd/contrib/pzstd/utils/ScopeGuard.h +0 -50
- package/src/bsdiff/zstd/contrib/pzstd/utils/ThreadPool.h +0 -58
- package/src/bsdiff/zstd/contrib/pzstd/utils/WorkQueue.h +0 -181
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/BUCK +0 -35
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/BufferTest.cpp +0 -89
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/RangeTest.cpp +0 -82
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +0 -72
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +0 -28
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +0 -71
- package/src/bsdiff/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +0 -282
- package/src/bsdiff/zstd/contrib/recovery/Makefile +0 -35
- package/src/bsdiff/zstd/contrib/recovery/recover_directory.c +0 -152
- package/src/bsdiff/zstd/contrib/seekable_format/README.md +0 -42
- package/src/bsdiff/zstd/contrib/seekable_format/examples/Makefile +0 -53
- package/src/bsdiff/zstd/contrib/seekable_format/examples/parallel_compression.c +0 -214
- package/src/bsdiff/zstd/contrib/seekable_format/examples/parallel_processing.c +0 -194
- package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_compression.c +0 -136
- package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_decompression.c +0 -141
- package/src/bsdiff/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +0 -147
- package/src/bsdiff/zstd/contrib/seekable_format/tests/Makefile +0 -38
- package/src/bsdiff/zstd/contrib/seekable_format/tests/seekable_tests.c +0 -363
- package/src/bsdiff/zstd/contrib/seekable_format/zstd_seekable.h +0 -226
- package/src/bsdiff/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +0 -116
- package/src/bsdiff/zstd/contrib/seekable_format/zstdseek_compress.c +0 -365
- package/src/bsdiff/zstd/contrib/seekable_format/zstdseek_decompress.c +0 -595
- package/src/bsdiff/zstd/contrib/seqBench/Makefile +0 -58
- package/src/bsdiff/zstd/contrib/seqBench/seqBench.c +0 -53
- package/src/bsdiff/zstd/contrib/snap/snapcraft.yaml +0 -28
- package/src/bsdiff/zstd/doc/README.md +0 -26
- package/src/bsdiff/zstd/doc/decompressor_errata.md +0 -148
- package/src/bsdiff/zstd/doc/decompressor_permissive.md +0 -60
- package/src/bsdiff/zstd/doc/educational_decoder/Makefile +0 -62
- package/src/bsdiff/zstd/doc/educational_decoder/README.md +0 -36
- package/src/bsdiff/zstd/doc/educational_decoder/harness.c +0 -119
- package/src/bsdiff/zstd/doc/educational_decoder/zstd_decompress.c +0 -2323
- package/src/bsdiff/zstd/doc/educational_decoder/zstd_decompress.h +0 -61
- package/src/bsdiff/zstd/doc/images/CSpeed2.png +0 -0
- package/src/bsdiff/zstd/doc/images/DCspeed5.png +0 -0
- package/src/bsdiff/zstd/doc/images/DSpeed3.png +0 -0
- package/src/bsdiff/zstd/doc/images/cdict_v136.png +0 -0
- package/src/bsdiff/zstd/doc/images/dict-cr.png +0 -0
- package/src/bsdiff/zstd/doc/images/dict-cs.png +0 -0
- package/src/bsdiff/zstd/doc/images/dict-ds.png +0 -0
- package/src/bsdiff/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
- package/src/bsdiff/zstd/doc/images/zstd_logo86.png +0 -0
- package/src/bsdiff/zstd/doc/zstd_compression_format.md +0 -1737
- package/src/bsdiff/zstd/doc/zstd_manual.html +0 -2170
- package/src/bsdiff/zstd/examples/Makefile +0 -93
- package/src/bsdiff/zstd/examples/README.md +0 -46
- package/src/bsdiff/zstd/examples/common.h +0 -246
- package/src/bsdiff/zstd/examples/dictionary_compression.c +0 -107
- package/src/bsdiff/zstd/examples/dictionary_decompression.c +0 -99
- package/src/bsdiff/zstd/examples/multiple_simple_compression.c +0 -116
- package/src/bsdiff/zstd/examples/multiple_streaming_compression.c +0 -133
- package/src/bsdiff/zstd/examples/simple_compression.c +0 -68
- package/src/bsdiff/zstd/examples/simple_decompression.c +0 -65
- package/src/bsdiff/zstd/examples/streaming_compression.c +0 -146
- package/src/bsdiff/zstd/examples/streaming_compression_thread_pool.c +0 -180
- package/src/bsdiff/zstd/examples/streaming_decompression.c +0 -100
- package/src/bsdiff/zstd/examples/streaming_memory_usage.c +0 -137
- package/src/bsdiff/zstd/lib/BUCK +0 -232
- package/src/bsdiff/zstd/lib/Makefile +0 -369
- package/src/bsdiff/zstd/lib/README.md +0 -237
- package/src/bsdiff/zstd/lib/common/allocations.h +0 -55
- package/src/bsdiff/zstd/lib/common/bits.h +0 -200
- package/src/bsdiff/zstd/lib/common/bitstream.h +0 -457
- package/src/bsdiff/zstd/lib/common/compiler.h +0 -450
- package/src/bsdiff/zstd/lib/common/cpu.h +0 -249
- package/src/bsdiff/zstd/lib/common/debug.c +0 -30
- package/src/bsdiff/zstd/lib/common/debug.h +0 -116
- package/src/bsdiff/zstd/lib/common/entropy_common.c +0 -340
- package/src/bsdiff/zstd/lib/common/error_private.c +0 -63
- package/src/bsdiff/zstd/lib/common/error_private.h +0 -168
- package/src/bsdiff/zstd/lib/common/fse.h +0 -640
- package/src/bsdiff/zstd/lib/common/fse_decompress.c +0 -313
- package/src/bsdiff/zstd/lib/common/huf.h +0 -286
- package/src/bsdiff/zstd/lib/common/mem.h +0 -426
- package/src/bsdiff/zstd/lib/common/pool.c +0 -371
- package/src/bsdiff/zstd/lib/common/pool.h +0 -90
- package/src/bsdiff/zstd/lib/common/portability_macros.h +0 -158
- package/src/bsdiff/zstd/lib/common/threading.c +0 -182
- package/src/bsdiff/zstd/lib/common/threading.h +0 -150
- package/src/bsdiff/zstd/lib/common/xxhash.c +0 -18
- package/src/bsdiff/zstd/lib/common/xxhash.h +0 -7020
- package/src/bsdiff/zstd/lib/common/zstd_common.c +0 -48
- package/src/bsdiff/zstd/lib/common/zstd_deps.h +0 -111
- package/src/bsdiff/zstd/lib/common/zstd_internal.h +0 -392
- package/src/bsdiff/zstd/lib/common/zstd_trace.h +0 -163
- package/src/bsdiff/zstd/lib/compress/clevels.h +0 -134
- package/src/bsdiff/zstd/lib/compress/fse_compress.c +0 -625
- package/src/bsdiff/zstd/lib/compress/hist.c +0 -181
- package/src/bsdiff/zstd/lib/compress/hist.h +0 -75
- package/src/bsdiff/zstd/lib/compress/huf_compress.c +0 -1464
- package/src/bsdiff/zstd/lib/compress/zstd_compress.c +0 -7153
- package/src/bsdiff/zstd/lib/compress/zstd_compress_internal.h +0 -1534
- package/src/bsdiff/zstd/lib/compress/zstd_compress_literals.c +0 -235
- package/src/bsdiff/zstd/lib/compress/zstd_compress_literals.h +0 -39
- package/src/bsdiff/zstd/lib/compress/zstd_compress_sequences.c +0 -442
- package/src/bsdiff/zstd/lib/compress/zstd_compress_sequences.h +0 -54
- package/src/bsdiff/zstd/lib/compress/zstd_compress_superblock.c +0 -688
- package/src/bsdiff/zstd/lib/compress/zstd_compress_superblock.h +0 -32
- package/src/bsdiff/zstd/lib/compress/zstd_cwksp.h +0 -748
- package/src/bsdiff/zstd/lib/compress/zstd_double_fast.c +0 -770
- package/src/bsdiff/zstd/lib/compress/zstd_double_fast.h +0 -50
- package/src/bsdiff/zstd/lib/compress/zstd_fast.c +0 -968
- package/src/bsdiff/zstd/lib/compress/zstd_fast.h +0 -38
- package/src/bsdiff/zstd/lib/compress/zstd_lazy.c +0 -2199
- package/src/bsdiff/zstd/lib/compress/zstd_lazy.h +0 -202
- package/src/bsdiff/zstd/lib/compress/zstd_ldm.c +0 -730
- package/src/bsdiff/zstd/lib/compress/zstd_ldm.h +0 -117
- package/src/bsdiff/zstd/lib/compress/zstd_ldm_geartab.h +0 -106
- package/src/bsdiff/zstd/lib/compress/zstd_opt.c +0 -1576
- package/src/bsdiff/zstd/lib/compress/zstd_opt.h +0 -80
- package/src/bsdiff/zstd/lib/compress/zstdmt_compress.c +0 -1882
- package/src/bsdiff/zstd/lib/compress/zstdmt_compress.h +0 -113
- package/src/bsdiff/zstd/lib/decompress/huf_decompress.c +0 -1944
- package/src/bsdiff/zstd/lib/decompress/huf_decompress_amd64.S +0 -595
- package/src/bsdiff/zstd/lib/decompress/zstd_ddict.c +0 -244
- package/src/bsdiff/zstd/lib/decompress/zstd_ddict.h +0 -44
- package/src/bsdiff/zstd/lib/decompress/zstd_decompress.c +0 -2407
- package/src/bsdiff/zstd/lib/decompress/zstd_decompress_block.c +0 -2215
- package/src/bsdiff/zstd/lib/decompress/zstd_decompress_block.h +0 -73
- package/src/bsdiff/zstd/lib/decompress/zstd_decompress_internal.h +0 -240
- package/src/bsdiff/zstd/lib/deprecated/zbuff.h +0 -214
- package/src/bsdiff/zstd/lib/deprecated/zbuff_common.c +0 -26
- package/src/bsdiff/zstd/lib/deprecated/zbuff_compress.c +0 -167
- package/src/bsdiff/zstd/lib/deprecated/zbuff_decompress.c +0 -77
- package/src/bsdiff/zstd/lib/dictBuilder/cover.c +0 -1261
- package/src/bsdiff/zstd/lib/dictBuilder/cover.h +0 -152
- package/src/bsdiff/zstd/lib/dictBuilder/divsufsort.c +0 -1913
- package/src/bsdiff/zstd/lib/dictBuilder/divsufsort.h +0 -67
- package/src/bsdiff/zstd/lib/dictBuilder/fastcover.c +0 -766
- package/src/bsdiff/zstd/lib/dictBuilder/zdict.c +0 -1133
- package/src/bsdiff/zstd/lib/dll/example/Makefile +0 -48
- package/src/bsdiff/zstd/lib/dll/example/README.md +0 -63
- package/src/bsdiff/zstd/lib/dll/example/build_package.bat +0 -20
- package/src/bsdiff/zstd/lib/dll/example/fullbench-dll.sln +0 -25
- package/src/bsdiff/zstd/lib/dll/example/fullbench-dll.vcxproj +0 -181
- package/src/bsdiff/zstd/lib/legacy/zstd_legacy.h +0 -452
- package/src/bsdiff/zstd/lib/legacy/zstd_v01.c +0 -2127
- package/src/bsdiff/zstd/lib/legacy/zstd_v01.h +0 -94
- package/src/bsdiff/zstd/lib/legacy/zstd_v02.c +0 -3465
- package/src/bsdiff/zstd/lib/legacy/zstd_v02.h +0 -93
- package/src/bsdiff/zstd/lib/legacy/zstd_v03.c +0 -3105
- package/src/bsdiff/zstd/lib/legacy/zstd_v03.h +0 -93
- package/src/bsdiff/zstd/lib/legacy/zstd_v04.c +0 -3598
- package/src/bsdiff/zstd/lib/legacy/zstd_v04.h +0 -142
- package/src/bsdiff/zstd/lib/legacy/zstd_v05.c +0 -4005
- package/src/bsdiff/zstd/lib/legacy/zstd_v05.h +0 -162
- package/src/bsdiff/zstd/lib/legacy/zstd_v06.c +0 -4106
- package/src/bsdiff/zstd/lib/legacy/zstd_v06.h +0 -172
- package/src/bsdiff/zstd/lib/legacy/zstd_v07.c +0 -4490
- package/src/bsdiff/zstd/lib/legacy/zstd_v07.h +0 -187
- package/src/bsdiff/zstd/lib/libzstd.mk +0 -237
- package/src/bsdiff/zstd/lib/libzstd.pc.in +0 -16
- package/src/bsdiff/zstd/lib/module.modulemap +0 -35
- package/src/bsdiff/zstd/lib/zdict.h +0 -474
- package/src/bsdiff/zstd/lib/zstd.h +0 -3089
- package/src/bsdiff/zstd/lib/zstd_errors.h +0 -114
- package/src/bsdiff/zstd/programs/BUCK +0 -44
- package/src/bsdiff/zstd/programs/Makefile +0 -445
- package/src/bsdiff/zstd/programs/README.md +0 -302
- package/src/bsdiff/zstd/programs/benchfn.c +0 -256
- package/src/bsdiff/zstd/programs/benchfn.h +0 -183
- package/src/bsdiff/zstd/programs/benchzstd.c +0 -1264
- package/src/bsdiff/zstd/programs/benchzstd.h +0 -198
- package/src/bsdiff/zstd/programs/datagen.c +0 -186
- package/src/bsdiff/zstd/programs/datagen.h +0 -30
- package/src/bsdiff/zstd/programs/dibio.c +0 -440
- package/src/bsdiff/zstd/programs/dibio.h +0 -39
- package/src/bsdiff/zstd/programs/fileio.c +0 -3470
- package/src/bsdiff/zstd/programs/fileio.h +0 -181
- package/src/bsdiff/zstd/programs/fileio_asyncio.c +0 -663
- package/src/bsdiff/zstd/programs/fileio_asyncio.h +0 -203
- package/src/bsdiff/zstd/programs/fileio_common.h +0 -125
- package/src/bsdiff/zstd/programs/fileio_types.h +0 -86
- package/src/bsdiff/zstd/programs/lorem.c +0 -285
- package/src/bsdiff/zstd/programs/lorem.h +0 -32
- package/src/bsdiff/zstd/programs/platform.h +0 -218
- package/src/bsdiff/zstd/programs/timefn.c +0 -168
- package/src/bsdiff/zstd/programs/timefn.h +0 -70
- package/src/bsdiff/zstd/programs/util.c +0 -1652
- package/src/bsdiff/zstd/programs/util.h +0 -359
- package/src/bsdiff/zstd/programs/windres/verrsrc.h +0 -17
- package/src/bsdiff/zstd/programs/windres/zstd.rc +0 -51
- package/src/bsdiff/zstd/programs/windres/zstd32.res +0 -0
- package/src/bsdiff/zstd/programs/windres/zstd64.res +0 -0
- package/src/bsdiff/zstd/programs/zstd.1 +0 -566
- package/src/bsdiff/zstd/programs/zstd.1.md +0 -695
- package/src/bsdiff/zstd/programs/zstdcli.c +0 -1625
- package/src/bsdiff/zstd/programs/zstdcli_trace.c +0 -172
- package/src/bsdiff/zstd/programs/zstdcli_trace.h +0 -24
- package/src/bsdiff/zstd/programs/zstdgrep +0 -134
- package/src/bsdiff/zstd/programs/zstdgrep.1 +0 -26
- package/src/bsdiff/zstd/programs/zstdgrep.1.md +0 -30
- package/src/bsdiff/zstd/programs/zstdless +0 -8
- package/src/bsdiff/zstd/programs/zstdless.1 +0 -14
- package/src/bsdiff/zstd/programs/zstdless.1.md +0 -16
- package/src/bsdiff/zstd/tests/DEPRECATED-test-zstd-speed.py +0 -378
- package/src/bsdiff/zstd/tests/Makefile +0 -477
- package/src/bsdiff/zstd/tests/README.md +0 -184
- package/src/bsdiff/zstd/tests/automated_benchmarking.py +0 -326
- package/src/bsdiff/zstd/tests/bigdict.c +0 -128
- package/src/bsdiff/zstd/tests/checkTag.c +0 -65
- package/src/bsdiff/zstd/tests/check_size.py +0 -31
- package/src/bsdiff/zstd/tests/cli-tests/README.md +0 -258
- package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh +0 -10
- package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh.exit +0 -1
- package/src/bsdiff/zstd/tests/cli-tests/basic/args.sh.stderr.glob +0 -28
- package/src/bsdiff/zstd/tests/cli-tests/basic/help.sh +0 -10
- package/src/bsdiff/zstd/tests/cli-tests/basic/help.sh.stdout.glob +0 -34
- package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh +0 -40
- package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +0 -13
- package/src/bsdiff/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +0 -13
- package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/basic/version.sh +0 -6
- package/src/bsdiff/zstd/tests/cli-tests/basic/version.sh.stdout.glob +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/bin/cmp_size +0 -44
- package/src/bsdiff/zstd/tests/cli-tests/bin/datagen +0 -3
- package/src/bsdiff/zstd/tests/cli-tests/bin/die +0 -4
- package/src/bsdiff/zstd/tests/cli-tests/bin/println +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/bin/zstd +0 -9
- package/src/bsdiff/zstd/tests/cli-tests/bin/zstdgrep +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/bin/zstdless +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/cltools/setup +0 -6
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh +0 -8
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +0 -1
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +0 -1
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +0 -4
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh +0 -10
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +0 -2
- package/src/bsdiff/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +0 -5
- package/src/bsdiff/zstd/tests/cli-tests/common/format.sh +0 -19
- package/src/bsdiff/zstd/tests/cli-tests/common/mtime.sh +0 -13
- package/src/bsdiff/zstd/tests/cli-tests/common/permissions.sh +0 -18
- package/src/bsdiff/zstd/tests/cli-tests/common/platform.sh +0 -37
- package/src/bsdiff/zstd/tests/cli-tests/compression/adapt.sh +0 -14
- package/src/bsdiff/zstd/tests/cli-tests/compression/basic.sh +0 -36
- package/src/bsdiff/zstd/tests/cli-tests/compression/compress-literals.sh +0 -10
- package/src/bsdiff/zstd/tests/cli-tests/compression/format.sh +0 -16
- package/src/bsdiff/zstd/tests/cli-tests/compression/golden.sh +0 -16
- package/src/bsdiff/zstd/tests/cli-tests/compression/gzip-compat.sh +0 -17
- package/src/bsdiff/zstd/tests/cli-tests/compression/levels.sh +0 -62
- package/src/bsdiff/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +0 -69
- package/src/bsdiff/zstd/tests/cli-tests/compression/long-distance-matcher.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/compression/multi-threaded.sh +0 -15
- package/src/bsdiff/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +0 -11
- package/src/bsdiff/zstd/tests/cli-tests/compression/multiple-files.sh +0 -21
- package/src/bsdiff/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +0 -12
- package/src/bsdiff/zstd/tests/cli-tests/compression/row-match-finder.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/compression/setup +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/compression/stream-size.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh +0 -11
- package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +0 -5
- package/src/bsdiff/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +0 -5
- package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh +0 -9
- package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
- package/src/bsdiff/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +0 -3
- package/src/bsdiff/zstd/tests/cli-tests/decompression/detectErrors.sh +0 -11
- package/src/bsdiff/zstd/tests/cli-tests/decompression/golden.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh +0 -57
- package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +0 -11
- package/src/bsdiff/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +0 -25
- package/src/bsdiff/zstd/tests/cli-tests/dict-builder/empty-input.sh +0 -9
- package/src/bsdiff/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +0 -1
- package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh +0 -3
- package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +0 -1
- package/src/bsdiff/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +0 -5
- package/src/bsdiff/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +0 -29
- package/src/bsdiff/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/dictionaries/golden.sh +0 -9
- package/src/bsdiff/zstd/tests/cli-tests/dictionaries/setup +0 -6
- package/src/bsdiff/zstd/tests/cli-tests/dictionaries/setup_once +0 -24
- package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh +0 -49
- package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
- package/src/bsdiff/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +0 -12
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +0 -26
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +0 -9
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.exact +0 -42
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +0 -8
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +0 -24
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +0 -8
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.exact +0 -24
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +0 -8
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +0 -18
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +0 -8
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.exact +0 -38
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +0 -18
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.exact +0 -20
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +0 -7
- package/src/bsdiff/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +0 -14
- package/src/bsdiff/zstd/tests/cli-tests/progress/no-progress.sh +0 -46
- package/src/bsdiff/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +0 -96
- package/src/bsdiff/zstd/tests/cli-tests/progress/progress.sh +0 -41
- package/src/bsdiff/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +0 -62
- package/src/bsdiff/zstd/tests/cli-tests/run.py +0 -731
- package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/setup +0 -6
- package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +0 -12
- package/src/bsdiff/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +0 -8
- package/src/bsdiff/zstd/tests/datagencli.c +0 -149
- package/src/bsdiff/zstd/tests/decodecorpus.c +0 -1936
- package/src/bsdiff/zstd/tests/dict-files/zero-weight-dict +0 -0
- package/src/bsdiff/zstd/tests/external_matchfinder.c +0 -140
- package/src/bsdiff/zstd/tests/external_matchfinder.h +0 -39
- package/src/bsdiff/zstd/tests/fullbench.c +0 -980
- package/src/bsdiff/zstd/tests/fuzz/Makefile +0 -277
- package/src/bsdiff/zstd/tests/fuzz/README.md +0 -161
- package/src/bsdiff/zstd/tests/fuzz/block_decompress.c +0 -53
- package/src/bsdiff/zstd/tests/fuzz/block_round_trip.c +0 -103
- package/src/bsdiff/zstd/tests/fuzz/decompress_cross_format.c +0 -130
- package/src/bsdiff/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +0 -74
- package/src/bsdiff/zstd/tests/fuzz/dictionary_decompress.c +0 -77
- package/src/bsdiff/zstd/tests/fuzz/dictionary_loader.c +0 -106
- package/src/bsdiff/zstd/tests/fuzz/dictionary_round_trip.c +0 -155
- package/src/bsdiff/zstd/tests/fuzz/dictionary_stream_round_trip.c +0 -209
- package/src/bsdiff/zstd/tests/fuzz/fse_read_ncount.c +0 -100
- package/src/bsdiff/zstd/tests/fuzz/fuzz.h +0 -57
- package/src/bsdiff/zstd/tests/fuzz/fuzz.py +0 -911
- package/src/bsdiff/zstd/tests/fuzz/fuzz_data_producer.c +0 -95
- package/src/bsdiff/zstd/tests/fuzz/fuzz_data_producer.h +0 -66
- package/src/bsdiff/zstd/tests/fuzz/fuzz_helpers.c +0 -48
- package/src/bsdiff/zstd/tests/fuzz/fuzz_helpers.h +0 -81
- package/src/bsdiff/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +0 -116
- package/src/bsdiff/zstd/tests/fuzz/generate_sequences.c +0 -88
- package/src/bsdiff/zstd/tests/fuzz/huf_decompress.c +0 -68
- package/src/bsdiff/zstd/tests/fuzz/huf_round_trip.c +0 -137
- package/src/bsdiff/zstd/tests/fuzz/raw_dictionary_round_trip.c +0 -119
- package/src/bsdiff/zstd/tests/fuzz/regression_driver.c +0 -90
- package/src/bsdiff/zstd/tests/fuzz/seekable_roundtrip.c +0 -88
- package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +0 -16
- package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +0 -12
- package/src/bsdiff/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +0 -52
- package/src/bsdiff/zstd/tests/fuzz/sequence_compression_api.c +0 -381
- package/src/bsdiff/zstd/tests/fuzz/simple_compress.c +0 -60
- package/src/bsdiff/zstd/tests/fuzz/simple_decompress.c +0 -59
- package/src/bsdiff/zstd/tests/fuzz/simple_round_trip.c +0 -182
- package/src/bsdiff/zstd/tests/fuzz/stream_decompress.c +0 -119
- package/src/bsdiff/zstd/tests/fuzz/stream_round_trip.c +0 -218
- package/src/bsdiff/zstd/tests/fuzz/zstd_frame_info.c +0 -43
- package/src/bsdiff/zstd/tests/fuzz/zstd_helpers.c +0 -207
- package/src/bsdiff/zstd/tests/fuzz/zstd_helpers.h +0 -56
- package/src/bsdiff/zstd/tests/fuzzer.c +0 -4933
- package/src/bsdiff/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +0 -1
- package/src/bsdiff/zstd/tests/golden-compression/http +0 -1
- package/src/bsdiff/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
- package/src/bsdiff/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression/block-128k.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression/empty-block.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
- package/src/bsdiff/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
- package/src/bsdiff/zstd/tests/gzip/Makefile +0 -45
- package/src/bsdiff/zstd/tests/gzip/gzip-env.sh +0 -46
- package/src/bsdiff/zstd/tests/gzip/helin-segv.sh +0 -31
- package/src/bsdiff/zstd/tests/gzip/help-version.sh +0 -270
- package/src/bsdiff/zstd/tests/gzip/hufts-segv.gz +0 -0
- package/src/bsdiff/zstd/tests/gzip/hufts.sh +0 -34
- package/src/bsdiff/zstd/tests/gzip/init.cfg +0 -5
- package/src/bsdiff/zstd/tests/gzip/init.sh +0 -616
- package/src/bsdiff/zstd/tests/gzip/keep.sh +0 -51
- package/src/bsdiff/zstd/tests/gzip/list.sh +0 -31
- package/src/bsdiff/zstd/tests/gzip/memcpy-abuse.sh +0 -34
- package/src/bsdiff/zstd/tests/gzip/mixed.sh +0 -68
- package/src/bsdiff/zstd/tests/gzip/null-suffix-clobber.sh +0 -35
- package/src/bsdiff/zstd/tests/gzip/stdin.sh +0 -31
- package/src/bsdiff/zstd/tests/gzip/test-driver.sh +0 -150
- package/src/bsdiff/zstd/tests/gzip/trailing-nul.sh +0 -37
- package/src/bsdiff/zstd/tests/gzip/unpack-invalid.sh +0 -36
- package/src/bsdiff/zstd/tests/gzip/z-suffix.sh +0 -30
- package/src/bsdiff/zstd/tests/gzip/zdiff.sh +0 -48
- package/src/bsdiff/zstd/tests/gzip/zgrep-context.sh +0 -47
- package/src/bsdiff/zstd/tests/gzip/zgrep-f.sh +0 -43
- package/src/bsdiff/zstd/tests/gzip/zgrep-signal.sh +0 -64
- package/src/bsdiff/zstd/tests/gzip/znew-k.sh +0 -40
- package/src/bsdiff/zstd/tests/invalidDictionaries.c +0 -61
- package/src/bsdiff/zstd/tests/legacy.c +0 -260
- package/src/bsdiff/zstd/tests/libzstd_builds.sh +0 -104
- package/src/bsdiff/zstd/tests/longmatch.c +0 -102
- package/src/bsdiff/zstd/tests/loremOut.c +0 -50
- package/src/bsdiff/zstd/tests/loremOut.h +0 -15
- package/src/bsdiff/zstd/tests/paramgrill.c +0 -2966
- package/src/bsdiff/zstd/tests/playTests.sh +0 -1928
- package/src/bsdiff/zstd/tests/poolTests.c +0 -271
- package/src/bsdiff/zstd/tests/rateLimiter.py +0 -41
- package/src/bsdiff/zstd/tests/regression/Makefile +0 -60
- package/src/bsdiff/zstd/tests/regression/README.md +0 -28
- package/src/bsdiff/zstd/tests/regression/config.c +0 -404
- package/src/bsdiff/zstd/tests/regression/config.h +0 -91
- package/src/bsdiff/zstd/tests/regression/data.c +0 -631
- package/src/bsdiff/zstd/tests/regression/data.h +0 -121
- package/src/bsdiff/zstd/tests/regression/levels.h +0 -59
- package/src/bsdiff/zstd/tests/regression/method.c +0 -701
- package/src/bsdiff/zstd/tests/regression/method.h +0 -65
- package/src/bsdiff/zstd/tests/regression/result.c +0 -28
- package/src/bsdiff/zstd/tests/regression/result.h +0 -103
- package/src/bsdiff/zstd/tests/regression/results.csv +0 -1480
- package/src/bsdiff/zstd/tests/regression/test.c +0 -362
- package/src/bsdiff/zstd/tests/roundTripCrash.c +0 -241
- package/src/bsdiff/zstd/tests/seqgen.c +0 -260
- package/src/bsdiff/zstd/tests/seqgen.h +0 -58
- package/src/bsdiff/zstd/tests/test-license.py +0 -156
- package/src/bsdiff/zstd/tests/test-variants.sh +0 -115
- package/src/bsdiff/zstd/tests/test-zstd-versions.py +0 -308
- package/src/bsdiff/zstd/tests/zstreamtest.c +0 -3407
- package/src/bsdiff/zstd/zlibWrapper/BUCK +0 -22
- package/src/bsdiff/zstd/zlibWrapper/Makefile +0 -120
- package/src/bsdiff/zstd/zlibWrapper/README.md +0 -163
- package/src/bsdiff/zstd/zlibWrapper/examples/example.c +0 -598
- package/src/bsdiff/zstd/zlibWrapper/examples/example_original.c +0 -599
- package/src/bsdiff/zstd/zlibWrapper/examples/fitblk.c +0 -254
- package/src/bsdiff/zstd/zlibWrapper/examples/fitblk_original.c +0 -233
- package/src/bsdiff/zstd/zlibWrapper/examples/minigzip.c +0 -605
- package/src/bsdiff/zstd/zlibWrapper/examples/zwrapbench.c +0 -1018
- package/src/bsdiff/zstd/zlibWrapper/gzclose.c +0 -26
- package/src/bsdiff/zstd/zlibWrapper/gzcompatibility.h +0 -68
- package/src/bsdiff/zstd/zlibWrapper/gzguts.h +0 -229
- package/src/bsdiff/zstd/zlibWrapper/gzlib.c +0 -587
- package/src/bsdiff/zstd/zlibWrapper/gzread.c +0 -637
- package/src/bsdiff/zstd/zlibWrapper/gzwrite.c +0 -631
- package/src/bsdiff/zstd/zlibWrapper/zstd_zlibwrapper.c +0 -1200
- package/src/bsdiff/zstd/zlibWrapper/zstd_zlibwrapper.h +0 -91
- package/src/objc/build/objcWrapper.o +0 -0
- package/src/objc/objcWrapper.m +0 -1380
- package/src/zig/build/index.js +0 -782
- package/src/zig/build/libObjcWrapper.a +0 -0
- package/src/zig/build.zig +0 -29
- package/src/zig/macos/application.zig +0 -6
- package/src/zig/macos/objc.zig +0 -123
- package/src/zig/macos/tray.zig +0 -102
- package/src/zig/macos/webview.zig +0 -693
- package/src/zig/macos/window.zig +0 -189
- package/src/zig/main.zig +0 -16
- package/src/zig/rpc/pipesin.zig +0 -202
- package/src/zig/rpc/rpc.zig +0 -19
- package/src/zig/rpc/schema/handlers.zig +0 -402
- package/src/zig/rpc/schema/request.zig +0 -59
- package/src/zig/rpc/schema/schema.zig +0 -412
- package/src/zig/rpc/stdin.zig +0 -112
- package/src/zig/rpc/stdout.zig +0 -106
- package/src/zig/rpc/types.zig +0 -41
- package/src/zig/utils.zig +0 -49
- package/src/zig/zig-out/bin/webview +0 -0
|
@@ -1,693 +0,0 @@
|
|
|
1
|
-
const std = @import("std");
|
|
2
|
-
const rpc = @import("../rpc/schema/request.zig");
|
|
3
|
-
const rpcSchema = @import("../rpc/schema/schema.zig");
|
|
4
|
-
const objc = @import("./objc.zig");
|
|
5
|
-
const pipesin = @import("../rpc/pipesin.zig");
|
|
6
|
-
const window = @import("./window.zig");
|
|
7
|
-
const rpcTypes = @import("../rpc/types.zig");
|
|
8
|
-
const rpcHandlers = @import("../rpc/schema/handlers.zig");
|
|
9
|
-
const utils = @import("../utils.zig");
|
|
10
|
-
|
|
11
|
-
const strEql = utils.strEql;
|
|
12
|
-
|
|
13
|
-
const alloc = std.heap.page_allocator;
|
|
14
|
-
|
|
15
|
-
const ELECTROBUN_BROWSER_API_SCRIPT = @embedFile("../build/index.js");
|
|
16
|
-
|
|
17
|
-
const WebviewMap = std.AutoHashMap(u32, WebviewType);
|
|
18
|
-
pub var webviewMap: WebviewMap = WebviewMap.init(alloc);
|
|
19
|
-
const ViewsScheme = "views://";
|
|
20
|
-
|
|
21
|
-
fn assetFileLoader(url: [*:0]const u8) objc.FileResponse {
|
|
22
|
-
const relPath = url[ViewsScheme.len..std.mem.len(url)];
|
|
23
|
-
const fileContents = readFileContentsFromDisk(relPath) catch "failed to load contents";
|
|
24
|
-
const mimeType = getMimeType(relPath); // or dynamically determine MIME type
|
|
25
|
-
return objc.FileResponse{ .mimeType = utils.toCString(mimeType), .fileContents = fileContents.ptr, .len = fileContents.len, .opaquePointer = null };
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
fn readAssetFromDisk(url: [*:0]const u8) []const u8 {
|
|
29
|
-
const relPath = url[ViewsScheme.len..std.mem.len(url)];
|
|
30
|
-
const fileContents = readFileContentsFromDisk(relPath) catch "failed to load contents";
|
|
31
|
-
return fileContents;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const WebviewType = struct {
|
|
35
|
-
id: u32,
|
|
36
|
-
handle: *anyopaque,
|
|
37
|
-
hostWebviewId: ?u32,
|
|
38
|
-
frame: struct {
|
|
39
|
-
width: f64,
|
|
40
|
-
height: f64,
|
|
41
|
-
x: f64,
|
|
42
|
-
y: f64,
|
|
43
|
-
},
|
|
44
|
-
// todo: de-init these using objc.releaseObjCObject() when the webview closes
|
|
45
|
-
delegate: *anyopaque,
|
|
46
|
-
bunBridgeHandler: *anyopaque,
|
|
47
|
-
webviewTagHandler: *anyopaque,
|
|
48
|
-
bun_out_pipe: ?std.fs.File, //?anyerror!std.fs.File,
|
|
49
|
-
bun_in_pipe: ?std.fs.File,
|
|
50
|
-
// Function to send a message to Bun
|
|
51
|
-
pub fn sendToBun(self: *WebviewType, message: []const u8) !void {
|
|
52
|
-
if (self.bun_out_pipe) |file| {
|
|
53
|
-
// convert null terminated string to slice
|
|
54
|
-
// const message_slice: []const u8 = message[0..std.mem.len(message)];
|
|
55
|
-
// Write the message to the named pipe
|
|
56
|
-
file.writeAll(message) catch |err| {
|
|
57
|
-
std.debug.print("Failed to write to file: {}\n", .{err});
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
file.writeAll("\n") catch |err| {
|
|
61
|
-
std.debug.print("Failed to write to file: {}\n", .{err});
|
|
62
|
-
};
|
|
63
|
-
} else {
|
|
64
|
-
// If bun_out_pipe is null, print an error or the message to stdio
|
|
65
|
-
std.debug.print("Error: No valid pipe to write to. Message was: {s}\n", .{message});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
pub fn sendToWebview(self: *WebviewType, message: []const u8) void {
|
|
70
|
-
objc.evaluateJavaScriptWithNoCompletion(self.handle, utils.toCString(message));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
pub fn deinit(self: *WebviewType) void {
|
|
74
|
-
// todo: implement the rest of this including objc stuff
|
|
75
|
-
if (self.bun_out_pipe) |file| {
|
|
76
|
-
file.close();
|
|
77
|
-
}
|
|
78
|
-
if (self.bun_in_pipe) |file| {
|
|
79
|
-
file.close();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const CreateWebviewOpts = struct { //
|
|
85
|
-
id: u32,
|
|
86
|
-
hostWebviewId: ?u32,
|
|
87
|
-
pipePrefix: []const u8,
|
|
88
|
-
url: ?[]const u8,
|
|
89
|
-
html: ?[]const u8,
|
|
90
|
-
preload: ?[]const u8,
|
|
91
|
-
partition: ?[]const u8,
|
|
92
|
-
frame: struct { //
|
|
93
|
-
width: f64,
|
|
94
|
-
height: f64,
|
|
95
|
-
x: f64,
|
|
96
|
-
y: f64,
|
|
97
|
-
},
|
|
98
|
-
autoResize: bool,
|
|
99
|
-
};
|
|
100
|
-
pub fn createWebview(opts: CreateWebviewOpts) void {
|
|
101
|
-
const bunPipeIn = blk: {
|
|
102
|
-
const bunPipeInPath = utils.concatStrings(opts.pipePrefix, "_in");
|
|
103
|
-
const bunPipeInFileResult = std.fs.cwd().openFile(bunPipeInPath, .{ .mode = .read_only });
|
|
104
|
-
|
|
105
|
-
if (bunPipeInFileResult) |file| {
|
|
106
|
-
break :blk file;
|
|
107
|
-
} else |err| {
|
|
108
|
-
std.debug.print("Failed to open bunPipeIn: {}\n", .{err});
|
|
109
|
-
std.debug.print("path: {s}", .{bunPipeInPath});
|
|
110
|
-
break :blk null;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
if (bunPipeIn) |pipeInFile| {
|
|
115
|
-
pipesin.addPipe(pipeInFile.handle, opts.id);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const bunPipeOut = blk: {
|
|
119
|
-
const bunPipeOutPath = utils.concatStrings(opts.pipePrefix, "_out");
|
|
120
|
-
const bunPipeOutResult = std.fs.cwd().openFile(bunPipeOutPath, .{ .mode = .read_write });
|
|
121
|
-
|
|
122
|
-
if (bunPipeOutResult) |file| {
|
|
123
|
-
break :blk file;
|
|
124
|
-
} else |err| {
|
|
125
|
-
std.debug.print("Failed to open bunPipeOut: {}\n", .{err});
|
|
126
|
-
std.debug.print("path: {s}", .{bunPipeOutPath});
|
|
127
|
-
break :blk null;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
const viewsHandler = struct {
|
|
132
|
-
fn viewsHandler(webviewId: u32, url: [*:0]const u8, body: [*:0]const u8) objc.FileResponse {
|
|
133
|
-
const relPath = url[ViewsScheme.len..std.mem.len(url)];
|
|
134
|
-
|
|
135
|
-
if (std.mem.eql(u8, relPath, "syncrpc")) {
|
|
136
|
-
// Note: We use the views:// url scheme here so that we can issue our synchronous xhr
|
|
137
|
-
// request against the same origin that other local content is loaded from.
|
|
138
|
-
// js loaded from other sources (http, etc.) will be blocked (CORS) from initiating
|
|
139
|
-
// synchronous requests to bun.
|
|
140
|
-
const bodyString = utils.fromCString(body);
|
|
141
|
-
|
|
142
|
-
const response = rpc.request.sendSyncRequest(.{ .webviewId = webviewId, .request = bodyString });
|
|
143
|
-
if (response.payload) |payload| {
|
|
144
|
-
const responseString = payload[0..payload.len];
|
|
145
|
-
return objc.FileResponse{ .mimeType = utils.toCString("application/json"), .fileContents = responseString.ptr, .len = responseString.len, .opaquePointer = null };
|
|
146
|
-
} else {
|
|
147
|
-
std.debug.print("Failed to get response from sync rpc request, no payload\n", .{});
|
|
148
|
-
}
|
|
149
|
-
} else if (std.mem.startsWith(u8, relPath, "screenshot/")) {
|
|
150
|
-
// the relPath is screenshot/<webviewId>?<cachebuster>
|
|
151
|
-
// get the target webview info for objc, the screenshoting and resolving is done
|
|
152
|
-
// in objc
|
|
153
|
-
const start = "screenshot/".len;
|
|
154
|
-
const end = std.mem.indexOf(u8, relPath, "?") orelse relPath.len;
|
|
155
|
-
const numStr = relPath[start..end];
|
|
156
|
-
const targetWebviewId = std.fmt.parseInt(u32, numStr, 10) catch 0;
|
|
157
|
-
|
|
158
|
-
var targetWebview = webviewMap.get(targetWebviewId) orelse {
|
|
159
|
-
std.debug.print("Failed to get webview from hashmap for id {}: screenshot api\n", .{targetWebviewId});
|
|
160
|
-
return assetFileLoader(url);
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// const fileContents = readFileContentsFromDisk(relPath) catch "failed to load contents";
|
|
164
|
-
// const mimeType = getMimeType(relPath); // or dynamically determine MIME type
|
|
165
|
-
return objc.FileResponse{ .opaquePointer = targetWebview.handle, .mimeType = utils.toCString("screenshot"), .fileContents = utils.toCString(""), .len = 0 };
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return assetFileLoader(url);
|
|
169
|
-
}
|
|
170
|
-
}.viewsHandler;
|
|
171
|
-
|
|
172
|
-
const parition = opts.partition orelse "persist:default";
|
|
173
|
-
|
|
174
|
-
const objcWebview = objc.createAndReturnWKWebView(opts.id, .{
|
|
175
|
-
|
|
176
|
-
// .frame = .{ //
|
|
177
|
-
.origin = .{ .x = opts.frame.x, .y = opts.frame.y },
|
|
178
|
-
.size = .{ .width = opts.frame.width, .height = opts.frame.height },
|
|
179
|
-
// },
|
|
180
|
-
}, viewsHandler, opts.autoResize, utils.toCString(parition));
|
|
181
|
-
|
|
182
|
-
// Can only define functions inline in zig within a struct
|
|
183
|
-
const delegate = objc.setNavigationDelegateWithCallback(objcWebview, opts.id, struct {
|
|
184
|
-
fn decideNavigation(webviewId: u32, url: [*:0]const u8) bool {
|
|
185
|
-
// todo: right now this reaches a generic rpc request, but it should be attached
|
|
186
|
-
// to this specific webview's pipe so navigation handlers can be attached to specific webviews
|
|
187
|
-
const _response = rpc.request.decideNavigation(.{
|
|
188
|
-
.webviewId = webviewId,
|
|
189
|
-
.url = utils.fromCString(url),
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
return _response.allow;
|
|
193
|
-
}
|
|
194
|
-
}.decideNavigation, struct {
|
|
195
|
-
fn handleWebviewEvent(webviewId: u32, eventName: [*:0]const u8, url: [*:0]const u8) void {
|
|
196
|
-
webviewEvent(.{
|
|
197
|
-
.id = webviewId,
|
|
198
|
-
.eventName = utils.fromCString(eventName),
|
|
199
|
-
.detail = utils.fromCString(url),
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
}.handleWebviewEvent);
|
|
203
|
-
|
|
204
|
-
const bunBridgeHandler = objc.addScriptMessageHandler(objcWebview, opts.id, "bunBridge", struct {
|
|
205
|
-
fn HandlePostMessage(webviewId: u32, message: [*:0]const u8) void {
|
|
206
|
-
// bun bridge just forwards messages to the bun
|
|
207
|
-
|
|
208
|
-
var webview = webviewMap.get(webviewId) orelse {
|
|
209
|
-
std.debug.print("Failed to get webview from hashmap for id {}: bunBridgeHandler\n", .{webviewId});
|
|
210
|
-
return;
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
webview.sendToBun(utils.fromCString(message)) catch |err| {
|
|
214
|
-
std.debug.print("Failed to send message to bun: {}\n", .{err});
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
}.HandlePostMessage);
|
|
218
|
-
|
|
219
|
-
// Note: Since post message is async in the browser context and bun will reply async
|
|
220
|
-
// We're using postMessage handler (above) without a reply, and then letting bun reply
|
|
221
|
-
// via pipesin and evaluateJavascript. addScriptMessageHandlerWithReply is just here
|
|
222
|
-
// as reference and for future use cases. This may be useful for exposing zig/objc apis
|
|
223
|
-
// to the browser context without needing to use more complex rpc.
|
|
224
|
-
const bunBridgeWithReplyHandler = objc.addScriptMessageHandlerWithReply(objcWebview, opts.id, "bunBridgeWithReply", struct {
|
|
225
|
-
fn HandlePostMessageCallbackWithReply(webviewId: u32, message: [*:0]const u8) [*:0]const u8 {
|
|
226
|
-
_ = webviewId;
|
|
227
|
-
_ = message;
|
|
228
|
-
|
|
229
|
-
return utils.toCString("hello with reply: not using this api yet");
|
|
230
|
-
}
|
|
231
|
-
}.HandlePostMessageCallbackWithReply);
|
|
232
|
-
|
|
233
|
-
// todo: store the returned value so we can free the memory when the webview is destroyed
|
|
234
|
-
_ = bunBridgeWithReplyHandler;
|
|
235
|
-
|
|
236
|
-
// todo: only set this up if the webview tag is enabled for this webview
|
|
237
|
-
// todo: rename this to webviewToZigBridgeHandler since it's for webview tags and the webview itself
|
|
238
|
-
const webviewTagHandler = objc.addScriptMessageHandler(objcWebview, opts.id, "webviewTagBridge", struct {
|
|
239
|
-
fn HandlePostMessage(webviewId: u32, message: [*:0]const u8) void {
|
|
240
|
-
const msgString = utils.fromCString(message);
|
|
241
|
-
|
|
242
|
-
const json = std.json.parseFromSlice(std.json.Value, alloc, msgString, .{ .ignore_unknown_fields = true }) catch |err| {
|
|
243
|
-
std.log.info("Error parsing line from webview-zig-bridge - {}: \nreceived: {s}", .{ err, msgString });
|
|
244
|
-
return;
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
defer json.deinit();
|
|
248
|
-
|
|
249
|
-
const msgType = blk: {
|
|
250
|
-
const obj = json.value.object.get("type").?;
|
|
251
|
-
break :blk obj.string;
|
|
252
|
-
};
|
|
253
|
-
|
|
254
|
-
if (std.mem.eql(u8, msgType, "request")) {
|
|
255
|
-
const _request = std.json.parseFromValue(rpcTypes._RPCRequestPacket, alloc, json.value, .{}) catch |err| {
|
|
256
|
-
std.log.info("Error parsing line from webview-zig-bridge - {}: \nreceived: {s}", .{ err, msgString });
|
|
257
|
-
return;
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
const result = rpcHandlers.fromBrowserHandleRequest(_request.value);
|
|
261
|
-
|
|
262
|
-
if (result.errorMsg == null) {
|
|
263
|
-
const responseSuccess = .{ .id = _request.value.id, .type = "response", .success = true, .payload = result };
|
|
264
|
-
|
|
265
|
-
var buffer = std.json.stringifyAlloc(alloc, responseSuccess, .{}) catch {
|
|
266
|
-
return;
|
|
267
|
-
};
|
|
268
|
-
defer alloc.free(buffer);
|
|
269
|
-
|
|
270
|
-
// Prepare the JavaScript function call
|
|
271
|
-
var jsCall = std.fmt.allocPrint(alloc, "window.__electrobun.receiveMessageFromZig({s})\n", .{buffer}) catch {
|
|
272
|
-
return;
|
|
273
|
-
};
|
|
274
|
-
defer alloc.free(jsCall);
|
|
275
|
-
|
|
276
|
-
sendLineToWebview(webviewId, jsCall);
|
|
277
|
-
} else {
|
|
278
|
-
// todo: this doesn't work yet
|
|
279
|
-
// rpcStdout.sendResponseError(_request.value.id, result.errorMsg.?);
|
|
280
|
-
}
|
|
281
|
-
} else if (std.mem.eql(u8, msgType, "message")) {
|
|
282
|
-
const _message = std.json.parseFromValue(rpcTypes._RPCMessagePacket, alloc, json.value, .{}) catch |err| {
|
|
283
|
-
std.log.info("Error parsing line from webview-zig-bridge - {}: \nreceived: {s}", .{ err, msgString });
|
|
284
|
-
return;
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
rpcHandlers.fromBrowserHandleMessage(_message.value);
|
|
288
|
-
} else {
|
|
289
|
-
std.log.info("it's an unhandled meatball", .{});
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}.HandlePostMessage);
|
|
293
|
-
|
|
294
|
-
const _webview = WebviewType{ //
|
|
295
|
-
.id = opts.id,
|
|
296
|
-
.hostWebviewId = opts.hostWebviewId,
|
|
297
|
-
.frame = .{
|
|
298
|
-
.width = opts.frame.width,
|
|
299
|
-
.height = opts.frame.height,
|
|
300
|
-
.x = opts.frame.x,
|
|
301
|
-
.y = opts.frame.y,
|
|
302
|
-
},
|
|
303
|
-
.handle = objcWebview,
|
|
304
|
-
.bun_out_pipe = bunPipeOut,
|
|
305
|
-
.bun_in_pipe = bunPipeIn,
|
|
306
|
-
.delegate = delegate,
|
|
307
|
-
.bunBridgeHandler = bunBridgeHandler,
|
|
308
|
-
.webviewTagHandler = webviewTagHandler,
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
webviewMap.put(opts.id, _webview) catch {
|
|
312
|
-
std.log.info("Error putting webview into hashmap: ", .{});
|
|
313
|
-
return;
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
// Note: Keep this in sync with browser api
|
|
317
|
-
var jsScriptSubstitutions = std.fmt.allocPrint(alloc, "window.__electrobunWebviewId = {};\n", .{opts.id}) catch {
|
|
318
|
-
return;
|
|
319
|
-
};
|
|
320
|
-
defer alloc.free(jsScriptSubstitutions);
|
|
321
|
-
|
|
322
|
-
// todo: move this to a separate file and embed it in zig so it can be properly
|
|
323
|
-
// edited as js
|
|
324
|
-
var jsScript = utils.concatStrings(jsScriptSubstitutions,
|
|
325
|
-
\\ function emitWebviewEvent (eventName, detail) {
|
|
326
|
-
\\ window.webkit.messageHandlers.webviewTagBridge.postMessage(JSON.stringify({id: 'webviewEvent', type: 'message', payload: {id: window.__electrobunWebviewId, eventName, detail}}));
|
|
327
|
-
\\ };
|
|
328
|
-
\\
|
|
329
|
-
\\ window.addEventListener('load', function(event) {
|
|
330
|
-
\\ // Check if the current window is the top-level window
|
|
331
|
-
\\ if (window === window.top) {
|
|
332
|
-
\\ emitWebviewEvent('dom-ready', document.location.href);
|
|
333
|
-
\\ }
|
|
334
|
-
\\ });
|
|
335
|
-
\\
|
|
336
|
-
\\ window.addEventListener('popstate', function(event) {
|
|
337
|
-
\\ emitWebviewEvent('did-navigate-in-page', window.location.href);
|
|
338
|
-
\\ });
|
|
339
|
-
\\
|
|
340
|
-
\\ window.addEventListener('hashchange', function(event) {
|
|
341
|
-
\\ emitWebviewEvent('did-navigate-in-page', window.location.href);
|
|
342
|
-
\\ });
|
|
343
|
-
\\
|
|
344
|
-
\\ document.addEventListener('click', function(event) {
|
|
345
|
-
\\ if ((event.metaKey || event.ctrlKey) && event.target.tagName === 'A') {
|
|
346
|
-
\\ event.preventDefault();
|
|
347
|
-
\\ event.stopPropagation();
|
|
348
|
-
\\
|
|
349
|
-
\\ // Get the href of the link
|
|
350
|
-
\\ const url = event.target.href;
|
|
351
|
-
\\
|
|
352
|
-
\\ // Open the URL in a new window or tab
|
|
353
|
-
\\ // Note: we already handle new windows in objc
|
|
354
|
-
\\ window.open(url, '_blank');
|
|
355
|
-
\\ }
|
|
356
|
-
\\}, true);
|
|
357
|
-
\\
|
|
358
|
-
);
|
|
359
|
-
|
|
360
|
-
// we want to make this a preload script so that it gets re-applied after navigations before any
|
|
361
|
-
// other code runs.
|
|
362
|
-
addPreloadScriptToWebview(_webview.handle, jsScript, false);
|
|
363
|
-
|
|
364
|
-
// Add user's custom preload script if set
|
|
365
|
-
if (opts.preload) |preload| {
|
|
366
|
-
updatePreloadScriptToWebview(opts.id, "electrobun_custom_preload_script", preload, true);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
// todo: move everything to cStrings or non-CStrings. just pick one.
|
|
371
|
-
pub fn addPreloadScriptToWebview(webview: *anyopaque, scriptOrPath: []const u8, allFrames: bool) void {
|
|
372
|
-
var script: []const u8 = undefined;
|
|
373
|
-
|
|
374
|
-
// If it's a views:// url safely load from disk otherwise treat it as js
|
|
375
|
-
if (std.mem.startsWith(u8, scriptOrPath, ViewsScheme)) {
|
|
376
|
-
const fileResult = readAssetFromDisk(utils.toCString(scriptOrPath));
|
|
377
|
-
script = fileResult;
|
|
378
|
-
} else {
|
|
379
|
-
script = scriptOrPath;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
objc.addPreloadScriptToWebView(webview, utils.toCString(script), allFrames);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
pub fn updatePreloadScriptToWebview(webviewId: u32, identifier: []const u8, scriptOrPath: []const u8, allFrames: bool) void {
|
|
386
|
-
var webview = webviewMap.get(webviewId) orelse {
|
|
387
|
-
std.debug.print("Failed to get webview from hashmap for id {}: resizeWebview\n", .{webviewId});
|
|
388
|
-
return;
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
var script: []const u8 = undefined;
|
|
392
|
-
|
|
393
|
-
// If it's a views:// url safely load from disk otherwise treat it as js
|
|
394
|
-
if (std.mem.startsWith(u8, scriptOrPath, ViewsScheme)) {
|
|
395
|
-
const fileResult = readAssetFromDisk(utils.toCString(scriptOrPath));
|
|
396
|
-
script = fileResult;
|
|
397
|
-
} else {
|
|
398
|
-
script = scriptOrPath;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
// todo: remove only the user-defined custom script
|
|
402
|
-
|
|
403
|
-
objc.updatePreloadScriptToWebView(webview.handle, utils.toCString(identifier), utils.toCString(script), allFrames);
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
pub fn resizeWebview(opts: rpcSchema.BrowserSchema.messages.webviewTagResize) void {
|
|
407
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
408
|
-
std.debug.print("Failed to get webview from hashmap for id {}: resizeWebview\n", .{opts.id});
|
|
409
|
-
return;
|
|
410
|
-
};
|
|
411
|
-
// todo: update webview frame in the webviewMap.
|
|
412
|
-
// not doing this yet to see when we run into issues. it's possible
|
|
413
|
-
// we don't need to store this in zig at all since the "last one set"
|
|
414
|
-
// is in bun or webview (in the case of webview tags) and "current one"
|
|
415
|
-
// is in objc
|
|
416
|
-
objc.resizeWebview(webview.handle, .{
|
|
417
|
-
.origin = .{ .x = opts.frame.x, .y = opts.frame.y },
|
|
418
|
-
.size = .{ .width = opts.frame.width, .height = opts.frame.height },
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
pub fn canGoBack(opts: rpcSchema.BrowserSchema.requests.webviewTagCanGoBack.params) bool {
|
|
423
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
424
|
-
std.debug.print("Failed to get webview from hashmap for id {}: canGoBack\n", .{opts.id});
|
|
425
|
-
return false;
|
|
426
|
-
};
|
|
427
|
-
|
|
428
|
-
return objc.webviewCanGoBack(webview.handle);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
pub fn canGoForward(opts: rpcSchema.BrowserSchema.requests.webviewTagCanGoForward.params) bool {
|
|
432
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
433
|
-
std.debug.print("Failed to get webview from hashmap for id {}: canGoForward\n", .{opts.id});
|
|
434
|
-
return false;
|
|
435
|
-
};
|
|
436
|
-
|
|
437
|
-
return objc.webviewCanGoForward(webview.handle);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
pub fn loadURL(opts: rpcSchema.BunSchema.requests.loadURL.params) void {
|
|
441
|
-
var webview = webviewMap.get(opts.webviewId) orelse {
|
|
442
|
-
std.debug.print("Failed to get webview from hashmap for id {}: loadURL\n", .{opts.webviewId});
|
|
443
|
-
return;
|
|
444
|
-
};
|
|
445
|
-
|
|
446
|
-
// todo: consider updating url. we may not need it stored in zig though.
|
|
447
|
-
// webview.url = need to use webviewMap.getPtr() then webview.*.url = opts.url
|
|
448
|
-
objc.loadURLInWebView(webview.handle, utils.toCString(opts.url));
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
pub fn loadHTML(opts: rpcSchema.BunSchema.requests.loadHTML.params) void {
|
|
452
|
-
var webview = webviewMap.get(opts.webviewId) orelse {
|
|
453
|
-
std.debug.print("Failed to get webview from hashmap for id {}: loadHTML\n", .{opts.webviewId});
|
|
454
|
-
return;
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
// webview.html = opts.html;
|
|
458
|
-
objc.loadHTMLInWebView(webview.handle, utils.toCString(opts.html));
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
pub fn goBack(opts: rpcSchema.BrowserSchema.messages.webviewTagGoBack) void {
|
|
462
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
463
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
464
|
-
return;
|
|
465
|
-
};
|
|
466
|
-
|
|
467
|
-
objc.webviewTagGoBack(webview.handle);
|
|
468
|
-
}
|
|
469
|
-
pub fn goForward(opts: rpcSchema.BrowserSchema.messages.webviewTagGoForward) void {
|
|
470
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
471
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
472
|
-
return;
|
|
473
|
-
};
|
|
474
|
-
|
|
475
|
-
objc.webviewTagGoForward(webview.handle);
|
|
476
|
-
}
|
|
477
|
-
pub fn reload(opts: rpcSchema.BrowserSchema.messages.webviewTagReload) void {
|
|
478
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
479
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
480
|
-
return;
|
|
481
|
-
};
|
|
482
|
-
|
|
483
|
-
objc.webviewTagReload(webview.handle);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
pub fn webviewTagSetTransparent(opts: rpcSchema.BrowserSchema.messages.webviewTagSetTransparent) void {
|
|
487
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
488
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
489
|
-
return;
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
objc.webviewTagSetTransparent(webview.handle, opts.transparent);
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
pub fn webviewTagSetPassthrough(opts: rpcSchema.BrowserSchema.messages.webviewTagSetPassthrough) void {
|
|
496
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
497
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
498
|
-
return;
|
|
499
|
-
};
|
|
500
|
-
|
|
501
|
-
objc.webviewTagSetPassthrough(webview.handle, opts.enablePassthrough);
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
pub fn webviewSetHidden(opts: rpcSchema.BrowserSchema.messages.webviewTagSetHidden) void {
|
|
505
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
506
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
507
|
-
return;
|
|
508
|
-
};
|
|
509
|
-
|
|
510
|
-
objc.webviewSetHidden(webview.handle, opts.hidden);
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
pub fn webviewEvent(opts: rpcSchema.BrowserSchema.messages.webviewEvent) void {
|
|
514
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
515
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
516
|
-
return;
|
|
517
|
-
};
|
|
518
|
-
|
|
519
|
-
// todo: we need these to timeout
|
|
520
|
-
_ = rpc.request.webviewEvent(.{
|
|
521
|
-
.id = webview.id,
|
|
522
|
-
.eventName = opts.eventName,
|
|
523
|
-
.detail = opts.detail,
|
|
524
|
-
});
|
|
525
|
-
|
|
526
|
-
// If this is a webview tag, we need to forward the event to the host webview so any in-browser listeners
|
|
527
|
-
// can be notified.
|
|
528
|
-
if (webview.hostWebviewId) |hostId| {
|
|
529
|
-
// todo: can we type this at all? maybe convert to json or something.
|
|
530
|
-
// todo: use a global register in the browser-context for webview tags instead of querySelectors and attributes
|
|
531
|
-
// Note: see webviewtag. emitEvent(name, detail) {}
|
|
532
|
-
var jsCall = std.fmt.allocPrint(alloc, "document.querySelector('#electrobun-webview-{d}').emit(`{s}`, `{s}`);\n", .{ webview.id, opts.eventName, opts.detail }) catch {
|
|
533
|
-
return;
|
|
534
|
-
};
|
|
535
|
-
defer alloc.free(jsCall);
|
|
536
|
-
|
|
537
|
-
sendLineToWebview(hostId, jsCall);
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
pub fn remove(opts: rpcSchema.BrowserSchema.messages.webviewTagRemove) void {
|
|
542
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
543
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
544
|
-
return;
|
|
545
|
-
};
|
|
546
|
-
|
|
547
|
-
objc.webviewRemove(webview.handle);
|
|
548
|
-
_ = webviewMap.remove(opts.id);
|
|
549
|
-
|
|
550
|
-
// todo: remove it from the window map as well
|
|
551
|
-
|
|
552
|
-
webview.deinit();
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
pub fn startWindowMove(opts: rpcSchema.BrowserSchema.messages.startWindowMove) void {
|
|
556
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
557
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
558
|
-
return;
|
|
559
|
-
};
|
|
560
|
-
std.debug.print("calling objc.startWindowMove: \n", .{});
|
|
561
|
-
objc.startWindowMove(webview.handle);
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
pub fn stopWindowMove(opts: rpcSchema.BrowserSchema.messages.stopWindowMove) void {
|
|
565
|
-
var webview = webviewMap.get(opts.id) orelse {
|
|
566
|
-
std.debug.print("Failed to get webview from hashmap for id {}\n", .{opts.id});
|
|
567
|
-
return;
|
|
568
|
-
};
|
|
569
|
-
|
|
570
|
-
objc.stopWindowMove(webview.handle);
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
pub fn sendLineToWebview(webviewId: u32, line: []const u8) void {
|
|
574
|
-
var webview = webviewMap.get(webviewId) orelse {
|
|
575
|
-
std.debug.print("Failed to get webview from hashmap for id {}: sendLineToWebview, line: {s}\n", .{ webviewId, line });
|
|
576
|
-
return;
|
|
577
|
-
};
|
|
578
|
-
|
|
579
|
-
webview.sendToWebview(line);
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
// This will wait for promises if a promise is returned from the dev's script and call the completion handler when done
|
|
583
|
-
pub fn callAsyncJavaScript(messageId: []const u8, webviewId: u32, hostWebviewId: u32, script: []const u8, handler: objc.callAsyncJavascriptCompletionHandler) void {
|
|
584
|
-
var webview = webviewMap.get(webviewId) orelse {
|
|
585
|
-
std.debug.print("Failed to get webview from hashmap for id {}: callAsyncJavaScript, line: {s}\n", .{ webviewId, script });
|
|
586
|
-
return;
|
|
587
|
-
};
|
|
588
|
-
|
|
589
|
-
objc.callAsyncJavaScript(utils.toCString(messageId), webview.handle, utils.toCString(script), webviewId, hostWebviewId, handler);
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
// todo: this should move to util, but we need CString utils (which should also be moved to a util)
|
|
593
|
-
pub fn moveToTrash(filePath: []const u8) bool {
|
|
594
|
-
const path = utils.toCString(filePath);
|
|
595
|
-
std.debug.print("moving to trash path: {s}\n", .{filePath});
|
|
596
|
-
return objc.moveToTrash(path);
|
|
597
|
-
}
|
|
598
|
-
// todo: this should move to util, but we need CString utils (which should also be moved to a util)
|
|
599
|
-
pub fn showItemInFolder(filePath: []const u8) bool {
|
|
600
|
-
const path = utils.toCString(filePath);
|
|
601
|
-
std.debug.print("moving to trash path: {s}\n", .{filePath});
|
|
602
|
-
return objc.showItemInFolder(path);
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
// todo: this should move to util, but we need CString utils (which should also be moved to a util)
|
|
606
|
-
pub fn openFileDialog(startingFolder: []const u8, allowedFileTypes: []const u8, canChooseFiles: bool, canChooseDirectory: bool, allowsMultipleSelection: bool) []const u8 {
|
|
607
|
-
const _chosenPath = objc.openFileDialog(utils.toCString(startingFolder), utils.toCString(allowedFileTypes), canChooseFiles, canChooseDirectory, allowsMultipleSelection);
|
|
608
|
-
|
|
609
|
-
if (_chosenPath) |chosenPath| {
|
|
610
|
-
return utils.fromCString(chosenPath);
|
|
611
|
-
} else {
|
|
612
|
-
return "";
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
pub fn readFileContentsFromDisk(filePath: []const u8) ![]const u8 {
|
|
617
|
-
const ELECTROBUN_VIEWS_FOLDER = std.os.getenv("ELECTROBUN_VIEWS_FOLDER") orelse {
|
|
618
|
-
// todo: return an error here
|
|
619
|
-
return error.ELECTROBUN_VIEWS_FOLDER_NOT_SET;
|
|
620
|
-
};
|
|
621
|
-
|
|
622
|
-
// Note: resolve the path, then check if it's not a descendant
|
|
623
|
-
const joinedPath = try std.fs.path.join(alloc, &.{ ELECTROBUN_VIEWS_FOLDER, filePath });
|
|
624
|
-
const resolvedPath = try std.fs.path.resolve(alloc, &.{joinedPath});
|
|
625
|
-
defer alloc.free(resolvedPath);
|
|
626
|
-
const relativePath = try std.fs.path.relative(alloc, ELECTROBUN_VIEWS_FOLDER, resolvedPath);
|
|
627
|
-
defer alloc.free(relativePath);
|
|
628
|
-
|
|
629
|
-
// Should defend against trying to load content outside of the build/views folder
|
|
630
|
-
// eg: relative and absolute urls
|
|
631
|
-
// url: 'assets://mainview/index.html',
|
|
632
|
-
// url: 'assets://mainview/../../bun/index.js', // /Users/yoav/code/electrobun/example/build/bun/index.js
|
|
633
|
-
// url: 'assets://../bun/index.js', // /Users/yoav/code/electrobun/example/build/bun/index.js
|
|
634
|
-
// url: 'assets://%2E%2E/bun/index.js',
|
|
635
|
-
// url: 'assets:////Users/yoav/code/electrobun/example/build/bun/index.js', ///Users/yoav/code/electrobun/example/build/bun/index.js
|
|
636
|
-
if (relativePath[0] == '.' and relativePath[1] == '.') {
|
|
637
|
-
return error.InvalidPath;
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
const file = try std.fs.cwd().openFile(resolvedPath, .{});
|
|
641
|
-
defer file.close();
|
|
642
|
-
|
|
643
|
-
const fileSize = try file.getEndPos();
|
|
644
|
-
var fileContents = try alloc.alloc(u8, fileSize);
|
|
645
|
-
|
|
646
|
-
// Read the file contents into the allocated buffer
|
|
647
|
-
_ = try file.readAll(fileContents);
|
|
648
|
-
|
|
649
|
-
return fileContents;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
// todo: move to string utils
|
|
653
|
-
pub fn getMimeType(filePath: []const u8) []const u8 {
|
|
654
|
-
const extension = std.fs.path.extension(filePath);
|
|
655
|
-
|
|
656
|
-
if (strEql(extension, ".html")) {
|
|
657
|
-
return "text/html";
|
|
658
|
-
} else if (strEql(extension, ".htm")) {
|
|
659
|
-
return "text/html";
|
|
660
|
-
} else if (strEql(extension, ".js")) {
|
|
661
|
-
return "application/javascript";
|
|
662
|
-
} else if (strEql(extension, ".json")) {
|
|
663
|
-
return "application/json";
|
|
664
|
-
} else if (strEql(extension, ".css")) {
|
|
665
|
-
return "text/css";
|
|
666
|
-
} else if (strEql(extension, ".ttf")) {
|
|
667
|
-
return "font/ttf";
|
|
668
|
-
} else if (strEql(extension, ".png")) {
|
|
669
|
-
return "image/png";
|
|
670
|
-
} else if (strEql(extension, ".jpg")) {
|
|
671
|
-
return "image/jpeg";
|
|
672
|
-
} else if (strEql(extension, ".jpeg")) {
|
|
673
|
-
return "image/jpeg";
|
|
674
|
-
} else if (strEql(extension, ".gif")) {
|
|
675
|
-
return "image/gif";
|
|
676
|
-
} else if (strEql(extension, ".svg")) {
|
|
677
|
-
return "image/svg+xml";
|
|
678
|
-
} else if (strEql(extension, ".txt")) {
|
|
679
|
-
return "text/plain";
|
|
680
|
-
} else {
|
|
681
|
-
return "application/octet-stream";
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
fn findLastIndexOfChar(slice: []const u8, char: u8) ?usize {
|
|
686
|
-
var i: usize = slice.len;
|
|
687
|
-
while (i > 0) : (i -= 1) {
|
|
688
|
-
if (slice[i - 1] == char) {
|
|
689
|
-
return i - 1;
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
return null;
|
|
693
|
-
}
|