goscript 0.1.1 → 0.1.3
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/cmd/goscript/cmd-test.go +104 -11
- package/cmd/goscript/cmd-test_test.go +1 -1
- package/cmd/goscript/cmd_compile.go +9 -0
- package/compiler/compile-request.go +31 -0
- package/compiler/compiler.go +1 -1
- package/compiler/compliance_test.go +0 -2
- package/compiler/config.go +2 -0
- package/compiler/gotest/package-result.go +2 -0
- package/compiler/gotest/request.go +85 -20
- package/compiler/gotest/runner.go +733 -96
- package/compiler/gotest/runner_test.go +647 -3
- package/compiler/lowered-program.go +10 -2
- package/compiler/lowering.go +2676 -349
- package/compiler/override-facts.go +77 -27
- package/compiler/override-registry.go +5 -4
- package/compiler/override-registry_test.go +178 -0
- package/compiler/package-graph_test.go +62 -7
- package/compiler/package-test-graph-variant.go +40 -16
- package/compiler/package-test-graph.go +0 -5
- package/compiler/package-test-graph_test.go +61 -3
- package/compiler/runtime-contract.go +40 -0
- package/compiler/semantic-model-types.go +16 -0
- package/compiler/semantic-model.go +336 -91
- package/compiler/semantic-model_test.go +50 -1
- package/compiler/service.go +9 -3
- package/compiler/skeleton_test.go +2371 -296
- package/compiler/tsworkspace/owner-process-unix_test.go +72 -0
- package/compiler/tsworkspace/owner.go +8 -0
- package/compiler/tsworkspace/tool-process-other.go +14 -0
- package/compiler/tsworkspace/tool-process-unix.go +19 -0
- package/compiler/typescript-emitter.go +149 -10
- package/dist/gs/builtin/builtin.d.ts +20 -1
- package/dist/gs/builtin/builtin.js +246 -26
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/channel.d.ts +24 -10
- package/dist/gs/builtin/channel.js +143 -34
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/defer.d.ts +1 -0
- package/dist/gs/builtin/defer.js +12 -2
- package/dist/gs/builtin/defer.js.map +1 -1
- package/dist/gs/builtin/hostio.d.ts +9 -0
- package/dist/gs/builtin/hostio.js +25 -0
- package/dist/gs/builtin/hostio.js.map +1 -1
- package/dist/gs/builtin/map.js +40 -6
- package/dist/gs/builtin/map.js.map +1 -1
- package/dist/gs/builtin/print.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +43 -9
- package/dist/gs/builtin/slice.js +437 -234
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +2 -0
- package/dist/gs/builtin/type.js +55 -10
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/builtin/varRef.d.ts +2 -0
- package/dist/gs/builtin/varRef.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.js +28 -28
- package/dist/gs/bytes/buffer.gs.js.map +1 -1
- package/dist/gs/bytes/bytes.gs.d.ts +7 -5
- package/dist/gs/bytes/bytes.gs.js +10 -4
- package/dist/gs/bytes/bytes.gs.js.map +1 -1
- package/dist/gs/bytes/iter.gs.js +13 -13
- package/dist/gs/bytes/iter.gs.js.map +1 -1
- package/dist/gs/compress/zlib/index.d.ts +26 -0
- package/dist/gs/compress/zlib/index.js +168 -0
- package/dist/gs/compress/zlib/index.js.map +1 -0
- package/dist/gs/context/context.d.ts +1 -1
- package/dist/gs/context/context.js +8 -3
- package/dist/gs/context/context.js.map +1 -1
- package/dist/gs/crypto/ecdh/index.d.ts +52 -0
- package/dist/gs/crypto/ecdh/index.js +226 -0
- package/dist/gs/crypto/ecdh/index.js.map +1 -0
- package/dist/gs/crypto/ed25519/index.d.ts +34 -0
- package/dist/gs/crypto/ed25519/index.js +160 -0
- package/dist/gs/crypto/ed25519/index.js.map +1 -0
- package/dist/gs/crypto/internal/constanttime/index.d.ts +4 -0
- package/dist/gs/crypto/internal/constanttime/index.js +18 -0
- package/dist/gs/crypto/internal/constanttime/index.js.map +1 -0
- package/dist/gs/crypto/rand/index.d.ts +2 -0
- package/dist/gs/crypto/rand/index.js +85 -0
- package/dist/gs/crypto/rand/index.js.map +1 -1
- package/dist/gs/crypto/sha1/index.d.ts +5 -0
- package/dist/gs/crypto/sha1/index.js +106 -0
- package/dist/gs/crypto/sha1/index.js.map +1 -0
- package/dist/gs/crypto/sha256/index.d.ts +8 -0
- package/dist/gs/crypto/sha256/index.js +118 -0
- package/dist/gs/crypto/sha256/index.js.map +1 -0
- package/dist/gs/crypto/sha512/index.d.ts +14 -0
- package/dist/gs/crypto/sha512/index.js +129 -0
- package/dist/gs/crypto/sha512/index.js.map +1 -0
- package/dist/gs/encoding/json/index.d.ts +3 -0
- package/dist/gs/encoding/json/index.js +15 -0
- package/dist/gs/encoding/json/index.js.map +1 -1
- package/dist/gs/errors/errors.js +29 -6
- package/dist/gs/errors/errors.js.map +1 -1
- package/dist/gs/fmt/fmt.d.ts +1 -1
- package/dist/gs/fmt/fmt.js +64 -3
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +7 -7
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +52 -18
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js +56 -20
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.d.ts +57 -3
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js +366 -1
- package/dist/gs/github.com/aperturerobotics/starpc/srpc/index.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/util/conc/index.d.ts +20 -0
- package/dist/gs/github.com/aperturerobotics/util/conc/index.js +134 -0
- package/dist/gs/github.com/aperturerobotics/util/conc/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -1
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.d.ts +3 -0
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.js +50 -0
- package/dist/gs/github.com/hack-pad/safejs/internal/catch/index.js.map +1 -0
- package/dist/gs/github.com/klauspost/compress/internal/le/index.js +3 -2
- package/dist/gs/github.com/klauspost/compress/internal/le/index.js.map +1 -1
- package/dist/gs/github.com/mr-tron/base58/base58/index.d.ts +27 -0
- package/dist/gs/github.com/mr-tron/base58/base58/index.js +172 -0
- package/dist/gs/github.com/mr-tron/base58/base58/index.js.map +1 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.d.ts +21 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.js +22 -0
- package/dist/gs/github.com/zeebo/blake3/internal/consts/index.js.map +1 -0
- package/dist/gs/go/token/index.js +11 -4
- package/dist/gs/go/token/index.js.map +1 -1
- package/dist/gs/hash/fnv/index.d.ts +57 -0
- package/dist/gs/hash/fnv/index.js +299 -0
- package/dist/gs/hash/fnv/index.js.map +1 -0
- package/dist/gs/hash/index.d.ts +17 -0
- package/dist/gs/hash/index.js +94 -0
- package/dist/gs/hash/index.js.map +1 -0
- package/dist/gs/io/fs/readlink.js +2 -6
- package/dist/gs/io/fs/readlink.js.map +1 -1
- package/dist/gs/io/fs/walk.js.map +1 -1
- package/dist/gs/io/io.d.ts +8 -5
- package/dist/gs/io/io.js +20 -2
- package/dist/gs/io/io.js.map +1 -1
- package/dist/gs/iter/iter.d.ts +3 -2
- package/dist/gs/iter/iter.js.map +1 -1
- package/dist/gs/maps/iter.d.ts +5 -5
- package/dist/gs/maps/iter.js +48 -21
- package/dist/gs/maps/iter.js.map +1 -1
- package/dist/gs/maps/maps.d.ts +6 -6
- package/dist/gs/math/bits/index.js +14 -24
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/mime/index.js +3 -1
- package/dist/gs/mime/index.js.map +1 -1
- package/dist/gs/net/http/httptest/index.d.ts +20 -1
- package/dist/gs/net/http/httptest/index.js +85 -3
- package/dist/gs/net/http/httptest/index.js.map +1 -1
- package/dist/gs/net/http/index.d.ts +118 -6
- package/dist/gs/net/http/index.js +389 -14
- package/dist/gs/net/http/index.js.map +1 -1
- package/dist/gs/net/http/pprof/index.d.ts +8 -0
- package/dist/gs/net/http/pprof/index.js +59 -0
- package/dist/gs/net/http/pprof/index.js.map +1 -0
- package/dist/gs/os/error.gs.js +9 -7
- package/dist/gs/os/error.gs.js.map +1 -1
- package/dist/gs/os/types_js.gs.js +95 -15
- package/dist/gs/os/types_js.gs.js.map +1 -1
- package/dist/gs/os/zero_copy_posix.gs.js +1 -1
- package/dist/gs/os/zero_copy_posix.gs.js.map +1 -1
- package/dist/gs/path/filepath/match.js.map +1 -1
- package/dist/gs/path/filepath/path.d.ts +5 -3
- package/dist/gs/path/filepath/path.js +65 -10
- package/dist/gs/path/filepath/path.js.map +1 -1
- package/dist/gs/reflect/index.d.ts +3 -2
- package/dist/gs/reflect/index.js +2 -1
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/iter.js +2 -2
- package/dist/gs/reflect/iter.js.map +1 -1
- package/dist/gs/reflect/map.js +26 -0
- package/dist/gs/reflect/map.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +24 -5
- package/dist/gs/reflect/type.js +390 -38
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/reflect/types.d.ts +1 -0
- package/dist/gs/reflect/types.js +3 -1
- package/dist/gs/reflect/types.js.map +1 -1
- package/dist/gs/reflect/value.d.ts +4 -1
- package/dist/gs/reflect/value.js +39 -1
- package/dist/gs/reflect/value.js.map +1 -1
- package/dist/gs/reflect/visiblefields.js +1 -1
- package/dist/gs/reflect/visiblefields.js.map +1 -1
- package/dist/gs/runtime/debug/index.d.ts +39 -0
- package/dist/gs/runtime/debug/index.js +58 -0
- package/dist/gs/runtime/debug/index.js.map +1 -1
- package/dist/gs/runtime/pprof/index.d.ts +20 -0
- package/dist/gs/runtime/pprof/index.js +85 -0
- package/dist/gs/runtime/pprof/index.js.map +1 -0
- package/dist/gs/runtime/trace/index.d.ts +19 -0
- package/dist/gs/runtime/trace/index.js +64 -0
- package/dist/gs/runtime/trace/index.js.map +1 -0
- package/dist/gs/slices/slices.d.ts +24 -9
- package/dist/gs/slices/slices.js +229 -24
- package/dist/gs/slices/slices.js.map +1 -1
- package/dist/gs/sort/slice.gs.d.ts +5 -3
- package/dist/gs/sort/slice.gs.js +55 -17
- package/dist/gs/sort/slice.gs.js.map +1 -1
- package/dist/gs/strings/builder.js +26 -17
- package/dist/gs/strings/builder.js.map +1 -1
- package/dist/gs/strings/iter.js +140 -75
- package/dist/gs/strings/iter.js.map +1 -1
- package/dist/gs/strings/replace.js +2 -2
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/strings.js +52 -6
- package/dist/gs/strings/strings.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +6 -3
- package/dist/gs/sync/sync.js +39 -11
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/syscall/errors.d.ts +116 -112
- package/dist/gs/syscall/errors.js +38 -1
- package/dist/gs/syscall/errors.js.map +1 -1
- package/dist/gs/syscall/fs.d.ts +2 -8
- package/dist/gs/syscall/fs.js.map +1 -1
- package/dist/gs/syscall/js/index.js +20 -12
- package/dist/gs/syscall/js/index.js.map +1 -1
- package/dist/gs/syscall/types.d.ts +4 -1
- package/dist/gs/syscall/types.js.map +1 -1
- package/dist/gs/testing/testing.d.ts +4 -3
- package/dist/gs/testing/testing.js +21 -4
- package/dist/gs/testing/testing.js.map +1 -1
- package/dist/gs/time/time.js +22 -0
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unicode/unicode.js.map +1 -1
- package/dist/gs/unique/index.js +7 -2
- package/dist/gs/unique/index.js.map +1 -1
- package/go.mod +8 -8
- package/go.sum +14 -23
- package/gs/builtin/builtin.ts +364 -37
- package/gs/builtin/channel.ts +208 -38
- package/gs/builtin/defer.ts +13 -2
- package/gs/builtin/hostio.test.ts +1 -0
- package/gs/builtin/hostio.ts +38 -0
- package/gs/builtin/map.ts +46 -6
- package/gs/builtin/print.ts +12 -3
- package/gs/builtin/runtime-contract.test.ts +290 -10
- package/gs/builtin/slice.test.ts +70 -0
- package/gs/builtin/slice.ts +566 -255
- package/gs/builtin/type.ts +63 -10
- package/gs/builtin/varRef.ts +2 -0
- package/gs/bytes/buffer.gs.ts +28 -28
- package/gs/bytes/bytes.gs.ts +19 -10
- package/gs/bytes/bytes.test.ts +17 -0
- package/gs/bytes/iter.gs.ts +13 -14
- package/gs/compress/zlib/index.test.ts +28 -0
- package/gs/compress/zlib/index.ts +200 -0
- package/gs/compress/zlib/meta.json +3 -0
- package/gs/context/context.test.ts +36 -2
- package/gs/context/context.ts +9 -4
- package/gs/crypto/ecdh/index.test.ts +43 -0
- package/gs/crypto/ecdh/index.ts +274 -0
- package/gs/crypto/ed25519/index.test.ts +41 -0
- package/gs/crypto/ed25519/index.ts +238 -0
- package/gs/crypto/ed25519/meta.json +13 -0
- package/gs/crypto/internal/constanttime/index.test.ts +25 -0
- package/gs/crypto/internal/constanttime/index.ts +22 -0
- package/gs/crypto/rand/index.test.ts +89 -1
- package/gs/crypto/rand/index.ts +103 -1
- package/gs/crypto/rand/meta.json +4 -1
- package/gs/crypto/sha1/index.test.ts +28 -0
- package/gs/crypto/sha1/index.ts +130 -0
- package/gs/crypto/sha1/meta.json +8 -0
- package/gs/crypto/sha256/index.test.ts +78 -0
- package/gs/crypto/sha256/index.ts +150 -0
- package/gs/crypto/sha256/meta.json +9 -0
- package/gs/crypto/sha512/index.test.ts +31 -0
- package/gs/crypto/sha512/index.ts +161 -0
- package/gs/crypto/sha512/meta.json +11 -0
- package/gs/encoding/json/index.test.ts +25 -3
- package/gs/encoding/json/index.ts +21 -3
- package/gs/errors/errors.test.ts +4 -1
- package/gs/errors/errors.ts +32 -8
- package/gs/fmt/fmt.test.ts +23 -1
- package/gs/fmt/fmt.ts +76 -10
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.test.ts +62 -7
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +78 -36
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.test.ts +32 -11
- package/gs/github.com/aperturerobotics/protobuf-go-lite/json/index.ts +122 -43
- package/gs/github.com/aperturerobotics/starpc/srpc/index.test.ts +31 -0
- package/gs/github.com/aperturerobotics/starpc/srpc/index.ts +518 -4
- package/gs/github.com/aperturerobotics/starpc/srpc/meta.json +6 -0
- package/gs/github.com/aperturerobotics/util/conc/index.test.ts +30 -0
- package/gs/github.com/aperturerobotics/util/conc/index.ts +172 -0
- package/gs/github.com/aperturerobotics/util/conc/meta.json +9 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts +1 -4
- package/gs/github.com/hack-pad/safejs/internal/catch/index.test.ts +35 -0
- package/gs/github.com/hack-pad/safejs/internal/catch/index.ts +65 -0
- package/gs/github.com/hack-pad/safejs/internal/catch/meta.json +9 -0
- package/gs/github.com/klauspost/compress/internal/le/index.test.ts +2 -1
- package/gs/github.com/klauspost/compress/internal/le/index.ts +6 -5
- package/gs/github.com/mr-tron/base58/base58/index.test.ts +70 -0
- package/gs/github.com/mr-tron/base58/base58/index.ts +231 -0
- package/gs/github.com/mr-tron/base58/base58/meta.json +3 -0
- package/gs/github.com/zeebo/blake3/internal/consts/index.test.ts +46 -0
- package/gs/github.com/zeebo/blake3/internal/consts/index.ts +26 -0
- package/gs/go/token/index.ts +17 -4
- package/gs/hash/fnv/index.test.ts +67 -0
- package/gs/hash/fnv/index.ts +351 -0
- package/gs/hash/fnv/meta.json +3 -0
- package/gs/hash/index.test.ts +37 -0
- package/gs/hash/index.ts +118 -0
- package/gs/hash/meta.json +5 -0
- package/gs/internal/byteorder/index.test.ts +6 -6
- package/gs/io/fs/readlink.ts +40 -48
- package/gs/io/fs/walk.ts +10 -2
- package/gs/io/io.test.ts +64 -0
- package/gs/io/io.ts +34 -13
- package/gs/iter/iter.ts +8 -2
- package/gs/maps/iter.ts +69 -26
- package/gs/maps/maps.test.ts +23 -0
- package/gs/maps/maps.ts +6 -6
- package/gs/math/bits/index.test.ts +20 -0
- package/gs/math/bits/index.ts +15 -28
- package/gs/mime/index.ts +8 -2
- package/gs/net/http/httptest/index.test.ts +85 -0
- package/gs/net/http/httptest/index.ts +113 -3
- package/gs/net/http/index.test.ts +159 -1
- package/gs/net/http/index.ts +515 -15
- package/gs/net/http/meta.json +6 -0
- package/gs/net/http/pprof/index.test.ts +47 -0
- package/gs/net/http/pprof/index.ts +65 -0
- package/gs/os/error.gs.ts +9 -10
- package/gs/os/error.test.ts +41 -0
- package/gs/os/file_unix_js.test.ts +55 -0
- package/gs/os/tempfile.gs.test.ts +37 -10
- package/gs/os/types_js.gs.ts +94 -15
- package/gs/os/zero_copy_posix.gs.ts +1 -2
- package/gs/path/filepath/match.ts +4 -1
- package/gs/path/filepath/meta.json +6 -0
- package/gs/path/filepath/path.test.ts +57 -2
- package/gs/path/filepath/path.ts +91 -12
- package/gs/reflect/field.test.ts +63 -0
- package/gs/reflect/index.ts +4 -1
- package/gs/reflect/iter.ts +2 -2
- package/gs/reflect/map.test.ts +24 -2
- package/gs/reflect/map.ts +35 -0
- package/gs/reflect/type.ts +543 -60
- package/gs/reflect/typefor.test.ts +100 -0
- package/gs/reflect/types.ts +3 -1
- package/gs/reflect/value.ts +50 -1
- package/gs/reflect/visiblefields.ts +1 -1
- package/gs/runtime/debug/index.test.ts +22 -1
- package/gs/runtime/debug/index.ts +88 -0
- package/gs/runtime/pprof/index.test.ts +36 -0
- package/gs/runtime/pprof/index.ts +104 -0
- package/gs/runtime/pprof/meta.json +6 -0
- package/gs/runtime/trace/index.test.ts +45 -0
- package/gs/runtime/trace/index.ts +97 -0
- package/gs/runtime/trace/meta.json +7 -0
- package/gs/slices/meta.json +2 -1
- package/gs/slices/slices.test.ts +86 -0
- package/gs/slices/slices.ts +284 -37
- package/gs/sort/slice.gs.ts +73 -23
- package/gs/sort/slice.test.ts +40 -0
- package/gs/strings/builder.test.ts +8 -0
- package/gs/strings/builder.ts +29 -17
- package/gs/strings/iter.test.ts +5 -7
- package/gs/strings/iter.ts +146 -71
- package/gs/strings/replace.test.ts +1 -4
- package/gs/strings/replace.ts +6 -6
- package/gs/strings/strings.test.ts +4 -0
- package/gs/strings/strings.ts +54 -6
- package/gs/sync/meta.json +1 -0
- package/gs/sync/sync.test.ts +57 -1
- package/gs/sync/sync.ts +45 -13
- package/gs/syscall/errors.ts +158 -115
- package/gs/syscall/fs.ts +8 -8
- package/gs/syscall/js/index.ts +49 -22
- package/gs/syscall/net.test.ts +26 -0
- package/gs/syscall/types.ts +7 -2
- package/gs/testing/testing.test.ts +56 -0
- package/gs/testing/testing.ts +27 -10
- package/gs/time/meta.json +2 -2
- package/gs/time/time.test.ts +4 -0
- package/gs/time/time.ts +33 -2
- package/gs/unicode/unicode.test.ts +14 -3
- package/gs/unicode/unicode.ts +1 -5
- package/gs/unique/index.ts +9 -2
- package/package.json +3 -3
package/gs/syscall/fs.ts
CHANGED
|
@@ -242,16 +242,16 @@ export function SetsockoptInt(
|
|
|
242
242
|
return null
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
export function readv(
|
|
246
|
-
number,
|
|
247
|
-
$.
|
|
248
|
-
] {
|
|
245
|
+
export function readv(
|
|
246
|
+
_fd: number,
|
|
247
|
+
_iovecs: $.Slice<Iovec> | null,
|
|
248
|
+
): [number, $.GoError] {
|
|
249
249
|
return [0, ENOSYS]
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
export function writev(
|
|
253
|
-
number,
|
|
254
|
-
$.
|
|
255
|
-
] {
|
|
252
|
+
export function writev(
|
|
253
|
+
_fd: number,
|
|
254
|
+
_iovecs: $.Slice<Iovec> | null,
|
|
255
|
+
): [number, $.GoError] {
|
|
256
256
|
return [0, ENOSYS]
|
|
257
257
|
}
|
package/gs/syscall/js/index.ts
CHANGED
|
@@ -105,14 +105,21 @@ export class Value {
|
|
|
105
105
|
`syscall/js: Value.Call: property ${m} is not a function, got ${Type_String(ValueOf(fn).Type())}`,
|
|
106
106
|
)
|
|
107
107
|
}
|
|
108
|
-
return new Value({
|
|
108
|
+
return new Value({
|
|
109
|
+
raw: fn.apply(
|
|
110
|
+
this._raw,
|
|
111
|
+
args.map((arg) => ValueOf(arg)._raw),
|
|
112
|
+
),
|
|
113
|
+
})
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
public Invoke(...args: unknown[]): Value {
|
|
112
117
|
if (typeof this._raw !== 'function') {
|
|
113
118
|
$.panic(new ValueError({ Method: 'Value.Invoke', Type: this.Type() }))
|
|
114
119
|
}
|
|
115
|
-
return new Value({
|
|
120
|
+
return new Value({
|
|
121
|
+
raw: this._raw(...args.map((arg) => ValueOf(arg)._raw)),
|
|
122
|
+
})
|
|
116
123
|
}
|
|
117
124
|
|
|
118
125
|
public New(...args: unknown[]): Value {
|
|
@@ -120,7 +127,10 @@ export class Value {
|
|
|
120
127
|
$.panic(new ValueError({ Method: 'Value.Invoke', Type: this.Type() }))
|
|
121
128
|
}
|
|
122
129
|
return new Value({
|
|
123
|
-
raw: Reflect.construct(
|
|
130
|
+
raw: Reflect.construct(
|
|
131
|
+
this._raw,
|
|
132
|
+
args.map((arg) => ValueOf(arg)._raw),
|
|
133
|
+
),
|
|
124
134
|
})
|
|
125
135
|
}
|
|
126
136
|
|
|
@@ -224,21 +234,27 @@ export class Func {
|
|
|
224
234
|
public Value: Value
|
|
225
235
|
private _released = false
|
|
226
236
|
|
|
227
|
-
constructor(
|
|
237
|
+
constructor(
|
|
238
|
+
init?: Partial<Func> & {
|
|
239
|
+
fn?: (this$: Value, args: $.Slice<Value>) => unknown
|
|
240
|
+
},
|
|
241
|
+
) {
|
|
228
242
|
const fn = init?.fn
|
|
229
|
-
this.Value =
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
this.Value =
|
|
244
|
+
init?.Value?.clone() ??
|
|
245
|
+
new Value({
|
|
246
|
+
raw: function (this: unknown, ...args: unknown[]) {
|
|
247
|
+
if (fn === undefined) {
|
|
248
|
+
return undefined
|
|
249
|
+
}
|
|
250
|
+
return ValueOf(
|
|
251
|
+
fn(
|
|
252
|
+
new Value({ raw: this }),
|
|
253
|
+
args.map((arg) => new Value({ raw: arg })) as $.Slice<Value>,
|
|
254
|
+
),
|
|
255
|
+
)._raw
|
|
256
|
+
},
|
|
257
|
+
})
|
|
242
258
|
}
|
|
243
259
|
|
|
244
260
|
public clone(): Func {
|
|
@@ -352,7 +368,11 @@ export function ValueOf(x: unknown): Value {
|
|
|
352
368
|
if (x === null || x === undefined) {
|
|
353
369
|
return Null()
|
|
354
370
|
}
|
|
355
|
-
if (
|
|
371
|
+
if (
|
|
372
|
+
typeof x === 'boolean' ||
|
|
373
|
+
typeof x === 'number' ||
|
|
374
|
+
typeof x === 'string'
|
|
375
|
+
) {
|
|
356
376
|
return new Value({ raw: x })
|
|
357
377
|
}
|
|
358
378
|
if (typeof x === 'bigint') {
|
|
@@ -423,7 +443,8 @@ export function CopyBytesToGo(dst: $.Bytes | null, src: Value): number {
|
|
|
423
443
|
|
|
424
444
|
export function CopyBytesToJS(dst: Value, src: $.Bytes | null): number {
|
|
425
445
|
const target = dstRawBytes(dst)
|
|
426
|
-
const bytes =
|
|
446
|
+
const bytes =
|
|
447
|
+
src instanceof Uint8Array ? src : Uint8Array.from($.asArray(src))
|
|
427
448
|
const n = Math.min(target.length, bytes.length)
|
|
428
449
|
target.set(bytes.subarray(0, n), 0)
|
|
429
450
|
return n
|
|
@@ -432,9 +453,13 @@ export function CopyBytesToJS(dst: Value, src: $.Bytes | null): number {
|
|
|
432
453
|
function sourceBytes(src: Value): Uint8Array {
|
|
433
454
|
const raw = srcRaw(src)
|
|
434
455
|
if (raw instanceof Uint8Array || raw instanceof Uint8ClampedArray) {
|
|
435
|
-
return raw instanceof Uint8Array ? raw :
|
|
456
|
+
return raw instanceof Uint8Array ? raw : (
|
|
457
|
+
new Uint8Array(raw.buffer, raw.byteOffset, raw.byteLength)
|
|
458
|
+
)
|
|
436
459
|
}
|
|
437
|
-
$.panic(
|
|
460
|
+
$.panic(
|
|
461
|
+
'syscall/js: CopyBytesToGo: expected src to be a Uint8Array or Uint8ClampedArray',
|
|
462
|
+
)
|
|
438
463
|
}
|
|
439
464
|
|
|
440
465
|
function dstRawBytes(dst: Value): Uint8Array | Uint8ClampedArray {
|
|
@@ -442,7 +467,9 @@ function dstRawBytes(dst: Value): Uint8Array | Uint8ClampedArray {
|
|
|
442
467
|
if (raw instanceof Uint8Array || raw instanceof Uint8ClampedArray) {
|
|
443
468
|
return raw
|
|
444
469
|
}
|
|
445
|
-
$.panic(
|
|
470
|
+
$.panic(
|
|
471
|
+
'syscall/js: CopyBytesToJS: expected dst to be a Uint8Array or Uint8ClampedArray',
|
|
472
|
+
)
|
|
446
473
|
}
|
|
447
474
|
|
|
448
475
|
function srcRaw(value: Value): unknown {
|
package/gs/syscall/net.test.ts
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import { describe, expect, test } from 'vitest'
|
|
2
2
|
|
|
3
|
+
import * as $ from '@goscript/builtin/index.js'
|
|
4
|
+
|
|
3
5
|
import {
|
|
4
6
|
Bind,
|
|
5
7
|
Close,
|
|
6
8
|
CloseOnExec,
|
|
7
9
|
Connect,
|
|
8
10
|
Dup,
|
|
11
|
+
EADDRNOTAVAIL,
|
|
12
|
+
EAGAIN,
|
|
13
|
+
EINTR,
|
|
14
|
+
EMFILE,
|
|
9
15
|
ENOSYS,
|
|
16
|
+
ENFILE,
|
|
10
17
|
ENOTSUP,
|
|
18
|
+
ETIMEDOUT,
|
|
19
|
+
Errno_Error,
|
|
20
|
+
Errno_Is,
|
|
21
|
+
Errno_Temporary,
|
|
22
|
+
Errno_Timeout,
|
|
11
23
|
GetsockoptInt,
|
|
12
24
|
Iovec,
|
|
13
25
|
IPPROTO_IPV6,
|
|
@@ -36,6 +48,7 @@ import {
|
|
|
36
48
|
readv,
|
|
37
49
|
writev,
|
|
38
50
|
} from './index.js'
|
|
51
|
+
import type { Errno } from './index.js'
|
|
39
52
|
|
|
40
53
|
describe('syscall network stubs', () => {
|
|
41
54
|
test('exports network constants used by generated net', () => {
|
|
@@ -47,6 +60,19 @@ describe('syscall network stubs', () => {
|
|
|
47
60
|
expect(ENOTSUP.Error()).toBe('operation not supported')
|
|
48
61
|
})
|
|
49
62
|
|
|
63
|
+
test('models Errno numeric zero values and named primitive methods', () => {
|
|
64
|
+
const errno: $.VarRef<Errno> = $.varRef(0)
|
|
65
|
+
|
|
66
|
+
expect(Errno_Error(errno.value)).toBe('errno 0')
|
|
67
|
+
expect(Errno_Is(EADDRNOTAVAIL, EADDRNOTAVAIL)).toBe(true)
|
|
68
|
+
expect(Errno_Temporary(EINTR)).toBe(true)
|
|
69
|
+
expect(Errno_Temporary(EMFILE)).toBe(true)
|
|
70
|
+
expect(Errno_Temporary(ENFILE)).toBe(true)
|
|
71
|
+
expect(Errno_Timeout(EAGAIN)).toBe(true)
|
|
72
|
+
expect(Errno_Timeout(ETIMEDOUT)).toBe(true)
|
|
73
|
+
expect(Errno_Timeout(EADDRNOTAVAIL)).toBe(false)
|
|
74
|
+
})
|
|
75
|
+
|
|
50
76
|
test('reports unsupported socket operations as syscall errors', () => {
|
|
51
77
|
expect(Socket(0, 0, 0)).toEqual([-1, ENOSYS])
|
|
52
78
|
expect(Connect(-1, null)).toBe(ENOSYS)
|
package/gs/syscall/types.ts
CHANGED
|
@@ -3,10 +3,15 @@ import * as $ from '@goscript/builtin/index.js'
|
|
|
3
3
|
// Essential type aliases
|
|
4
4
|
export type uintptr = number
|
|
5
5
|
|
|
6
|
-
// Errno type
|
|
7
|
-
|
|
6
|
+
// Errno is a named numeric Go type. Constants use object values so they can
|
|
7
|
+
// satisfy error interfaces, while generated zero values may still be numbers.
|
|
8
|
+
export type Errno = number | ErrnoObject
|
|
9
|
+
|
|
10
|
+
export interface ErrnoObject {
|
|
8
11
|
Error(): string
|
|
9
12
|
Is(target: $.GoError): boolean
|
|
13
|
+
Temporary?(): boolean
|
|
14
|
+
Timeout?(): boolean
|
|
10
15
|
Errno(): number
|
|
11
16
|
}
|
|
12
17
|
|
|
@@ -87,4 +87,60 @@ describe('testing.T', () => {
|
|
|
87
87
|
expect(observed).toBe(true)
|
|
88
88
|
expect(Short()).toBe(false)
|
|
89
89
|
})
|
|
90
|
+
|
|
91
|
+
it('accepts parallel tests in the sequential runner', () => {
|
|
92
|
+
const t = new T('root')
|
|
93
|
+
|
|
94
|
+
t.Parallel()
|
|
95
|
+
|
|
96
|
+
expect(t.Failed()).toBe(false)
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
it('accepts nil cleanup values and fails when cleanup runs', async () => {
|
|
100
|
+
const t = new T('root')
|
|
101
|
+
|
|
102
|
+
t.Cleanup(null)
|
|
103
|
+
|
|
104
|
+
await expect(t.runCleanups()).rejects.toThrow('testing: nil cleanup function')
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
it('returns a non-nil context', () => {
|
|
108
|
+
const t = new T('root')
|
|
109
|
+
|
|
110
|
+
expect(t.Context()).not.toBeNull()
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it('formats common testing printf verbs', () => {
|
|
114
|
+
const t = new T('root')
|
|
115
|
+
const messages: string[] = []
|
|
116
|
+
const originalLog = console.log
|
|
117
|
+
console.log = (message?: unknown) => {
|
|
118
|
+
messages.push(String(message))
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
t.Logf('quoted=%q value=%#v plus=%+v number=%d string=%s plain=%v', 'key', 7, { ok: true }, 3, 'ok', true)
|
|
122
|
+
t.flushLogs()
|
|
123
|
+
} finally {
|
|
124
|
+
console.log = originalLog
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
expect(messages).toEqual([' quoted="key" value=7 plus=[object Object] number=3 string=ok plain=true'])
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
it('formats Go-style error objects with Error methods', () => {
|
|
131
|
+
const t = new T('root')
|
|
132
|
+
const messages: string[] = []
|
|
133
|
+
const originalLog = console.log
|
|
134
|
+
console.log = (message?: unknown) => {
|
|
135
|
+
messages.push(String(message))
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
t.Logf('err=%v', { Error: () => 'host path missing' })
|
|
139
|
+
t.flushLogs()
|
|
140
|
+
} finally {
|
|
141
|
+
console.log = originalLog
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
expect(messages).toEqual([' err=host path missing'])
|
|
145
|
+
})
|
|
90
146
|
})
|
package/gs/testing/testing.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { mkdirSync } from 'node:fs'
|
|
|
2
2
|
import { tmpdir } from 'node:os'
|
|
3
3
|
import { join } from 'node:path'
|
|
4
4
|
|
|
5
|
+
import * as context from '@goscript/context/index.js'
|
|
6
|
+
|
|
5
7
|
export type TestFunc = (t: T) => void | Promise<void>
|
|
6
8
|
export type TB = T | B | F
|
|
7
9
|
|
|
@@ -111,8 +113,13 @@ export class T {
|
|
|
111
113
|
|
|
112
114
|
public Helper(): void {}
|
|
113
115
|
|
|
114
|
-
public Cleanup(fn: () => void | Promise<void>): void {
|
|
115
|
-
this.cleanups.push(
|
|
116
|
+
public Cleanup(fn: (() => void | Promise<void>) | null): void {
|
|
117
|
+
this.cleanups.push(() => {
|
|
118
|
+
if (fn == null) {
|
|
119
|
+
throw new Error('testing: nil cleanup function')
|
|
120
|
+
}
|
|
121
|
+
return fn()
|
|
122
|
+
})
|
|
116
123
|
}
|
|
117
124
|
|
|
118
125
|
public async Run(name: string, fn: TestFunc): Promise<boolean> {
|
|
@@ -158,11 +165,7 @@ export class T {
|
|
|
158
165
|
return path
|
|
159
166
|
}
|
|
160
167
|
|
|
161
|
-
public Parallel():
|
|
162
|
-
throw new TestControl(
|
|
163
|
-
'fatal',
|
|
164
|
-
'testing.T.Parallel is not supported by GoScript test',
|
|
165
|
-
)
|
|
168
|
+
public Parallel(): void {
|
|
166
169
|
}
|
|
167
170
|
|
|
168
171
|
public Setenv(key: string, value: string): void {
|
|
@@ -204,8 +207,8 @@ export class T {
|
|
|
204
207
|
|
|
205
208
|
public Attr(_key: string, _value: string): void {}
|
|
206
209
|
|
|
207
|
-
public Context():
|
|
208
|
-
return
|
|
210
|
+
public Context(): context.Context {
|
|
211
|
+
return context.Background()
|
|
209
212
|
}
|
|
210
213
|
|
|
211
214
|
public Output(): null {
|
|
@@ -368,13 +371,27 @@ export async function runTests(
|
|
|
368
371
|
|
|
369
372
|
function formatMessage(format: string, args: unknown[]): string {
|
|
370
373
|
let index = 0
|
|
371
|
-
return format.replace(
|
|
374
|
+
return format.replace(/%#v|%\+v|%q|%[vds]/g, (verb) => {
|
|
375
|
+
const value = args[index++]
|
|
376
|
+
if (verb === '%q') {
|
|
377
|
+
return JSON.stringify(String(value))
|
|
378
|
+
}
|
|
379
|
+
return formatValue(value)
|
|
380
|
+
})
|
|
372
381
|
}
|
|
373
382
|
|
|
374
383
|
function formatValue(value: unknown): string {
|
|
375
384
|
if (value instanceof Error) {
|
|
376
385
|
return value.message
|
|
377
386
|
}
|
|
387
|
+
if (
|
|
388
|
+
value !== null &&
|
|
389
|
+
typeof value === 'object' &&
|
|
390
|
+
'Error' in value &&
|
|
391
|
+
typeof value.Error === 'function'
|
|
392
|
+
) {
|
|
393
|
+
return String(value.Error())
|
|
394
|
+
}
|
|
378
395
|
if (value === null) {
|
|
379
396
|
return '<nil>'
|
|
380
397
|
}
|
package/gs/time/meta.json
CHANGED
package/gs/time/time.test.ts
CHANGED
|
@@ -35,6 +35,10 @@ describe('time.Duration_String', () => {
|
|
|
35
35
|
expect(Duration_String(1500 * Millisecond)).toBe('1.5s')
|
|
36
36
|
expect(Duration_String(-1500 * Millisecond)).toBe('-1.5s')
|
|
37
37
|
expect(Duration_String(2 * Second)).toBe('2s')
|
|
38
|
+
expect(Duration_String(9 * Millisecond)).toBe('9ms')
|
|
39
|
+
expect(Duration_String(1500 * Microsecond)).toBe('1.5ms')
|
|
40
|
+
expect(Duration_String(1500)).toBe('1.5\u00b5s')
|
|
41
|
+
expect(Duration_String(12)).toBe('12ns')
|
|
38
42
|
})
|
|
39
43
|
})
|
|
40
44
|
|
package/gs/time/time.ts
CHANGED
|
@@ -703,7 +703,10 @@ export function Duration_Nanoseconds(receiver: Duration): number {
|
|
|
703
703
|
return durationNumber(receiver)
|
|
704
704
|
}
|
|
705
705
|
|
|
706
|
-
export function Duration_Round(
|
|
706
|
+
export function Duration_Round(
|
|
707
|
+
receiver: Duration,
|
|
708
|
+
multiple: Duration,
|
|
709
|
+
): Duration {
|
|
707
710
|
const value = durationNumber(receiver)
|
|
708
711
|
const unit = durationNumber(multiple)
|
|
709
712
|
if (unit <= 0) {
|
|
@@ -740,6 +743,9 @@ export function Duration_String(receiver: Duration): string {
|
|
|
740
743
|
}
|
|
741
744
|
const sign = value < 0 ? '-' : ''
|
|
742
745
|
let remaining = Math.abs(value)
|
|
746
|
+
if (remaining < Second) {
|
|
747
|
+
return sign + formatSubsecond(remaining)
|
|
748
|
+
}
|
|
743
749
|
const hours = Math.floor(remaining / Hour)
|
|
744
750
|
remaining -= hours * Hour
|
|
745
751
|
const minutes = Math.floor(remaining / Minute)
|
|
@@ -767,7 +773,11 @@ export function Duration_format(
|
|
|
767
773
|
const text = Duration_String(receiver)
|
|
768
774
|
const bytes = Array.from(new TextEncoder().encode(text))
|
|
769
775
|
const start = Math.max(0, buf.value.length - bytes.length)
|
|
770
|
-
for (
|
|
776
|
+
for (
|
|
777
|
+
let idx = 0;
|
|
778
|
+
idx < bytes.length && start + idx < buf.value.length;
|
|
779
|
+
idx++
|
|
780
|
+
) {
|
|
771
781
|
buf.value[start + idx] = bytes[idx]!
|
|
772
782
|
}
|
|
773
783
|
return start
|
|
@@ -781,6 +791,27 @@ function formatSeconds(seconds: number, nanos: number): string {
|
|
|
781
791
|
return `${seconds}.${fraction}s`
|
|
782
792
|
}
|
|
783
793
|
|
|
794
|
+
function formatSubsecond(nanos: number): string {
|
|
795
|
+
if (nanos >= Millisecond) {
|
|
796
|
+
return formatUnit(nanos, Millisecond, 'ms')
|
|
797
|
+
}
|
|
798
|
+
if (nanos >= Microsecond) {
|
|
799
|
+
return formatUnit(nanos, Microsecond, '\u00b5s')
|
|
800
|
+
}
|
|
801
|
+
return `${nanos}ns`
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
function formatUnit(nanos: number, unit: number, suffix: string): string {
|
|
805
|
+
const whole = Math.floor(nanos / unit)
|
|
806
|
+
const rem = nanos % unit
|
|
807
|
+
if (rem === 0) {
|
|
808
|
+
return `${whole}${suffix}`
|
|
809
|
+
}
|
|
810
|
+
const scale = Math.log10(unit)
|
|
811
|
+
const fraction = String(rem).padStart(scale, '0').replace(/0+$/, '')
|
|
812
|
+
return `${whole}.${fraction}${suffix}`
|
|
813
|
+
}
|
|
814
|
+
|
|
784
815
|
// Location represents a time zone
|
|
785
816
|
export class Location {
|
|
786
817
|
private _name: string
|
|
@@ -2,13 +2,24 @@ import { describe, expect, it } from 'vitest'
|
|
|
2
2
|
|
|
3
3
|
import * as $ from '@goscript/builtin/index.js'
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
CategoryAliases,
|
|
7
|
+
Cn,
|
|
8
|
+
Is,
|
|
9
|
+
Range16,
|
|
10
|
+
Range32,
|
|
11
|
+
RangeTable,
|
|
12
|
+
} from './unicode.js'
|
|
6
13
|
|
|
7
14
|
describe('unicode overrides', () => {
|
|
8
15
|
it('accepts generated struct-literal constructor shapes', () => {
|
|
9
16
|
const table = new RangeTable({
|
|
10
|
-
R16: $.arrayToSlice<Range16>([
|
|
11
|
-
|
|
17
|
+
R16: $.arrayToSlice<Range16>([
|
|
18
|
+
new Range16({ Lo: 0x41, Hi: 0x5a, Stride: 1 }),
|
|
19
|
+
]),
|
|
20
|
+
R32: $.arrayToSlice<Range32>([
|
|
21
|
+
new Range32({ Lo: 0x10000, Hi: 0x10002, Stride: 1 }),
|
|
22
|
+
]),
|
|
12
23
|
LatinOffset: 1,
|
|
13
24
|
})
|
|
14
25
|
|
package/gs/unicode/unicode.ts
CHANGED
|
@@ -92,11 +92,7 @@ export class RangeTable {
|
|
|
92
92
|
public LatinOffset: number
|
|
93
93
|
|
|
94
94
|
constructor(init?: RangeTableInit)
|
|
95
|
-
constructor(
|
|
96
|
-
r16?: Slice<Range16>,
|
|
97
|
-
r32?: Slice<Range32>,
|
|
98
|
-
latinOffset?: number,
|
|
99
|
-
)
|
|
95
|
+
constructor(r16?: Slice<Range16>, r32?: Slice<Range32>, latinOffset?: number)
|
|
100
96
|
constructor(
|
|
101
97
|
r16OrInit: Slice<Range16> | RangeTableInit = [],
|
|
102
98
|
r32: Slice<Range32> = [],
|
package/gs/unique/index.ts
CHANGED
|
@@ -73,11 +73,18 @@ function normalize(
|
|
|
73
73
|
if (value instanceof Map) {
|
|
74
74
|
return {
|
|
75
75
|
$map: [...value.entries()]
|
|
76
|
-
.map(([key, entry]) => [
|
|
76
|
+
.map(([key, entry]) => [
|
|
77
|
+
normalize(key, seen, nextID),
|
|
78
|
+
normalize(entry, seen, nextID),
|
|
79
|
+
])
|
|
77
80
|
.sort(([a], [b]) => JSON.stringify(a).localeCompare(JSON.stringify(b))),
|
|
78
81
|
}
|
|
79
82
|
}
|
|
80
|
-
if (
|
|
83
|
+
if (
|
|
84
|
+
'_fields' in value &&
|
|
85
|
+
value._fields &&
|
|
86
|
+
typeof value._fields === 'object'
|
|
87
|
+
) {
|
|
81
88
|
return {
|
|
82
89
|
$type: value.constructor.name,
|
|
83
90
|
$fields: normalize(value._fields, seen, nextID),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "goscript",
|
|
3
3
|
"description": "Go to TypeScript transpiler",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Aperture Robotics LLC.",
|
|
7
7
|
"email": "support@aperture.us",
|
|
@@ -104,9 +104,9 @@
|
|
|
104
104
|
"eslint": "^10.2.0",
|
|
105
105
|
"eslint-config-prettier": "^10.0.2",
|
|
106
106
|
"husky": "^9.1.7",
|
|
107
|
-
"lint-staged": "^
|
|
107
|
+
"lint-staged": "^17.0.0",
|
|
108
108
|
"prettier": "^3.8.1",
|
|
109
|
-
"starpc": "0.49.
|
|
109
|
+
"starpc": "0.49.15",
|
|
110
110
|
"typescript": "^6.0.0",
|
|
111
111
|
"typescript-eslint": "^8.58.0",
|
|
112
112
|
"vitest": "^4.1.2"
|