@typescript/native-preview 7.0.0-dev.20260422.1 → 7.0.0-dev.20260424.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/dist/api/async/api.d.ts +241 -0
- package/dist/api/async/api.d.ts.map +1 -0
- package/dist/api/async/api.js +810 -0
- package/dist/api/async/api.js.map +1 -0
- package/dist/api/async/client.d.ts +22 -0
- package/dist/api/async/client.d.ts.map +1 -0
- package/dist/api/async/client.js +140 -0
- package/dist/api/async/client.js.map +1 -0
- package/dist/api/async/types.d.ts +179 -0
- package/dist/api/async/types.d.ts.map +1 -0
- package/dist/api/async/types.js +2 -0
- package/dist/api/async/types.js.map +1 -0
- package/dist/api/fs.d.ts +23 -0
- package/dist/api/fs.d.ts.map +1 -0
- package/dist/api/fs.js +109 -0
- package/dist/api/fs.js.map +1 -0
- package/dist/api/node/encoder.d.ts +15 -0
- package/dist/api/node/encoder.d.ts.map +1 -0
- package/dist/api/node/encoder.generated.d.ts +5 -0
- package/dist/api/node/encoder.generated.d.ts.map +1 -0
- package/dist/api/node/encoder.generated.js +74 -0
- package/dist/api/node/encoder.generated.js.map +1 -0
- package/dist/api/node/encoder.js +304 -0
- package/dist/api/node/encoder.js.map +1 -0
- package/dist/api/node/msgpack.d.ts +32 -0
- package/dist/api/node/msgpack.d.ts.map +1 -0
- package/dist/api/node/msgpack.js +212 -0
- package/dist/api/node/msgpack.js.map +1 -0
- package/dist/api/node/node.d.ts +63 -0
- package/dist/api/node/node.d.ts.map +1 -0
- package/dist/api/node/node.generated.d.ts +172 -0
- package/dist/api/node/node.generated.d.ts.map +1 -0
- package/dist/api/node/node.generated.js +817 -0
- package/dist/api/node/node.generated.js.map +1 -0
- package/dist/api/node/node.infrastructure.d.ts +51 -0
- package/dist/api/node/node.infrastructure.d.ts.map +1 -0
- package/dist/api/node/node.infrastructure.js +122 -0
- package/dist/api/node/node.infrastructure.js.map +1 -0
- package/dist/api/node/node.js +201 -0
- package/dist/api/node/node.js.map +1 -0
- package/dist/api/node/protocol.d.ts +29 -0
- package/dist/api/node/protocol.d.ts.map +1 -0
- package/dist/api/node/protocol.generated.d.ts +4 -0
- package/dist/api/node/protocol.generated.d.ts.map +1 -0
- package/dist/api/node/protocol.generated.js +241 -0
- package/dist/api/node/protocol.generated.js.map +1 -0
- package/dist/api/node/protocol.js +30 -0
- package/dist/api/node/protocol.js.map +1 -0
- package/dist/api/objectRegistry.d.ts +38 -0
- package/dist/api/objectRegistry.d.ts.map +1 -0
- package/dist/api/objectRegistry.js +55 -0
- package/dist/api/objectRegistry.js.map +1 -0
- package/dist/api/options.d.ts +24 -0
- package/dist/api/options.d.ts.map +1 -0
- package/dist/api/options.js +11 -0
- package/dist/api/options.js.map +1 -0
- package/dist/api/path.d.ts +110 -0
- package/dist/api/path.d.ts.map +1 -0
- package/dist/api/path.js +508 -0
- package/dist/api/path.js.map +1 -0
- package/dist/api/proto.d.ts +152 -0
- package/dist/api/proto.d.ts.map +1 -0
- package/dist/api/proto.js +22 -0
- package/dist/api/proto.js.map +1 -0
- package/dist/api/sourceFileCache.d.ts +79 -0
- package/dist/api/sourceFileCache.d.ts.map +1 -0
- package/dist/api/sourceFileCache.js +169 -0
- package/dist/api/sourceFileCache.js.map +1 -0
- package/dist/api/sync/api.d.ts +241 -0
- package/dist/api/sync/api.d.ts.map +1 -0
- package/dist/api/sync/api.js +818 -0
- package/dist/api/sync/api.js.map +1 -0
- package/dist/api/sync/client.d.ts +13 -0
- package/dist/api/sync/client.d.ts.map +1 -0
- package/dist/api/sync/client.js +72 -0
- package/dist/api/sync/client.js.map +1 -0
- package/dist/api/sync/types.d.ts +179 -0
- package/dist/api/sync/types.d.ts.map +1 -0
- package/dist/api/sync/types.js +2 -0
- package/dist/api/sync/types.js.map +1 -0
- package/dist/api/syncChannel.d.ts +111 -0
- package/dist/api/syncChannel.d.ts.map +1 -0
- package/dist/api/syncChannel.js +488 -0
- package/dist/api/syncChannel.js.map +1 -0
- package/dist/ast/ast.d.ts +66 -0
- package/dist/ast/ast.d.ts.map +1 -0
- package/dist/ast/ast.generated.d.ts +1160 -0
- package/dist/ast/ast.generated.d.ts.map +1 -0
- package/dist/ast/ast.generated.js +4 -0
- package/dist/ast/ast.generated.js.map +1 -0
- package/dist/ast/ast.js +7 -0
- package/dist/ast/ast.js.map +1 -0
- package/dist/ast/astnav.d.ts +19 -0
- package/dist/ast/astnav.d.ts.map +1 -0
- package/dist/ast/astnav.js +596 -0
- package/dist/ast/astnav.js.map +1 -0
- package/dist/ast/clone.d.ts +16 -0
- package/dist/ast/clone.d.ts.map +1 -0
- package/dist/ast/clone.js +104 -0
- package/dist/ast/clone.js.map +1 -0
- package/dist/ast/factory.generated.d.ts +513 -0
- package/dist/ast/factory.generated.d.ts.map +1 -0
- package/dist/ast/factory.generated.js +3026 -0
- package/dist/ast/factory.generated.js.map +1 -0
- package/dist/ast/index.d.ts +18 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +18 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/ast/is.d.ts +34 -0
- package/dist/ast/is.d.ts.map +1 -0
- package/dist/ast/is.generated.d.ts +328 -0
- package/dist/ast/is.generated.d.ts.map +1 -0
- package/dist/ast/is.generated.js +1101 -0
- package/dist/ast/is.generated.js.map +1 -0
- package/dist/ast/is.js +226 -0
- package/dist/ast/is.js.map +1 -0
- package/dist/ast/scanner.d.ts +97 -0
- package/dist/ast/scanner.d.ts.map +1 -0
- package/dist/ast/scanner.js +2230 -0
- package/dist/ast/scanner.js.map +1 -0
- package/dist/ast/utils.d.ts +5 -0
- package/dist/ast/utils.d.ts.map +1 -0
- package/dist/ast/utils.js +27 -0
- package/dist/ast/utils.js.map +1 -0
- package/dist/ast/visitor.d.ts +14 -0
- package/dist/ast/visitor.d.ts.map +1 -0
- package/dist/ast/visitor.generated.d.ts +50 -0
- package/dist/ast/visitor.generated.d.ts.map +1 -0
- package/dist/ast/visitor.generated.js +978 -0
- package/dist/ast/visitor.generated.js.map +1 -0
- package/dist/ast/visitor.js +47 -0
- package/dist/ast/visitor.js.map +1 -0
- package/dist/enums/characterCodes.d.ts +2 -0
- package/dist/enums/characterCodes.d.ts.map +1 -0
- package/dist/enums/characterCodes.enum.d.ts +129 -0
- package/dist/enums/characterCodes.enum.d.ts.map +1 -0
- package/dist/enums/characterCodes.enum.js +132 -0
- package/dist/enums/characterCodes.enum.js.map +1 -0
- package/dist/enums/characterCodes.js +130 -0
- package/dist/enums/characterCodes.js.map +1 -0
- package/dist/enums/commentDirectiveType.d.ts +2 -0
- package/dist/enums/commentDirectiveType.d.ts.map +1 -0
- package/dist/enums/commentDirectiveType.enum.d.ts +5 -0
- package/dist/enums/commentDirectiveType.enum.d.ts.map +1 -0
- package/dist/enums/commentDirectiveType.enum.js +6 -0
- package/dist/enums/commentDirectiveType.enum.js.map +1 -0
- package/dist/enums/commentDirectiveType.js +6 -0
- package/dist/enums/commentDirectiveType.js.map +1 -0
- package/dist/enums/diagnosticCategory.d.ts +2 -0
- package/dist/enums/diagnosticCategory.d.ts.map +1 -0
- package/dist/enums/diagnosticCategory.enum.d.ts +7 -0
- package/dist/enums/diagnosticCategory.enum.d.ts.map +1 -0
- package/dist/enums/diagnosticCategory.enum.js +9 -0
- package/dist/enums/diagnosticCategory.enum.js.map +1 -0
- package/dist/enums/diagnosticCategory.js +9 -0
- package/dist/enums/diagnosticCategory.js.map +1 -0
- package/dist/enums/elementFlags.d.ts +2 -0
- package/dist/enums/elementFlags.d.ts.map +1 -0
- package/dist/enums/elementFlags.enum.d.ts +12 -0
- package/dist/enums/elementFlags.enum.d.ts.map +1 -0
- package/dist/enums/elementFlags.enum.js +14 -0
- package/dist/enums/elementFlags.enum.js.map +1 -0
- package/dist/enums/elementFlags.js +14 -0
- package/dist/enums/elementFlags.js.map +1 -0
- package/dist/enums/languageVariant.d.ts +2 -0
- package/dist/enums/languageVariant.d.ts.map +1 -0
- package/dist/enums/languageVariant.enum.d.ts +5 -0
- package/dist/enums/languageVariant.enum.d.ts.map +1 -0
- package/dist/enums/languageVariant.enum.js +6 -0
- package/dist/enums/languageVariant.enum.js.map +1 -0
- package/dist/enums/languageVariant.js +6 -0
- package/dist/enums/languageVariant.js.map +1 -0
- package/dist/enums/modifierFlags.d.ts +2 -0
- package/dist/enums/modifierFlags.d.ts.map +1 -0
- package/dist/enums/modifierFlags.enum.d.ts +42 -0
- package/dist/enums/modifierFlags.enum.d.ts.map +1 -0
- package/dist/enums/modifierFlags.enum.js +44 -0
- package/dist/enums/modifierFlags.enum.js.map +1 -0
- package/dist/enums/modifierFlags.js +44 -0
- package/dist/enums/modifierFlags.js.map +1 -0
- package/dist/enums/nodeFlags.d.ts +2 -0
- package/dist/enums/nodeFlags.d.ts.map +1 -0
- package/dist/enums/nodeFlags.enum.d.ts +41 -0
- package/dist/enums/nodeFlags.enum.d.ts.map +1 -0
- package/dist/enums/nodeFlags.enum.js +43 -0
- package/dist/enums/nodeFlags.enum.js.map +1 -0
- package/dist/enums/nodeFlags.js +43 -0
- package/dist/enums/nodeFlags.js.map +1 -0
- package/dist/enums/objectFlags.d.ts +2 -0
- package/dist/enums/objectFlags.d.ts.map +1 -0
- package/dist/enums/objectFlags.enum.d.ts +49 -0
- package/dist/enums/objectFlags.enum.d.ts.map +1 -0
- package/dist/enums/objectFlags.enum.js +51 -0
- package/dist/enums/objectFlags.enum.js.map +1 -0
- package/dist/enums/objectFlags.js +51 -0
- package/dist/enums/objectFlags.js.map +1 -0
- package/dist/enums/outerExpressionKinds.d.ts +2 -0
- package/dist/enums/outerExpressionKinds.d.ts.map +1 -0
- package/dist/enums/outerExpressionKinds.enum.d.ts +12 -0
- package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -0
- package/dist/enums/outerExpressionKinds.enum.js +14 -0
- package/dist/enums/outerExpressionKinds.enum.js.map +1 -0
- package/dist/enums/outerExpressionKinds.js +14 -0
- package/dist/enums/outerExpressionKinds.js.map +1 -0
- package/dist/enums/regularExpressionFlags.d.ts +2 -0
- package/dist/enums/regularExpressionFlags.d.ts.map +1 -0
- package/dist/enums/regularExpressionFlags.enum.d.ts +13 -0
- package/dist/enums/regularExpressionFlags.enum.d.ts.map +1 -0
- package/dist/enums/regularExpressionFlags.enum.js +14 -0
- package/dist/enums/regularExpressionFlags.enum.js.map +1 -0
- package/dist/enums/regularExpressionFlags.js +14 -0
- package/dist/enums/regularExpressionFlags.js.map +1 -0
- package/dist/enums/scriptKind.d.ts +2 -0
- package/dist/enums/scriptKind.d.ts.map +1 -0
- package/dist/enums/scriptKind.enum.d.ts +11 -0
- package/dist/enums/scriptKind.enum.d.ts.map +1 -0
- package/dist/enums/scriptKind.enum.js +12 -0
- package/dist/enums/scriptKind.enum.js.map +1 -0
- package/dist/enums/scriptKind.js +12 -0
- package/dist/enums/scriptKind.js.map +1 -0
- package/dist/enums/scriptTarget.d.ts +2 -0
- package/dist/enums/scriptTarget.d.ts.map +1 -0
- package/dist/enums/scriptTarget.enum.d.ts +17 -0
- package/dist/enums/scriptTarget.enum.d.ts.map +1 -0
- package/dist/enums/scriptTarget.enum.js +18 -0
- package/dist/enums/scriptTarget.enum.js.map +1 -0
- package/dist/enums/scriptTarget.js +18 -0
- package/dist/enums/scriptTarget.js.map +1 -0
- package/dist/enums/signatureFlags.d.ts +2 -0
- package/dist/enums/signatureFlags.d.ts.map +1 -0
- package/dist/enums/signatureFlags.enum.d.ts +15 -0
- package/dist/enums/signatureFlags.enum.d.ts.map +1 -0
- package/dist/enums/signatureFlags.enum.js +17 -0
- package/dist/enums/signatureFlags.enum.js.map +1 -0
- package/dist/enums/signatureFlags.js +17 -0
- package/dist/enums/signatureFlags.js.map +1 -0
- package/dist/enums/signatureKind.d.ts +2 -0
- package/dist/enums/signatureKind.d.ts.map +1 -0
- package/dist/enums/signatureKind.enum.d.ts +5 -0
- package/dist/enums/signatureKind.enum.d.ts.map +1 -0
- package/dist/enums/signatureKind.enum.js +7 -0
- package/dist/enums/signatureKind.enum.js.map +1 -0
- package/dist/enums/signatureKind.js +7 -0
- package/dist/enums/signatureKind.js.map +1 -0
- package/dist/enums/symbolFlags.d.ts +2 -0
- package/dist/enums/symbolFlags.d.ts.map +1 -0
- package/dist/enums/symbolFlags.enum.d.ts +71 -0
- package/dist/enums/symbolFlags.enum.d.ts.map +1 -0
- package/dist/enums/symbolFlags.enum.js +73 -0
- package/dist/enums/symbolFlags.enum.js.map +1 -0
- package/dist/enums/symbolFlags.js +73 -0
- package/dist/enums/symbolFlags.js.map +1 -0
- package/dist/enums/syntaxKind.d.ts +2 -0
- package/dist/enums/syntaxKind.d.ts.map +1 -0
- package/dist/enums/syntaxKind.enum.d.ts +389 -0
- package/dist/enums/syntaxKind.enum.d.ts.map +1 -0
- package/dist/enums/syntaxKind.enum.js +391 -0
- package/dist/enums/syntaxKind.enum.js.map +1 -0
- package/dist/enums/syntaxKind.js +391 -0
- package/dist/enums/syntaxKind.js.map +1 -0
- package/dist/enums/tokenFlags.d.ts +2 -0
- package/dist/enums/tokenFlags.d.ts.map +1 -0
- package/dist/enums/tokenFlags.enum.d.ts +30 -0
- package/dist/enums/tokenFlags.enum.d.ts.map +1 -0
- package/dist/enums/tokenFlags.enum.js +32 -0
- package/dist/enums/tokenFlags.enum.js.map +1 -0
- package/dist/enums/tokenFlags.js +32 -0
- package/dist/enums/tokenFlags.js.map +1 -0
- package/dist/enums/typeFlags.d.ts +2 -0
- package/dist/enums/typeFlags.d.ts.map +1 -0
- package/dist/enums/typeFlags.enum.d.ts +76 -0
- package/dist/enums/typeFlags.enum.d.ts.map +1 -0
- package/dist/enums/typeFlags.enum.js +78 -0
- package/dist/enums/typeFlags.enum.js.map +1 -0
- package/dist/enums/typeFlags.js +78 -0
- package/dist/enums/typeFlags.js.map +1 -0
- package/dist/enums/typePredicateKind.d.ts +2 -0
- package/dist/enums/typePredicateKind.d.ts.map +1 -0
- package/dist/enums/typePredicateKind.enum.d.ts +7 -0
- package/dist/enums/typePredicateKind.enum.d.ts.map +1 -0
- package/dist/enums/typePredicateKind.enum.js +9 -0
- package/dist/enums/typePredicateKind.enum.js.map +1 -0
- package/dist/enums/typePredicateKind.js +9 -0
- package/dist/enums/typePredicateKind.js.map +1 -0
- package/lib/getExePath.d.ts +2 -0
- package/package.json +57 -12
- package/vendor/vscode-jsonrpc/README.md +69 -0
- package/vendor/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
- package/vendor/vscode-jsonrpc/lib/browser/main.js +83 -0
- package/vendor/vscode-jsonrpc/lib/browser/ril.d.ts +22 -0
- package/vendor/vscode-jsonrpc/lib/browser/ril.js +203 -0
- package/vendor/vscode-jsonrpc/lib/common/api.d.ts +14 -0
- package/vendor/vscode-jsonrpc/lib/common/api.js +87 -0
- package/vendor/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
- package/vendor/vscode-jsonrpc/lib/common/cancellation.js +132 -0
- package/vendor/vscode-jsonrpc/lib/common/connection.d.ts +367 -0
- package/vendor/vscode-jsonrpc/lib/common/connection.js +1272 -0
- package/vendor/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
- package/vendor/vscode-jsonrpc/lib/common/disposable.js +16 -0
- package/vendor/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
- package/vendor/vscode-jsonrpc/lib/common/encoding.js +70 -0
- package/vendor/vscode-jsonrpc/lib/common/events.d.ts +39 -0
- package/vendor/vscode-jsonrpc/lib/common/events.js +136 -0
- package/vendor/vscode-jsonrpc/lib/common/is.d.ts +7 -0
- package/vendor/vscode-jsonrpc/lib/common/is.js +34 -0
- package/vendor/vscode-jsonrpc/lib/common/linkedMap.d.ts +55 -0
- package/vendor/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
- package/vendor/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
- package/vendor/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
- package/vendor/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
- package/vendor/vscode-jsonrpc/lib/common/messageReader.js +246 -0
- package/vendor/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
- package/vendor/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
- package/vendor/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
- package/vendor/vscode-jsonrpc/lib/common/messages.js +436 -0
- package/vendor/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
- package/vendor/vscode-jsonrpc/lib/common/ral.js +23 -0
- package/vendor/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
- package/vendor/vscode-jsonrpc/lib/common/semaphore.js +74 -0
- package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
- package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
- package/vendor/vscode-jsonrpc/lib/node/main.d.ts +58 -0
- package/vendor/vscode-jsonrpc/lib/node/main.js +289 -0
- package/vendor/vscode-jsonrpc/lib/node/ril.d.ts +12 -0
- package/vendor/vscode-jsonrpc/lib/node/ril.js +163 -0
- package/vendor/vscode-jsonrpc/package.json +54 -0
- package/vendor/vscode-jsonrpc/typings/thenable.d.ts +5 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// Code generated by _scripts/generate-encoder.ts. DO NOT EDIT.
|
|
2
|
+
import { SyntaxKind } from "../../ast/index.js";
|
|
3
|
+
import { NODE_DATA_TYPE_CHILDREN, NODE_DATA_TYPE_EXTENDED, NODE_DATA_TYPE_STRING, } from "./protocol.js";
|
|
4
|
+
export function getNodeDataType(kind) {
|
|
5
|
+
switch (kind) {
|
|
6
|
+
case SyntaxKind.Identifier:
|
|
7
|
+
case SyntaxKind.PrivateIdentifier:
|
|
8
|
+
case SyntaxKind.JsxText:
|
|
9
|
+
case SyntaxKind.JSDocText:
|
|
10
|
+
case SyntaxKind.JSDocLink:
|
|
11
|
+
case SyntaxKind.JSDocLinkPlain:
|
|
12
|
+
case SyntaxKind.JSDocLinkCode:
|
|
13
|
+
return NODE_DATA_TYPE_STRING;
|
|
14
|
+
case SyntaxKind.StringLiteral:
|
|
15
|
+
case SyntaxKind.NumericLiteral:
|
|
16
|
+
case SyntaxKind.BigIntLiteral:
|
|
17
|
+
case SyntaxKind.RegularExpressionLiteral:
|
|
18
|
+
case SyntaxKind.NoSubstitutionTemplateLiteral:
|
|
19
|
+
case SyntaxKind.TemplateHead:
|
|
20
|
+
case SyntaxKind.TemplateMiddle:
|
|
21
|
+
case SyntaxKind.TemplateTail:
|
|
22
|
+
case SyntaxKind.SourceFile:
|
|
23
|
+
return NODE_DATA_TYPE_EXTENDED;
|
|
24
|
+
default:
|
|
25
|
+
return NODE_DATA_TYPE_CHILDREN;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function getNodeCommonData(node) {
|
|
29
|
+
switch (node.kind) {
|
|
30
|
+
case SyntaxKind.Block:
|
|
31
|
+
return (node.multiLine ? 1 : 0) << 24;
|
|
32
|
+
case SyntaxKind.HeritageClause:
|
|
33
|
+
return (node.token === SyntaxKind.ImplementsKeyword ? 1 : 0) << 24;
|
|
34
|
+
case SyntaxKind.ExportAssignment:
|
|
35
|
+
return (node.isExportEquals ? 1 : 0) << 24;
|
|
36
|
+
case SyntaxKind.ExportSpecifier:
|
|
37
|
+
return (node.isTypeOnly ? 1 : 0) << 24;
|
|
38
|
+
case SyntaxKind.PrefixUnaryExpression:
|
|
39
|
+
return (node.operator === SyntaxKind.MinusToken ? 1 : node.operator === SyntaxKind.TildeToken ? 2 : node.operator === SyntaxKind.ExclamationToken ? 3 : node.operator === SyntaxKind.PlusPlusToken ? 4 : node.operator === SyntaxKind.MinusMinusToken ? 5 : 0) << 24;
|
|
40
|
+
case SyntaxKind.PostfixUnaryExpression:
|
|
41
|
+
return (node.operator === SyntaxKind.MinusMinusToken ? 1 : 0) << 24;
|
|
42
|
+
case SyntaxKind.MetaProperty:
|
|
43
|
+
return (node.keywordToken === SyntaxKind.NewKeyword ? 1 : 0) << 24;
|
|
44
|
+
case SyntaxKind.ArrayLiteralExpression:
|
|
45
|
+
return (node.multiLine ? 1 : 0) << 24;
|
|
46
|
+
case SyntaxKind.ObjectLiteralExpression:
|
|
47
|
+
return (node.multiLine ? 1 : 0) << 24;
|
|
48
|
+
case SyntaxKind.TypeOperator:
|
|
49
|
+
return (node.operator === SyntaxKind.ReadonlyKeyword ? 1 : node.operator === SyntaxKind.UniqueKeyword ? 2 : 0) << 24;
|
|
50
|
+
case SyntaxKind.ImportAttributes:
|
|
51
|
+
return (node.multiLine ? 1 : 0) << 24 | (node.token === SyntaxKind.AssertKeyword ? 1 : 0) << 25;
|
|
52
|
+
case SyntaxKind.JsxText:
|
|
53
|
+
return (node.containsOnlyTriviaWhiteSpaces ? 1 : 0) << 24;
|
|
54
|
+
case SyntaxKind.ModuleDeclaration:
|
|
55
|
+
return (node.keyword === SyntaxKind.NamespaceKeyword ? 1 : 0) << 24;
|
|
56
|
+
case SyntaxKind.ImportEqualsDeclaration:
|
|
57
|
+
return (node.isTypeOnly ? 1 : 0) << 24;
|
|
58
|
+
case SyntaxKind.ExportDeclaration:
|
|
59
|
+
return (node.isTypeOnly ? 1 : 0) << 24;
|
|
60
|
+
case SyntaxKind.ImportType:
|
|
61
|
+
return (node.isTypeOf ? 1 : 0) << 24;
|
|
62
|
+
case SyntaxKind.ImportClause:
|
|
63
|
+
return (node.phaseModifier === SyntaxKind.TypeKeyword ? 1 : node.phaseModifier === SyntaxKind.DeferKeyword ? 2 : 0) << 24;
|
|
64
|
+
case SyntaxKind.ImportSpecifier:
|
|
65
|
+
return (node.isTypeOnly ? 1 : 0) << 24;
|
|
66
|
+
case SyntaxKind.JSDocTypeLiteral:
|
|
67
|
+
return (node.isArrayType ? 1 : 0) << 24;
|
|
68
|
+
case SyntaxKind.JSDocParameterTag:
|
|
69
|
+
case SyntaxKind.JSDocPropertyTag:
|
|
70
|
+
return (node.isBracketed ? 1 : 0) << 24 | (node.isNameFirst ? 1 : 0) << 25;
|
|
71
|
+
}
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=encoder.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.generated.js","sourceRoot":"","sources":["../../../src/api/node/encoder.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../ast/index.js";
|
|
2
|
+
import { getNodeCommonData, getNodeDataType, } from "./encoder.generated.js";
|
|
3
|
+
import { MsgpackWriter } from "./msgpack.js";
|
|
4
|
+
import { childProperties, HEADER_OFFSET_EXTENDED_DATA, HEADER_OFFSET_METADATA, HEADER_OFFSET_NODES, HEADER_OFFSET_STRING_TABLE, HEADER_OFFSET_STRING_TABLE_OFFSETS, HEADER_OFFSET_STRUCTURED_DATA, HEADER_SIZE, KIND_NODE_LIST, NODE_DATA_TYPE_CHILDREN, NODE_DATA_TYPE_EXTENDED, NODE_DATA_TYPE_STRING, NODE_LEN, PROTOCOL_VERSION, } from "./protocol.js";
|
|
5
|
+
const NODE_FIELDS = NODE_LEN / 4;
|
|
6
|
+
const NODE_FIELD_NEXT = 3;
|
|
7
|
+
const NO_STRUCTURED_DATA = 0xFFFFFFFF;
|
|
8
|
+
// String table that accumulates strings into a flat byte pool.
|
|
9
|
+
class StringTable {
|
|
10
|
+
parts;
|
|
11
|
+
byteLen;
|
|
12
|
+
offsets;
|
|
13
|
+
constructor() {
|
|
14
|
+
this.parts = [];
|
|
15
|
+
this.byteLen = 0;
|
|
16
|
+
this.offsets = [];
|
|
17
|
+
}
|
|
18
|
+
add(text) {
|
|
19
|
+
const index = this.offsets.length;
|
|
20
|
+
const encoder = cachedEncoder();
|
|
21
|
+
const encodedLength = encoder.encode(text).length;
|
|
22
|
+
const offset = this.byteLen;
|
|
23
|
+
this.parts.push(text);
|
|
24
|
+
this.byteLen += encodedLength;
|
|
25
|
+
this.offsets.push(offset, offset + encodedLength);
|
|
26
|
+
return index;
|
|
27
|
+
}
|
|
28
|
+
encode() {
|
|
29
|
+
const encoder = cachedEncoder();
|
|
30
|
+
const dataBytes = encoder.encode(this.parts.join(""));
|
|
31
|
+
const offsetBytes = new Uint8Array(this.offsets.length * 4);
|
|
32
|
+
const view = new DataView(offsetBytes.buffer);
|
|
33
|
+
for (let i = 0; i < this.offsets.length; i++) {
|
|
34
|
+
view.setUint32(i * 4, this.offsets[i], true);
|
|
35
|
+
}
|
|
36
|
+
const result = new Uint8Array(offsetBytes.length + dataBytes.length);
|
|
37
|
+
result.set(offsetBytes, 0);
|
|
38
|
+
result.set(dataBytes, offsetBytes.length);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
stringByteLength() {
|
|
42
|
+
return this.byteLen;
|
|
43
|
+
}
|
|
44
|
+
offsetsCount() {
|
|
45
|
+
return this.offsets.length;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
let _encoder;
|
|
49
|
+
function cachedEncoder() {
|
|
50
|
+
return _encoder ??= new TextEncoder();
|
|
51
|
+
}
|
|
52
|
+
function getChildrenPropertyMask(node) {
|
|
53
|
+
const kind = node.kind;
|
|
54
|
+
// Special handling for JSDocParameterTag and JSDocPropertyTag
|
|
55
|
+
if (kind === SyntaxKind.JSDocParameterTag || kind === SyntaxKind.JSDocPropertyTag) {
|
|
56
|
+
const tag = node;
|
|
57
|
+
if (tag.isNameFirst) {
|
|
58
|
+
return (boolBit(tag.tagName) << 0) | (boolBit(tag.name) << 1) | (boolBit(tag.typeExpression) << 2) | (boolBit(tag.comment) << 3);
|
|
59
|
+
}
|
|
60
|
+
return (boolBit(tag.tagName) << 0) | (boolBit(tag.typeExpression) << 1) | (boolBit(tag.name) << 2) | (boolBit(tag.comment) << 3);
|
|
61
|
+
}
|
|
62
|
+
const props = childProperties[kind];
|
|
63
|
+
if (!props) {
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
const n = node;
|
|
67
|
+
let mask = 0;
|
|
68
|
+
for (let i = 0; i < props.length; i++) {
|
|
69
|
+
const prop = props[i];
|
|
70
|
+
if (prop !== undefined && isChildPresent(n[prop])) {
|
|
71
|
+
mask |= 1 << i;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return mask;
|
|
75
|
+
}
|
|
76
|
+
function boolBit(v) {
|
|
77
|
+
return isChildPresent(v) ? 1 : 0;
|
|
78
|
+
}
|
|
79
|
+
// A child is "present" if it's non-null/non-undefined.
|
|
80
|
+
// This matches the Go encoder's behavior where non-nil NodeLists (even empty)
|
|
81
|
+
// are treated as present, and only nil NodeLists are absent.
|
|
82
|
+
function isChildPresent(v) {
|
|
83
|
+
if (v === undefined || v === null)
|
|
84
|
+
return false;
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
function recordNodeStrings(node, strs) {
|
|
88
|
+
return strs.add(node.text ?? "");
|
|
89
|
+
}
|
|
90
|
+
function encodeFileReferences(refs, writer) {
|
|
91
|
+
if (!refs || refs.length === 0)
|
|
92
|
+
return NO_STRUCTURED_DATA;
|
|
93
|
+
const offset = writer.finish().length;
|
|
94
|
+
writer.writeArrayHeader(refs.length);
|
|
95
|
+
for (const ref of refs) {
|
|
96
|
+
writer.writeArrayHeader(5);
|
|
97
|
+
writer.writeUint(ref.pos);
|
|
98
|
+
writer.writeUint(ref.end);
|
|
99
|
+
writer.writeString(ref.fileName);
|
|
100
|
+
writer.writeUint(ref.resolutionMode ?? 0);
|
|
101
|
+
writer.writeBool(ref.preserve ?? false);
|
|
102
|
+
}
|
|
103
|
+
return offset;
|
|
104
|
+
}
|
|
105
|
+
function recordExtendedData(node, strs, extendedData, structuredWriter) {
|
|
106
|
+
const offset = extendedData.length * 4;
|
|
107
|
+
if (node.kind === SyntaxKind.SourceFile) {
|
|
108
|
+
const sf = node;
|
|
109
|
+
const textIndex = strs.add(sf.text);
|
|
110
|
+
const fileNameIndex = strs.add(sf.fileName);
|
|
111
|
+
const pathIndex = strs.add(sf.path);
|
|
112
|
+
const referencedFilesOffset = encodeFileReferences(sf.referencedFiles, structuredWriter);
|
|
113
|
+
const typeRefDirectivesOffset = encodeFileReferences(sf.typeReferenceDirectives, structuredWriter);
|
|
114
|
+
const libRefDirectivesOffset = encodeFileReferences(sf.libReferenceDirectives, structuredWriter);
|
|
115
|
+
extendedData.push(textIndex, fileNameIndex, pathIndex, sf.languageVariant, sf.scriptKind, referencedFilesOffset, typeRefDirectivesOffset, libRefDirectivesOffset, NO_STRUCTURED_DATA, NO_STRUCTURED_DATA, NO_STRUCTURED_DATA, 0);
|
|
116
|
+
}
|
|
117
|
+
else if (node.kind === SyntaxKind.TemplateHead ||
|
|
118
|
+
node.kind === SyntaxKind.TemplateMiddle ||
|
|
119
|
+
node.kind === SyntaxKind.TemplateTail) {
|
|
120
|
+
const tmpl = node;
|
|
121
|
+
const text = tmpl.text ?? "";
|
|
122
|
+
const rawText = tmpl.rawText ?? "";
|
|
123
|
+
const templateFlags = tmpl.templateFlags ?? 0;
|
|
124
|
+
const textIndex = strs.add(text);
|
|
125
|
+
const rawTextIndex = strs.add(rawText);
|
|
126
|
+
extendedData.push(textIndex, rawTextIndex, templateFlags);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// StringLiteral, NumericLiteral, BigIntLiteral, RegularExpressionLiteral,
|
|
130
|
+
// NoSubstitutionTemplateLiteral — format: [textIndex, tokenFlags]
|
|
131
|
+
const n = node;
|
|
132
|
+
const text = n.text ?? "";
|
|
133
|
+
const tokenFlags = n.tokenFlags ?? 0;
|
|
134
|
+
const textIndex = strs.add(text);
|
|
135
|
+
extendedData.push(textIndex, tokenFlags);
|
|
136
|
+
}
|
|
137
|
+
return offset;
|
|
138
|
+
}
|
|
139
|
+
function getNodeData(node, strs, extendedData, structuredWriter) {
|
|
140
|
+
const t = getNodeDataType(node.kind);
|
|
141
|
+
const common = getNodeCommonData(node);
|
|
142
|
+
switch (t) {
|
|
143
|
+
case NODE_DATA_TYPE_CHILDREN:
|
|
144
|
+
return t | common | getChildrenPropertyMask(node);
|
|
145
|
+
case NODE_DATA_TYPE_STRING:
|
|
146
|
+
return t | common | recordNodeStrings(node, strs);
|
|
147
|
+
case NODE_DATA_TYPE_EXTENDED:
|
|
148
|
+
return t | common | recordExtendedData(node, strs, extendedData, structuredWriter);
|
|
149
|
+
default:
|
|
150
|
+
throw new Error("unreachable");
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function getChildPropertiesForNode(node) {
|
|
154
|
+
const kind = node.kind;
|
|
155
|
+
if (kind === SyntaxKind.JSDocParameterTag || kind === SyntaxKind.JSDocPropertyTag) {
|
|
156
|
+
return node.isNameFirst
|
|
157
|
+
? ["tagName", "name", "typeExpression", "comment"]
|
|
158
|
+
: ["tagName", "typeExpression", "name", "comment"];
|
|
159
|
+
}
|
|
160
|
+
return childProperties[kind];
|
|
161
|
+
}
|
|
162
|
+
// Returns whether a value is a NodeArray (array-like with pos and end).
|
|
163
|
+
function isNodeArray(value) {
|
|
164
|
+
return Array.isArray(value) && typeof value.pos === "number" && typeof value.end === "number";
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Encode a SourceFile AST node into the binary format.
|
|
168
|
+
*/
|
|
169
|
+
export function encodeSourceFile(sourceFile) {
|
|
170
|
+
return encodeNode(sourceFile);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Encode an arbitrary AST node into the binary format.
|
|
174
|
+
* When encoding a non-SourceFile node, the header hash and parse options fields will be zero.
|
|
175
|
+
*/
|
|
176
|
+
export function encodeNode(node) {
|
|
177
|
+
const strs = new StringTable();
|
|
178
|
+
const extendedDataValues = [];
|
|
179
|
+
const structuredWriter = new MsgpackWriter();
|
|
180
|
+
// We'll build an array of uint32 values for the nodes section, 7 per node
|
|
181
|
+
const nodeValues = [];
|
|
182
|
+
// Nil node (index 0)
|
|
183
|
+
nodeValues.push(0, 0, 0, 0, 0, 0, 0);
|
|
184
|
+
let nodeCount = 0;
|
|
185
|
+
let parentIndex = 0;
|
|
186
|
+
let prevIndex = 0;
|
|
187
|
+
function visitNode(node) {
|
|
188
|
+
nodeCount++;
|
|
189
|
+
const currentIndex = nodeCount;
|
|
190
|
+
if (prevIndex !== 0) {
|
|
191
|
+
// Set next pointer on previous sibling
|
|
192
|
+
nodeValues[prevIndex * NODE_FIELDS + NODE_FIELD_NEXT] = currentIndex;
|
|
193
|
+
}
|
|
194
|
+
const data = getNodeData(node, strs, extendedDataValues, structuredWriter);
|
|
195
|
+
nodeValues.push(node.kind, node.pos >= 0 ? node.pos : 0, node.end >= 0 ? node.end : 0, 0, // next (filled in later)
|
|
196
|
+
parentIndex, data, node.flags);
|
|
197
|
+
const saveParentIndex = parentIndex;
|
|
198
|
+
const savePrevIndex = prevIndex;
|
|
199
|
+
parentIndex = currentIndex;
|
|
200
|
+
prevIndex = 0;
|
|
201
|
+
visitChildren(node);
|
|
202
|
+
prevIndex = currentIndex;
|
|
203
|
+
parentIndex = saveParentIndex;
|
|
204
|
+
}
|
|
205
|
+
function visitNodeList(list) {
|
|
206
|
+
if (!list) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
nodeCount++;
|
|
210
|
+
const currentIndex = nodeCount;
|
|
211
|
+
if (prevIndex !== 0) {
|
|
212
|
+
nodeValues[prevIndex * NODE_FIELDS + NODE_FIELD_NEXT] = currentIndex;
|
|
213
|
+
}
|
|
214
|
+
nodeValues.push(KIND_NODE_LIST, list.pos >= 0 ? list.pos : 0, list.end >= 0 ? list.end : 0, 0, // next
|
|
215
|
+
parentIndex, list.length, // data for NodeList is its length
|
|
216
|
+
0);
|
|
217
|
+
const saveParentIndex = parentIndex;
|
|
218
|
+
parentIndex = currentIndex;
|
|
219
|
+
prevIndex = 0;
|
|
220
|
+
for (const child of list) {
|
|
221
|
+
visitNode(child);
|
|
222
|
+
}
|
|
223
|
+
prevIndex = currentIndex;
|
|
224
|
+
parentIndex = saveParentIndex;
|
|
225
|
+
}
|
|
226
|
+
function visitChildren(node) {
|
|
227
|
+
const props = getChildPropertiesForNode(node);
|
|
228
|
+
const n = node;
|
|
229
|
+
if (props) {
|
|
230
|
+
for (const propName of props) {
|
|
231
|
+
if (propName === undefined)
|
|
232
|
+
continue;
|
|
233
|
+
const child = n[propName];
|
|
234
|
+
if (child === undefined || child === null)
|
|
235
|
+
continue;
|
|
236
|
+
if (isNodeArray(child)) {
|
|
237
|
+
visitNodeList(child);
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
visitNode(child);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// Encode root node
|
|
246
|
+
nodeCount++;
|
|
247
|
+
parentIndex++;
|
|
248
|
+
const rootData = getNodeData(node, strs, extendedDataValues, structuredWriter);
|
|
249
|
+
nodeValues.push(node.kind, node.pos >= 0 ? node.pos : 0, node.end >= 0 ? node.end : 0, 0, 0, rootData, node.flags);
|
|
250
|
+
const saveParent = parentIndex;
|
|
251
|
+
prevIndex = 0;
|
|
252
|
+
parentIndex = 1; // root is at index 1
|
|
253
|
+
visitChildren(node);
|
|
254
|
+
parentIndex = saveParent;
|
|
255
|
+
// Encode extended data section
|
|
256
|
+
const extendedDataBytes = new Uint8Array(extendedDataValues.length * 4);
|
|
257
|
+
const extView = new DataView(extendedDataBytes.buffer);
|
|
258
|
+
for (let i = 0; i < extendedDataValues.length; i++) {
|
|
259
|
+
extView.setUint32(i * 4, extendedDataValues[i], true);
|
|
260
|
+
}
|
|
261
|
+
// Encode structured data section
|
|
262
|
+
const structuredDataBytes = structuredWriter.finish();
|
|
263
|
+
// Encode string table
|
|
264
|
+
const strsBytes = strs.encode();
|
|
265
|
+
// Encode nodes section
|
|
266
|
+
const nodesBytes = new Uint8Array(nodeValues.length * 4);
|
|
267
|
+
const nodesView = new DataView(nodesBytes.buffer);
|
|
268
|
+
for (let i = 0; i < nodeValues.length; i++) {
|
|
269
|
+
nodesView.setUint32(i * 4, nodeValues[i] >>> 0, true);
|
|
270
|
+
}
|
|
271
|
+
// Calculate section offsets
|
|
272
|
+
const offsetStringTableOffsets = HEADER_SIZE;
|
|
273
|
+
const offsetStringTableData = HEADER_SIZE + strs.offsetsCount() * 4;
|
|
274
|
+
const offsetExtendedData = offsetStringTableData + strs.stringByteLength();
|
|
275
|
+
const offsetStructuredData = offsetExtendedData + extendedDataBytes.length;
|
|
276
|
+
const offsetNodes = offsetStructuredData + structuredDataBytes.length;
|
|
277
|
+
// Build header
|
|
278
|
+
const header = new Uint8Array(HEADER_SIZE);
|
|
279
|
+
const headerView = new DataView(header.buffer);
|
|
280
|
+
const metadata = PROTOCOL_VERSION << 24;
|
|
281
|
+
headerView.setUint32(HEADER_OFFSET_METADATA, metadata, true);
|
|
282
|
+
// bytes 4-19: hash (zero for non-SourceFile, we don't have access to xxh3 here)
|
|
283
|
+
// byte 20-23: parse options (zero for non-SourceFile)
|
|
284
|
+
headerView.setUint32(HEADER_OFFSET_STRING_TABLE_OFFSETS, offsetStringTableOffsets, true);
|
|
285
|
+
headerView.setUint32(HEADER_OFFSET_STRING_TABLE, offsetStringTableData, true);
|
|
286
|
+
headerView.setUint32(HEADER_OFFSET_EXTENDED_DATA, offsetExtendedData, true);
|
|
287
|
+
headerView.setUint32(HEADER_OFFSET_STRUCTURED_DATA, offsetStructuredData, true);
|
|
288
|
+
headerView.setUint32(HEADER_OFFSET_NODES, offsetNodes, true);
|
|
289
|
+
// Concatenate all sections
|
|
290
|
+
const result = new Uint8Array(header.length + strsBytes.length + extendedDataBytes.length + structuredDataBytes.length + nodesBytes.length);
|
|
291
|
+
result.set(header, 0);
|
|
292
|
+
result.set(strsBytes, HEADER_SIZE);
|
|
293
|
+
result.set(extendedDataBytes, offsetExtendedData);
|
|
294
|
+
result.set(structuredDataBytes, offsetStructuredData);
|
|
295
|
+
result.set(nodesBytes, offsetNodes);
|
|
296
|
+
return result;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Encode a Uint8Array to a base64 string.
|
|
300
|
+
*/
|
|
301
|
+
export function uint8ArrayToBase64(data) {
|
|
302
|
+
return Buffer.from(data).toString("base64");
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/api/node/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const MSGPACK_FIXARRAY3 = 147;
|
|
2
|
+
export declare const MSGPACK_BIN8 = 196;
|
|
3
|
+
export declare const MSGPACK_BIN16 = 197;
|
|
4
|
+
export declare const MSGPACK_BIN32 = 198;
|
|
5
|
+
export declare const MSGPACK_UINT8 = 204;
|
|
6
|
+
/** Compute the MessagePack bin header size for a given data length. */
|
|
7
|
+
export declare function binHeaderSize(len: number): number;
|
|
8
|
+
/** Write a MessagePack bin header into `buf` at `off`, return new offset. */
|
|
9
|
+
export declare function writeBinHeader(buf: Uint8Array, off: number, len: number): number;
|
|
10
|
+
export declare class MsgpackWriter {
|
|
11
|
+
private buf;
|
|
12
|
+
private view;
|
|
13
|
+
private pos;
|
|
14
|
+
constructor(initialSize?: number);
|
|
15
|
+
private ensure;
|
|
16
|
+
writeArrayHeader(length: number): void;
|
|
17
|
+
writeUint(value: number): void;
|
|
18
|
+
writeString(str: string): void;
|
|
19
|
+
writeBool(value: boolean): void;
|
|
20
|
+
finish(): Uint8Array;
|
|
21
|
+
}
|
|
22
|
+
export declare class MsgpackReader {
|
|
23
|
+
private buf;
|
|
24
|
+
private view;
|
|
25
|
+
private pos;
|
|
26
|
+
constructor(data: Uint8Array, offset?: number);
|
|
27
|
+
readArrayHeader(): number;
|
|
28
|
+
readUint(): number;
|
|
29
|
+
readString(): string;
|
|
30
|
+
readBool(): boolean;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=msgpack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msgpack.d.ts","sourceRoot":"","sources":["../../../src/api/node/msgpack.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,MAAO,CAAC;AACtC,eAAO,MAAM,YAAY,MAAO,CAAC;AACjC,eAAO,MAAM,aAAa,MAAO,CAAC;AAClC,eAAO,MAAM,aAAa,MAAO,CAAC;AAClC,eAAO,MAAM,aAAa,MAAO,CAAC;AAIlC,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBhF;AAKD,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,GAAG,CAAS;gBAER,WAAW,SAAM;IAM7B,OAAO,CAAC,MAAM;IAWd,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBtC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwB9B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA4B9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK/B,MAAM,IAAI,UAAU;CAGvB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,GAAG,CAAS;gBAER,IAAI,EAAE,UAAU,EAAE,MAAM,SAAI;IAMxC,eAAe,IAAI,MAAM;IAgBzB,QAAQ,IAAI,MAAM;IAiBlB,UAAU,IAAI,MAAM;IAyBpB,QAAQ,IAAI,OAAO;CAMtB"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// Minimal msgpack encoder/decoder.
|
|
2
|
+
// Supports: arrays, unsigned integers, strings, booleans, binary data.
|
|
3
|
+
// ── MessagePack format constants ────────────────────────────────────
|
|
4
|
+
export const MSGPACK_FIXARRAY3 = 0x93; // 3-element fixarray
|
|
5
|
+
export const MSGPACK_BIN8 = 0xc4;
|
|
6
|
+
export const MSGPACK_BIN16 = 0xc5;
|
|
7
|
+
export const MSGPACK_BIN32 = 0xc6;
|
|
8
|
+
export const MSGPACK_UINT8 = 0xcc;
|
|
9
|
+
// ── Bin header helpers ──────────────────────────────────────────────
|
|
10
|
+
/** Compute the MessagePack bin header size for a given data length. */
|
|
11
|
+
export function binHeaderSize(len) {
|
|
12
|
+
if (len < 0x100)
|
|
13
|
+
return 2; // BIN8: marker + 1-byte size
|
|
14
|
+
if (len < 0x10000)
|
|
15
|
+
return 3; // BIN16: marker + 2-byte size
|
|
16
|
+
return 5; // BIN32: marker + 4-byte size
|
|
17
|
+
}
|
|
18
|
+
/** Write a MessagePack bin header into `buf` at `off`, return new offset. */
|
|
19
|
+
export function writeBinHeader(buf, off, len) {
|
|
20
|
+
if (len < 0x100) {
|
|
21
|
+
buf[off++] = MSGPACK_BIN8;
|
|
22
|
+
buf[off++] = len;
|
|
23
|
+
}
|
|
24
|
+
else if (len < 0x10000) {
|
|
25
|
+
buf[off++] = MSGPACK_BIN16;
|
|
26
|
+
buf[off++] = (len >>> 8) & 0xff;
|
|
27
|
+
buf[off++] = len & 0xff;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
buf[off++] = MSGPACK_BIN32;
|
|
31
|
+
buf[off++] = (len >>> 24) & 0xff;
|
|
32
|
+
buf[off++] = (len >>> 16) & 0xff;
|
|
33
|
+
buf[off++] = (len >>> 8) & 0xff;
|
|
34
|
+
buf[off++] = len & 0xff;
|
|
35
|
+
}
|
|
36
|
+
return off;
|
|
37
|
+
}
|
|
38
|
+
const encoder = new TextEncoder();
|
|
39
|
+
const decoder = new TextDecoder();
|
|
40
|
+
export class MsgpackWriter {
|
|
41
|
+
buf;
|
|
42
|
+
view;
|
|
43
|
+
pos;
|
|
44
|
+
constructor(initialSize = 256) {
|
|
45
|
+
this.buf = new Uint8Array(initialSize);
|
|
46
|
+
this.view = new DataView(this.buf.buffer);
|
|
47
|
+
this.pos = 0;
|
|
48
|
+
}
|
|
49
|
+
ensure(n) {
|
|
50
|
+
if (this.pos + n > this.buf.length) {
|
|
51
|
+
let newSize = this.buf.length * 2;
|
|
52
|
+
while (newSize < this.pos + n)
|
|
53
|
+
newSize *= 2;
|
|
54
|
+
const next = new Uint8Array(newSize);
|
|
55
|
+
next.set(this.buf);
|
|
56
|
+
this.buf = next;
|
|
57
|
+
this.view = new DataView(this.buf.buffer);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
writeArrayHeader(length) {
|
|
61
|
+
if (length <= 0x0f) {
|
|
62
|
+
this.ensure(1);
|
|
63
|
+
this.buf[this.pos++] = 0x90 | length;
|
|
64
|
+
}
|
|
65
|
+
else if (length <= 0xffff) {
|
|
66
|
+
this.ensure(3);
|
|
67
|
+
this.buf[this.pos++] = 0xdc;
|
|
68
|
+
this.view.setUint16(this.pos, length, false);
|
|
69
|
+
this.pos += 2;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.ensure(5);
|
|
73
|
+
this.buf[this.pos++] = 0xdd;
|
|
74
|
+
this.view.setUint32(this.pos, length, false);
|
|
75
|
+
this.pos += 4;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
writeUint(value) {
|
|
79
|
+
if (value <= 0x7f) {
|
|
80
|
+
this.ensure(1);
|
|
81
|
+
this.buf[this.pos++] = value;
|
|
82
|
+
}
|
|
83
|
+
else if (value <= 0xff) {
|
|
84
|
+
this.ensure(2);
|
|
85
|
+
this.buf[this.pos++] = 0xcc;
|
|
86
|
+
this.buf[this.pos++] = value;
|
|
87
|
+
}
|
|
88
|
+
else if (value <= 0xffff) {
|
|
89
|
+
this.ensure(3);
|
|
90
|
+
this.buf[this.pos++] = 0xcd;
|
|
91
|
+
this.view.setUint16(this.pos, value, false);
|
|
92
|
+
this.pos += 2;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.ensure(5);
|
|
96
|
+
this.buf[this.pos++] = 0xce;
|
|
97
|
+
this.view.setUint32(this.pos, value, false);
|
|
98
|
+
this.pos += 4;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
writeString(str) {
|
|
102
|
+
const encoded = encoder.encode(str);
|
|
103
|
+
const len = encoded.length;
|
|
104
|
+
if (len <= 0x1f) {
|
|
105
|
+
this.ensure(1 + len);
|
|
106
|
+
this.buf[this.pos++] = 0xa0 | len;
|
|
107
|
+
}
|
|
108
|
+
else if (len <= 0xff) {
|
|
109
|
+
this.ensure(2 + len);
|
|
110
|
+
this.buf[this.pos++] = 0xd9;
|
|
111
|
+
this.buf[this.pos++] = len;
|
|
112
|
+
}
|
|
113
|
+
else if (len <= 0xffff) {
|
|
114
|
+
this.ensure(3 + len);
|
|
115
|
+
this.buf[this.pos++] = 0xda;
|
|
116
|
+
this.view.setUint16(this.pos, len, false);
|
|
117
|
+
this.pos += 2;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.ensure(5 + len);
|
|
121
|
+
this.buf[this.pos++] = 0xdb;
|
|
122
|
+
this.view.setUint32(this.pos, len, false);
|
|
123
|
+
this.pos += 4;
|
|
124
|
+
}
|
|
125
|
+
this.buf.set(encoded, this.pos);
|
|
126
|
+
this.pos += len;
|
|
127
|
+
}
|
|
128
|
+
writeBool(value) {
|
|
129
|
+
this.ensure(1);
|
|
130
|
+
this.buf[this.pos++] = value ? 0xc3 : 0xc2;
|
|
131
|
+
}
|
|
132
|
+
finish() {
|
|
133
|
+
return this.buf.subarray(0, this.pos);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export class MsgpackReader {
|
|
137
|
+
buf;
|
|
138
|
+
view;
|
|
139
|
+
pos;
|
|
140
|
+
constructor(data, offset = 0) {
|
|
141
|
+
this.buf = data;
|
|
142
|
+
this.view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
143
|
+
this.pos = offset;
|
|
144
|
+
}
|
|
145
|
+
readArrayHeader() {
|
|
146
|
+
const byte = this.buf[this.pos++];
|
|
147
|
+
if ((byte & 0xf0) === 0x90)
|
|
148
|
+
return byte & 0x0f;
|
|
149
|
+
if (byte === 0xdc) {
|
|
150
|
+
const len = this.view.getUint16(this.pos, false);
|
|
151
|
+
this.pos += 2;
|
|
152
|
+
return len;
|
|
153
|
+
}
|
|
154
|
+
if (byte === 0xdd) {
|
|
155
|
+
const len = this.view.getUint32(this.pos, false);
|
|
156
|
+
this.pos += 4;
|
|
157
|
+
return len;
|
|
158
|
+
}
|
|
159
|
+
throw new Error(`Expected array header, got 0x${byte.toString(16)}`);
|
|
160
|
+
}
|
|
161
|
+
readUint() {
|
|
162
|
+
const byte = this.buf[this.pos++];
|
|
163
|
+
if (byte <= 0x7f)
|
|
164
|
+
return byte;
|
|
165
|
+
if (byte === 0xcc)
|
|
166
|
+
return this.buf[this.pos++];
|
|
167
|
+
if (byte === 0xcd) {
|
|
168
|
+
const val = this.view.getUint16(this.pos, false);
|
|
169
|
+
this.pos += 2;
|
|
170
|
+
return val;
|
|
171
|
+
}
|
|
172
|
+
if (byte === 0xce) {
|
|
173
|
+
const val = this.view.getUint32(this.pos, false);
|
|
174
|
+
this.pos += 4;
|
|
175
|
+
return val;
|
|
176
|
+
}
|
|
177
|
+
throw new Error(`Expected uint, got 0x${byte.toString(16)}`);
|
|
178
|
+
}
|
|
179
|
+
readString() {
|
|
180
|
+
const byte = this.buf[this.pos++];
|
|
181
|
+
let len;
|
|
182
|
+
if ((byte & 0xe0) === 0xa0) {
|
|
183
|
+
len = byte & 0x1f;
|
|
184
|
+
}
|
|
185
|
+
else if (byte === 0xd9) {
|
|
186
|
+
len = this.buf[this.pos++];
|
|
187
|
+
}
|
|
188
|
+
else if (byte === 0xda) {
|
|
189
|
+
len = this.view.getUint16(this.pos, false);
|
|
190
|
+
this.pos += 2;
|
|
191
|
+
}
|
|
192
|
+
else if (byte === 0xdb) {
|
|
193
|
+
len = this.view.getUint32(this.pos, false);
|
|
194
|
+
this.pos += 4;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
throw new Error(`Expected string, got 0x${byte.toString(16)}`);
|
|
198
|
+
}
|
|
199
|
+
const str = decoder.decode(this.buf.subarray(this.pos, this.pos + len));
|
|
200
|
+
this.pos += len;
|
|
201
|
+
return str;
|
|
202
|
+
}
|
|
203
|
+
readBool() {
|
|
204
|
+
const byte = this.buf[this.pos++];
|
|
205
|
+
if (byte === 0xc3)
|
|
206
|
+
return true;
|
|
207
|
+
if (byte === 0xc2)
|
|
208
|
+
return false;
|
|
209
|
+
throw new Error(`Expected bool, got 0x${byte.toString(16)}`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=msgpack.js.map
|