goscript 0.0.76 → 0.0.78

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 (89) hide show
  1. package/compiler/analysis.go +100 -33
  2. package/compiler/analysis_test.go +2 -7
  3. package/compiler/code-writer.go +2 -2
  4. package/compiler/compiler.go +4 -4
  5. package/compiler/composite-lit.go +4 -6
  6. package/compiler/constraint.go +2 -4
  7. package/compiler/decl.go +34 -0
  8. package/compiler/expr-call-async.go +4 -0
  9. package/compiler/expr-call-helpers.go +98 -8
  10. package/compiler/expr-call-make.go +4 -4
  11. package/compiler/expr-call.go +3 -0
  12. package/compiler/expr-type.go +42 -0
  13. package/compiler/gs_dependencies_test.go +3 -14
  14. package/compiler/index.ts +20 -5
  15. package/compiler/protobuf.go +21 -21
  16. package/compiler/spec-struct.go +195 -30
  17. package/compiler/spec.go +32 -3
  18. package/compiler/stmt-assign.go +2 -2
  19. package/compiler/type-info.go +20 -3
  20. package/compiler/type-utils.go +2 -4
  21. package/compiler/type.go +3 -4
  22. package/dist/compiler/index.js +13 -4
  23. package/dist/compiler/index.js.map +1 -1
  24. package/dist/gs/builtin/slice.js +2 -3
  25. package/dist/gs/builtin/slice.js.map +1 -1
  26. package/dist/gs/builtin/type.d.ts +1 -0
  27. package/dist/gs/builtin/type.js +8 -14
  28. package/dist/gs/builtin/type.js.map +1 -1
  29. package/dist/gs/bytes/buffer.gs.d.ts +1 -0
  30. package/dist/gs/bytes/buffer.gs.js +20 -0
  31. package/dist/gs/bytes/buffer.gs.js.map +1 -1
  32. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +5 -0
  33. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +10 -0
  34. package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -0
  35. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.d.ts +50 -0
  36. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js +221 -0
  37. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -0
  38. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.d.ts +1 -0
  39. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js +2 -0
  40. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js.map +1 -0
  41. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.d.ts +1 -0
  42. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js +2 -0
  43. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js.map +1 -0
  44. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.d.ts +56 -0
  45. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js +17 -0
  46. package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js.map +1 -0
  47. package/dist/gs/io/fs/format.js +2 -6
  48. package/dist/gs/io/fs/format.js.map +1 -1
  49. package/dist/gs/io/fs/glob.js +18 -23
  50. package/dist/gs/io/fs/glob.js.map +1 -1
  51. package/dist/gs/path/match.js +9 -22
  52. package/dist/gs/path/match.js.map +1 -1
  53. package/dist/gs/reflect/index.d.ts +1 -1
  54. package/dist/gs/reflect/index.js +1 -1
  55. package/dist/gs/reflect/index.js.map +1 -1
  56. package/dist/gs/reflect/type.d.ts +1 -0
  57. package/dist/gs/reflect/type.js +52 -23
  58. package/dist/gs/reflect/type.js.map +1 -1
  59. package/dist/gs/strings/iter.js +1 -1
  60. package/dist/gs/strings/iter.js.map +1 -1
  61. package/dist/gs/strings/reader.js +1 -1
  62. package/dist/gs/strings/reader.js.map +1 -1
  63. package/dist/gs/strings/replace.js +9 -20
  64. package/dist/gs/strings/replace.js.map +1 -1
  65. package/dist/gs/time/time.js +2 -2
  66. package/dist/gs/time/time.js.map +1 -1
  67. package/go.mod +1 -1
  68. package/go.sum +2 -2
  69. package/gs/builtin/slice.ts +2 -2
  70. package/gs/builtin/type.ts +14 -14
  71. package/gs/bytes/buffer.gs.ts +21 -1
  72. package/gs/fmt/fmt.test.ts +1 -1
  73. package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +14 -0
  74. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts +238 -0
  75. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.ts +1 -0
  76. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/meta.json +12 -0
  77. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.ts +1 -0
  78. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/meta.json +8 -0
  79. package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.ts +94 -0
  80. package/gs/io/fs/format.ts +2 -5
  81. package/gs/io/fs/glob.ts +18 -21
  82. package/gs/path/match.ts +9 -22
  83. package/gs/reflect/index.ts +1 -0
  84. package/gs/reflect/type.ts +62 -25
  85. package/gs/strings/iter.ts +1 -1
  86. package/gs/strings/reader.ts +1 -1
  87. package/gs/strings/replace.ts +13 -18
  88. package/gs/time/time.ts +2 -2
  89. package/package.json +18 -15
@@ -165,7 +165,7 @@ export class Reader {
165
165
  public Seek(offset: number, whence: number): [number, $.GoError] {
166
166
  const r = this
167
167
  r!.prevRune = -1
168
- let abs: number = 0
168
+ let abs: number
169
169
  switch (whence) {
170
170
  case io.SeekStart:
171
171
  abs = offset
@@ -395,15 +395,13 @@ class trieNode {
395
395
  // First byte differs, start a new lookup table here. Looking up
396
396
  // what is currently t.prefix[0] will lead to prefixNode, and
397
397
  // looking up key[0] will lead to keyNode.
398
- let prefixNode: trieNode | null = null
399
- if ($.len(t!.prefix) == 1) {
400
- prefixNode = t!.next
401
- } else {
402
- prefixNode = new trieNode({
403
- next: t!.next,
404
- prefix: $.sliceString(t!.prefix, 1, undefined),
405
- })
406
- }
398
+ const prefixNode =
399
+ $.len(t!.prefix) == 1
400
+ ? t!.next
401
+ : new trieNode({
402
+ next: t!.next,
403
+ prefix: $.sliceString(t!.prefix, 1, undefined),
404
+ })
407
405
  let keyNode = new trieNode()
408
406
  t!.table = $.makeSlice<trieNode | null>(r!.tableSize)
409
407
  t!.table![r!.mapping![$.indexString(t!.prefix, 0)]] = prefixNode
@@ -578,9 +576,7 @@ class genericReplacer {
578
576
  const r = this
579
577
  let sw = getStringWriter(w)
580
578
  let last: number = 0
581
- let wn: number = 0
582
579
  let n: number = 0
583
- let err: $.GoError | null = null
584
580
  let prevMatchEmpty: boolean = false
585
581
  for (let i = 0; i <= $.len(s); ) {
586
582
  // Fast path: s[i] is not a prefix of any pattern.
@@ -599,7 +595,7 @@ class genericReplacer {
599
595
  )
600
596
  prevMatchEmpty = match && keylen == 0
601
597
  if (match) {
602
- ;[wn, err] = sw!.WriteString($.sliceString(s, last, i))
598
+ let [wn, err] = sw!.WriteString($.sliceString(s, last, i))
603
599
  n += wn
604
600
  if (err != null) {
605
601
  return [n, err]
@@ -616,10 +612,11 @@ class genericReplacer {
616
612
  i++
617
613
  }
618
614
  if (last != $.len(s)) {
619
- ;[wn, err] = sw!.WriteString($.sliceString(s, last, undefined))
615
+ const [wn, err] = sw!.WriteString($.sliceString(s, last, undefined))
620
616
  n += wn
617
+ return [n, err]
621
618
  }
622
- return [n, err]
619
+ return [n, null]
623
620
  }
624
621
  }
625
622
 
@@ -761,15 +758,13 @@ class singleStringReplacer {
761
758
  const r = this
762
759
  let sw = getStringWriter(w)
763
760
  let i: number = 0
764
- let wn: number = 0
765
761
  let n: number = 0
766
- let err: $.GoError | null = null
767
762
  for (;;) {
768
763
  let match = r!.finder!.next($.sliceString(s, i, undefined))
769
764
  if (match == -1) {
770
765
  break
771
766
  }
772
- ;[wn, err] = sw!.WriteString($.sliceString(s, i, i + match))
767
+ let [wn, err] = sw!.WriteString($.sliceString(s, i, i + match))
773
768
  n += wn
774
769
  if (err != null) {
775
770
  return [n, err]
@@ -781,7 +776,7 @@ class singleStringReplacer {
781
776
  }
782
777
  i += match + $.len(r!.finder!.pattern)
783
778
  }
784
- ;[wn, err] = sw!.WriteString($.sliceString(s, i, undefined))
779
+ const [wn, err] = sw!.WriteString($.sliceString(s, i, undefined))
785
780
  n += wn
786
781
  return [n, err]
787
782
  }
package/gs/time/time.ts CHANGED
@@ -215,9 +215,9 @@ export class Time {
215
215
  const ampmLower = ampmUpper.toLowerCase()
216
216
 
217
217
  // Timezone offset calculation - use the location's offset if available
218
- let tzOffsetSeconds = 0
218
+ let tzOffsetSeconds: number
219
219
  let tzName = this._location.name
220
- let isUTC = false
220
+ let isUTC: boolean
221
221
 
222
222
  if (this._location.offsetSeconds !== undefined) {
223
223
  // Use the fixed offset from the location
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "goscript",
3
3
  "description": "Go to TypeScript transpiler",
4
- "version": "0.0.76",
4
+ "version": "0.0.78",
5
5
  "author": {
6
6
  "name": "Aperture Robotics LLC.",
7
7
  "email": "support@aperture.us",
@@ -92,22 +92,25 @@
92
92
  "./{src,builtin,example}/**/(*.ts|*.tsx|*.html|*.css|*.scss)": "prettier --config .prettierrc.yaml --write"
93
93
  },
94
94
  "devDependencies": {
95
- "@aptre/protobuf-es-lite": "^1.0.0",
95
+ "@aptre/protobuf-es-lite": "^1.0.2",
96
96
  "@eslint/js": "^10.0.0",
97
- "@types/node": "^25.0.3",
98
- "@typescript-eslint/eslint-plugin": "^8.50.1",
99
- "@typescript-eslint/parser": "^8.50.1",
100
- "@typescript/native-preview": "^7.0.0-dev.20251226.1",
101
- "@vitest/browser": "^4.0.16",
102
- "@vitest/browser-playwright": "^4.0.16",
103
- "@vitest/browser-preview": "^4.0.16",
104
- "eslint": "^10.0.0",
97
+ "@types/node": "^25.5.2",
98
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
99
+ "@typescript-eslint/parser": "^8.58.0",
100
+ "@typescript/native-preview": "^7.0.0-dev.20260404.1",
101
+ "@vitest/browser": "^4.1.2",
102
+ "@vitest/browser-playwright": "^4.1.2",
103
+ "@vitest/browser-preview": "^4.1.2",
104
+ "eslint": "^10.2.0",
105
105
  "eslint-config-prettier": "^10.0.2",
106
106
  "husky": "^9.1.7",
107
- "lint-staged": "^16.2.7",
108
- "prettier": "^3.7.4",
109
- "typescript": "^5.8.3",
110
- "typescript-eslint": "^8.50.1",
111
- "vitest": "^4.0.16"
107
+ "lint-staged": "^16.4.0",
108
+ "prettier": "^3.8.1",
109
+ "typescript": "^6.0.0",
110
+ "typescript-eslint": "^8.58.0",
111
+ "vitest": "^4.1.2"
112
+ },
113
+ "dependencies": {
114
+ "globals": "^17.4.0"
112
115
  }
113
116
  }