goscript 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/compiler/lowering.go +57 -8
  2. package/compiler/override-registry_test.go +125 -0
  3. package/compiler/skeleton_test.go +49 -2
  4. package/dist/gs/compress/gzip/index.d.ts +41 -0
  5. package/dist/gs/compress/gzip/index.js +235 -0
  6. package/dist/gs/compress/gzip/index.js.map +1 -0
  7. package/dist/gs/io/fs/glob.js +1 -1
  8. package/dist/gs/io/fs/glob.js.map +1 -1
  9. package/dist/gs/io/fs/readlink.d.ts +1 -1
  10. package/dist/gs/io/fs/readlink.js +2 -2
  11. package/dist/gs/io/fs/readlink.js.map +1 -1
  12. package/dist/gs/io/fs/stat.d.ts +4 -2
  13. package/dist/gs/io/fs/stat.js +12 -73
  14. package/dist/gs/io/fs/stat.js.map +1 -1
  15. package/dist/gs/io/fs/sub.d.ts +2 -2
  16. package/dist/gs/io/fs/sub.js +7 -7
  17. package/dist/gs/io/fs/sub.js.map +1 -1
  18. package/dist/gs/io/fs/walk.js +1 -1
  19. package/dist/gs/io/fs/walk.js.map +1 -1
  20. package/dist/gs/net/http/index.d.ts +18 -14
  21. package/dist/gs/net/http/index.js +44 -23
  22. package/dist/gs/net/http/index.js.map +1 -1
  23. package/dist/gs/net/http/pprof/index.d.ts +5 -5
  24. package/dist/gs/net/http/pprof/index.js +21 -21
  25. package/dist/gs/net/http/pprof/index.js.map +1 -1
  26. package/gs/builtin/runtime-contract.test.ts +25 -0
  27. package/gs/compress/gzip/index.test.ts +86 -0
  28. package/gs/compress/gzip/index.ts +297 -0
  29. package/gs/compress/gzip/meta.json +6 -0
  30. package/gs/compress/gzip/parity.json +45 -0
  31. package/gs/embed/index.test.ts +1 -1
  32. package/gs/io/fs/glob.ts +1 -1
  33. package/gs/io/fs/meta.json +3 -0
  34. package/gs/io/fs/readlink.test.ts +2 -2
  35. package/gs/io/fs/readlink.ts +5 -2
  36. package/gs/io/fs/stat.test.ts +79 -0
  37. package/gs/io/fs/stat.ts +24 -10
  38. package/gs/io/fs/sub.test.ts +93 -0
  39. package/gs/io/fs/sub.ts +9 -9
  40. package/gs/io/fs/walk.ts +1 -1
  41. package/gs/net/http/index.test.ts +207 -2
  42. package/gs/net/http/index.ts +68 -37
  43. package/gs/net/http/meta.json +3 -1
  44. package/gs/net/http/pprof/index.test.ts +4 -4
  45. package/gs/net/http/pprof/index.ts +30 -27
  46. package/package.json +1 -1
@@ -6847,11 +6847,32 @@ func isLegacyOctalLiteral(value string) bool {
6847
6847
  }
6848
6848
 
6849
6849
  func (o *LoweringOwner) lowerFuncLit(ctx lowerFileContext, lit *ast.FuncLit) (string, bool, []Diagnostic) {
6850
+ return o.lowerFuncLitWithAsyncCalls(ctx, lit, true)
6851
+ }
6852
+
6853
+ func (o *LoweringOwner) lowerFuncLitForTarget(
6854
+ ctx lowerFileContext,
6855
+ lit *ast.FuncLit,
6856
+ targetType types.Type,
6857
+ allowAsyncOverrideCallback bool,
6858
+ ) (string, bool, []Diagnostic) {
6859
+ allowAsyncCalls := true
6860
+ if !allowAsyncOverrideCallback && signatureForType(targetType) != nil {
6861
+ allowAsyncCalls = false
6862
+ }
6863
+ return o.lowerFuncLitWithAsyncCalls(ctx, lit, allowAsyncCalls)
6864
+ }
6865
+
6866
+ func (o *LoweringOwner) lowerFuncLitWithAsyncCalls(
6867
+ ctx lowerFileContext,
6868
+ lit *ast.FuncLit,
6869
+ allowAsyncCalls bool,
6870
+ ) (string, bool, []Diagnostic) {
6850
6871
  signature, _ := ctx.semPkg.source.TypesInfo.TypeOf(lit).(*types.Signature)
6851
6872
  deferState := &loweredDeferState{}
6852
6873
  bodyCtx := ctx.withSignature(signature).withAsyncFunction(false).withDeferState(deferState).withoutRangeBranch()
6853
6874
  asyncCompatibleParams := funcLiteralNeedsAsyncFunctionParamCalls(signature)
6854
- if asyncCompatibleParams || funcLiteralUsesAwaitableCall(ctx, lit) {
6875
+ if allowAsyncCalls && (asyncCompatibleParams || funcLiteralUsesAwaitableCall(ctx, lit)) {
6855
6876
  bodyCtx = bodyCtx.withAsyncFunction(true)
6856
6877
  }
6857
6878
  var params []loweredParam
@@ -7276,13 +7297,14 @@ func (o *LoweringOwner) lowerCallArgs(
7276
7297
  signature *types.Signature,
7277
7298
  ) ([]string, []Diagnostic) {
7278
7299
  overrideCall := o.callUsesOverridePackage(ctx, expr.Fun)
7300
+ allowAsyncOverrideCallback := !overrideCall || o.overrideCallNeedsAwait(ctx, expr.Fun)
7279
7301
  if args, diagnostics, ok := o.lowerTupleCallArgs(ctx, expr, signature, overrideCall); ok {
7280
7302
  return args, diagnostics
7281
7303
  }
7282
7304
  if signature != nil && signature.Variadic() && overrideCall && !isBuiltinCallTarget(ctx, expr.Fun) {
7283
7305
  params := signature.Params()
7284
7306
  if params == nil || params.Len() == 0 {
7285
- return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall)
7307
+ return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall, allowAsyncOverrideCallback)
7286
7308
  }
7287
7309
  fixedCount := params.Len() - 1
7288
7310
  targetType := params.At(fixedCount).Type()
@@ -7292,7 +7314,7 @@ func (o *LoweringOwner) lowerCallArgs(
7292
7314
  args := make([]string, 0, len(expr.Args))
7293
7315
  var diagnostics []Diagnostic
7294
7316
  for idx, arg := range expr.Args {
7295
- lowered, argDiagnostics := o.lowerExpr(ctx, arg)
7317
+ lowered, argDiagnostics := o.lowerCallArgExpr(ctx, arg, params.At(min(idx, fixedCount)).Type(), allowAsyncOverrideCallback)
7296
7318
  diagnostics = append(diagnostics, argDiagnostics...)
7297
7319
  if idx < fixedCount {
7298
7320
  lowered = o.lowerCallArgForTarget(ctx, arg, params.At(idx).Type(), lowered, overrideCall)
@@ -7309,11 +7331,11 @@ func (o *LoweringOwner) lowerCallArgs(
7309
7331
  if signature == nil || !signature.Variadic() ||
7310
7332
  isBuiltinCallTarget(ctx, expr.Fun) ||
7311
7333
  overrideCall {
7312
- return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall)
7334
+ return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall, allowAsyncOverrideCallback)
7313
7335
  }
7314
7336
  params := signature.Params()
7315
7337
  if params == nil || params.Len() == 0 {
7316
- return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall)
7338
+ return o.lowerFixedCallArgs(ctx, expr.Args, signature, overrideCall, allowAsyncOverrideCallback)
7317
7339
  }
7318
7340
 
7319
7341
  fixedCount := params.Len() - 1
@@ -7321,7 +7343,11 @@ func (o *LoweringOwner) lowerCallArgs(
7321
7343
  var variadicArgs []string
7322
7344
  var diagnostics []Diagnostic
7323
7345
  for idx, arg := range expr.Args {
7324
- lowered, argDiagnostics := o.lowerExpr(ctx, arg)
7346
+ targetType := params.At(fixedCount).Type()
7347
+ if idx < fixedCount {
7348
+ targetType = params.At(idx).Type()
7349
+ }
7350
+ lowered, argDiagnostics := o.lowerCallArgExpr(ctx, arg, targetType, allowAsyncOverrideCallback)
7325
7351
  diagnostics = append(diagnostics, argDiagnostics...)
7326
7352
  if idx < fixedCount {
7327
7353
  lowered = o.lowerCallArgForTarget(ctx, arg, params.At(idx).Type(), lowered, overrideCall)
@@ -7422,6 +7448,7 @@ func (o *LoweringOwner) lowerFixedCallArgs(
7422
7448
  exprs []ast.Expr,
7423
7449
  signature *types.Signature,
7424
7450
  overrideCall bool,
7451
+ allowAsyncOverrideCallback bool,
7425
7452
  ) ([]string, []Diagnostic) {
7426
7453
  var params *types.Tuple
7427
7454
  if signature != nil {
@@ -7430,7 +7457,11 @@ func (o *LoweringOwner) lowerFixedCallArgs(
7430
7457
  args := make([]string, 0, len(exprs))
7431
7458
  var diagnostics []Diagnostic
7432
7459
  for idx, expr := range exprs {
7433
- lowered, exprDiagnostics := o.lowerExpr(ctx, expr)
7460
+ var targetType types.Type
7461
+ if params != nil && idx < params.Len() {
7462
+ targetType = params.At(idx).Type()
7463
+ }
7464
+ lowered, exprDiagnostics := o.lowerCallArgExpr(ctx, expr, targetType, allowAsyncOverrideCallback)
7434
7465
  diagnostics = append(diagnostics, exprDiagnostics...)
7435
7466
  if params != nil && idx < params.Len() {
7436
7467
  lowered = o.lowerCallArgForTarget(ctx, expr, params.At(idx).Type(), lowered, overrideCall)
@@ -7440,6 +7471,19 @@ func (o *LoweringOwner) lowerFixedCallArgs(
7440
7471
  return args, diagnostics
7441
7472
  }
7442
7473
 
7474
+ func (o *LoweringOwner) lowerCallArgExpr(
7475
+ ctx lowerFileContext,
7476
+ expr ast.Expr,
7477
+ targetType types.Type,
7478
+ overrideCall bool,
7479
+ ) (string, []Diagnostic) {
7480
+ if lit, ok := ast.Unparen(expr).(*ast.FuncLit); ok && targetType != nil {
7481
+ value, _, diagnostics := o.lowerFuncLitForTarget(ctx, lit, targetType, overrideCall)
7482
+ return value, diagnostics
7483
+ }
7484
+ return o.lowerExpr(ctx, expr)
7485
+ }
7486
+
7443
7487
  func (o *LoweringOwner) lowerCallArgForTarget(
7444
7488
  ctx lowerFileContext,
7445
7489
  expr ast.Expr,
@@ -8390,7 +8434,12 @@ func (o *LoweringOwner) lowerMethodValueClosure(
8390
8434
  if includeReceiver {
8391
8435
  args = append([]string{"__receiver"}, args...)
8392
8436
  }
8393
- return "((__receiver) => (" + strings.Join(params, ", ") + ") => " + callee + "(" + strings.Join(args, ", ") + "))(" + receiver + ")"
8437
+ closure := "((__receiver) => (" + strings.Join(params, ", ") + ") => " + callee + "(" + strings.Join(args, ", ") + "))(" + receiver + ")"
8438
+ if signature == nil {
8439
+ return closure
8440
+ }
8441
+ return o.runtimeOwner.QualifiedHelper(RuntimeHelperFunctionValue) +
8442
+ "(" + closure + ", " + o.runtimeFunctionTypeInfo(signature, "") + ")"
8394
8443
  }
8395
8444
 
8396
8445
  func (o *LoweringOwner) lowerMethodExpressionClosure(ctx lowerFileContext, selection *types.Selection) string {
@@ -488,6 +488,131 @@ func TestCompilePackagesAwaitsOverrideAsyncFunctions(t *testing.T) {
488
488
  }
489
489
  }
490
490
 
491
+ func TestCompilePackagesAwaitsIOFSStatOverride(t *testing.T) {
492
+ moduleDir := writePackageGraphFixture(t, map[string]string{
493
+ "go.mod": "module example.test/iofsstat\n\ngo 1.25.3\n",
494
+ "main.go": strings.Join([]string{
495
+ "package main",
496
+ "import \"io/fs\"",
497
+ "type memFS struct{}",
498
+ "func (memFS) Open(name string) (fs.File, error) { return nil, fs.ErrNotExist }",
499
+ "func Use(fsys fs.FS) error {",
500
+ " _, err := fs.Stat(fsys, \"pkg\")",
501
+ " return err",
502
+ "}",
503
+ "func main() { _ = Use(memFS{}) }",
504
+ "",
505
+ }, "\n"),
506
+ })
507
+ out := filepath.Join(t.TempDir(), "out")
508
+ comp, err := NewCompiler(&Config{
509
+ Dir: moduleDir,
510
+ OutputPath: out,
511
+ AllDependencies: true,
512
+ }, nil, nil)
513
+ if err != nil {
514
+ t.Fatal(err.Error())
515
+ }
516
+
517
+ if _, err := comp.CompilePackages(context.Background(), "."); err != nil {
518
+ t.Fatal(err.Error())
519
+ }
520
+ content, err := os.ReadFile(filepath.Join(out, "@goscript", "example.test", "iofsstat", "main.gs.ts"))
521
+ if err != nil {
522
+ t.Fatal(err.Error())
523
+ }
524
+ text := string(content)
525
+ if !strings.Contains(text, "export async function Use(") {
526
+ t.Fatalf("fs.Stat caller was not marked async:\n%s", text)
527
+ }
528
+ if !strings.Contains(text, "await fs.Stat(") {
529
+ t.Fatalf("io/fs Stat override call was not awaited:\n%s", text)
530
+ }
531
+ }
532
+
533
+ func TestCompilePackagesAwaitsIOFSLstatOverride(t *testing.T) {
534
+ moduleDir := writePackageGraphFixture(t, map[string]string{
535
+ "go.mod": "module example.test/iofslstat\n\ngo 1.25.3\n",
536
+ "main.go": strings.Join([]string{
537
+ "package main",
538
+ "import \"io/fs\"",
539
+ "type memFS struct{}",
540
+ "func (memFS) Open(name string) (fs.File, error) { return nil, fs.ErrNotExist }",
541
+ "func Use(fsys fs.FS) error {",
542
+ " _, err := fs.Lstat(fsys, \"pkg\")",
543
+ " return err",
544
+ "}",
545
+ "func main() { _ = Use(memFS{}) }",
546
+ "",
547
+ }, "\n"),
548
+ })
549
+ out := filepath.Join(t.TempDir(), "out")
550
+ comp, err := NewCompiler(&Config{
551
+ Dir: moduleDir,
552
+ OutputPath: out,
553
+ AllDependencies: true,
554
+ }, nil, nil)
555
+ if err != nil {
556
+ t.Fatal(err.Error())
557
+ }
558
+
559
+ if _, err := comp.CompilePackages(context.Background(), "."); err != nil {
560
+ t.Fatal(err.Error())
561
+ }
562
+ content, err := os.ReadFile(filepath.Join(out, "@goscript", "example.test", "iofslstat", "main.gs.ts"))
563
+ if err != nil {
564
+ t.Fatal(err.Error())
565
+ }
566
+ text := string(content)
567
+ if !strings.Contains(text, "export async function Use(") {
568
+ t.Fatalf("fs.Lstat caller was not marked async:\n%s", text)
569
+ }
570
+ if !strings.Contains(text, "await fs.Lstat(") {
571
+ t.Fatalf("io/fs Lstat override call was not awaited:\n%s", text)
572
+ }
573
+ }
574
+
575
+ func TestCompilePackagesAwaitsIOFSSubOverride(t *testing.T) {
576
+ moduleDir := writePackageGraphFixture(t, map[string]string{
577
+ "go.mod": "module example.test/iofssub\n\ngo 1.25.3\n",
578
+ "main.go": strings.Join([]string{
579
+ "package main",
580
+ "import \"io/fs\"",
581
+ "type memFS struct{}",
582
+ "func (memFS) Open(name string) (fs.File, error) { return nil, fs.ErrNotExist }",
583
+ "func Use(fsys fs.FS) (fs.FS, error) {",
584
+ " return fs.Sub(fsys, \"pkg\")",
585
+ "}",
586
+ "func main() { _, _ = Use(memFS{}) }",
587
+ "",
588
+ }, "\n"),
589
+ })
590
+ out := filepath.Join(t.TempDir(), "out")
591
+ comp, err := NewCompiler(&Config{
592
+ Dir: moduleDir,
593
+ OutputPath: out,
594
+ AllDependencies: true,
595
+ }, nil, nil)
596
+ if err != nil {
597
+ t.Fatal(err.Error())
598
+ }
599
+
600
+ if _, err := comp.CompilePackages(context.Background(), "."); err != nil {
601
+ t.Fatal(err.Error())
602
+ }
603
+ content, err := os.ReadFile(filepath.Join(out, "@goscript", "example.test", "iofssub", "main.gs.ts"))
604
+ if err != nil {
605
+ t.Fatal(err.Error())
606
+ }
607
+ text := string(content)
608
+ if !strings.Contains(text, "export async function Use(") {
609
+ t.Fatalf("fs.Sub caller was not marked async:\n%s", text)
610
+ }
611
+ if !strings.Contains(text, "return await fs.Sub(") {
612
+ t.Fatalf("io/fs Sub override call was not awaited:\n%s", text)
613
+ }
614
+ }
615
+
491
616
  func TestCompilePackagesAwaitsAsyncSlicesSortFuncComparator(t *testing.T) {
492
617
  moduleDir := writePackageGraphFixture(t, map[string]string{
493
618
  "go.mod": "module example.test/slicesasyncsort\n\ngo 1.25.3\n",
@@ -4743,8 +4743,8 @@ func TestCompilePackagesLowersMethodValuesWithFixedParameters(t *testing.T) {
4743
4743
  }
4744
4744
  text := string(content)
4745
4745
  for _, want := range []string{
4746
- "((__receiver) => (n: number) => Counter_Add(__receiver, n))(c)",
4747
- "((__receiver) => () => __receiver.Run())(",
4746
+ "$.functionValue(((__receiver) => (n: number) => Counter_Add(__receiver, n))(c), ({ kind: $.TypeKind.Function",
4747
+ "$.functionValue(((__receiver) => () => __receiver.Run())(",
4748
4748
  } {
4749
4749
  if !strings.Contains(text, want) {
4750
4750
  t.Fatalf("missing %q in generated output:\n%s", want, text)
@@ -4755,6 +4755,53 @@ func TestCompilePackagesLowersMethodValuesWithFixedParameters(t *testing.T) {
4755
4755
  }
4756
4756
  }
4757
4757
 
4758
+ func TestCompilePackagesLowersSyncOverrideCallbackWithoutAsyncWrapper(t *testing.T) {
4759
+ moduleDir := writePackageGraphFixture(t, map[string]string{
4760
+ "go.mod": "module example.test/sync-callback\n\ngo 1.25.3\n",
4761
+ "main.go": strings.Join([]string{
4762
+ "package main",
4763
+ "import \"sort\"",
4764
+ "type Item interface {",
4765
+ " Name() string",
4766
+ "}",
4767
+ "type Items interface {",
4768
+ " Len() int",
4769
+ " Get(i int) Item",
4770
+ "}",
4771
+ "func Lookup(items Items, name string) int {",
4772
+ " return sort.Search(items.Len(), func(i int) bool {",
4773
+ " item := items.Get(i)",
4774
+ " if item == nil {",
4775
+ " return true",
4776
+ " }",
4777
+ " return item.Name() >= name",
4778
+ " })",
4779
+ "}",
4780
+ "",
4781
+ }, "\n"),
4782
+ })
4783
+ outputDir := filepath.Join(t.TempDir(), "output")
4784
+ comp, err := NewCompiler(&Config{Dir: moduleDir, OutputPath: outputDir}, nil, nil)
4785
+ if err != nil {
4786
+ t.Fatal(err.Error())
4787
+ }
4788
+
4789
+ if _, err := comp.CompilePackages(context.Background(), "."); err != nil {
4790
+ t.Fatal(err.Error())
4791
+ }
4792
+ content, err := os.ReadFile(filepath.Join(outputDir, "@goscript", "example.test", "sync-callback", "main.gs.ts"))
4793
+ if err != nil {
4794
+ t.Fatal(err.Error())
4795
+ }
4796
+ text := string(content)
4797
+ if strings.Contains(text, "$.functionValue(async (i: number)") {
4798
+ t.Fatalf("sync override callback lowered as async:\n%s", text)
4799
+ }
4800
+ if !strings.Contains(text, "$.functionValue((i: number): boolean => {") {
4801
+ t.Fatalf("sync override callback was not lowered as a synchronous function value:\n%s", text)
4802
+ }
4803
+ }
4804
+
4758
4805
  func TestCompilePackagesQualifiesImportedTypesInSignaturesAndZeroValues(t *testing.T) {
4759
4806
  moduleDir := writePackageGraphFixture(t, map[string]string{
4760
4807
  "go.mod": "module example.test/qualified\n\ngo 1.25.3\n",
@@ -0,0 +1,41 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ import * as io from '@goscript/io/index.js';
3
+ export declare const NoCompression = 0;
4
+ export declare const BestSpeed = 1;
5
+ export declare const BestCompression = 9;
6
+ export declare const DefaultCompression = -1;
7
+ export declare const HuffmanOnly = -2;
8
+ export declare let ErrChecksum: $.GoError;
9
+ export declare let ErrHeader: $.GoError;
10
+ export declare function __goscript_set_ErrChecksum(value: $.GoError): void;
11
+ export declare function __goscript_set_ErrHeader(value: $.GoError): void;
12
+ export declare class Header {
13
+ Comment: string;
14
+ Extra: $.Bytes;
15
+ ModTime: any;
16
+ Name: string;
17
+ OS: number;
18
+ }
19
+ export declare class Reader {
20
+ private data;
21
+ private offset;
22
+ private pending;
23
+ constructor(r?: io.Reader | null);
24
+ Read(p: $.Bytes): Promise<[number, $.GoError]>;
25
+ Close(): $.GoError;
26
+ Reset(r: io.Reader | null): $.GoError;
27
+ }
28
+ export declare class Writer {
29
+ private w;
30
+ private level;
31
+ private chunks;
32
+ private closed;
33
+ constructor(w: io.Writer | null, level?: number);
34
+ Write(p: $.Bytes): [number, $.GoError];
35
+ Close(): Promise<$.GoError>;
36
+ Flush(): $.GoError;
37
+ Reset(w: io.Writer | null): void;
38
+ }
39
+ export declare function NewReader(r: io.Reader | null): [io.ReadCloser | null, $.GoError];
40
+ export declare function NewWriter(w: io.Writer | null): Writer;
41
+ export declare function NewWriterLevel(w: io.Writer | null, level: number): [Writer | null, $.GoError];
@@ -0,0 +1,235 @@
1
+ import * as $ from '@goscript/builtin/index.js';
2
+ import * as errors from '@goscript/errors/index.js';
3
+ import * as io from '@goscript/io/index.js';
4
+ export const NoCompression = 0;
5
+ export const BestSpeed = 1;
6
+ export const BestCompression = 9;
7
+ export const DefaultCompression = -1;
8
+ export const HuffmanOnly = -2;
9
+ export let ErrChecksum = errors.New('gzip: invalid checksum');
10
+ export let ErrHeader = errors.New('gzip: invalid header');
11
+ export function __goscript_set_ErrChecksum(value) {
12
+ ErrChecksum = value;
13
+ }
14
+ export function __goscript_set_ErrHeader(value) {
15
+ ErrHeader = value;
16
+ }
17
+ export class Header {
18
+ Comment = '';
19
+ Extra = null;
20
+ ModTime = null;
21
+ Name = '';
22
+ OS = 255;
23
+ }
24
+ export class Reader {
25
+ data = new Uint8Array(0);
26
+ offset = 0;
27
+ pending = null;
28
+ constructor(r) {
29
+ if (r != null) {
30
+ this.Reset(r);
31
+ }
32
+ }
33
+ async Read(p) {
34
+ const pending = this.pending;
35
+ if (pending != null) {
36
+ this.pending = null;
37
+ const result = await pending;
38
+ if (result.err != null) {
39
+ return [0, result.err];
40
+ }
41
+ this.data = result.data ?? new Uint8Array(0);
42
+ this.offset = 0;
43
+ }
44
+ if (this.offset >= this.data.length) {
45
+ return [0, io.EOF];
46
+ }
47
+ const out = $.bytesToUint8Array(p);
48
+ const n = Math.min(out.length, this.data.length - this.offset);
49
+ out.set(this.data.subarray(this.offset, this.offset + n));
50
+ this.offset += n;
51
+ return [n, null];
52
+ }
53
+ Close() {
54
+ return null;
55
+ }
56
+ Reset(r) {
57
+ if (r == null) {
58
+ return errors.New('gzip: nil reader');
59
+ }
60
+ const result = readGunzipped(r);
61
+ this.data = new Uint8Array(0);
62
+ this.offset = 0;
63
+ if (result instanceof Promise) {
64
+ this.pending = result;
65
+ return null;
66
+ }
67
+ this.pending = null;
68
+ if (result.err != null) {
69
+ return result.err;
70
+ }
71
+ this.data = result.data ?? new Uint8Array(0);
72
+ return null;
73
+ }
74
+ }
75
+ export class Writer {
76
+ w;
77
+ level;
78
+ chunks = [];
79
+ closed = false;
80
+ constructor(w, level = DefaultCompression) {
81
+ this.w = w;
82
+ this.level = level;
83
+ }
84
+ Write(p) {
85
+ if (this.closed) {
86
+ return [0, errors.New('gzip: writer closed')];
87
+ }
88
+ const data = $.bytesToUint8Array(p);
89
+ this.chunks.push(data.slice());
90
+ return [data.length, null];
91
+ }
92
+ async Close() {
93
+ if (this.closed) {
94
+ return null;
95
+ }
96
+ this.closed = true;
97
+ if (this.w == null) {
98
+ return errors.New('gzip: nil writer');
99
+ }
100
+ const compressed = await gzipBytes(concat(this.chunks), this.level);
101
+ const writer = $.pointerValue(this.w);
102
+ const [, err] = await writer.Write(compressed);
103
+ return err;
104
+ }
105
+ Flush() {
106
+ return null;
107
+ }
108
+ Reset(w) {
109
+ this.w = w;
110
+ this.chunks = [];
111
+ this.closed = false;
112
+ }
113
+ }
114
+ export function NewReader(r) {
115
+ const reader = new Reader();
116
+ const err = reader.Reset(r);
117
+ if (err != null) {
118
+ return [null, err];
119
+ }
120
+ return [reader, null];
121
+ }
122
+ export function NewWriter(w) {
123
+ return new Writer(w);
124
+ }
125
+ export function NewWriterLevel(w, level) {
126
+ if (level < HuffmanOnly || level > BestCompression) {
127
+ return [null, errors.New(`gzip: invalid compression level: ${level}`)];
128
+ }
129
+ return [new Writer(w, level), null];
130
+ }
131
+ async function gzipBytes(data, level) {
132
+ const runtime = nodeCompressionRuntime();
133
+ if (runtime?.gzipSync != null) {
134
+ return runtime.gzipSync(data, { level });
135
+ }
136
+ const CompressionStreamCtor = globalThis.CompressionStream;
137
+ if (typeof CompressionStreamCtor !== 'function') {
138
+ throw new Error('compress/gzip: CompressionStream unavailable');
139
+ }
140
+ return streamTransform(data, new CompressionStreamCtor('gzip'));
141
+ }
142
+ function gunzipBytes(data) {
143
+ const runtime = nodeCompressionRuntime();
144
+ if (runtime?.gunzipSync != null) {
145
+ return runtime.gunzipSync(data);
146
+ }
147
+ const DecompressionStreamCtor = globalThis.DecompressionStream;
148
+ if (typeof DecompressionStreamCtor !== 'function') {
149
+ throw new Error('compress/gzip: DecompressionStream unavailable');
150
+ }
151
+ return streamTransform(data, new DecompressionStreamCtor('gzip'));
152
+ }
153
+ async function streamTransform(data, stream) {
154
+ const body = new ArrayBuffer(data.length);
155
+ new Uint8Array(body).set(data);
156
+ const response = new Response(new Blob([body]).stream().pipeThrough(stream));
157
+ return new Uint8Array(await response.arrayBuffer());
158
+ }
159
+ function readGunzipped(r) {
160
+ const chunks = [];
161
+ const buf = $.makeSlice(1, undefined, 'byte');
162
+ while (true) {
163
+ const read = r.Read(buf);
164
+ if (read instanceof Promise) {
165
+ return readGunzippedAsync(read, r, buf, chunks);
166
+ }
167
+ const [n, err] = read;
168
+ recordChunk(chunks, buf, n);
169
+ if (err != null) {
170
+ if (err === io.EOF) {
171
+ return inflateRecorded(chunks);
172
+ }
173
+ return { data: null, err };
174
+ }
175
+ }
176
+ }
177
+ async function readGunzippedAsync(read, r, buf, chunks) {
178
+ while (true) {
179
+ const [n, err] = await read;
180
+ recordChunk(chunks, buf, n);
181
+ if (err != null) {
182
+ if (err === io.EOF) {
183
+ return inflateRecorded(chunks);
184
+ }
185
+ return { data: null, err };
186
+ }
187
+ read = r.Read(buf);
188
+ }
189
+ }
190
+ function recordChunk(chunks, buf, n) {
191
+ if (n > 0) {
192
+ chunks.push($.bytesToUint8Array($.goSlice(buf, 0, n)).slice());
193
+ }
194
+ }
195
+ function inflateRecorded(chunks) {
196
+ try {
197
+ const inflated = gunzipBytes(concat(chunks));
198
+ if (inflated instanceof Promise) {
199
+ return inflated
200
+ .then((data) => ({ data, err: null }))
201
+ .catch(() => ({ data: null, err: ErrHeader }));
202
+ }
203
+ return { data: inflated, err: null };
204
+ }
205
+ catch {
206
+ return { data: null, err: ErrHeader };
207
+ }
208
+ }
209
+ function concat(chunks) {
210
+ let length = 0;
211
+ for (const chunk of chunks) {
212
+ length += chunk.length;
213
+ }
214
+ const out = new Uint8Array(length);
215
+ let offset = 0;
216
+ for (const chunk of chunks) {
217
+ out.set(chunk, offset);
218
+ offset += chunk.length;
219
+ }
220
+ return out;
221
+ }
222
+ function nodeCompressionRuntime() {
223
+ const processObj = globalThis.process;
224
+ if (processObj && typeof processObj.getBuiltinModule === 'function') {
225
+ const mod = processObj.getBuiltinModule('zlib');
226
+ if (mod && typeof mod.gzipSync === 'function') {
227
+ return {
228
+ gzipSync: (data, opts) => new Uint8Array(mod.gzipSync(data, opts)),
229
+ gunzipSync: (data) => new Uint8Array(mod.gunzipSync(data)),
230
+ };
231
+ }
232
+ }
233
+ return null;
234
+ }
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../gs/compress/gzip/index.ts"],"names":[],"mappings":"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"}
@@ -71,7 +71,7 @@ export async function globWithLimit(fsys, pattern, depth) {
71
71
  }
72
72
  if (!hasMeta(pattern)) {
73
73
  {
74
- const [, statErr] = Stat(fsys, pattern);
74
+ const [, statErr] = await Stat(fsys, pattern);
75
75
  if (statErr != null) {
76
76
  return [null, null];
77
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,4 @@ export type ReadLinkFS = null | ({
5
5
  Lstat(name: string): [FileInfo, $.GoError];
6
6
  } & FS);
7
7
  export declare function ReadLink(fsys: FS, name: string): [string, $.GoError];
8
- export declare function Lstat(fsys: FS, name: string): [FileInfo, $.GoError];
8
+ export declare function Lstat(fsys: FS, name: string): Promise<[FileInfo, $.GoError]>;