@yanib/reverb-adapter-typescript 0.1.0

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.
@@ -0,0 +1,39 @@
1
+ import { canonicalContractKey } from '@yanib/reverb-adapter-sdk';
2
+ export function normalizeNpmSubpath(value) {
3
+ const trimmed = value.trim();
4
+ if (trimmed === '' || trimmed === '.')
5
+ return '.';
6
+ return `./${trimmed
7
+ .replace(/^\.\//, '')
8
+ .replace(/\/{2,}/g, '/')
9
+ .replace(/\/$/, '')}`;
10
+ }
11
+ export function typeScriptSymbolKey(registry, packageName, subpath, space, symbol) {
12
+ return canonicalContractKey('typescript', [
13
+ { name: 'Package registry', value: registry.toLowerCase() },
14
+ { name: 'Package name', value: packageName.toLowerCase() },
15
+ { name: 'Package subpath', value: normalizeNpmSubpath(subpath) },
16
+ { name: 'Symbol space', value: space },
17
+ { name: 'Symbol', value: symbol },
18
+ ]);
19
+ }
20
+ export function parseNpmSpecifier(specifier) {
21
+ if (specifier.length === 0 ||
22
+ specifier.startsWith('.') ||
23
+ specifier.startsWith('/') ||
24
+ specifier.startsWith('node:')) {
25
+ return null;
26
+ }
27
+ const segments = specifier.split('/');
28
+ const scoped = specifier.startsWith('@');
29
+ const packageLength = scoped ? 2 : 1;
30
+ if (segments.length < packageLength ||
31
+ segments.slice(0, packageLength).some((part) => part === '')) {
32
+ return null;
33
+ }
34
+ return {
35
+ packageName: segments.slice(0, packageLength).join('/'),
36
+ subpath: normalizeNpmSubpath(segments.slice(packageLength).join('/')),
37
+ };
38
+ }
39
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAClD,OAAO,KAAK,OAAO;SAChB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,WAAmB,EACnB,OAAe,EACf,KAA4B,EAC5B,MAAc;IAEd,OAAO,oBAAoB,CAAC,YAAY,EAAE;QACxC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE;QAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE;QAC1D,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE;QACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IAIjD,IACE,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QACzB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QACzB,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,IACE,QAAQ,CAAC,MAAM,GAAG,aAAa;QAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACvD,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACtE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './adapter.js';
2
+ export * from './admission.js';
3
+ export * from './identity.js';
4
+ export * from './manifest.js';
5
+ export * from './parser.js';
6
+ export declare const ADAPTER_TYPESCRIPT_PACKAGE_ID = "@yanib/reverb-adapter-typescript";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAE5B,eAAO,MAAM,6BAA6B,qCAAqC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from './adapter.js';
2
+ export * from './admission.js';
3
+ export * from './identity.js';
4
+ export * from './manifest.js';
5
+ export * from './parser.js';
6
+ export const ADAPTER_TYPESCRIPT_PACKAGE_ID = '@yanib/reverb-adapter-typescript';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,MAAM,6BAA6B,GAAG,kCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type AdapterManifest } from '@yanib/reverb-adapter-sdk';
2
+ export declare const TYPESCRIPT_ADAPTER_MANIFEST: AdapterManifest;
3
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE1F,eAAO,MAAM,2BAA2B,EAAE,eA+CxC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { adapterId } from '@yanib/reverb-domain';
2
+ import { validateAdapterManifest } from '@yanib/reverb-adapter-sdk';
3
+ export const TYPESCRIPT_ADAPTER_MANIFEST = validateAdapterManifest({
4
+ schema: 'reverb.adapter-manifest',
5
+ schemaVersion: '1.0',
6
+ id: adapterId('reverb.typescript'),
7
+ version: '0.1.0',
8
+ identityVersion: 1,
9
+ contractKinds: ['typescript_symbol'],
10
+ capabilityTiers: [
11
+ { input: 'npm package exports with TypeScript source or declarations', tier: 'contract_grade' },
12
+ { input: 'npm package exports with JavaScript source', tier: 'structural' },
13
+ { input: 'static ESM/CommonJS named imports', tier: 'structural' },
14
+ { input: 'dynamic or namespace imports', tier: 'preview' },
15
+ ],
16
+ evidenceStrata: [
17
+ {
18
+ id: 'public_export',
19
+ family: 'exact_symbol',
20
+ requiredEvidence: ['npm registry', 'package name', 'public subpath', 'symbol space'],
21
+ promotionState: 'UNMEASURED',
22
+ },
23
+ {
24
+ id: 'static_import',
25
+ family: 'exact_symbol',
26
+ requiredEvidence: ['npm package specifier', 'imported symbol', 'manifest or lock evidence'],
27
+ promotionState: 'UNMEASURED',
28
+ },
29
+ {
30
+ id: 'dynamic_import',
31
+ family: 'fallback_identity',
32
+ requiredEvidence: ['bounded import pattern', 'source location'],
33
+ promotionState: 'UNMEASURED',
34
+ },
35
+ ],
36
+ externalTools: [],
37
+ limitations: [
38
+ 'Computed exports, reflective access, and namespace-member selection remain unresolved.',
39
+ 'Complex type-system compatibility is conservative and may be potentially breaking or unknown.',
40
+ 'Package export targets that cannot be mapped to supplied source artifacts force partial coverage.',
41
+ ],
42
+ resourceBudget: {
43
+ timeoutMs: 20_000,
44
+ memoryMiB: 512,
45
+ maximumInputBytes: 16 * 1024 * 1024,
46
+ maximumOutputBytes: 8 * 1024 * 1024,
47
+ maximumItems: 150_000,
48
+ },
49
+ maintainer: 'YanibHQ/reverb-impact maintainers',
50
+ });
51
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAwB,MAAM,2BAA2B,CAAC;AAE1F,MAAM,CAAC,MAAM,2BAA2B,GAAoB,uBAAuB,CAAC;IAClF,MAAM,EAAE,yBAAyB;IACjC,aAAa,EAAE,KAAK;IACpB,EAAE,EAAE,SAAS,CAAC,mBAAmB,CAAC;IAClC,OAAO,EAAE,OAAO;IAChB,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC,mBAAmB,CAAC;IACpC,eAAe,EAAE;QACf,EAAE,KAAK,EAAE,4DAA4D,EAAE,IAAI,EAAE,gBAAgB,EAAE;QAC/F,EAAE,KAAK,EAAE,4CAA4C,EAAE,IAAI,EAAE,YAAY,EAAE;QAC3E,EAAE,KAAK,EAAE,mCAAmC,EAAE,IAAI,EAAE,YAAY,EAAE;QAClE,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,SAAS,EAAE;KAC3D;IACD,cAAc,EAAE;QACd;YACE,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,CAAC;YACpF,cAAc,EAAE,YAAY;SAC7B;QACD;YACE,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,EAAE,2BAA2B,CAAC;YAC3F,cAAc,EAAE,YAAY;SAC7B;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,mBAAmB;YAC3B,gBAAgB,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC;YAC/D,cAAc,EAAE,YAAY;SAC7B;KACF;IACD,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE;QACX,wFAAwF;QACxF,+FAA+F;QAC/F,mGAAmG;KACpG;IACD,cAAc,EAAE;QACd,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,GAAG;QACd,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QACnC,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QACnC,YAAY,EAAE,OAAO;KACtB;IACD,UAAU,EAAE,mCAAmC;CAChD,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ContentHash, RepoPath } from '@yanib/reverb-domain';
2
+ import type { ArtifactInput, SourceRange } from '@yanib/reverb-adapter-sdk';
3
+ import type { TypeScriptSymbolSpace } from './identity.js';
4
+ export interface ParsedSymbol {
5
+ readonly name: string;
6
+ readonly space: TypeScriptSymbolSpace;
7
+ readonly declarationKind: string;
8
+ readonly shape: Readonly<Record<string, unknown>>;
9
+ readonly range: SourceRange;
10
+ readonly path: RepoPath;
11
+ readonly contentHash: ContentHash;
12
+ }
13
+ export interface ReExport {
14
+ readonly source: string;
15
+ readonly imported?: string;
16
+ readonly exported?: string;
17
+ readonly typeOnly: boolean;
18
+ readonly star: boolean;
19
+ readonly range: SourceRange;
20
+ readonly path: RepoPath;
21
+ readonly contentHash: ContentHash;
22
+ }
23
+ export interface ParsedImport {
24
+ readonly source: string;
25
+ readonly symbol?: string;
26
+ readonly localName?: string;
27
+ readonly space?: TypeScriptSymbolSpace;
28
+ readonly unresolvedReason?: string;
29
+ readonly range: SourceRange;
30
+ }
31
+ export interface ParsedTypeScriptModule {
32
+ readonly artifact: ArtifactInput;
33
+ readonly symbols: readonly ParsedSymbol[];
34
+ readonly reExports: readonly ReExport[];
35
+ readonly imports: readonly ParsedImport[];
36
+ readonly parseErrors: number;
37
+ }
38
+ export declare function parseTypeScriptModule(artifact: ArtifactInput, text: string): ParsedTypeScriptModule;
39
+ export declare function resolveRelativeModule(from: string, specifier: string, available: ReadonlySet<string>): string | undefined;
40
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAsOD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,GACX,sBAAsB,CAyDxB;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAC7B,MAAM,GAAG,SAAS,CAoBpB"}
package/dist/parser.js ADDED
@@ -0,0 +1,289 @@
1
+ import { posix } from 'node:path';
2
+ import ts from 'typescript';
3
+ function range(source, node) {
4
+ const start = source.getLineAndCharacterOfPosition(node.getStart(source));
5
+ const end = source.getLineAndCharacterOfPosition(node.getEnd());
6
+ return {
7
+ startLine: start.line + 1,
8
+ startColumn: start.character + 1,
9
+ endLine: end.line + 1,
10
+ endColumn: end.character + 1,
11
+ };
12
+ }
13
+ function normalizedText(node, source) {
14
+ return node.getText(source).replace(/\s+/g, ' ').trim().slice(0, 16_384);
15
+ }
16
+ function isExported(node) {
17
+ return (ts.canHaveModifiers(node) &&
18
+ (ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) ??
19
+ false));
20
+ }
21
+ function isDefault(node) {
22
+ return (ts.canHaveModifiers(node) &&
23
+ (ts.getModifiers(node)?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) ??
24
+ false));
25
+ }
26
+ function parameterShape(parameter, source) {
27
+ return {
28
+ type: parameter.type?.getText(source).replace(/\s+/g, ' ') ?? 'unknown',
29
+ optional: parameter.questionToken !== undefined || parameter.initializer !== undefined,
30
+ rest: parameter.dotDotDotToken !== undefined,
31
+ };
32
+ }
33
+ function functionShape(node, source) {
34
+ return {
35
+ parameters: node.parameters.map((parameter) => parameterShape(parameter, source)),
36
+ returnType: node.type?.getText(source).replace(/\s+/g, ' ') ?? 'unknown',
37
+ typeParameters: node.typeParameters?.length ?? 0,
38
+ };
39
+ }
40
+ function declarationSymbol(statement, source, artifact) {
41
+ if (!isExported(statement))
42
+ return [];
43
+ const exportedName = isDefault(statement) ? 'default' : undefined;
44
+ if (ts.isFunctionDeclaration(statement)) {
45
+ const name = exportedName ?? statement.name?.text;
46
+ if (name === undefined)
47
+ return [];
48
+ return [
49
+ {
50
+ name,
51
+ space: 'value',
52
+ declarationKind: 'function',
53
+ shape: { signature: functionShape(statement, source) },
54
+ range: range(source, statement),
55
+ path: artifact.path,
56
+ contentHash: artifact.contentHash,
57
+ },
58
+ ];
59
+ }
60
+ if (ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) {
61
+ return [
62
+ {
63
+ name: statement.name.text,
64
+ space: 'type',
65
+ declarationKind: ts.isInterfaceDeclaration(statement) ? 'interface' : 'type_alias',
66
+ shape: { declaration: normalizedText(statement, source) },
67
+ range: range(source, statement),
68
+ path: artifact.path,
69
+ contentHash: artifact.contentHash,
70
+ },
71
+ ];
72
+ }
73
+ if (ts.isClassDeclaration(statement)) {
74
+ const name = exportedName ?? statement.name?.text;
75
+ if (name === undefined)
76
+ return [];
77
+ const publicMembers = statement.members
78
+ .filter((member) => !(ts.canHaveModifiers(member)
79
+ ? (ts
80
+ .getModifiers(member)
81
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword) ?? false)
82
+ : false))
83
+ .map((member) => normalizedText(member, source)
84
+ .replace(/\{[\s\S]*$/, '')
85
+ .trim());
86
+ const common = {
87
+ name,
88
+ declarationKind: 'class',
89
+ shape: { members: publicMembers },
90
+ range: range(source, statement),
91
+ path: artifact.path,
92
+ contentHash: artifact.contentHash,
93
+ };
94
+ return [
95
+ { ...common, space: 'value' },
96
+ { ...common, space: 'type' },
97
+ ];
98
+ }
99
+ if (ts.isEnumDeclaration(statement)) {
100
+ const common = {
101
+ name: statement.name.text,
102
+ declarationKind: 'enum',
103
+ shape: { declaration: normalizedText(statement, source) },
104
+ range: range(source, statement),
105
+ path: artifact.path,
106
+ contentHash: artifact.contentHash,
107
+ };
108
+ return [
109
+ { ...common, space: 'value' },
110
+ { ...common, space: 'type' },
111
+ ];
112
+ }
113
+ if (ts.isVariableStatement(statement)) {
114
+ const symbols = [];
115
+ for (const declaration of statement.declarationList.declarations) {
116
+ if (!ts.isIdentifier(declaration.name))
117
+ continue;
118
+ symbols.push({
119
+ name: declaration.name.text,
120
+ space: 'value',
121
+ declarationKind: 'variable',
122
+ shape: {
123
+ type: declaration.type?.getText(source).replace(/\s+/g, ' ') ?? 'inferred',
124
+ declarationKind: statement.declarationList.flags & ts.NodeFlags.Const ? 'const' : 'mutable',
125
+ },
126
+ range: range(source, declaration),
127
+ path: artifact.path,
128
+ contentHash: artifact.contentHash,
129
+ });
130
+ }
131
+ return symbols;
132
+ }
133
+ return [];
134
+ }
135
+ function externalImports(source) {
136
+ const imports = [];
137
+ const visit = (node) => {
138
+ if (ts.isImportDeclaration(node) && ts.isStringLiteral(node.moduleSpecifier)) {
139
+ const moduleName = node.moduleSpecifier.text;
140
+ const clause = node.importClause;
141
+ if (clause?.name !== undefined) {
142
+ imports.push({
143
+ source: moduleName,
144
+ symbol: 'default',
145
+ localName: clause.name.text,
146
+ space: clause.isTypeOnly ? 'type' : 'value',
147
+ range: range(source, node),
148
+ });
149
+ }
150
+ if (clause?.namedBindings !== undefined) {
151
+ if (ts.isNamespaceImport(clause.namedBindings)) {
152
+ imports.push({
153
+ source: moduleName,
154
+ localName: clause.namedBindings.name.text,
155
+ unresolvedReason: 'namespace_member_unknown',
156
+ range: range(source, node),
157
+ });
158
+ }
159
+ else {
160
+ for (const element of clause.namedBindings.elements) {
161
+ imports.push({
162
+ source: moduleName,
163
+ symbol: element.propertyName?.text ?? element.name.text,
164
+ localName: element.name.text,
165
+ space: clause.isTypeOnly || element.isTypeOnly ? 'type' : 'value',
166
+ range: range(source, element),
167
+ });
168
+ }
169
+ }
170
+ }
171
+ }
172
+ else if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {
173
+ const argument = node.arguments[0];
174
+ imports.push({
175
+ source: argument !== undefined && ts.isStringLiteral(argument) ? argument.text : '*',
176
+ unresolvedReason: 'dynamic_import',
177
+ range: range(source, node),
178
+ });
179
+ }
180
+ else if (ts.isCallExpression(node) &&
181
+ ts.isIdentifier(node.expression) &&
182
+ node.expression.text === 'require' &&
183
+ node.arguments.length === 1) {
184
+ const argument = node.arguments[0];
185
+ if (argument === undefined || !ts.isStringLiteral(argument)) {
186
+ ts.forEachChild(node, visit);
187
+ return;
188
+ }
189
+ const parent = node.parent;
190
+ if (ts.isVariableDeclaration(parent) && ts.isObjectBindingPattern(parent.name)) {
191
+ for (const element of parent.name.elements) {
192
+ if (!ts.isIdentifier(element.name))
193
+ continue;
194
+ imports.push({
195
+ source: argument.text,
196
+ symbol: element.propertyName?.getText(source) ?? element.name.text,
197
+ localName: element.name.text,
198
+ space: 'value',
199
+ range: range(source, element),
200
+ });
201
+ }
202
+ }
203
+ else {
204
+ imports.push({
205
+ source: argument.text,
206
+ unresolvedReason: 'commonjs_namespace_member_unknown',
207
+ range: range(source, node),
208
+ });
209
+ }
210
+ }
211
+ ts.forEachChild(node, visit);
212
+ };
213
+ visit(source);
214
+ return imports;
215
+ }
216
+ export function parseTypeScriptModule(artifact, text) {
217
+ const source = ts.createSourceFile(artifact.path, text, ts.ScriptTarget.Latest, true, artifact.path.endsWith('.tsx')
218
+ ? ts.ScriptKind.TSX
219
+ : artifact.path.endsWith('.jsx')
220
+ ? ts.ScriptKind.JSX
221
+ : /\.(?:js|mjs|cjs)$/.test(artifact.path)
222
+ ? ts.ScriptKind.JS
223
+ : ts.ScriptKind.TS);
224
+ const symbols = [];
225
+ const reExports = [];
226
+ for (const statement of source.statements) {
227
+ symbols.push(...declarationSymbol(statement, source, artifact));
228
+ if (ts.isExportDeclaration(statement) &&
229
+ statement.moduleSpecifier !== undefined &&
230
+ ts.isStringLiteral(statement.moduleSpecifier)) {
231
+ const moduleName = statement.moduleSpecifier.text;
232
+ if (statement.exportClause === undefined) {
233
+ reExports.push({
234
+ source: moduleName,
235
+ typeOnly: statement.isTypeOnly,
236
+ star: true,
237
+ range: range(source, statement),
238
+ path: artifact.path,
239
+ contentHash: artifact.contentHash,
240
+ });
241
+ }
242
+ else if (ts.isNamedExports(statement.exportClause)) {
243
+ for (const element of statement.exportClause.elements) {
244
+ reExports.push({
245
+ source: moduleName,
246
+ imported: element.propertyName?.text ?? element.name.text,
247
+ exported: element.name.text,
248
+ typeOnly: statement.isTypeOnly || element.isTypeOnly,
249
+ star: false,
250
+ range: range(source, element),
251
+ path: artifact.path,
252
+ contentHash: artifact.contentHash,
253
+ });
254
+ }
255
+ }
256
+ }
257
+ }
258
+ return {
259
+ artifact,
260
+ symbols,
261
+ reExports,
262
+ imports: externalImports(source),
263
+ parseErrors: source
264
+ .parseDiagnostics.length,
265
+ };
266
+ }
267
+ export function resolveRelativeModule(from, specifier, available) {
268
+ if (!specifier.startsWith('.'))
269
+ return undefined;
270
+ const base = posix.normalize(posix.join(posix.dirname(from), specifier));
271
+ const withoutRuntimeExtension = base.replace(/\.(?:mjs|cjs|js|jsx)$/, '');
272
+ const candidates = [
273
+ base,
274
+ withoutRuntimeExtension,
275
+ `${withoutRuntimeExtension}.ts`,
276
+ `${withoutRuntimeExtension}.tsx`,
277
+ `${withoutRuntimeExtension}.mts`,
278
+ `${withoutRuntimeExtension}.cts`,
279
+ `${withoutRuntimeExtension}.d.ts`,
280
+ `${withoutRuntimeExtension}.js`,
281
+ `${withoutRuntimeExtension}.jsx`,
282
+ `${withoutRuntimeExtension}.mjs`,
283
+ `${withoutRuntimeExtension}.cjs`,
284
+ `${withoutRuntimeExtension}/index.ts`,
285
+ `${withoutRuntimeExtension}/index.tsx`,
286
+ ];
287
+ return candidates.find((candidate) => available.has(candidate));
288
+ }
289
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,YAAY,CAAC;AA6C5B,SAAS,KAAK,CAAC,MAAqB,EAAE,IAAa;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC;QACzB,WAAW,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;QACrB,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,MAAqB;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,CACL,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YACvF,KAAK,CAAC,CACT,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAa;IAC9B,OAAO,CACL,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YACxF,KAAK,CAAC,CACT,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,SAAkC,EAAE,MAAqB;IAC/E,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,SAAS;QACvE,QAAQ,EAAE,SAAS,CAAC,aAAa,KAAK,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS;QACtF,IAAI,EAAE,SAAS,CAAC,cAAc,KAAK,SAAS;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAA4B,EAAE,MAAqB;IACxE,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjF,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,SAAS;QACxE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAuB,EACvB,MAAqB,EACrB,QAAuB;IAEvB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,IAAI,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,YAAY,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAClC,OAAO;YACL;gBACE,IAAI;gBACJ,KAAK,EAAE,OAAO;gBACd,eAAe,EAAE,UAAU;gBAC3B,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBACtD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjF,OAAO;YACL;gBACE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;gBACzB,KAAK,EAAE,MAAM;gBACb,eAAe,EAAE,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBAClF,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBACzD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,YAAY,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO;aACpC,MAAM,CACL,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,CAAC,EAAE;iBACA,YAAY,CAAC,MAAM,CAAC;gBACrB,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;YAClF,CAAC,CAAC,KAAK,CAAC,CACb;aACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;aAC3B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;aACzB,IAAI,EAAE,CACV,CAAC;QACJ,MAAM,MAAM,GAAG;YACb,IAAI;YACJ,eAAe,EAAE,OAAO;YACxB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;YACjC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;YAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;SACzB,CAAC;QACX,OAAO;YACL,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;YAC7B,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;YACzB,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YACzD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;YAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;SACzB,CAAC;QACX,OAAO;YACL,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;YAC7B,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;YACjE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC3B,KAAK,EAAE,OAAO;gBACd,eAAe,EAAE,UAAU;gBAC3B,KAAK,EAAE;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,UAAU;oBAC1E,eAAe,EACb,SAAS,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAC7E;gBACD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC;gBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;oBAC3B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,MAAM,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;gBACxC,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,UAAU;wBAClB,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;wBACzC,gBAAgB,EAAE,0BAA0B;wBAC5C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;qBAC3B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;wBACpD,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI;4BACvD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;4BAC5B,KAAK,EAAE,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;4BACjE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;yBAC9B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;gBACpF,gBAAgB,EAAE,gBAAgB;gBAClC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;aAAM,IACL,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAC3B,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC3C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;wBAAE,SAAS;oBAC7C,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,QAAQ,CAAC,IAAI;wBACrB,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI;wBAClE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;wBAC5B,KAAK,EAAE,OAAO;wBACd,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,QAAQ,CAAC,IAAI;oBACrB,gBAAgB,EAAE,mCAAmC;oBACrD,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAuB,EACvB,IAAY;IAEZ,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAChC,QAAQ,CAAC,IAAI,EACb,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG;QACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG;YACnB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;gBAClB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CACzB,CAAC;IACF,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,IACE,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;YACjC,SAAS,CAAC,eAAe,KAAK,SAAS;YACvC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,EAC7C,CAAC;YACD,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YAClD,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC;oBACb,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,SAAS,CAAC,UAAU;oBAC9B,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;oBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;iBAClC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrD,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;oBACtD,SAAS,CAAC,IAAI,CAAC;wBACb,MAAM,EAAE,UAAU;wBAClB,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI;wBACzD,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;wBAC3B,QAAQ,EAAE,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;wBACpD,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;QAChC,WAAW,EAAG,MAAkF;aAC7F,gBAAgB,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAAiB,EACjB,SAA8B;IAE9B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACzE,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,uBAAuB;QACvB,GAAG,uBAAuB,KAAK;QAC/B,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,OAAO;QACjC,GAAG,uBAAuB,KAAK;QAC/B,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,MAAM;QAChC,GAAG,uBAAuB,WAAW;QACrC,GAAG,uBAAuB,YAAY;KACvC,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@yanib/reverb-adapter-typescript",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript and npm contract adapter for Reverb",
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/YanibHQ/reverb-impact.git",
10
+ "directory": "packages/adapter-typescript"
11
+ },
12
+ "homepage": "https://github.com/YanibHQ/reverb-impact#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/YanibHQ/reverb-impact/issues"
15
+ },
16
+ "engines": {
17
+ "node": ">=24 <26"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "main": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "default": "./dist/index.js"
28
+ }
29
+ },
30
+ "dependencies": {
31
+ "typescript": "5.9.2",
32
+ "@yanib/reverb-adapter-sdk": "0.1.0",
33
+ "@yanib/reverb-domain": "0.1.0"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public",
37
+ "provenance": true
38
+ },
39
+ "scripts": {
40
+ "build": "tsc -b"
41
+ }
42
+ }