typenative 0.0.21 → 0.1.1
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/.github/workflows/ci.yml +29 -0
- package/.github/workflows/npm-publish-github-packages.yml +3 -3
- package/CHANGELOG.md +81 -0
- package/CONTRIBUTION.md +130 -0
- package/README.md +258 -183
- package/bin/index.js +2 -3
- package/bin/parse-node.js +2 -2
- package/bin/transpiler.js +6914 -1686
- package/conformance.md +651 -0
- package/package.json +10 -41
- package/tsparser/main.go +2 -2
- package/tsparser/tsparser.exe +2 -2
- package/TODO.md +0 -34
package/conformance.md
ADDED
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
# Conformance
|
|
2
|
+
|
|
3
|
+
Every TypeScript language feature and standard-library API TypeNative aims to
|
|
4
|
+
support, split by area. Each ✅ row links to the [conformance/](conformance/)
|
|
5
|
+
probe that proves it transpiles correctly (`npm run conformance`, filter with an
|
|
6
|
+
optional substring: `node scripts/conformance.mjs <filter>`; `--native` runs the
|
|
7
|
+
self-hosted binary). Each ❌ row is a known gap with no passing probe yet.
|
|
8
|
+
|
|
9
|
+
## Basic types
|
|
10
|
+
|
|
11
|
+
| Feature | Status | Probe | Notes |
|
|
12
|
+
| ---------------------------------------------- | :----: | -------------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
|
13
|
+
| `number` | ✅ | [syntax-arithmetic.ts](conformance/syntax-arithmetic.ts) | Transpiled to `float64` |
|
|
14
|
+
| `boolean` | ✅ | [syntax-variables.ts](conformance/syntax-variables.ts) | Transpiled to `bool` |
|
|
15
|
+
| `string` | ✅ | [syntax-variables.ts](conformance/syntax-variables.ts) | |
|
|
16
|
+
| `null` | ✅ | [syntax-null-undefined.ts](conformance/syntax-null-undefined.ts) | |
|
|
17
|
+
| `undefined` | ✅ | [syntax-null-undefined.ts](conformance/syntax-null-undefined.ts) | |
|
|
18
|
+
| `any` / `unknown` | ✅ | [syntax-selfhost-context.ts](conformance/syntax-selfhost-context.ts) | Dynamic values handled at runtime (JSON-like objects, arrays, primitives) |
|
|
19
|
+
| Nullable types (`T \| null`, `T \| undefined`) | ✅ | [syntax-null-undefined.ts](conformance/syntax-null-undefined.ts) | Transpiled to Go pointer types |
|
|
20
|
+
| `bigint` | ✅ | [syntax-bigint.ts](conformance/syntax-bigint.ts) | `2n` literals → `*big.Int`; `**` → `.Exp`, comparisons via `.Cmp` |
|
|
21
|
+
| `symbol` | ✅ | [syntax-symbols.ts](conformance/syntax-symbols.ts) | `Symbol()` → unique `*TnSymbol` pointers, usable as record keys |
|
|
22
|
+
| `object` type | ❌ | — | No probe yet |
|
|
23
|
+
| `void` / `never` | ❌ | — | No probe yet |
|
|
24
|
+
|
|
25
|
+
## Variables & destructuring
|
|
26
|
+
|
|
27
|
+
| Feature | Status | Probe | Notes |
|
|
28
|
+
| --------------------------------------- | :----: | -------------------------------------------------------------------------------- | --------------------------------------------------- |
|
|
29
|
+
| Variable declarations (`let` / `const`) | ✅ | [syntax-variables.ts](conformance/syntax-variables.ts) | |
|
|
30
|
+
| Array destructuring | ✅ | [syntax-destructuring.ts](conformance/syntax-destructuring.ts) | Parenthesized initializers; elision and element/property reads |
|
|
31
|
+
| Object destructuring | ✅ | [syntax-destructuring.ts](conformance/syntax-destructuring.ts) | Parenthesized initializers; elision and element/property reads |
|
|
32
|
+
| Destructuring with defaults | ✅ | [syntax-destructuring-defaults.ts](conformance/syntax-destructuring-defaults.ts) | Missing elements/properties take defaults (nil- and bounds-checked) |
|
|
33
|
+
| Destructured parameters | ✅ | [syntax-destructuring-params.ts](conformance/syntax-destructuring-params.ts) | `function f({ a, b }: T)`, `([x, y]: number[])` |
|
|
34
|
+
| Object shorthand | ✅ | [syntax-destructuring.ts](conformance/syntax-destructuring.ts) | Parenthesized initializers; elision and element/property reads |
|
|
35
|
+
| Object spread | ✅ | [syntax-object-spread.ts](conformance/syntax-object-spread.ts) | Spread sources copied field-by-field into the new struct |
|
|
36
|
+
| Array spread | ✅ | [syntax-array-spread.ts](conformance/syntax-array-spread.ts) | `[...arr]`, `fn(...args)` |
|
|
37
|
+
| `delete` operator | ✅ | [syntax-delete.ts](conformance/syntax-delete.ts) | `delete o.key` on records |
|
|
38
|
+
| Computed keys | ✅ | [syntax-computed-keys.ts](conformance/syntax-computed-keys.ts) | Computed keys become map entries; `o.name` reads lower to `.Get("name")` |
|
|
39
|
+
| Records / dictionaries | ✅ | [syntax-in-operator.ts](conformance/syntax-in-operator.ts) | `Record<K, V>` and objects indexed by key → Go maps |
|
|
40
|
+
| Tuples | ✅ | [syntax-tuples.ts](conformance/syntax-tuples.ts) | `[string, number]` fixed-length arrays |
|
|
41
|
+
| Top-level / module-scope variables | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Functions see main-file top-level variables |
|
|
42
|
+
| Numeric separators | ✅ | [syntax-numeric-separators.ts](conformance/syntax-numeric-separators.ts) | `1_000_000` |
|
|
43
|
+
| Hex / octal / binary literals | ❌ | — | `0xFF`, `0o17`, `0b1010`; no probe yet |
|
|
44
|
+
| `var` declarations (hoisting) | ❌ | — | No probe yet |
|
|
45
|
+
| `using` / `await using` declarations | ❌ | — | Explicit resource management; no probe yet |
|
|
46
|
+
|
|
47
|
+
## Operators
|
|
48
|
+
|
|
49
|
+
| Feature | Status | Probe | Notes |
|
|
50
|
+
| ---------------------------- | :----: | ---------------------------------------------------------------------------- | --------------------------------------------------- |
|
|
51
|
+
| Arithmetic operators | ✅ | [syntax-arithmetic.ts](conformance/syntax-arithmetic.ts) | `+`, `-`, etc.; `%`/`%=` via `math.Mod` |
|
|
52
|
+
| Exponent operator | ✅ | [syntax-exponent.ts](conformance/syntax-exponent.ts) | `2 ** 10` |
|
|
53
|
+
| Bitwise operators | ✅ | [syntax-bitwise.ts](conformance/syntax-bitwise.ts) | `&`, `\|`, `^`, `<<`, `>>` |
|
|
54
|
+
| Unsigned shift | ✅ | [syntax-unsigned-shift.ts](conformance/syntax-unsigned-shift.ts) | `>>>` |
|
|
55
|
+
| Comparison operators | ✅ | [syntax-variables.ts](conformance/syntax-variables.ts) | `==`, `!=`, `===`, `!==`, etc. |
|
|
56
|
+
| Logical operators | ✅ | [syntax-variables.ts](conformance/syntax-variables.ts) | `&&`, `\|\|` |
|
|
57
|
+
| Increment / decrement | ✅ | [syntax-increment-expression.ts](conformance/syntax-increment-expression.ts) | `++`, `--`, incl. as expressions |
|
|
58
|
+
| Non-null assertion (`!`) | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Stripped during transpilation |
|
|
59
|
+
| Ternary expressions | ✅ | [syntax-ternary.ts](conformance/syntax-ternary.ts) | `condition ? a : b` |
|
|
60
|
+
| Nullish coalescing | ✅ | [syntax-nullish.ts](conformance/syntax-nullish.ts) | `??` operator, incl. chains |
|
|
61
|
+
| Optional chaining | ✅ | [syntax-optional-chaining.ts](conformance/syntax-optional-chaining.ts) | `obj?.prop`, `arr?.[i]`, chains across calls |
|
|
62
|
+
| Nullish / logical assignment | ✅ | [syntax-logical-assignment.ts](conformance/syntax-logical-assignment.ts) | `??=`, `\|\|=`, `&&=` |
|
|
63
|
+
| `in` operator | ✅ | [syntax-in-operator.ts](conformance/syntax-in-operator.ts) | `"key" in obj` on records |
|
|
64
|
+
| `typeof` | ✅ | [syntax-typeof.ts](conformance/syntax-typeof.ts) | `"key" in obj`, `typeof x === "string"` |
|
|
65
|
+
| `instanceof` | ✅ | [syntax-instanceof.ts](conformance/syntax-instanceof.ts) | Class instance checks |
|
|
66
|
+
| JS truthiness | ✅ | [syntax-optional-params.ts](conformance/syntax-optional-params.ts) | `if (str)`, `!count`, `a \|\| fallback` on any type |
|
|
67
|
+
| Loose equality (`==`) | ✅ | [semantics-loose-equality.ts](conformance/semantics-loose-equality.ts) | `bool`/`number`/`string` mixtures coerce like JS (`TnNumber`/`TnParseFloat`) |
|
|
68
|
+
| Optional call (`fn?.()`) | ❌ | — | No probe yet |
|
|
69
|
+
| Comma operator | ❌ | — | No probe yet |
|
|
70
|
+
| `void` operator | ❌ | — | No probe yet |
|
|
71
|
+
| `new.target` | ❌ | — | No probe yet |
|
|
72
|
+
|
|
73
|
+
## Control flow
|
|
74
|
+
|
|
75
|
+
| Feature | Status | Probe | Notes |
|
|
76
|
+
| ----------------------------------- | :----: | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
77
|
+
| If / else statements | ✅ | [syntax-if-switch.ts](conformance/syntax-if-switch.ts) | Incl. unbraced bodies and else-if chains |
|
|
78
|
+
| Switch statements | ✅ | [syntax-switch.ts](conformance/syntax-switch.ts) | Case and default statements |
|
|
79
|
+
| Switch fallthrough | ✅ | [syntax-switch-fallthrough.ts](conformance/syntax-switch-fallthrough.ts) | Explicit fallthrough between cases |
|
|
80
|
+
| `for` loops | ✅ | [syntax-loops.ts](conformance/syntax-loops.ts) | Standard `for` loops, incl. unbraced bodies |
|
|
81
|
+
| `continue` | ✅ | [syntax-loops.ts](conformance/syntax-loops.ts) | `continue` in all loop kinds |
|
|
82
|
+
| `break` | ✅ | [syntax-if-switch.ts](conformance/syntax-if-switch.ts), [syntax-do-while.ts](conformance/syntax-do-while.ts) | In switch cases and loops |
|
|
83
|
+
| `for...of` loops | ✅ | [syntax-loops.ts](conformance/syntax-loops.ts), [syntax-for-of-string.ts](conformance/syntax-for-of-string.ts) | Arrays, Maps, Sets, strings, tuples; `Object.entries()` unwrapping |
|
|
84
|
+
| `for...in` loops | ✅ | [syntax-for-in.ts](conformance/syntax-for-in.ts) | Key range over records/maps |
|
|
85
|
+
| `for await...of` | ❌ | — | Requires async iteration (see [Async & timing](#async--timing)) |
|
|
86
|
+
| `while` loops | ✅ | [syntax-loops.ts](conformance/syntax-loops.ts) | Transpiled to Go's `for` loops; assignment in condition |
|
|
87
|
+
| `do...while` loops | ✅ | [syntax-do-while.ts](conformance/syntax-do-while.ts) | Implemented with conditional break |
|
|
88
|
+
| Labeled loops | ✅ | [syntax-labeled-loops.ts](conformance/syntax-labeled-loops.ts) | `LabeledStatement` → Go labels; labeled `continue`/`break` |
|
|
89
|
+
| `try` / `catch` / `finally` | ✅ | [syntax-try-catch-finally.ts](conformance/syntax-try-catch-finally.ts) | `throw` → `panic`; catch/finally via `defer`/`recover` |
|
|
90
|
+
| Optional catch binding (`catch {}`) | ✅ | [syntax-try-catch-finally.ts](conformance/syntax-try-catch-finally.ts) | |
|
|
91
|
+
| Custom error classes | ✅ | [syntax-custom-errors.ts](conformance/syntax-custom-errors.ts) | `extends Error` → embedded `TnError`; constructors take the message |
|
|
92
|
+
| `Error.message` | ✅ | [syntax-error-message.ts](conformance/syntax-error-message.ts) | `throw new Error` panics with a `*TnError`; `.message` on caught values |
|
|
93
|
+
| Narrowing | ✅ | [syntax-typeof.ts](conformance/syntax-typeof.ts) | `T \| undefined` narrowed after `if (x)`, `x !== undefined`, early returns |
|
|
94
|
+
|
|
95
|
+
## Functions
|
|
96
|
+
|
|
97
|
+
| Feature | Status | Probe | Notes |
|
|
98
|
+
| --------------------------------------------- | :----: | ---------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
99
|
+
| Function declarations | ✅ | [syntax-functions.ts](conformance/syntax-functions.ts) | Transpiled to Go functions |
|
|
100
|
+
| Arrow functions | ✅ | [syntax-arrow-functions.ts](conformance/syntax-arrow-functions.ts) | Transpiled to anonymous functions |
|
|
101
|
+
| IIFEs | ✅ | [syntax-iife.ts](conformance/syntax-iife.ts) | `(() => { ... })()` and `(function name() { ... })()` |
|
|
102
|
+
| Closures over mutable state | ✅ | [syntax-closures.ts](conformance/syntax-closures.ts) | Functions capturing and mutating outer variables; per-iteration `let` |
|
|
103
|
+
| Function types | ✅ | [syntax-closures.ts](conformance/syntax-closures.ts) | `() => number`, `(x: number) => string` as type annotations |
|
|
104
|
+
| Default parameter values | ✅ | [syntax-default-params.ts](conformance/syntax-default-params.ts) | `function(x = defaultValue)`, incl. constructors, methods, arrows |
|
|
105
|
+
| Rest parameters | ✅ | [syntax-rest-params.ts](conformance/syntax-rest-params.ts) | `function(...args: T[])` → Go variadic |
|
|
106
|
+
| Spread in calls | ✅ | [syntax-spread-call.ts](conformance/syntax-spread-call.ts) | `f(...args)` incl. tuples |
|
|
107
|
+
| Optional parameters | ✅ | [syntax-optional-params.ts](conformance/syntax-optional-params.ts) | `function f(x?: string)` |
|
|
108
|
+
| Destructured parameters | ✅ | [syntax-destructuring-params.ts](conformance/syntax-destructuring-params.ts) | `function f({ a, b }: T)`, `([x, y]: number[])` |
|
|
109
|
+
| Contextual object-literal arguments | ✅ | [syntax-contextual-arguments.ts](conformance/syntax-contextual-arguments.ts) | Struct type inferred from parameter / return type |
|
|
110
|
+
| Recursion | ✅ | [syntax-recursion.ts](conformance/syntax-recursion.ts) | Direct self-recursion |
|
|
111
|
+
| Generators (`function*` / `yield` / `yield*`) | ✅ | [syntax-generators.ts](conformance/syntax-generators.ts) | `function*` runs in a goroutine sending yields over a channel; `for...of` ranges it |
|
|
112
|
+
| Async generators (`async function*`) | ❌ | — | Depends on generators and async |
|
|
113
|
+
| Custom iterators (`Symbol.iterator`) | ✅ | [syntax-custom-iterators.ts](conformance/syntax-custom-iterators.ts) | `*[Symbol.iterator]()` → a `Symbol_iterator()` channel method |
|
|
114
|
+
| `as const` assertions | ✅ | [syntax-as-const.ts](conformance/syntax-as-const.ts) | Erased during transpilation |
|
|
115
|
+
| Function overloads | ❌ | — | No probe yet |
|
|
116
|
+
| `this` parameter (`function f(this: T)`) | ❌ | — | No probe yet |
|
|
117
|
+
| `arguments` object | ❌ | — | No probe yet |
|
|
118
|
+
|
|
119
|
+
## Classes & interfaces
|
|
120
|
+
|
|
121
|
+
| Feature | Status | Probe | Notes |
|
|
122
|
+
| ---------------------------------------------------------------- | :----: | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
|
|
123
|
+
| Classes | ✅ | [syntax-class.ts](conformance/syntax-class.ts) | Transpiled to Go structs with constructor and receiver methods |
|
|
124
|
+
| Constructor parameter properties | ✅ | [syntax-class-parameter-properties.ts](conformance/syntax-class-parameter-properties.ts) | `constructor(private x: number)` |
|
|
125
|
+
| Class inheritance | ✅ | [syntax-class-inheritance.ts](conformance/syntax-class-inheritance.ts) | `super.method()` → `self.Parent.method()`; inherited methods copied for `this` dispatch |
|
|
126
|
+
| `implements` clauses | ✅ | [syntax-class-implements.ts](conformance/syntax-class-implements.ts) | `class C implements I` |
|
|
127
|
+
| Interface `extends` | ✅ | [syntax-interface-extends.ts](conformance/syntax-interface-extends.ts) | Inherited properties flattened into the derived struct |
|
|
128
|
+
| Static members | ✅ | [syntax-class-static.ts](conformance/syntax-class-static.ts) | Static members → package-level `Class_member` vars/functions |
|
|
129
|
+
| Getters / setters (classes) | ✅ | [syntax-class-getters.ts](conformance/syntax-class-getters.ts) | `c.v` reads/writes rewrite to `Get_v()`/`Set_v()` accessor calls |
|
|
130
|
+
| Getters (object literals) | ✅ | [syntax-object-getters.ts](conformance/syntax-object-getters.ts) | Getter closures stored as function fields; reads invoke them |
|
|
131
|
+
| Object-literal methods | ✅ | [syntax-object-methods.ts](conformance/syntax-object-methods.ts) | Method closures stored as function fields capturing the instance (`this` → the object) |
|
|
132
|
+
| Private `#` fields | ✅ | [syntax-class-private-fields.ts](conformance/syntax-class-private-fields.ts) | `#secret` → a plain (name-mangled) struct field |
|
|
133
|
+
| Access modifiers (`private` / `protected` / `public` on members) | ❌ | — | Constructor parameter properties ✅; member modifiers unprobed |
|
|
134
|
+
| Abstract classes | ✅ | [syntax-class-abstract.ts](conformance/syntax-class-abstract.ts) | Abstract members skipped; concrete methods copied onto subclasses |
|
|
135
|
+
| Static initialization blocks (`static {}`) | ❌ | — | No probe yet |
|
|
136
|
+
| Class expressions (`const C = class {}`) | ❌ | — | No probe yet |
|
|
137
|
+
| Interfaces | ✅ | [syntax-class-implements.ts](conformance/syntax-class-implements.ts) | Transpiled to Go interfaces |
|
|
138
|
+
| Optional properties | ✅ | [syntax-optional-chaining.ts](conformance/syntax-optional-chaining.ts) | `prop?: Type` in interfaces/types |
|
|
139
|
+
| Type-aware method dispatch | ✅ | [semantics-method-dispatch.ts](conformance/semantics-method-dispatch.ts) | Class `.push()` / `.length` not confused with array builtins |
|
|
140
|
+
| Index signatures (`[key: string]: T`) | ❌ | — | No probe yet (records/dicts → Go maps ✅) |
|
|
141
|
+
|
|
142
|
+
## Generics
|
|
143
|
+
|
|
144
|
+
| Feature | Status | Probe | Notes |
|
|
145
|
+
| ------------------------------------------------------------- | :----: | ---------------------------------------------------------------------- | ---------------------------------- |
|
|
146
|
+
| Generic functions | ✅ | [syntax-generic-functions.ts](conformance/syntax-generic-functions.ts) | Type parameters → Go generics; call sites infer from arguments |
|
|
147
|
+
| Generic classes | ✅ | [syntax-generic-classes.ts](conformance/syntax-generic-classes.ts) | Type parameters via Go generics |
|
|
148
|
+
| Generic constraints (`<T extends U>`) | ❌ | — | No probe yet |
|
|
149
|
+
| Default type parameters (`<T = D>`) | ❌ | — | No probe yet |
|
|
150
|
+
| Generic interfaces / type aliases | ❌ | — | No probe yet |
|
|
151
|
+
| `const` type parameters / variance annotations (`in` / `out`) | ❌ | — | No probe yet |
|
|
152
|
+
|
|
153
|
+
## Enums
|
|
154
|
+
|
|
155
|
+
| Feature | Status | Probe | Notes |
|
|
156
|
+
| ------------------------------------- | :----: | ------------------------------------------------------------ | -------------------------------------------- |
|
|
157
|
+
| Numeric enums | ✅ | [syntax-enum-numeric.ts](conformance/syntax-enum-numeric.ts) | Numeric members are `float64` constants; string enums keep a named type |
|
|
158
|
+
| String enums | ✅ | [syntax-enum-string.ts](conformance/syntax-enum-string.ts) | `enum` declarations and member access |
|
|
159
|
+
| `const enum` | ❌ | — | No probe yet |
|
|
160
|
+
| Computed / heterogeneous enum members | ❌ | — | `enum E { A = f(), B = 's' }`; no probe yet |
|
|
161
|
+
|
|
162
|
+
## Type-system features
|
|
163
|
+
|
|
164
|
+
| Feature | Status | Probe | Notes |
|
|
165
|
+
| --------------------------------------------------------- | :----: | -------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
|
166
|
+
| Type aliases | ✅ | [syntax-type-aliases.ts](conformance/syntax-type-aliases.ts) | `type P = { x: number }` → Go struct; alias-of-alias |
|
|
167
|
+
| Union types | ✅ | [syntax-union-types.ts](conformance/syntax-union-types.ts) | Narrowed via `typeof` checks |
|
|
168
|
+
| Type guards (`is`) | ✅ | [syntax-type-guards.ts](conformance/syntax-type-guards.ts) | `p is T` → Go `bool`; `in` checks struct fields at runtime |
|
|
169
|
+
| `as` assertions | ✅ | [syntax-type-aliases.ts](conformance/syntax-type-aliases.ts) | `x as T`, incl. angle-bracket syntax |
|
|
170
|
+
| Self-host contextual typing | ✅ | [syntax-selfhost-context.ts](conformance/syntax-selfhost-context.ts) | Object/array literals typed from context, `Record` literals, `in`, `any` params |
|
|
171
|
+
| Decorators (`@`) | ❌ | — | No probe yet |
|
|
172
|
+
| Namespaces / `module` blocks | ❌ | — | No probe yet |
|
|
173
|
+
| `override` modifier | ❌ | — | No probe yet |
|
|
174
|
+
| `readonly` modifier (properties, `readonly T[]`) | ❌ | — | No probe yet |
|
|
175
|
+
| `satisfies` operator | ❌ | — | No probe yet |
|
|
176
|
+
| `keyof` / mapped / conditional / `infer` types | ❌ | — | No probe yet |
|
|
177
|
+
| `import type` / `export type` | ❌ | — | No probe yet |
|
|
178
|
+
| Intersection types (`A & B`) | ❌ | — | No probe yet |
|
|
179
|
+
| Literal types (`'a' \| 'b'`) | ❌ | — | No probe yet |
|
|
180
|
+
| Tuple optional / rest / labeled elements | ❌ | — | `[number, ...string[]]`, `[name: string]` |
|
|
181
|
+
| Indexed access types (`T['k']`) | ❌ | — | No probe yet |
|
|
182
|
+
| Type-level `typeof` (`typeof obj`) | ❌ | — | Runtime `typeof` ✅ (see Operators) |
|
|
183
|
+
| Template literal types | ❌ | — | `` type S = `${A}-${B}` `` |
|
|
184
|
+
| Utility types (`Partial`, `Pick`, `Omit`, …) | ❌ | — | `Record<K, V>` ✅ (see [Variables & destructuring](#variables--destructuring)) |
|
|
185
|
+
| Assertion functions (`asserts x is T`) | ❌ | — | No probe yet |
|
|
186
|
+
| Callable / construct signatures (`type F = { (): void }`) | ❌ | — | No probe yet |
|
|
187
|
+
| JSX / `.tsx` syntax | ❌ | — | No probe yet |
|
|
188
|
+
| Ambient declarations (`declare`, `.d.ts`, `x!: T`) | ❌ | — | No probe yet |
|
|
189
|
+
| `export =` / `import x = require()` | ❌ | — | No probe yet |
|
|
190
|
+
|
|
191
|
+
## Modules & imports
|
|
192
|
+
|
|
193
|
+
| Feature | Status | Probe | Notes |
|
|
194
|
+
| -------------------------------------------------- | :----: | ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| Named imports | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | `import { x } from './file'` |
|
|
196
|
+
| Import renaming (`import { x as y }`) | ❌ | — | No probe yet |
|
|
197
|
+
| Named exports (`export const` / `export function`) | ✅ | [syntax-import-local.ts](conformance/syntax-import-local.ts) | Helper [import-local-helper.ts](conformance/import-local-helper.ts) exports `multiply` |
|
|
198
|
+
| Default imports | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | `import x from 'pkg'` — namespace stripped in output |
|
|
199
|
+
| Namespace imports | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | `import * as x from 'pkg'` |
|
|
200
|
+
| Local file imports | ✅ | [syntax-import-local.ts](conformance/syntax-import-local.ts) | Relative paths transpiled to a separate Go file (helper: [import-local-helper.ts](conformance/import-local-helper.ts)) |
|
|
201
|
+
| Default export | ✅ | [syntax-default-export.ts](conformance/syntax-default-export.ts) | `export default function` |
|
|
202
|
+
| Node.js built-in imports | ✅ | [lib-node-path.ts](conformance/lib-node-path.ts) | `import { join } from 'node:path'` mapped to Go stdlib (see [Standard library](#standard-library)) |
|
|
203
|
+
| Go package imports | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | `import { x } from 'go:pkg'` |
|
|
204
|
+
| npm package imports | ✅ | [syntax-import-npm.ts](conformance/syntax-import-npm.ts) | `import { x } from 'pkg'` mapped to Go module imports |
|
|
205
|
+
| Re-exports (`export { x } from`, `export *`) | ❌ | — | No probe yet |
|
|
206
|
+
| Dynamic `import()` | ❌ | — | No probe yet |
|
|
207
|
+
| Side-effect imports (`import './mod'`) | ❌ | — | No probe yet |
|
|
208
|
+
| `import.meta.url` | ✅ | [syntax-import-meta.ts](conformance/syntax-import-meta.ts) | The `file://` URL of the running program (`os.Executable` → `pathToFileURL`) |
|
|
209
|
+
|
|
210
|
+
## Async & timing
|
|
211
|
+
|
|
212
|
+
| Feature | Status | Probe | Notes |
|
|
213
|
+
| ---------------------------------------------------- | :----: | ------------------------------------------------------------ | -------------------------------------- |
|
|
214
|
+
| `async` / `await` | ✅ | [syntax-async-await.ts](conformance/syntax-async-await.ts) | Async functions send returns over a channel; `await` receives; pending work drains before exit |
|
|
215
|
+
| `Promise` constructor / `.then` | ✅ | [syntax-promise-then.ts](conformance/syntax-promise-then.ts) | `new Promise` executor runs in a goroutine; `.then` consumes the channel on a wait group |
|
|
216
|
+
| `Promise.all` | ✅ | [syntax-promise-all.ts](conformance/syntax-promise-all.ts) | `TnPromiseAll` drains every promise channel into a slice |
|
|
217
|
+
| `Promise.resolve` / `reject` / `.catch` / `.finally` | ❌ | — | No probe yet |
|
|
218
|
+
| `Promise.race` / `allSettled` / `any` | ❌ | — | No probe yet |
|
|
219
|
+
| `setInterval` / `clearInterval` / `clearTimeout` | ❌ | — | No probe yet |
|
|
220
|
+
| `queueMicrotask` | ❌ | — | No probe yet |
|
|
221
|
+
| `setTimeout` | ✅ | [lib-set-timeout.ts](conformance/lib-set-timeout.ts) | `time.AfterFunc` registered on a wait group the process waits on |
|
|
222
|
+
|
|
223
|
+
## Semantics (JS behaviour preserved)
|
|
224
|
+
|
|
225
|
+
| Feature | Status | Probe | Notes |
|
|
226
|
+
| ----------------------------------------- | :----: | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
227
|
+
| Array reference semantics | ✅ | [semantics-array-reference.ts](conformance/semantics-array-reference.ts) | Array variables hold `*[]T` so aliases share the slice header |
|
|
228
|
+
| Object reference semantics | ✅ | [semantics-object-reference.ts](conformance/semantics-object-reference.ts) | Aliased objects share state; [semantics-parameter-mutation.ts](conformance/semantics-parameter-mutation.ts) |
|
|
229
|
+
| Object identity | ✅ | [semantics-object-identity.ts](conformance/semantics-object-identity.ts) | Equal literals are different references |
|
|
230
|
+
| Object key order | ✅ | [semantics-object-key-order.ts](conformance/semantics-object-key-order.ts) | Insertion order preserved |
|
|
231
|
+
| Map insertion order | ✅ | [semantics-map-order.ts](conformance/semantics-map-order.ts) | Iteration follows insertion order |
|
|
232
|
+
| Set insertion order | ✅ | [semantics-set-order.ts](conformance/semantics-set-order.ts) | Spread follows insertion order |
|
|
233
|
+
| Default sort is lexicographic | ✅ | [semantics-default-sort.ts](conformance/semantics-default-sort.ts) | `[10, 9, 1].sort()` → `1,10,9` |
|
|
234
|
+
| Float math | ✅ | [semantics-float-math.ts](conformance/semantics-float-math.ts) | `7 / 2 === 3.5`, `0.1 + 0.2 !== 0.3` |
|
|
235
|
+
| Integer precision | ✅ | [semantics-integer-precision.ts](conformance/semantics-integer-precision.ts) | `2 ** 53 + 1 === 2 ** 53` |
|
|
236
|
+
| `NaN` semantics | ✅ | [semantics-nan.ts](conformance/semantics-nan.ts) | `NaN !== NaN`, `Number.isNaN(0 / 0)` |
|
|
237
|
+
| String-number concatenation order | ✅ | [semantics-string-number-concat.ts](conformance/semantics-string-number-concat.ts) | `'a' + 1 + 2` vs `1 + 2 + 'a'` |
|
|
238
|
+
| Array truthiness | ✅ | [semantics-array-truthy.ts](conformance/semantics-array-truthy.ts) | Empty array is truthy |
|
|
239
|
+
| Loop closures capture per-iteration `let` | ✅ | [semantics-loop-closures.ts](conformance/semantics-loop-closures.ts) | |
|
|
240
|
+
|
|
241
|
+
## Standard library
|
|
242
|
+
|
|
243
|
+
Every standard-library API TypeNative ports, split by module. Per
|
|
244
|
+
[types/typenative-npm.d.ts](types/typenative-npm.d.ts) (`node:*`) and
|
|
245
|
+
[types/typenative-go.d.ts](types/typenative-go.d.ts) (`go:*`).
|
|
246
|
+
|
|
247
|
+
### `console`
|
|
248
|
+
|
|
249
|
+
| API | Status | Probe | Notes |
|
|
250
|
+
| ---------------------------------- | :----: | ------------------------------------------------------ | ------------------------------------------------------ |
|
|
251
|
+
| `console.log` | ✅ | [lib-console-log.ts](conformance/lib-console-log.ts) | Mapped to `fmt.Println` |
|
|
252
|
+
| `console.error` | ❌ | — | Mapped to `fmt.Fprintln(os.Stderr, ...)`; no probe yet |
|
|
253
|
+
| `console.warn` | ❌ | — | Mapped to stderr like `console.error`; no probe yet |
|
|
254
|
+
| `console.time` / `console.timeEnd` | ✅ | [lib-console-time.ts](conformance/lib-console-time.ts) | Via `time.Now` / `time.Since` |
|
|
255
|
+
|
|
256
|
+
### `Math`
|
|
257
|
+
|
|
258
|
+
| API | Status | Probe | Notes |
|
|
259
|
+
| ------------------------------------------------------------------ | :----: | ------------------------------------------------------ | --------------------------------------------------------------- |
|
|
260
|
+
| `Math.floor` / `ceil` / `round` | ✅ | [lib-math.ts](conformance/lib-math.ts) | Mapped to `math.Floor`, `math.Ceil`, `math.Round` |
|
|
261
|
+
| `Math.abs` / `sqrt` / `pow` | ✅ | [lib-math.ts](conformance/lib-math.ts) | Mapped to corresponding `math` functions |
|
|
262
|
+
| `Math.min` / `Math.max` | ✅ | [lib-math-min-max.ts](conformance/lib-math-min-max.ts) | Go builtins `min` / `max` |
|
|
263
|
+
| `Math.max(...arr)` / spread & variadic | ✅ | [lib-math-min-max.ts](conformance/lib-math-min-max.ts) | Spread and any number of arguments via `slices.Max` / `max` |
|
|
264
|
+
| `Math.random` | ✅ | [lib-math-random.ts](conformance/lib-math-random.ts) | Mapped to `rand.Float64()` |
|
|
265
|
+
| `Math.log` / `log2` / `log10` | ❌ | — | Mapped to `math.Log` / `math.Log2` / `math.Log10`; no probe yet |
|
|
266
|
+
| `Math.sin` / `cos` / `tan` | ❌ | — | Mapped to `math.Sin` / `math.Cos` / `math.Tan`; no probe yet |
|
|
267
|
+
| `Math.trunc` / `sign` | ❌ | — | Mapped to `math.Trunc` / inline sign check; no probe yet |
|
|
268
|
+
| Constants (`Math.PI`, `Math.E`, …) | ❌ | — | No probe yet |
|
|
269
|
+
| `Math.asin` / `acos` / `atan` / `atan2` / `hypot` / `cbrt` / `exp` | ❌ | — | No probe yet |
|
|
270
|
+
|
|
271
|
+
### `JSON`
|
|
272
|
+
|
|
273
|
+
| API | Status | Probe | Notes |
|
|
274
|
+
| ---------------- | :----: | ---------------------------------------------------------- | ------------------------------------- |
|
|
275
|
+
| `JSON.parse` | ✅ | [lib-json-parse.ts](conformance/lib-json-parse.ts) | Mapped to `encoding/json` `Unmarshal` |
|
|
276
|
+
| `JSON.stringify` | ✅ | [lib-json-stringify.ts](conformance/lib-json-stringify.ts) | Reflection serializer includes unexported struct fields |
|
|
277
|
+
|
|
278
|
+
### `Object`
|
|
279
|
+
|
|
280
|
+
| API | Status | Probe | Notes |
|
|
281
|
+
| ---------------------------------------------------------- | :----: | ---------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
282
|
+
| `Object.keys` / `values` / `entries` | ✅ | [lib-object-helpers.ts](conformance/lib-object-helpers.ts) | Map key/value iteration helpers; typed results for maps and records |
|
|
283
|
+
| `Object.assign` | ✅ | [lib-object-assign.ts](conformance/lib-object-assign.ts) | Sources (structs, maps, dynamic objects) copied into an ordered map |
|
|
284
|
+
| `Object.freeze` / `seal` / `isFrozen` | ❌ | — | No probe yet |
|
|
285
|
+
| `Object.fromEntries` | ❌ | — | No probe yet |
|
|
286
|
+
| `Object.hasOwn` / `defineProperty` / `getOwnPropertyNames` | ❌ | — | No probe yet |
|
|
287
|
+
|
|
288
|
+
### `String`
|
|
289
|
+
|
|
290
|
+
| API | Status | Probe | Notes |
|
|
291
|
+
| --------------------------------------------------------- | :----: | ---------------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
292
|
+
| Template literals | ✅ | [syntax-template-literals.ts](conformance/syntax-template-literals.ts) | Backtick strings with `${expr}` interpolation |
|
|
293
|
+
| Tagged templates | ✅ | [syntax-tagged-templates.ts](conformance/syntax-tagged-templates.ts) | Desugared to `tag([...strings], ...values)` |
|
|
294
|
+
| `toUpperCase` / `toLowerCase` | ✅ | [lib-string-basics.ts](conformance/lib-string-basics.ts) | Via `strings` package |
|
|
295
|
+
| `trim` / `trimStart` / `trimEnd` | ✅ | [lib-string-basics.ts](conformance/lib-string-basics.ts) | Via `strings` package |
|
|
296
|
+
| `split` / `join` | ✅ | [lib-string-split-join.ts](conformance/lib-string-split-join.ts) | Via `strings` package |
|
|
297
|
+
| `includes` / `startsWith` / `endsWith` / `indexOf` | ✅ | [lib-string-search.ts](conformance/lib-string-search.ts) | Via `strings` package |
|
|
298
|
+
| `replace` / `replaceAll` (string pattern) | ✅ | [lib-string-replace.ts](conformance/lib-string-replace.ts) | Via `strings` package |
|
|
299
|
+
| `replace` / `replaceAll` (RegExp, `$1`/`$&`, fn replacer) | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | `/g` vs first match, `$1`/`$&` patterns, function replacers |
|
|
300
|
+
| `charAt` / `substring` / `slice` | ✅ | [lib-string-slice.ts](conformance/lib-string-slice.ts) | Direct Go string indexing/slicing |
|
|
301
|
+
| `charCodeAt` / `String.fromCharCode` | ✅ | [lib-string-char-codes.ts](conformance/lib-string-char-codes.ts) | `charCodeAt` reads the byte; `String.fromCharCode` → `string(rune(n))` |
|
|
302
|
+
| `concat` / `repeat` | ✅ | [lib-string-pad-repeat.ts](conformance/lib-string-pad-repeat.ts) | Concatenation and `strings.Repeat` |
|
|
303
|
+
| `padStart` / `padEnd` | ✅ | [lib-string-pad-repeat.ts](conformance/lib-string-pad-repeat.ts) | Via `strings.Repeat` |
|
|
304
|
+
| `localeCompare` | ✅ | [lib-string-compare.ts](conformance/lib-string-compare.ts) | `strings.Compare` → -1/0/1 |
|
|
305
|
+
| `match` / `matchAll` / `search` | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Via `regexp` package (`String.match` with groups) |
|
|
306
|
+
| `at` (negative indices) | ✅ | [lib-array-at.ts](conformance/lib-array-at.ts) | Supports negative indices |
|
|
307
|
+
| Unicode length / iteration | ✅ | [lib-string-unicode.ts](conformance/lib-string-unicode.ts) | `.length` counts runes; `[...str]` spreads runes |
|
|
308
|
+
| `String.raw` | ❌ | — | No probe yet |
|
|
309
|
+
| `normalize` | ❌ | — | Unicode normalization; no probe yet |
|
|
310
|
+
|
|
311
|
+
### `Array`
|
|
312
|
+
|
|
313
|
+
| API | Status | Probe | Notes |
|
|
314
|
+
| --------------------------------------------------------------------------- | :----: | ---------------------------------------------------------------------------- | ----------------------------------- |
|
|
315
|
+
| `push` / `pop` | ✅ | [lib-array-push-pop.ts](conformance/lib-array-push-pop.ts) | Basic stack operations |
|
|
316
|
+
| `shift` / `unshift` | ✅ | [lib-array-shift-unshift.ts](conformance/lib-array-shift-unshift.ts) | Queue operations |
|
|
317
|
+
| `join` / `reverse` | ✅ | [lib-array-reverse-join.ts](conformance/lib-array-reverse-join.ts) | `join()` defaults to `","`; `reverse` reverses in place and returns the array |
|
|
318
|
+
| `slice` | ✅ | [lib-array-slice.ts](conformance/lib-array-slice.ts) | Negative indices count from the end |
|
|
319
|
+
| `splice` | ✅ | [lib-array-splice.ts](conformance/lib-array-splice.ts) | Removes and returns elements in place, inserting extra arguments |
|
|
320
|
+
| `sort` (default, lexicographic) | ✅ | [semantics-default-sort.ts](conformance/semantics-default-sort.ts) | String sort by default |
|
|
321
|
+
| `sort` (comparator) | ✅ | [lib-array-sort-comparator.ts](conformance/lib-array-sort-comparator.ts) | Comparator lowered into `sort.SliceStable` |
|
|
322
|
+
| `flat` / `flatMap` | ✅ | [lib-array-flat-flatmap.ts](conformance/lib-array-flat-flatmap.ts) | One-level `flat`; `flatMap` appends callback results |
|
|
323
|
+
| `at` | ✅ | [lib-array-at.ts](conformance/lib-array-at.ts) | Supports negative indices |
|
|
324
|
+
| `fill` | ✅ | [lib-array-fill.ts](conformance/lib-array-fill.ts) | `new Array<T>(n)` → `make([]T, n)`; `fill` assigns in place |
|
|
325
|
+
| `Array.from` | ✅ | [lib-array-from.ts](conformance/lib-array-from.ts) | Array-likes read `length`; the callback gets the index |
|
|
326
|
+
| `Array.isArray` | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Type check on values |
|
|
327
|
+
| `map` / `filter` / `reduce` | ✅ | [lib-array-map-filter-reduce.ts](conformance/lib-array-map-filter-reduce.ts) | Incl. chaining and object arrays |
|
|
328
|
+
| `some` / `every` | ✅ | [lib-array-some-every.ts](conformance/lib-array-some-every.ts) | Predicate quantifiers |
|
|
329
|
+
| `find` / `findIndex` / `findLast` / `findLastIndex` | ✅ | [lib-array-find.ts](conformance/lib-array-find.ts) | `findLast`/`findLastIndex` search from the end |
|
|
330
|
+
| `forEach` | ✅ | [lib-map-iteration.ts](conformance/lib-map-iteration.ts) | Block-body callbacks; `Map.forEach` |
|
|
331
|
+
| `includes` / `indexOf` / `lastIndexOf` | ✅ | [lib-array-search.ts](conformance/lib-array-search.ts) | `lastIndexOf` searches from the end |
|
|
332
|
+
| `entries` / `keys` / `values` | ✅ | [lib-array-entries.ts](conformance/lib-array-entries.ts) | `[index, value]` pairs destructured in `for...of` |
|
|
333
|
+
| `length` truncation (`arr.length = 0`) | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Clear via length assignment |
|
|
334
|
+
| `filter(Boolean)` | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Constructor as predicate |
|
|
335
|
+
| `concat` | ❌ | — | No probe yet |
|
|
336
|
+
| `reduceRight` | ❌ | — | No probe yet |
|
|
337
|
+
| `copyWithin` | ❌ | — | No probe yet |
|
|
338
|
+
| Change-preserving copies (`toSorted` / `toReversed` / `toSpliced` / `with`) | ❌ | — | ES2023; no probe yet |
|
|
339
|
+
|
|
340
|
+
### `Map` / `Set`
|
|
341
|
+
|
|
342
|
+
| API | Status | Probe | Notes |
|
|
343
|
+
| -------------------------------------------------------- | :----: | ------------------------------------------------------------------ | ------------------------------------------------------- |
|
|
344
|
+
| `Map` (`set` / `get` / `has` / `delete` / `size`) | ✅ | [lib-map.ts](conformance/lib-map.ts) | `Map<K, V>` → Go `map[K]V`; constructor with entries |
|
|
345
|
+
| `Map` iteration (`for...of`, destructuring) | ✅ | [lib-map-iteration.ts](conformance/lib-map-iteration.ts) | Key/value iteration, `Object.entries()` unwrapping |
|
|
346
|
+
| `Set` (`add` / `has` / `delete` / `size`) | ✅ | [lib-set.ts](conformance/lib-set.ts) | `Set<T>` → Go `map[T]struct{}`; constructor with values |
|
|
347
|
+
| `Set` iteration / spread | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | `for...of`, `[...set]` |
|
|
348
|
+
| `Map.clear` / `Set.clear` | ❌ | — | No probe yet |
|
|
349
|
+
| `WeakMap` / `WeakSet` | ❌ | — | No probe yet |
|
|
350
|
+
| Set operations (`union` / `intersection` / `difference`) | ❌ | — | ES2025; no probe yet |
|
|
351
|
+
|
|
352
|
+
### `Number`
|
|
353
|
+
|
|
354
|
+
| API | Status | Probe | Notes |
|
|
355
|
+
| ------------------------------------------------- | :----: | -------------------------------------------------------- | -------------------------------------------------------- |
|
|
356
|
+
| `toString` (incl. radix) | ✅ | [lib-number-format.ts](conformance/lib-number-format.ts) | Universal `toString()` via `fmt.Sprintf` for any type |
|
|
357
|
+
| `toFixed` | ✅ | [lib-number-format.ts](conformance/lib-number-format.ts) | `n.toFixed(2)` via `strconv.FormatFloat` |
|
|
358
|
+
| `parseInt` / `parseFloat` / `Number()` | ✅ | [lib-number-parse.ts](conformance/lib-number-parse.ts) | Mapped to Go's `strconv` package |
|
|
359
|
+
| `Number.isInteger` / `isNaN` / `MAX_SAFE_INTEGER` | ✅ | [lib-number-checks.ts](conformance/lib-number-checks.ts) | Number predicates and constants |
|
|
360
|
+
| `Number.EPSILON` / `isFinite` / `toPrecision` | ❌ | — | No probe yet |
|
|
361
|
+
| `String()` / `Boolean()` conversions | ❌ | — | No probe yet (`Number()` ✅ above, `filter(Boolean)` ✅) |
|
|
362
|
+
|
|
363
|
+
### `Date`
|
|
364
|
+
|
|
365
|
+
| API | Status | Probe | Notes |
|
|
366
|
+
| ------------------------------------------------ | :----: | ---------------------------------------------- | ----------------------------- |
|
|
367
|
+
| `new Date()` / `getTime` / `toISOString` | ✅ | [lib-date.ts](conformance/lib-date.ts) | `new Date(ms)` → `time.UnixMilli`; `getTime`/`toISOString` mapped to `time.Time` |
|
|
368
|
+
| `Date.now()` | ✅ | [lib-date-now.ts](conformance/lib-date-now.ts) | `time.Now().UnixMilli()` |
|
|
369
|
+
| Component getters (`getFullYear`, `getMonth`, …) | ❌ | — | No probe yet |
|
|
370
|
+
|
|
371
|
+
### `RegExp`
|
|
372
|
+
|
|
373
|
+
| API | Status | Probe | Notes |
|
|
374
|
+
| ------------------------------------------------------ | :----: | -------------------------------------------------------------------- | --------------------------------------------------- |
|
|
375
|
+
| Regex literals | ✅ | [lib-regex-test.ts](conformance/lib-regex-test.ts) | `/pattern/flags` transpiled to `regexp.MustCompile` |
|
|
376
|
+
| `new RegExp()` | ✅ | [lib-regex-test.ts](conformance/lib-regex-test.ts) | Constructor with optional flags |
|
|
377
|
+
| `test()` | ✅ | [lib-regex-test.ts](conformance/lib-regex-test.ts) | Mapped to `regexp.MatchString` |
|
|
378
|
+
| `exec()` (groups) | ✅ | [lib-regex-groups.ts](conformance/lib-regex-groups.ts) | Mapped to `regexp.FindStringSubmatch` |
|
|
379
|
+
| Flags (`i`, `m`) | ✅ | [lib-regex-flags.ts](conformance/lib-regex-flags.ts) | Case-insensitive, multiline |
|
|
380
|
+
| Backreferences | ✅ | [lib-regex-backreference.ts](conformance/lib-regex-backreference.ts) | Backreference patterns run on a small backtracking engine |
|
|
381
|
+
| Named groups | ✅ | [lib-regex-named-groups.ts](conformance/lib-regex-named-groups.ts) | `(?<name>` → `(?P<name>`; `exec` returns a match with `.groups` |
|
|
382
|
+
| Global `exec` loop (`/g` + `lastIndex`) | ✅ | [lib-regex-global-exec.ts](conformance/lib-regex-global-exec.ts) | /g regexes carry `lastIndex` state in the `TnRegex` wrapper |
|
|
383
|
+
| Lookbehind | ✅ | [lib-regex-lookbehind.ts](conformance/lib-regex-lookbehind.ts) | Lookaround patterns run on the backtracking engine |
|
|
384
|
+
| Remaining flags (`s` / `u` / `y`) & `source` / `flags` | ❌ | — | No probe yet |
|
|
385
|
+
| `split` with RegExp | ❌ | — | No probe yet |
|
|
386
|
+
|
|
387
|
+
### `Promise` / timers
|
|
388
|
+
|
|
389
|
+
| API | Status | Probe | Notes |
|
|
390
|
+
| ---------------------------------------------------- | :----: | ------------------------------------------------------------ | ------------------------------------------------------------------- |
|
|
391
|
+
| `Promise` constructor / `.then` | ✅ | [syntax-promise-then.ts](conformance/syntax-promise-then.ts) | Channel lowering works (see [Async & timing](#async--timing)) |
|
|
392
|
+
| `Promise.all` | ✅ | [syntax-promise-all.ts](conformance/syntax-promise-all.ts) | Channel lowering works (see [Async & timing](#async--timing)) |
|
|
393
|
+
| `Promise.resolve` / `reject` / `.catch` / `.finally` | ❌ | — | No probe yet |
|
|
394
|
+
| `Promise.race` / `allSettled` / `any` | ❌ | — | No probe yet |
|
|
395
|
+
| `setInterval` / `clearInterval` / `clearTimeout` | ❌ | — | No probe yet |
|
|
396
|
+
| `queueMicrotask` | ❌ | — | No probe yet |
|
|
397
|
+
| `setTimeout` | ✅ | [lib-set-timeout.ts](conformance/lib-set-timeout.ts) | Lowered to `time.AfterFunc` (see [Async & timing](#async--timing)) |
|
|
398
|
+
|
|
399
|
+
### Misc globals
|
|
400
|
+
|
|
401
|
+
| API | Status | Probe | Notes |
|
|
402
|
+
| ------------------------------------------- | :----: | ------------------------------------------------------------------ | ---------------------------------------- |
|
|
403
|
+
| `assert` | ✅ | [lib-console-log.ts](conformance/lib-console-log.ts) | Transpiled to `panic` on failure |
|
|
404
|
+
| `process.argv` / `process.platform` | ✅ | [lib-process.ts](conformance/lib-process.ts) | Mapped to `os.Args` / `runtime.GOOS` |
|
|
405
|
+
| `process.env` | ✅ | [syntax-top-level-scope.ts](conformance/syntax-top-level-scope.ts) | Environment variable access |
|
|
406
|
+
| `process.exit` | ❌ | — | Mapped to `os.Exit`; no probe yet |
|
|
407
|
+
| `process.cwd()` | ❌ | — | Mapped to `os.Getwd()`; no probe yet |
|
|
408
|
+
| `Infinity` | ❌ | — | No probe yet (`NaN` semantics ✅) |
|
|
409
|
+
| Global `isNaN` / `isFinite` | ❌ | — | `Number.isNaN` ✅; global forms unprobed |
|
|
410
|
+
| `encodeURIComponent` / `decodeURIComponent` | ❌ | — | No probe yet |
|
|
411
|
+
| `structuredClone` | ❌ | — | No probe yet |
|
|
412
|
+
| `globalThis` | ❌ | — | No probe yet |
|
|
413
|
+
|
|
414
|
+
### Node builtins (`node:*`)
|
|
415
|
+
|
|
416
|
+
| Module | Status | Probe | Notes |
|
|
417
|
+
| ------------------------------------------------------------------------------------ | :----: | ------------------------------------------------ | ----------------------------------------------------- |
|
|
418
|
+
| `node:path` (`join`, `dirname`, `basename`, `extname`, `resolve`) | ✅ | [lib-node-path.ts](conformance/lib-node-path.ts) | Mapped to Go `path`/`filepath` |
|
|
419
|
+
| `node:fs` (`read/write/append/exists/mkdir/readdir/copy/rm/unlink`) | ✅ | [lib-node-fs.ts](conformance/lib-node-fs.ts) | Via Go helpers |
|
|
420
|
+
| `node:url` (`fileURLToPath`, `pathToFileURL`) | ❌ | — | Declared but no probe yet |
|
|
421
|
+
| `node:os` (`platform`, `homedir`, `tmpdir`) | ✅ | [lib-node-fs.ts](conformance/lib-node-fs.ts) | `platform()` covered; `homedir`/`tmpdir` unprobed |
|
|
422
|
+
| `node:child_process` (`exec`, `execSync`, `spawnSync`, `spawnInherit`) | ✅ | [lib-node-fs.ts](conformance/lib-node-fs.ts) | Sync API shape, stdio-inherit runs |
|
|
423
|
+
| `node:readline` (`question`) | ❌ | — | Declared (TypeNative sync extension) but no probe yet |
|
|
424
|
+
| `node:assert` / `node:assert/strict` | ❌ | — | Undeclared; global `assert` is mapped to `panic` |
|
|
425
|
+
| `node:async_hooks` | ❌ | — | Undeclared; unsupported |
|
|
426
|
+
| `node:buffer` | ❌ | — | Undeclared; unsupported |
|
|
427
|
+
| `node:cluster` | ❌ | — | Undeclared; unsupported |
|
|
428
|
+
| `node:console` | ❌ | — | Undeclared; global `console` methods are mapped |
|
|
429
|
+
| `node:constants` | ❌ | — | Undeclared; unsupported |
|
|
430
|
+
| `node:crypto` | ❌ | — | Undeclared; unsupported |
|
|
431
|
+
| `node:dgram` | ❌ | — | Undeclared; unsupported |
|
|
432
|
+
| `node:diagnostics_channel` | ❌ | — | Undeclared; unsupported |
|
|
433
|
+
| `node:dns` / `node:dns/promises` | ❌ | — | Undeclared; unsupported |
|
|
434
|
+
| `node:domain` | ❌ | — | Deprecated upstream; undeclared |
|
|
435
|
+
| `node:events` | ❌ | — | Undeclared; unsupported |
|
|
436
|
+
| `node:fs/promises` | ❌ | — | Undeclared; sync `node:fs` subset only |
|
|
437
|
+
| `node:http` | ❌ | — | Undeclared; unsupported |
|
|
438
|
+
| `node:http2` | ❌ | — | Undeclared; unsupported |
|
|
439
|
+
| `node:https` | ❌ | — | Undeclared; unsupported |
|
|
440
|
+
| `node:inspector` / `node:inspector/promises` | ❌ | — | Undeclared; unsupported |
|
|
441
|
+
| `node:module` | ❌ | — | Undeclared; unsupported |
|
|
442
|
+
| `node:net` | ❌ | — | Undeclared; unsupported |
|
|
443
|
+
| `node:path/posix` / `node:path/win32` | ❌ | — | Undeclared; unsupported |
|
|
444
|
+
| `node:perf_hooks` | ❌ | — | Undeclared; unsupported |
|
|
445
|
+
| `node:process` | ❌ | — | Undeclared; global `process` partially mapped |
|
|
446
|
+
| `node:punycode` | ❌ | — | Deprecated upstream; undeclared |
|
|
447
|
+
| `node:querystring` | ❌ | — | Undeclared; unsupported |
|
|
448
|
+
| `node:readline/promises` | ❌ | — | Undeclared; unsupported |
|
|
449
|
+
| `node:repl` | ❌ | — | Undeclared; unsupported |
|
|
450
|
+
| `node:sea` | ❌ | — | Undeclared; unsupported (`node:`-only module) |
|
|
451
|
+
| `node:sqlite` | ❌ | — | Undeclared; unsupported (`node:`-only module) |
|
|
452
|
+
| `node:stream` / `node:stream/consumers` / `node:stream/promises` / `node:stream/web` | ❌ | — | Undeclared; unsupported |
|
|
453
|
+
| `node:string_decoder` | ❌ | — | Undeclared; unsupported |
|
|
454
|
+
| `node:sys` | ❌ | — | Deprecated alias of `node:util`; undeclared |
|
|
455
|
+
| `node:test` / `node:test/reporters` | ❌ | — | Undeclared; unsupported (`node:`-only module) |
|
|
456
|
+
| `node:timers` / `node:timers/promises` | ❌ | — | Undeclared; unsupported |
|
|
457
|
+
| `node:tls` | ❌ | — | Undeclared; unsupported |
|
|
458
|
+
| `node:trace_events` | ❌ | — | Undeclared; unsupported |
|
|
459
|
+
| `node:tty` | ❌ | — | Undeclared; unsupported |
|
|
460
|
+
| `node:util` / `node:util/types` | ❌ | — | Undeclared; unsupported |
|
|
461
|
+
| `node:v8` | ❌ | — | Undeclared; unsupported |
|
|
462
|
+
| `node:vm` | ❌ | — | Undeclared; unsupported |
|
|
463
|
+
| `node:wasi` | ❌ | — | Undeclared; unsupported |
|
|
464
|
+
| `node:worker_threads` | ❌ | — | Undeclared; unsupported |
|
|
465
|
+
| `node:zlib` | ❌ | — | Undeclared; unsupported |
|
|
466
|
+
|
|
467
|
+
### Go bridges (`go:*`)
|
|
468
|
+
|
|
469
|
+
| Module | Status | Probe | Notes |
|
|
470
|
+
| ----------------------------------- | :----: | ------------------------------------------------------ | ----------------------------------------------------------------------------- |
|
|
471
|
+
| `go:fmt` (`Println`, `Sprintf`) | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | Direct Go package access |
|
|
472
|
+
| `go:strings` (`ToUpper`, `ToLower`) | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | Direct Go package access |
|
|
473
|
+
| `go:strconv` (`FormatBool`) | ✅ | [syntax-import-go.ts](conformance/syntax-import-go.ts) | Direct Go package access |
|
|
474
|
+
| `go:archive/tar` | ❌ | — | tar archive read/write; not declared in types, no probe yet |
|
|
475
|
+
| `go:archive/zip` | ❌ | — | ZIP archive read/write; not declared in types, no probe yet |
|
|
476
|
+
| `go:bufio` | ❌ | — | Buffered I/O; not declared in types, no probe yet |
|
|
477
|
+
| `go:bytes` | ❌ | — | Byte-slice utilities; not declared in types, no probe yet |
|
|
478
|
+
| `go:cmp` | ❌ | — | Ordered comparison primitives; not declared in types, no probe yet |
|
|
479
|
+
| `go:compress/bzip2` | ❌ | — | bzip2 decompression (read-only); not declared in types, no probe yet |
|
|
480
|
+
| `go:compress/flate` | ❌ | — | DEFLATE compression; not declared in types, no probe yet |
|
|
481
|
+
| `go:compress/gzip` | ❌ | — | gzip read/write; not declared in types, no probe yet |
|
|
482
|
+
| `go:compress/lzw` | ❌ | — | LZW compression (GIF/PDF/TIFF); not declared in types, no probe yet |
|
|
483
|
+
| `go:compress/zlib` | ❌ | — | zlib read/write; not declared in types, no probe yet |
|
|
484
|
+
| `go:container/heap` | ❌ | — | Heap / priority queue; not declared in types, no probe yet |
|
|
485
|
+
| `go:container/list` | ❌ | — | Doubly linked list; not declared in types, no probe yet |
|
|
486
|
+
| `go:container/ring` | ❌ | — | Circular list; not declared in types, no probe yet |
|
|
487
|
+
| `go:context` | ❌ | — | Cancellation and deadlines; not declared in types, no probe yet |
|
|
488
|
+
| `go:crypto` | ❌ | — | Crypto constants and algorithm selection; not declared in types, no probe yet |
|
|
489
|
+
| `go:crypto/aes` | ❌ | — | AES encryption; not declared in types, no probe yet |
|
|
490
|
+
| `go:crypto/cipher` | ❌ | — | Block cipher modes (GCM, CBC, CTR); not declared in types, no probe yet |
|
|
491
|
+
| `go:crypto/des` | ❌ | — | DES / triple DES (deprecated); not declared in types, no probe yet |
|
|
492
|
+
| `go:crypto/dsa` | ❌ | — | DSA signatures (deprecated); not declared in types, no probe yet |
|
|
493
|
+
| `go:crypto/ecdh` | ❌ | — | ECDH key exchange; not declared in types, no probe yet |
|
|
494
|
+
| `go:crypto/ecdsa` | ❌ | — | ECDSA signatures; not declared in types, no probe yet |
|
|
495
|
+
| `go:crypto/ed25519` | ❌ | — | Ed25519 signatures; not declared in types, no probe yet |
|
|
496
|
+
| `go:crypto/elliptic` | ❌ | — | Elliptic curves (legacy; use ecdh/ecdsa); not declared in types, no probe yet |
|
|
497
|
+
| `go:crypto/fips140` | ❌ | — | FIPS 140-3 mode controls; not declared in types, no probe yet |
|
|
498
|
+
| `go:crypto/hkdf` | ❌ | — | HKDF key derivation; not declared in types, no probe yet |
|
|
499
|
+
| `go:crypto/hmac` | ❌ | — | HMAC keyed hashing; not declared in types, no probe yet |
|
|
500
|
+
| `go:crypto/hpke` | ❌ | — | HPKE encryption (RFC 9180); not declared in types, no probe yet |
|
|
501
|
+
| `go:crypto/md5` | ❌ | — | MD5 hash; not declared in types, no probe yet |
|
|
502
|
+
| `go:crypto/mlkem` | ❌ | — | ML-KEM post-quantum key encapsulation; not declared in types, no probe yet |
|
|
503
|
+
| `go:crypto/mlkem/mlkemtest` | ❌ | — | ML-KEM test vectors helper; not declared in types, no probe yet |
|
|
504
|
+
| `go:crypto/pbkdf2` | ❌ | — | PBKDF2 key derivation; not declared in types, no probe yet |
|
|
505
|
+
| `go:crypto/rand` | ❌ | — | Cryptographically secure random bytes; not declared in types, no probe yet |
|
|
506
|
+
| `go:crypto/rc4` | ❌ | — | RC4 stream cipher (deprecated); not declared in types, no probe yet |
|
|
507
|
+
| `go:crypto/rsa` | ❌ | — | RSA signatures / encryption; not declared in types, no probe yet |
|
|
508
|
+
| `go:crypto/sha1` | ❌ | — | SHA-1 hash; not declared in types, no probe yet |
|
|
509
|
+
| `go:crypto/sha256` | ❌ | — | SHA-224 / SHA-256 hashes; not declared in types, no probe yet |
|
|
510
|
+
| `go:crypto/sha3` | ❌ | — | SHA-3 / SHAKE hashes; not declared in types, no probe yet |
|
|
511
|
+
| `go:crypto/sha512` | ❌ | — | SHA-384 / SHA-512 family hashes; not declared in types, no probe yet |
|
|
512
|
+
| `go:crypto/subtle` | ❌ | — | Constant-time comparison primitives; not declared in types, no probe yet |
|
|
513
|
+
| `go:crypto/tls` | ❌ | — | TLS client / server; not declared in types, no probe yet |
|
|
514
|
+
| `go:crypto/x509` | ❌ | — | X.509 certificates and revocation; not declared in types, no probe yet |
|
|
515
|
+
| `go:crypto/x509/pkix` | ❌ | — | X.509 ASN.1/PKIX structures; not declared in types, no probe yet |
|
|
516
|
+
| `go:database/sql` | ❌ | — | SQL database access; not declared in types, no probe yet |
|
|
517
|
+
| `go:database/sql/driver` | ❌ | — | SQL driver interfaces; not declared in types, no probe yet |
|
|
518
|
+
| `go:debug/buildinfo` | ❌ | — | Build info from executables; not declared in types, no probe yet |
|
|
519
|
+
| `go:debug/dwarf` | ❌ | — | DWARF debug info parsing; not declared in types, no probe yet |
|
|
520
|
+
| `go:debug/elf` | ❌ | — | ELF object files; not declared in types, no probe yet |
|
|
521
|
+
| `go:debug/gosym` | ❌ | — | Go symbol tables; not declared in types, no probe yet |
|
|
522
|
+
| `go:debug/macho` | ❌ | — | Mach-O object files; not declared in types, no probe yet |
|
|
523
|
+
| `go:debug/pe` | ❌ | — | PE (Windows) object files; not declared in types, no probe yet |
|
|
524
|
+
| `go:debug/plan9obj` | ❌ | — | Plan 9 object files; not declared in types, no probe yet |
|
|
525
|
+
| `go:embed` | ❌ | — | Files embedded via //go:embed; not declared in types, no probe yet |
|
|
526
|
+
| `go:encoding` | ❌ | — | Shared encoding interfaces; not declared in types, no probe yet |
|
|
527
|
+
| `go:encoding/ascii85` | ❌ | — | ascii85 encoding; not declared in types, no probe yet |
|
|
528
|
+
| `go:encoding/asn1` | ❌ | — | ASN.1 DER encoding; not declared in types, no probe yet |
|
|
529
|
+
| `go:encoding/base32` | ❌ | — | base32 encoding; not declared in types, no probe yet |
|
|
530
|
+
| `go:encoding/base64` | ❌ | — | base64 encoding; not declared in types, no probe yet |
|
|
531
|
+
| `go:encoding/binary` | ❌ | — | Binary packing / varints; not declared in types, no probe yet |
|
|
532
|
+
| `go:encoding/csv` | ❌ | — | CSV read/write; not declared in types, no probe yet |
|
|
533
|
+
| `go:encoding/gob` | ❌ | — | Go binary serialization; not declared in types, no probe yet |
|
|
534
|
+
| `go:encoding/hex` | ❌ | — | hex encoding; not declared in types, no probe yet |
|
|
535
|
+
| `go:encoding/json` | ❌ | — | JSON encode/decode; not declared in types, no probe yet |
|
|
536
|
+
| `go:encoding/pem` | ❌ | — | PEM encoding; not declared in types, no probe yet |
|
|
537
|
+
| `go:encoding/xml` | ❌ | — | XML read/write; not declared in types, no probe yet |
|
|
538
|
+
| `go:errors` | ❌ | — | Error creation / wrapping / inspection; not declared in types, no probe yet |
|
|
539
|
+
| `go:expvar` | ❌ | — | Public process variables; not declared in types, no probe yet |
|
|
540
|
+
| `go:flag` | ❌ | — | Command-line flag parsing; not declared in types, no probe yet |
|
|
541
|
+
| `go:go/ast` | ❌ | — | Go syntax tree; not declared in types, no probe yet |
|
|
542
|
+
| `go:go/build` | ❌ | — | Go package build metadata; not declared in types, no probe yet |
|
|
543
|
+
| `go:go/build/constraint` | ❌ | — | Build-tag constraint parsing; not declared in types, no probe yet |
|
|
544
|
+
| `go:go/constant` | ❌ | — | Untyped constant values; not declared in types, no probe yet |
|
|
545
|
+
| `go:go/doc` | ❌ | — | Go doc extraction; not declared in types, no probe yet |
|
|
546
|
+
| `go:go/doc/comment` | ❌ | — | Doc comment parse/print; not declared in types, no probe yet |
|
|
547
|
+
| `go:go/format` | ❌ | — | Go source formatting; not declared in types, no probe yet |
|
|
548
|
+
| `go:go/importer` | ❌ | — | Export-data type importer; not declared in types, no probe yet |
|
|
549
|
+
| `go:go/parser` | ❌ | — | Go source parser; not declared in types, no probe yet |
|
|
550
|
+
| `go:go/printer` | ❌ | — | Go AST printer; not declared in types, no probe yet |
|
|
551
|
+
| `go:go/scanner` | ❌ | — | Go tokenizer; not declared in types, no probe yet |
|
|
552
|
+
| `go:go/token` | ❌ | — | Go tokens / positions; not declared in types, no probe yet |
|
|
553
|
+
| `go:go/types` | ❌ | — | Go type checker; not declared in types, no probe yet |
|
|
554
|
+
| `go:go/version` | ❌ | — | Go version comparison; not declared in types, no probe yet |
|
|
555
|
+
| `go:hash` | ❌ | — | Hash function interface; not declared in types, no probe yet |
|
|
556
|
+
| `go:hash/adler32` | ❌ | — | Adler-32 checksum; not declared in types, no probe yet |
|
|
557
|
+
| `go:hash/crc32` | ❌ | — | CRC-32 checksum; not declared in types, no probe yet |
|
|
558
|
+
| `go:hash/crc64` | ❌ | — | CRC-64 checksum; not declared in types, no probe yet |
|
|
559
|
+
| `go:hash/fnv` | ❌ | — | FNV-1 / FNV-1a hash; not declared in types, no probe yet |
|
|
560
|
+
| `go:hash/maphash` | ❌ | — | Seeded string hashing; not declared in types, no probe yet |
|
|
561
|
+
| `go:html` | ❌ | — | HTML escaping; not declared in types, no probe yet |
|
|
562
|
+
| `go:html/template` | ❌ | — | HTML templating (auto-escaped); not declared in types, no probe yet |
|
|
563
|
+
| `go:image` | ❌ | — | 2D image interface; not declared in types, no probe yet |
|
|
564
|
+
| `go:image/color` | ❌ | — | Color types; not declared in types, no probe yet |
|
|
565
|
+
| `go:image/color/palette` | ❌ | — | Standard color palettes; not declared in types, no probe yet |
|
|
566
|
+
| `go:image/draw` | ❌ | — | Image compositing; not declared in types, no probe yet |
|
|
567
|
+
| `go:image/gif` | ❌ | — | GIF decode/encode; not declared in types, no probe yet |
|
|
568
|
+
| `go:image/jpeg` | ❌ | — | JPEG decode/encode; not declared in types, no probe yet |
|
|
569
|
+
| `go:image/png` | ❌ | — | PNG decode/encode; not declared in types, no probe yet |
|
|
570
|
+
| `go:index/suffixarray` | ❌ | — | Suffix-array substring search; not declared in types, no probe yet |
|
|
571
|
+
| `go:io` | ❌ | — | Core I/O interfaces (Reader/Writer); not declared in types, no probe yet |
|
|
572
|
+
| `go:io/fs` | ❌ | — | Filesystem abstraction; not declared in types, no probe yet |
|
|
573
|
+
| `go:io/ioutil` | ❌ | — | Deprecated I/O helpers (Go 1.16); not declared in types, no probe yet |
|
|
574
|
+
| `go:iter` | ❌ | — | Range-over-func iterator types; not declared in types, no probe yet |
|
|
575
|
+
| `go:log` | ❌ | — | Leveled logging to stderr; not declared in types, no probe yet |
|
|
576
|
+
| `go:log/slog` | ❌ | — | Structured logging; not declared in types, no probe yet |
|
|
577
|
+
| `go:log/syslog` | ❌ | — | syslog client (Unix only); not declared in types, no probe yet |
|
|
578
|
+
| `go:maps` | ❌ | — | Generic map utilities; not declared in types, no probe yet |
|
|
579
|
+
| `go:math` | ❌ | — | Float math functions; not declared in types, no probe yet |
|
|
580
|
+
| `go:math/big` | ❌ | — | Arbitrary-precision arithmetic; not declared in types, no probe yet |
|
|
581
|
+
| `go:math/bits` | ❌ | — | Bit counting / manipulation; not declared in types, no probe yet |
|
|
582
|
+
| `go:math/cmplx` | ❌ | — | Complex-number math; not declared in types, no probe yet |
|
|
583
|
+
| `go:math/rand` | ❌ | — | Pseudo-random generator (legacy); not declared in types, no probe yet |
|
|
584
|
+
| `go:math/rand/v2` | ❌ | — | Pseudo-random generator (v2); not declared in types, no probe yet |
|
|
585
|
+
| `go:mime` | ❌ | — | MIME type lookup; not declared in types, no probe yet |
|
|
586
|
+
| `go:mime/multipart` | ❌ | — | multipart/form-data parsing; not declared in types, no probe yet |
|
|
587
|
+
| `go:mime/quotedprintable` | ❌ | — | quoted-printable encoding; not declared in types, no probe yet |
|
|
588
|
+
| `go:net` | ❌ | — | Network I/O (TCP/UDP/Unix sockets); not declared in types, no probe yet |
|
|
589
|
+
| `go:net/http` | ❌ | — | HTTP client / server; not declared in types, no probe yet |
|
|
590
|
+
| `go:net/http/cgi` | ❌ | — | CGI handler support; not declared in types, no probe yet |
|
|
591
|
+
| `go:net/http/cookiejar` | ❌ | — | HTTP cookie storage; not declared in types, no probe yet |
|
|
592
|
+
| `go:net/http/fcgi` | ❌ | — | FastCGI server; not declared in types, no probe yet |
|
|
593
|
+
| `go:net/http/httptest` | ❌ | — | HTTP test helpers; not declared in types, no probe yet |
|
|
594
|
+
| `go:net/http/httptrace` | ❌ | — | HTTP request tracing; not declared in types, no probe yet |
|
|
595
|
+
| `go:net/http/httputil` | ❌ | — | HTTP utilities (reverse proxy); not declared in types, no probe yet |
|
|
596
|
+
| `go:net/http/pprof` | ❌ | — | Profiling endpoints over HTTP; not declared in types, no probe yet |
|
|
597
|
+
| `go:net/mail` | ❌ | — | RFC 5322 address parsing; not declared in types, no probe yet |
|
|
598
|
+
| `go:net/netip` | ❌ | — | IP address / prefix types; not declared in types, no probe yet |
|
|
599
|
+
| `go:net/rpc` | ❌ | — | Go RPC; not declared in types, no probe yet |
|
|
600
|
+
| `go:net/rpc/jsonrpc` | ❌ | — | JSON-RPC codec for net/rpc; not declared in types, no probe yet |
|
|
601
|
+
| `go:net/smtp` | ❌ | — | SMTP client; not declared in types, no probe yet |
|
|
602
|
+
| `go:net/textproto` | ❌ | — | Text-based protocol helpers; not declared in types, no probe yet |
|
|
603
|
+
| `go:net/url` | ❌ | — | URL parsing / building; not declared in types, no probe yet |
|
|
604
|
+
| `go:os` | ❌ | — | OS functions (files, env, process); not declared in types, no probe yet |
|
|
605
|
+
| `go:os/exec` | ❌ | — | External command execution; not declared in types, no probe yet |
|
|
606
|
+
| `go:os/signal` | ❌ | — | OS signal handling; not declared in types, no probe yet |
|
|
607
|
+
| `go:os/user` | ❌ | — | User / group lookup; not declared in types, no probe yet |
|
|
608
|
+
| `go:path` | ❌ | — | Slash-separated path utilities; not declared in types, no probe yet |
|
|
609
|
+
| `go:path/filepath` | ❌ | — | OS-specific file paths; not declared in types, no probe yet |
|
|
610
|
+
| `go:plugin` | ❌ | — | Go plugin loading (cgo; Linux/macOS/BSD); not declared in types, no probe yet |
|
|
611
|
+
| `go:reflect` | ❌ | — | Runtime reflection; not declared in types, no probe yet |
|
|
612
|
+
| `go:regexp` | ❌ | — | Regular expressions (RE2); not declared in types, no probe yet |
|
|
613
|
+
| `go:regexp/syntax` | ❌ | — | Regex syntax parsing; not declared in types, no probe yet |
|
|
614
|
+
| `go:runtime` | ❌ | — | Runtime introspection (GC, goroutines); not declared in types, no probe yet |
|
|
615
|
+
| `go:runtime/coverage` | ❌ | — | Coverage counter writing; not declared in types, no probe yet |
|
|
616
|
+
| `go:runtime/debug` | ❌ | — | Debug controls (stack dump, GC tuning); not declared in types, no probe yet |
|
|
617
|
+
| `go:runtime/metrics` | ❌ | — | Runtime metrics; not declared in types, no probe yet |
|
|
618
|
+
| `go:runtime/pprof` | ❌ | — | CPU / memory profiling; not declared in types, no probe yet |
|
|
619
|
+
| `go:runtime/race` | ❌ | — | Race detector interaction; not declared in types, no probe yet |
|
|
620
|
+
| `go:runtime/trace` | ❌ | — | Execution tracing; not declared in types, no probe yet |
|
|
621
|
+
| `go:slices` | ❌ | — | Generic slice utilities; not declared in types, no probe yet |
|
|
622
|
+
| `go:sort` | ❌ | — | Sorting; not declared in types, no probe yet |
|
|
623
|
+
| `go:structs` | ❌ | — | Struct layout annotations; not declared in types, no probe yet |
|
|
624
|
+
| `go:sync` | ❌ | — | Sync primitives (Mutex, WaitGroup); not declared in types, no probe yet |
|
|
625
|
+
| `go:sync/atomic` | ❌ | — | Atomic memory operations; not declared in types, no probe yet |
|
|
626
|
+
| `go:syscall` | ❌ | — | Raw system call interface; not declared in types, no probe yet |
|
|
627
|
+
| `go:testing` | ❌ | — | Test / benchmark harness; not declared in types, no probe yet |
|
|
628
|
+
| `go:testing/cryptotest` | ❌ | — | FIPS crypto test helpers; not declared in types, no probe yet |
|
|
629
|
+
| `go:testing/fstest` | ❌ | — | In-memory filesystem maps; not declared in types, no probe yet |
|
|
630
|
+
| `go:testing/iotest` | ❌ | — | Reader / writer test shims; not declared in types, no probe yet |
|
|
631
|
+
| `go:testing/quick` | ❌ | — | Property-based testing; not declared in types, no probe yet |
|
|
632
|
+
| `go:testing/slogtest` | ❌ | — | slog handler testing; not declared in types, no probe yet |
|
|
633
|
+
| `go:testing/synctest` | ❌ | — | Deterministic async testing; not declared in types, no probe yet |
|
|
634
|
+
| `go:text/scanner` | ❌ | — | Generic token scanning; not declared in types, no probe yet |
|
|
635
|
+
| `go:text/tabwriter` | ❌ | — | Column-aligned text output; not declared in types, no probe yet |
|
|
636
|
+
| `go:text/template` | ❌ | — | Data-driven text templating; not declared in types, no probe yet |
|
|
637
|
+
| `go:text/template/parse` | ❌ | — | Template parse tree; not declared in types, no probe yet |
|
|
638
|
+
| `go:time` | ❌ | — | Dates, durations, timers; not declared in types, no probe yet |
|
|
639
|
+
| `go:time/tzdata` | ❌ | — | Embedded timezone database; not declared in types, no probe yet |
|
|
640
|
+
| `go:unicode` | ❌ | — | Unicode properties / tables; not declared in types, no probe yet |
|
|
641
|
+
| `go:unicode/utf16` | ❌ | — | UTF-16 encoding; not declared in types, no probe yet |
|
|
642
|
+
| `go:unicode/utf8` | ❌ | — | UTF-8 encoding; not declared in types, no probe yet |
|
|
643
|
+
| `go:unique` | ❌ | — | Interned canonical values; not declared in types, no probe yet |
|
|
644
|
+
| `go:unsafe` | ❌ | — | Unsafe pointers / memory layout; not declared in types, no probe yet |
|
|
645
|
+
| `go:weak` | ❌ | — | Weak pointers; not declared in types, no probe yet |
|
|
646
|
+
|
|
647
|
+
### npm packages
|
|
648
|
+
|
|
649
|
+
| Pattern | Status | Probe | Notes |
|
|
650
|
+
| ------------------------- | :----: | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
651
|
+
| `import { x } from 'pkg'` | ✅ | [syntax-import-npm.ts](conformance/syntax-import-npm.ts) | Mapped to Go module imports (fixture dep in [conformance/package.json](conformance/package.json)) |
|