@0disoft/mensor-compiler 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.
Files changed (90) hide show
  1. package/LICENSE +201 -0
  2. package/dist/src/check-project.d.ts +9 -0
  3. package/dist/src/check-project.d.ts.map +1 -0
  4. package/dist/src/check-project.js +334 -0
  5. package/dist/src/check-project.js.map +1 -0
  6. package/dist/src/compiler-timing.d.ts +25 -0
  7. package/dist/src/compiler-timing.d.ts.map +1 -0
  8. package/dist/src/compiler-timing.js +72 -0
  9. package/dist/src/compiler-timing.js.map +1 -0
  10. package/dist/src/feature-roots.d.ts +6 -0
  11. package/dist/src/feature-roots.d.ts.map +1 -0
  12. package/dist/src/feature-roots.js +8 -0
  13. package/dist/src/feature-roots.js.map +1 -0
  14. package/dist/src/filesystem.d.ts +4 -0
  15. package/dist/src/filesystem.d.ts.map +1 -0
  16. package/dist/src/filesystem.js +127 -0
  17. package/dist/src/filesystem.js.map +1 -0
  18. package/dist/src/form-facts.d.ts +37 -0
  19. package/dist/src/form-facts.d.ts.map +1 -0
  20. package/dist/src/form-facts.js +2 -0
  21. package/dist/src/form-facts.js.map +1 -0
  22. package/dist/src/form-index-semantics.d.ts +4 -0
  23. package/dist/src/form-index-semantics.d.ts.map +1 -0
  24. package/dist/src/form-index-semantics.js +149 -0
  25. package/dist/src/form-index-semantics.js.map +1 -0
  26. package/dist/src/form-index-types.d.ts +69 -0
  27. package/dist/src/form-index-types.d.ts.map +1 -0
  28. package/dist/src/form-index-types.js +11 -0
  29. package/dist/src/form-index-types.js.map +1 -0
  30. package/dist/src/form-index-validation.d.ts +3 -0
  31. package/dist/src/form-index-validation.d.ts.map +1 -0
  32. package/dist/src/form-index-validation.js +360 -0
  33. package/dist/src/form-index-validation.js.map +1 -0
  34. package/dist/src/form-index.d.ts +8 -0
  35. package/dist/src/form-index.d.ts.map +1 -0
  36. package/dist/src/form-index.js +94 -0
  37. package/dist/src/form-index.js.map +1 -0
  38. package/dist/src/form-rule.d.ts +9 -0
  39. package/dist/src/form-rule.d.ts.map +1 -0
  40. package/dist/src/form-rule.js +399 -0
  41. package/dist/src/form-rule.js.map +1 -0
  42. package/dist/src/handler-rule.d.ts +10 -0
  43. package/dist/src/handler-rule.d.ts.map +1 -0
  44. package/dist/src/handler-rule.js +75 -0
  45. package/dist/src/handler-rule.js.map +1 -0
  46. package/dist/src/html-forms.d.ts +12 -0
  47. package/dist/src/html-forms.d.ts.map +1 -0
  48. package/dist/src/html-forms.js +275 -0
  49. package/dist/src/html-forms.js.map +1 -0
  50. package/dist/src/index.d.ts +3 -0
  51. package/dist/src/index.d.ts.map +1 -0
  52. package/dist/src/index.js +2 -0
  53. package/dist/src/index.js.map +1 -0
  54. package/dist/src/locations.d.ts +12 -0
  55. package/dist/src/locations.d.ts.map +1 -0
  56. package/dist/src/locations.js +148 -0
  57. package/dist/src/locations.js.map +1 -0
  58. package/dist/src/module-boundary-rule.d.ts +12 -0
  59. package/dist/src/module-boundary-rule.d.ts.map +1 -0
  60. package/dist/src/module-boundary-rule.js +256 -0
  61. package/dist/src/module-boundary-rule.js.map +1 -0
  62. package/dist/src/ownership-rule.d.ts +13 -0
  63. package/dist/src/ownership-rule.d.ts.map +1 -0
  64. package/dist/src/ownership-rule.js +98 -0
  65. package/dist/src/ownership-rule.js.map +1 -0
  66. package/dist/src/paths.d.ts +11 -0
  67. package/dist/src/paths.d.ts.map +1 -0
  68. package/dist/src/paths.js +35 -0
  69. package/dist/src/paths.js.map +1 -0
  70. package/dist/src/route-index.d.ts +9 -0
  71. package/dist/src/route-index.d.ts.map +1 -0
  72. package/dist/src/route-index.js +31 -0
  73. package/dist/src/route-index.js.map +1 -0
  74. package/dist/src/route-rule.d.ts +11 -0
  75. package/dist/src/route-rule.d.ts.map +1 -0
  76. package/dist/src/route-rule.js +54 -0
  77. package/dist/src/route-rule.js.map +1 -0
  78. package/dist/src/source-fact-index.d.ts +8 -0
  79. package/dist/src/source-fact-index.d.ts.map +1 -0
  80. package/dist/src/source-fact-index.js +38 -0
  81. package/dist/src/source-fact-index.js.map +1 -0
  82. package/dist/src/types.d.ts +29 -0
  83. package/dist/src/types.d.ts.map +1 -0
  84. package/dist/src/types.js +2 -0
  85. package/dist/src/types.js.map +1 -0
  86. package/dist/src/typescript-source.d.ts +22 -0
  87. package/dist/src/typescript-source.d.ts.map +1 -0
  88. package/dist/src/typescript-source.js +352 -0
  89. package/dist/src/typescript-source.js.map +1 -0
  90. package/package.json +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-fact-index.js","sourceRoot":"","sources":["../../src/source-fact-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAmB,MAAM,wBAAwB,CAAC;AAO5E,MAAM,UAAU,qBAAqB,CACnC,UAA6C,EAC7C,MAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAmB,EAAE;QAC/C,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,MAAM,KAAK,SAAS;gBAC1B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO;QACL,GAAG,CAAC,IAAI;YACN,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM;KACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,aAAgD,EAChD,IAAY,EACZ,MAAuB;IAEvB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS;QAC/B,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,sBAAsB,EACtB,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAC1C,CAAC;IACN,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,YAAY,CACpB,eAAe,EACf,2BAA2B,EAC3B,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EACrF,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ContractIssue, DiagnosticReport } from "@0disoft/mensor-contract";
2
+ export interface CheckProjectOptions {
3
+ readonly root: string;
4
+ readonly configFile?: string;
5
+ readonly producerVersion?: string;
6
+ readonly limits?: {
7
+ readonly maxFiles?: number;
8
+ readonly maxFileBytes?: number;
9
+ readonly maxTotalBytes?: number;
10
+ readonly maxDepth?: number;
11
+ };
12
+ }
13
+ export interface CheckProjectSuccess {
14
+ readonly ok: true;
15
+ readonly report: DiagnosticReport;
16
+ }
17
+ export interface CompilerFailure {
18
+ readonly kind: "configuration" | "filesystem" | "internal";
19
+ readonly code: string;
20
+ readonly message: string;
21
+ readonly file?: string;
22
+ readonly issues?: readonly ContractIssue[];
23
+ }
24
+ export interface CheckProjectFailure {
25
+ readonly ok: false;
26
+ readonly failure: CompilerFailure;
27
+ }
28
+ export type CheckProjectResult = CheckProjectSuccess | CheckProjectFailure;
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import ts from "@typescript/typescript6";
2
+ import type { SourceRange } from "@0disoft/mensor-contract";
3
+ export interface ModuleExportFact {
4
+ readonly kind: "type" | "value";
5
+ readonly name: string;
6
+ readonly range: SourceRange;
7
+ }
8
+ export interface ModuleFact {
9
+ readonly exports: readonly ModuleExportFact[];
10
+ readonly hasExportStar: boolean;
11
+ readonly imports: readonly ModuleImportFact[];
12
+ readonly unsupportedDynamicImports: readonly SourceRange[];
13
+ readonly syntaxErrors: readonly string[];
14
+ }
15
+ export interface ModuleImportFact {
16
+ readonly edgeKind: "runtime" | "type";
17
+ readonly specifier: string;
18
+ readonly range: SourceRange;
19
+ }
20
+ export declare function extractModuleFact(sourceText: string, fileName: string): ModuleFact;
21
+ export declare function sourceFileSyntaxDiagnostics(sourceFile: ts.SourceFile, sourceText: string, fileName: string): readonly ts.Diagnostic[];
22
+ //# sourceMappingURL=typescript-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-source.d.ts","sourceRoot":"","sources":["../../src/typescript-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,yBAAyB,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,UAAU,CAuCZ;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAAC,UAAU,EAAE,CAmB1B"}
@@ -0,0 +1,352 @@
1
+ import ts from "@typescript/typescript6";
2
+ import { compareText } from "./paths.js";
3
+ export function extractModuleFact(sourceText, fileName) {
4
+ const sourceFile = ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.ES2022, true, scriptKind(fileName));
5
+ const syntaxErrors = sourceFileSyntaxDiagnostics(sourceFile, sourceText, fileName)
6
+ .filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error)
7
+ .map((diagnostic) => ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"))
8
+ .sort(compareText);
9
+ const exports = [];
10
+ const imports = [];
11
+ const unsupportedDynamicImports = [];
12
+ const scopeBindings = collectRequireBindings(sourceFile);
13
+ let hasExportStar = false;
14
+ for (const statement of sourceFile.statements) {
15
+ if (ts.isExportDeclaration(statement) && statement.exportClause === undefined) {
16
+ hasExportStar = true;
17
+ }
18
+ collectStatementExports(statement, sourceFile, exports);
19
+ collectStaticImport(statement, sourceFile, imports);
20
+ }
21
+ collectRuntimeCalls(sourceFile, sourceFile, imports, unsupportedDynamicImports, scopeBindings, scopeBindings.get(sourceFile) === true);
22
+ return {
23
+ exports: uniqueExports(exports),
24
+ hasExportStar,
25
+ imports: uniqueImports(imports),
26
+ unsupportedDynamicImports,
27
+ syntaxErrors,
28
+ };
29
+ }
30
+ export function sourceFileSyntaxDiagnostics(sourceFile, sourceText, fileName) {
31
+ const diagnostics = sourceFile.parseDiagnostics;
32
+ if (diagnostics !== undefined) {
33
+ return diagnostics;
34
+ }
35
+ return ts.transpileModule(sourceText, {
36
+ compilerOptions: {
37
+ allowJs: true,
38
+ checkJs: false,
39
+ jsx: ts.JsxEmit.Preserve,
40
+ module: ts.ModuleKind.ESNext,
41
+ target: ts.ScriptTarget.ES2022,
42
+ },
43
+ fileName,
44
+ reportDiagnostics: true,
45
+ }).diagnostics ?? [];
46
+ }
47
+ function collectStaticImport(statement, sourceFile, imports) {
48
+ if (ts.isImportDeclaration(statement) && ts.isStringLiteral(statement.moduleSpecifier)) {
49
+ imports.push({
50
+ edgeKind: importDeclarationIsTypeOnly(statement) ? "type" : "runtime",
51
+ specifier: statement.moduleSpecifier.text,
52
+ range: nodeRange(statement.moduleSpecifier, sourceFile),
53
+ });
54
+ return;
55
+ }
56
+ if (ts.isExportDeclaration(statement) &&
57
+ statement.moduleSpecifier !== undefined &&
58
+ ts.isStringLiteral(statement.moduleSpecifier)) {
59
+ imports.push({
60
+ edgeKind: statement.isTypeOnly ? "type" : "runtime",
61
+ specifier: statement.moduleSpecifier.text,
62
+ range: nodeRange(statement.moduleSpecifier, sourceFile),
63
+ });
64
+ return;
65
+ }
66
+ if (ts.isImportEqualsDeclaration(statement) &&
67
+ ts.isExternalModuleReference(statement.moduleReference) &&
68
+ statement.moduleReference.expression !== undefined &&
69
+ ts.isStringLiteral(statement.moduleReference.expression)) {
70
+ imports.push({
71
+ edgeKind: statement.isTypeOnly ? "type" : "runtime",
72
+ specifier: statement.moduleReference.expression.text,
73
+ range: nodeRange(statement.moduleReference.expression, sourceFile),
74
+ });
75
+ }
76
+ }
77
+ function collectRuntimeCalls(node, sourceFile, imports, unsupported, scopeBindings, requireShadowed) {
78
+ const nestedRequireShadowed = requireShadowed || (node !== sourceFile && scopeBindings.get(node) === true);
79
+ if (ts.isCallExpression(node) &&
80
+ isRuntimeImportCall(node, nestedRequireShadowed)) {
81
+ const argument = node.arguments[0];
82
+ if (argument !== undefined && ts.isStringLiteralLike(argument)) {
83
+ imports.push({
84
+ edgeKind: "runtime",
85
+ specifier: argument.text,
86
+ range: nodeRange(argument, sourceFile),
87
+ });
88
+ }
89
+ else {
90
+ unsupported.push(nodeRange(node, sourceFile));
91
+ }
92
+ }
93
+ node.forEachChild((child) => collectRuntimeCalls(child, sourceFile, imports, unsupported, scopeBindings, nestedRequireShadowed));
94
+ }
95
+ function isRuntimeImportCall(node, requireShadowed) {
96
+ if (node.expression.kind === ts.SyntaxKind.ImportKeyword) {
97
+ return true;
98
+ }
99
+ if (!requireShadowed &&
100
+ ts.isIdentifier(node.expression) &&
101
+ node.expression.text === "require") {
102
+ return true;
103
+ }
104
+ return (!requireShadowed &&
105
+ ts.isPropertyAccessExpression(node.expression) &&
106
+ ts.isIdentifier(node.expression.expression) &&
107
+ node.expression.expression.text === "require" &&
108
+ node.expression.name.text === "resolve");
109
+ }
110
+ function collectRequireBindings(sourceFile) {
111
+ const bindings = new Map();
112
+ visitBindingScopes(sourceFile, bindings);
113
+ return bindings;
114
+ }
115
+ function visitBindingScopes(node, bindings) {
116
+ if (isBindingScope(node)) {
117
+ bindings.set(node, scopeDeclaresRequire(node));
118
+ }
119
+ node.forEachChild((child) => visitBindingScopes(child, bindings));
120
+ }
121
+ function isBindingScope(node) {
122
+ return (ts.isSourceFile(node) ||
123
+ isFunctionScope(node) ||
124
+ ts.isBlock(node) ||
125
+ ts.isCaseBlock(node) ||
126
+ ts.isCatchClause(node) ||
127
+ ts.isForStatement(node) ||
128
+ ts.isForInStatement(node) ||
129
+ ts.isForOfStatement(node));
130
+ }
131
+ function scopeDeclaresRequire(scope) {
132
+ if (ts.isSourceFile(scope)) {
133
+ return (scope.statements.some(statementDeclaresRequire) ||
134
+ containsFunctionScopedRequire(scope));
135
+ }
136
+ if (isFunctionScope(scope)) {
137
+ if (scope.parameters.some((parameter) => bindingNameContainsRequire(parameter.name))) {
138
+ return true;
139
+ }
140
+ if ((ts.isFunctionExpression(scope) || ts.isFunctionDeclaration(scope)) &&
141
+ scope.name?.text === "require") {
142
+ return true;
143
+ }
144
+ return scope.body !== undefined && containsFunctionScopedRequire(scope.body);
145
+ }
146
+ if (ts.isCatchClause(scope)) {
147
+ return scope.variableDeclaration !== undefined &&
148
+ bindingNameContainsRequire(scope.variableDeclaration.name);
149
+ }
150
+ if (ts.isForStatement(scope) ||
151
+ ts.isForInStatement(scope) ||
152
+ ts.isForOfStatement(scope)) {
153
+ return scope.initializer !== undefined &&
154
+ ts.isVariableDeclarationList(scope.initializer) &&
155
+ declarationListContainsRequire(scope.initializer);
156
+ }
157
+ const statements = ts.isBlock(scope)
158
+ ? scope.statements
159
+ : ts.isCaseBlock(scope)
160
+ ? scope.clauses.flatMap((clause) => [...clause.statements])
161
+ : [];
162
+ return statements.some(statementDeclaresRequire);
163
+ }
164
+ function isFunctionScope(node) {
165
+ return (ts.isFunctionDeclaration(node) ||
166
+ ts.isFunctionExpression(node) ||
167
+ ts.isArrowFunction(node) ||
168
+ ts.isMethodDeclaration(node) ||
169
+ ts.isConstructorDeclaration(node) ||
170
+ ts.isGetAccessorDeclaration(node) ||
171
+ ts.isSetAccessorDeclaration(node));
172
+ }
173
+ function statementDeclaresRequire(statement) {
174
+ if (ts.isVariableStatement(statement)) {
175
+ return declarationListContainsRequire(statement.declarationList);
176
+ }
177
+ if ((ts.isFunctionDeclaration(statement) ||
178
+ ts.isClassDeclaration(statement) ||
179
+ ts.isEnumDeclaration(statement) ||
180
+ ts.isImportEqualsDeclaration(statement)) &&
181
+ statement.name?.text === "require") {
182
+ return true;
183
+ }
184
+ if (ts.isImportDeclaration(statement)) {
185
+ const clause = statement.importClause;
186
+ if (clause?.name?.text === "require") {
187
+ return true;
188
+ }
189
+ const bindings = clause?.namedBindings;
190
+ if (bindings !== undefined && ts.isNamespaceImport(bindings)) {
191
+ return bindings.name.text === "require";
192
+ }
193
+ return bindings !== undefined &&
194
+ ts.isNamedImports(bindings) &&
195
+ bindings.elements.some((element) => element.name.text === "require");
196
+ }
197
+ return false;
198
+ }
199
+ function containsFunctionScopedRequire(node) {
200
+ let found = false;
201
+ const visit = (child) => {
202
+ if (found || (child !== node && ts.isFunctionLike(child))) {
203
+ return;
204
+ }
205
+ if (ts.isVariableDeclarationList(child) &&
206
+ (child.flags & ts.NodeFlags.BlockScoped) === 0 &&
207
+ declarationListContainsRequire(child)) {
208
+ found = true;
209
+ return;
210
+ }
211
+ child.forEachChild(visit);
212
+ };
213
+ visit(node);
214
+ return found;
215
+ }
216
+ function declarationListContainsRequire(list) {
217
+ return list.declarations.some((declaration) => bindingNameContainsRequire(declaration.name));
218
+ }
219
+ function bindingNameContainsRequire(name) {
220
+ if (ts.isIdentifier(name)) {
221
+ return name.text === "require";
222
+ }
223
+ return name.elements.some((element) => !ts.isOmittedExpression(element) && bindingNameContainsRequire(element.name));
224
+ }
225
+ function importDeclarationIsTypeOnly(statement) {
226
+ const clause = statement.importClause;
227
+ if (clause?.isTypeOnly === true) {
228
+ return true;
229
+ }
230
+ return (clause?.name === undefined &&
231
+ clause?.namedBindings !== undefined &&
232
+ ts.isNamedImports(clause.namedBindings) &&
233
+ clause.namedBindings.elements.length > 0 &&
234
+ clause.namedBindings.elements.every((element) => element.isTypeOnly));
235
+ }
236
+ function uniqueImports(imports) {
237
+ const byKey = new Map();
238
+ for (const entry of imports) {
239
+ const key = `${entry.edgeKind}\u0000${entry.specifier}\u0000${entry.range.start.line}\u0000${entry.range.start.character}`;
240
+ byKey.set(key, entry);
241
+ }
242
+ return [...byKey.values()].sort((left, right) => compareText(left.specifier, right.specifier) ||
243
+ compareText(left.edgeKind, right.edgeKind) ||
244
+ left.range.start.line - right.range.start.line ||
245
+ left.range.start.character - right.range.start.character);
246
+ }
247
+ function collectStatementExports(statement, sourceFile, exports) {
248
+ if (ts.isExportAssignment(statement) && !statement.isExportEquals) {
249
+ exports.push({ kind: "value", name: "default", range: nodeRange(statement, sourceFile) });
250
+ return;
251
+ }
252
+ if (ts.isExportDeclaration(statement)) {
253
+ if (statement.exportClause !== undefined && ts.isNamedExports(statement.exportClause)) {
254
+ for (const element of statement.exportClause.elements) {
255
+ exports.push({
256
+ kind: statement.isTypeOnly || element.isTypeOnly ? "type" : "value",
257
+ name: element.name.text,
258
+ range: nodeRange(element.name, sourceFile),
259
+ });
260
+ }
261
+ }
262
+ else if (statement.exportClause !== undefined &&
263
+ ts.isNamespaceExport(statement.exportClause)) {
264
+ exports.push({
265
+ kind: "value",
266
+ name: statement.exportClause.name.text,
267
+ range: nodeRange(statement.exportClause.name, sourceFile),
268
+ });
269
+ }
270
+ return;
271
+ }
272
+ if (!hasModifier(statement, ts.SyntaxKind.ExportKeyword)) {
273
+ return;
274
+ }
275
+ if (hasModifier(statement, ts.SyntaxKind.DefaultKeyword)) {
276
+ exports.push({
277
+ kind: declarationHasRuntimeValue(statement) ? "value" : "type",
278
+ name: "default",
279
+ range: nodeRange(statement, sourceFile),
280
+ });
281
+ return;
282
+ }
283
+ if (ts.isVariableStatement(statement)) {
284
+ for (const declaration of statement.declarationList.declarations) {
285
+ collectBindingNames(declaration.name, sourceFile, exports);
286
+ }
287
+ return;
288
+ }
289
+ if ((ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement) ||
290
+ ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement) ||
291
+ ts.isEnumDeclaration(statement)) &&
292
+ statement.name !== undefined) {
293
+ exports.push({
294
+ kind: declarationHasRuntimeValue(statement) ? "value" : "type",
295
+ name: statement.name.text,
296
+ range: nodeRange(statement.name, sourceFile),
297
+ });
298
+ }
299
+ }
300
+ function collectBindingNames(name, sourceFile, exports) {
301
+ if (ts.isIdentifier(name)) {
302
+ exports.push({ kind: "value", name: name.text, range: nodeRange(name, sourceFile) });
303
+ return;
304
+ }
305
+ for (const element of name.elements) {
306
+ if (!ts.isOmittedExpression(element)) {
307
+ collectBindingNames(element.name, sourceFile, exports);
308
+ }
309
+ }
310
+ }
311
+ function declarationHasRuntimeValue(statement) {
312
+ if (hasModifier(statement, ts.SyntaxKind.DeclareKeyword)) {
313
+ return false;
314
+ }
315
+ return !ts.isInterfaceDeclaration(statement) && !ts.isTypeAliasDeclaration(statement);
316
+ }
317
+ function hasModifier(node, kind) {
318
+ return ts.canHaveModifiers(node)
319
+ ? (ts.getModifiers(node)?.some((modifier) => modifier.kind === kind) ?? false)
320
+ : false;
321
+ }
322
+ function uniqueExports(exports) {
323
+ const byName = new Map();
324
+ for (const entry of exports) {
325
+ const existing = byName.get(entry.name);
326
+ if (existing === undefined || (existing.kind === "type" && entry.kind === "value")) {
327
+ byName.set(entry.name, entry);
328
+ }
329
+ }
330
+ return [...byName.values()].sort((left, right) => compareText(left.name, right.name));
331
+ }
332
+ function nodeRange(node, sourceFile) {
333
+ return {
334
+ start: sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)),
335
+ end: sourceFile.getLineAndCharacterOfPosition(node.getEnd()),
336
+ };
337
+ }
338
+ function scriptKind(fileName) {
339
+ if (fileName.endsWith(".tsx")) {
340
+ return ts.ScriptKind.TSX;
341
+ }
342
+ if (fileName.endsWith(".jsx")) {
343
+ return ts.ScriptKind.JSX;
344
+ }
345
+ if (fileName.endsWith(".js") ||
346
+ fileName.endsWith(".mjs") ||
347
+ fileName.endsWith(".cjs")) {
348
+ return ts.ScriptKind.JS;
349
+ }
350
+ return ts.ScriptKind.TS;
351
+ }
352
+ //# sourceMappingURL=typescript-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-source.js","sourceRoot":"","sources":["../../src/typescript-source.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@0disoft/mensor-compiler",
3
+ "version": "0.1.0",
4
+ "description": "Deterministic source contract checker for Mensor projects.",
5
+ "license": "Apache-2.0",
6
+ "publishConfig": {
7
+ "access": "public",
8
+ "registry": "https://registry.npmjs.org",
9
+ "provenance": true
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/0disoft/mensor.git",
14
+ "directory": "packages/compiler"
15
+ },
16
+ "homepage": "https://github.com/0disoft/mensor#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/0disoft/mensor/issues"
19
+ },
20
+ "keywords": [
21
+ "mensor",
22
+ "static-analysis",
23
+ "contracts",
24
+ "html",
25
+ "typescript"
26
+ ],
27
+ "type": "module",
28
+ "sideEffects": false,
29
+ "engines": {
30
+ "node": ">=22"
31
+ },
32
+ "files": [
33
+ "LICENSE",
34
+ "dist/src"
35
+ ],
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/src/index.d.ts",
39
+ "import": "./dist/src/index.js"
40
+ }
41
+ },
42
+ "dependencies": {
43
+ "@typescript/typescript6": "6.0.2",
44
+ "jsonc-parser": "3.3.1",
45
+ "parse5": "8.0.1",
46
+ "@0disoft/mensor-contract": "0.1.0"
47
+ }
48
+ }