@shapeshift-labs/frontier-lang-compiler 0.2.30 → 0.2.32
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/README.md +25 -2
- package/bench/smoke.mjs +3 -1
- package/dist/index.d.ts +69 -0
- package/dist/index.js +1530 -71
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -333,6 +333,7 @@ Use injected parser adapters when a real language parser is available but should
|
|
|
333
333
|
import {
|
|
334
334
|
createBabelNativeImporterAdapter,
|
|
335
335
|
createClangAstNativeImporterAdapter,
|
|
336
|
+
createCSharpRoslynNativeImporterAdapter,
|
|
336
337
|
createGoAstNativeImporterAdapter,
|
|
337
338
|
createJavaAstNativeImporterAdapter,
|
|
338
339
|
createPythonAstNativeImporterAdapter,
|
|
@@ -365,6 +366,16 @@ const javaAstAdapter = createJavaAstNativeImporterAdapter({
|
|
|
365
366
|
javaVersion: '21',
|
|
366
367
|
sourceLevel: '21'
|
|
367
368
|
});
|
|
369
|
+
const csharpRoslynAdapter = createCSharpRoslynNativeImporterAdapter({
|
|
370
|
+
parserModule: hostRoslynParser,
|
|
371
|
+
languageVersion: '12',
|
|
372
|
+
nullableContext: 'enabled'
|
|
373
|
+
});
|
|
374
|
+
const swiftSyntaxAdapter = createSwiftSyntaxNativeImporterAdapter({
|
|
375
|
+
parserModule: hostSwiftSyntaxParser,
|
|
376
|
+
swiftVersion: '6',
|
|
377
|
+
sourceKitEvidence: { hash: sourceKitIndexHash }
|
|
378
|
+
});
|
|
368
379
|
|
|
369
380
|
const imported = await runNativeImporterAdapter(babelAdapter, {
|
|
370
381
|
sourcePath: 'src/todo.ts',
|
|
@@ -373,14 +384,16 @@ const imported = await runNativeImporterAdapter(babelAdapter, {
|
|
|
373
384
|
|
|
374
385
|
const project = await importNativeProject({
|
|
375
386
|
projectRoot: 'src',
|
|
376
|
-
adapters: [babelAdapter, pythonAstAdapter, rustSynAdapter, clangAstAdapter, goAstAdapter, javaAstAdapter],
|
|
387
|
+
adapters: [babelAdapter, pythonAstAdapter, rustSynAdapter, clangAstAdapter, goAstAdapter, javaAstAdapter, csharpRoslynAdapter, swiftSyntaxAdapter],
|
|
377
388
|
sources: [
|
|
378
389
|
{ language: 'typescript', adapter: babelAdapter.id, sourcePath: 'src/todo.ts', sourceText },
|
|
379
390
|
{ language: 'python', adapter: pythonAstAdapter.id, sourcePath: 'tools/todo.py', sourceText: pythonSource },
|
|
380
391
|
{ language: 'rust', adapter: rustSynAdapter.id, sourcePath: 'src/todo.rs', sourceText: rustSource },
|
|
381
392
|
{ language: 'c', adapter: clangAstAdapter.id, sourcePath: 'native/todo.c', sourceText: cSource },
|
|
382
393
|
{ language: 'go', adapter: goAstAdapter.id, sourcePath: 'cmd/todo/main.go', sourceText: goSource },
|
|
383
|
-
{ language: 'java', adapter: javaAstAdapter.id, sourcePath: 'src/main/java/Todo.java', sourceText: javaSource }
|
|
394
|
+
{ language: 'java', adapter: javaAstAdapter.id, sourcePath: 'src/main/java/Todo.java', sourceText: javaSource },
|
|
395
|
+
{ language: 'csharp', adapter: csharpRoslynAdapter.id, sourcePath: 'src/Todo.cs', sourceText: csharpSource },
|
|
396
|
+
{ language: 'swift', adapter: swiftSyntaxAdapter.id, sourcePath: 'Sources/Todo.swift', sourceText: swiftSource }
|
|
384
397
|
]
|
|
385
398
|
});
|
|
386
399
|
|
|
@@ -404,6 +417,8 @@ The built-in adapter factories are dependency-light wrappers for caller-owned pa
|
|
|
404
417
|
- `createClangAstNativeImporterAdapter`
|
|
405
418
|
- `createGoAstNativeImporterAdapter`
|
|
406
419
|
- `createJavaAstNativeImporterAdapter`
|
|
420
|
+
- `createCSharpRoslynNativeImporterAdapter`
|
|
421
|
+
- `createSwiftSyntaxNativeImporterAdapter`
|
|
407
422
|
- `createTreeSitterNativeImporterAdapter`
|
|
408
423
|
|
|
409
424
|
Adapter summaries include a structured `coverage` record so merge queues can distinguish exact parser AST imports from declaration scans. The record declares exactness, parser token/trivia support, diagnostics support, source-range and generated-range support, and semantic coverage. Built-in wrappers normalize native AST/CST nodes and declaration-level semantic indexes; they do not claim resolved references, types, control flow, generated ranges, or token/trivia fidelity unless the host adapter supplies that evidence.
|
|
@@ -451,6 +466,10 @@ The published Frontier package family is generated from one shared package catal
|
|
|
451
466
|
- [`@shapeshift-labs/frontier-lang-rust`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-rust): Rust projection adapter for Frontier Lang semantic documents, including structs, aliases, and action stubs.
|
|
452
467
|
- [`@shapeshift-labs/frontier-lang-python`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-python): Python projection adapter for Frontier Lang semantic documents, including dataclasses, typed patch records, and action stubs.
|
|
453
468
|
- [`@shapeshift-labs/frontier-lang-c`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-c): C header projection adapter for Frontier Lang semantic documents, including structs and action prototypes.
|
|
469
|
+
- [`@shapeshift-labs/frontier-lang-java`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-java): Java source-language importer package for Frontier Lang semantic documents, including package-level metadata, Java AST adapter helpers, native import results, and semantic sidecar generation for javac/JDT/JavaParser-shaped ASTs.
|
|
470
|
+
- [`@shapeshift-labs/frontier-lang-go`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-go): Go source-language importer package for Frontier Lang semantic documents, including package-level metadata, Go AST adapter helpers, native import results, and semantic sidecar generation for go/ast File or Package trees.
|
|
471
|
+
- [`@shapeshift-labs/frontier-lang-csharp`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-csharp): C# Roslyn source-language importer package for Frontier Lang semantic documents, including package-level metadata, Roslyn adapter helpers, native import results, and semantic sidecar generation for SyntaxTree/SyntaxNode-shaped ASTs.
|
|
472
|
+
- [`@shapeshift-labs/frontier-lang-clang`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-clang): Clang AST source-language importer package for Frontier Lang semantic documents, including package-level metadata, Clang AST JSON adapter helpers, native import results, and semantic sidecar generation for C/C++ translation units.
|
|
454
473
|
- [`@shapeshift-labs/frontier-lang-cli`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang-cli): Command line interface for parsing, checking, hashing, and emitting Frontier Lang projects.
|
|
455
474
|
- [`@shapeshift-labs/frontier-lang`](https://www.npmjs.com/package/@shapeshift-labs/frontier-lang): Umbrella package for Frontier Lang kernel, parser, checker, and projection adapters.
|
|
456
475
|
- [`@shapeshift-labs/frontier-kv`](https://www.npmjs.com/package/@shapeshift-labs/frontier-kv): Serializable in-memory key/value state for Frontier apps, including TTL, versioned compare-and-set, batched patch mutations, scans, watchers, snapshots, JSONL event evidence, and replay verification.
|
|
@@ -538,6 +557,10 @@ Package source repositories:
|
|
|
538
557
|
- [`siliconjungle/-shapeshift-labs-frontier-lang-python`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-python)
|
|
539
558
|
- [`siliconjungle/-shapeshift-labs-frontier-lang-c`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-c)
|
|
540
559
|
- [`siliconjungle/-shapeshift-labs-frontier-lang-compiler`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-compiler)
|
|
560
|
+
- [`siliconjungle/-shapeshift-labs-frontier-lang-java`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-java)
|
|
561
|
+
- [`siliconjungle/-shapeshift-labs-frontier-lang-go`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-go)
|
|
562
|
+
- [`siliconjungle/-shapeshift-labs-frontier-lang-csharp`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-csharp)
|
|
563
|
+
- [`siliconjungle/-shapeshift-labs-frontier-lang-clang`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-clang)
|
|
541
564
|
- [`siliconjungle/-shapeshift-labs-frontier-lang-cli`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang-cli)
|
|
542
565
|
- [`siliconjungle/-shapeshift-labs-frontier-lang`](https://github.com/siliconjungle/-shapeshift-labs-frontier-lang)
|
|
543
566
|
- [`siliconjungle/-shapeshift-labs-frontier-kv`](https://github.com/siliconjungle/-shapeshift-labs-frontier-kv)
|
package/bench/smoke.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
compileNativeSource,
|
|
4
4
|
compileFrontierSource,
|
|
5
5
|
createClangAstNativeImporterAdapter,
|
|
6
|
+
createCSharpRoslynNativeImporterAdapter,
|
|
6
7
|
createEstreeNativeImporterAdapter,
|
|
7
8
|
createGoAstNativeImporterAdapter,
|
|
8
9
|
createJavaAstNativeImporterAdapter,
|
|
@@ -12,6 +13,7 @@ import {
|
|
|
12
13
|
createNativeSourcePreservation,
|
|
13
14
|
createPythonAstNativeImporterAdapter,
|
|
14
15
|
createRustSynNativeImporterAdapter,
|
|
16
|
+
createSwiftSyntaxNativeImporterAdapter,
|
|
15
17
|
createSemanticImportSidecar,
|
|
16
18
|
diffNativeSources,
|
|
17
19
|
importExternalSemanticIndex,
|
|
@@ -82,7 +84,7 @@ const matrixDurationMs = performance.now() - matrixStart;
|
|
|
82
84
|
const parserFormatMatrixStart = performance.now();
|
|
83
85
|
const parserFormatMatrix = createNativeParserAstFormatMatrix({
|
|
84
86
|
imports: nativeImportResults,
|
|
85
|
-
adapters: [estreeAdapter, createPythonAstNativeImporterAdapter(), createRustSynNativeImporterAdapter(), createClangAstNativeImporterAdapter(), createGoAstNativeImporterAdapter(), createJavaAstNativeImporterAdapter()]
|
|
87
|
+
adapters: [estreeAdapter, createPythonAstNativeImporterAdapter(), createRustSynNativeImporterAdapter(), createClangAstNativeImporterAdapter(), createGoAstNativeImporterAdapter(), createJavaAstNativeImporterAdapter(), createCSharpRoslynNativeImporterAdapter(), createSwiftSyntaxNativeImporterAdapter()]
|
|
86
88
|
});
|
|
87
89
|
const parserFormatMatrixDurationMs = performance.now() - parserFormatMatrixStart;
|
|
88
90
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1497,6 +1497,73 @@ export interface JavaAstNativeImporterAdapterOptions {
|
|
|
1497
1497
|
readonly maxNodes?: number;
|
|
1498
1498
|
}
|
|
1499
1499
|
|
|
1500
|
+
export interface CSharpRoslynNativeImporterAdapterOptions {
|
|
1501
|
+
readonly id?: string;
|
|
1502
|
+
readonly language?: FrontierSourceLanguage;
|
|
1503
|
+
readonly parser?: string;
|
|
1504
|
+
readonly version?: string;
|
|
1505
|
+
readonly capabilities?: readonly string[];
|
|
1506
|
+
readonly coverage?: NativeImporterAdapterCoverageInput;
|
|
1507
|
+
readonly supportedExtensions?: readonly string[];
|
|
1508
|
+
readonly diagnostics?: readonly NativeImporterAdapterDiagnostic[];
|
|
1509
|
+
readonly ast?: unknown;
|
|
1510
|
+
readonly nativeAst?: unknown;
|
|
1511
|
+
readonly syntaxTree?: unknown;
|
|
1512
|
+
readonly tree?: unknown;
|
|
1513
|
+
readonly root?: unknown;
|
|
1514
|
+
readonly compilationUnit?: unknown;
|
|
1515
|
+
readonly parse?: (sourceText: string, options: Record<string, unknown>) => unknown;
|
|
1516
|
+
readonly parserModule?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1517
|
+
readonly roslyn?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1518
|
+
readonly csharpRoslyn?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1519
|
+
readonly parserOptions?: Record<string, unknown>;
|
|
1520
|
+
readonly csharpVersion?: string;
|
|
1521
|
+
readonly languageVersion?: string;
|
|
1522
|
+
readonly nullableContext?: string | boolean;
|
|
1523
|
+
readonly sourceCodeKind?: string;
|
|
1524
|
+
readonly generated?: boolean;
|
|
1525
|
+
readonly projectReferences?: unknown;
|
|
1526
|
+
readonly analyzerDiagnostics?: unknown;
|
|
1527
|
+
readonly semanticModelEvidence?: unknown;
|
|
1528
|
+
readonly sourceGeneratorEvidence?: unknown;
|
|
1529
|
+
readonly positionResolver?: (position: unknown) => unknown;
|
|
1530
|
+
readonly lineMap?: unknown;
|
|
1531
|
+
readonly maxNodes?: number;
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
export interface SwiftSyntaxNativeImporterAdapterOptions {
|
|
1535
|
+
readonly id?: string;
|
|
1536
|
+
readonly language?: FrontierSourceLanguage;
|
|
1537
|
+
readonly parser?: string;
|
|
1538
|
+
readonly version?: string;
|
|
1539
|
+
readonly capabilities?: readonly string[];
|
|
1540
|
+
readonly coverage?: NativeImporterAdapterCoverageInput;
|
|
1541
|
+
readonly supportedExtensions?: readonly string[];
|
|
1542
|
+
readonly diagnostics?: readonly NativeImporterAdapterDiagnostic[];
|
|
1543
|
+
readonly ast?: unknown;
|
|
1544
|
+
readonly nativeAst?: unknown;
|
|
1545
|
+
readonly sourceFile?: unknown;
|
|
1546
|
+
readonly sourceFileSyntax?: unknown;
|
|
1547
|
+
readonly root?: unknown;
|
|
1548
|
+
readonly parse?: (sourceText: string, options: Record<string, unknown>) => unknown;
|
|
1549
|
+
readonly parserModule?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1550
|
+
readonly swiftSyntax?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1551
|
+
readonly swiftParser?: { readonly parse: (sourceText: string, options: Record<string, unknown>) => unknown };
|
|
1552
|
+
readonly parserOptions?: Record<string, unknown>;
|
|
1553
|
+
readonly swiftVersion?: string;
|
|
1554
|
+
readonly languageMode?: string;
|
|
1555
|
+
readonly enableBareSlashRegex?: boolean;
|
|
1556
|
+
readonly parseTransition?: string;
|
|
1557
|
+
readonly generated?: boolean;
|
|
1558
|
+
readonly sourceKitEvidence?: unknown;
|
|
1559
|
+
readonly macroExpansionEvidence?: unknown;
|
|
1560
|
+
readonly packageResolutionEvidence?: unknown;
|
|
1561
|
+
readonly positionResolver?: (position: unknown) => unknown;
|
|
1562
|
+
readonly lineMap?: unknown;
|
|
1563
|
+
readonly sourceLocationConverter?: unknown;
|
|
1564
|
+
readonly maxNodes?: number;
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1500
1567
|
export interface TreeSitterNativeImporterAdapterOptions {
|
|
1501
1568
|
readonly id?: string;
|
|
1502
1569
|
readonly language?: FrontierSourceLanguage;
|
|
@@ -1871,6 +1938,8 @@ export declare function createRustSynNativeImporterAdapter(options?: RustSynNati
|
|
|
1871
1938
|
export declare function createClangAstNativeImporterAdapter(options?: ClangAstNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1872
1939
|
export declare function createGoAstNativeImporterAdapter(options?: GoAstNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1873
1940
|
export declare function createJavaAstNativeImporterAdapter(options?: JavaAstNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1941
|
+
export declare function createCSharpRoslynNativeImporterAdapter(options?: CSharpRoslynNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1942
|
+
export declare function createSwiftSyntaxNativeImporterAdapter(options?: SwiftSyntaxNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1874
1943
|
export declare function createTreeSitterNativeImporterAdapter(options?: TreeSitterNativeImporterAdapterOptions): NativeImporterAdapter;
|
|
1875
1944
|
export declare function runNativeImporterAdapter(adapter: NativeImporterAdapter, input: RunNativeImporterAdapterOptions): Promise<NativeImporterAdapterImportResult>;
|
|
1876
1945
|
export declare function runNativeTargetProjectionAdapter(adapter: NativeTargetProjectionAdapter, input: NativeTargetProjectionAdapterInput): NativeTargetProjectionResult;
|