@velarscript/compiler 0.10.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.
Files changed (159) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +70 -0
  3. package/dist/analyzer.d.ts +1175 -0
  4. package/dist/analyzer.d.ts.map +1 -0
  5. package/dist/analyzer.js +12130 -0
  6. package/dist/analyzer.js.map +1 -0
  7. package/dist/application-package-host.d.ts +28 -0
  8. package/dist/application-package-host.d.ts.map +1 -0
  9. package/dist/application-package-host.js +2 -0
  10. package/dist/application-package-host.js.map +1 -0
  11. package/dist/ast.d.ts +853 -0
  12. package/dist/ast.d.ts.map +1 -0
  13. package/dist/ast.js +245 -0
  14. package/dist/ast.js.map +1 -0
  15. package/dist/class-runtime.d.ts +6 -0
  16. package/dist/class-runtime.d.ts.map +1 -0
  17. package/dist/class-runtime.js +45 -0
  18. package/dist/class-runtime.js.map +1 -0
  19. package/dist/collection-lowering-runtime.d.ts +7 -0
  20. package/dist/collection-lowering-runtime.d.ts.map +1 -0
  21. package/dist/collection-lowering-runtime.js +952 -0
  22. package/dist/collection-lowering-runtime.js.map +1 -0
  23. package/dist/collection-runtime.d.ts +16 -0
  24. package/dist/collection-runtime.d.ts.map +1 -0
  25. package/dist/collection-runtime.js +231 -0
  26. package/dist/collection-runtime.js.map +1 -0
  27. package/dist/core-vocabulary.d.ts +141 -0
  28. package/dist/core-vocabulary.d.ts.map +1 -0
  29. package/dist/core-vocabulary.js +88 -0
  30. package/dist/core-vocabulary.js.map +1 -0
  31. package/dist/diagnostic.d.ts +42 -0
  32. package/dist/diagnostic.d.ts.map +1 -0
  33. package/dist/diagnostic.js +66 -0
  34. package/dist/diagnostic.js.map +1 -0
  35. package/dist/embedded-javascript.d.ts +74 -0
  36. package/dist/embedded-javascript.d.ts.map +1 -0
  37. package/dist/embedded-javascript.js +341 -0
  38. package/dist/embedded-javascript.js.map +1 -0
  39. package/dist/embedded-module.d.ts +11 -0
  40. package/dist/embedded-module.d.ts.map +1 -0
  41. package/dist/embedded-module.js +67 -0
  42. package/dist/embedded-module.js.map +1 -0
  43. package/dist/embedded-source.d.ts +19 -0
  44. package/dist/embedded-source.d.ts.map +1 -0
  45. package/dist/embedded-source.js +61 -0
  46. package/dist/embedded-source.js.map +1 -0
  47. package/dist/emitter.d.ts +188 -0
  48. package/dist/emitter.d.ts.map +1 -0
  49. package/dist/emitter.js +3254 -0
  50. package/dist/emitter.js.map +1 -0
  51. package/dist/error-runtime.d.ts +17 -0
  52. package/dist/error-runtime.d.ts.map +1 -0
  53. package/dist/error-runtime.js +109 -0
  54. package/dist/error-runtime.js.map +1 -0
  55. package/dist/extension.d.ts +373 -0
  56. package/dist/extension.d.ts.map +1 -0
  57. package/dist/extension.js +25 -0
  58. package/dist/extension.js.map +1 -0
  59. package/dist/formatter.d.ts +13 -0
  60. package/dist/formatter.d.ts.map +1 -0
  61. package/dist/formatter.js +1440 -0
  62. package/dist/formatter.js.map +1 -0
  63. package/dist/framework-host.d.ts +87 -0
  64. package/dist/framework-host.d.ts.map +1 -0
  65. package/dist/framework-host.js +2 -0
  66. package/dist/framework-host.js.map +1 -0
  67. package/dist/index.d.ts +75 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +932 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/interpolated-string.d.ts +47 -0
  72. package/dist/interpolated-string.d.ts.map +1 -0
  73. package/dist/interpolated-string.js +344 -0
  74. package/dist/interpolated-string.js.map +1 -0
  75. package/dist/json-runtime.d.ts +2 -0
  76. package/dist/json-runtime.d.ts.map +1 -0
  77. package/dist/json-runtime.js +193 -0
  78. package/dist/json-runtime.js.map +1 -0
  79. package/dist/language-guidance.d.ts +31 -0
  80. package/dist/language-guidance.d.ts.map +1 -0
  81. package/dist/language-guidance.js +187 -0
  82. package/dist/language-guidance.js.map +1 -0
  83. package/dist/lexer.d.ts +85 -0
  84. package/dist/lexer.d.ts.map +1 -0
  85. package/dist/lexer.js +1004 -0
  86. package/dist/lexer.js.map +1 -0
  87. package/dist/limits.d.ts +2 -0
  88. package/dist/limits.d.ts.map +1 -0
  89. package/dist/limits.js +2 -0
  90. package/dist/limits.js.map +1 -0
  91. package/dist/mechanical-fix.d.ts +26 -0
  92. package/dist/mechanical-fix.d.ts.map +1 -0
  93. package/dist/mechanical-fix.js +61 -0
  94. package/dist/mechanical-fix.js.map +1 -0
  95. package/dist/narrowing-runtime.d.ts +5 -0
  96. package/dist/narrowing-runtime.d.ts.map +1 -0
  97. package/dist/narrowing-runtime.js +27 -0
  98. package/dist/narrowing-runtime.js.map +1 -0
  99. package/dist/number-runtime.d.ts +3 -0
  100. package/dist/number-runtime.d.ts.map +1 -0
  101. package/dist/number-runtime.js +37 -0
  102. package/dist/number-runtime.js.map +1 -0
  103. package/dist/parser.d.ts +245 -0
  104. package/dist/parser.d.ts.map +1 -0
  105. package/dist/parser.js +3582 -0
  106. package/dist/parser.js.map +1 -0
  107. package/dist/primitive-runtime.d.ts +4 -0
  108. package/dist/primitive-runtime.d.ts.map +1 -0
  109. package/dist/primitive-runtime.js +39 -0
  110. package/dist/primitive-runtime.js.map +1 -0
  111. package/dist/promise-runtime.d.ts +6 -0
  112. package/dist/promise-runtime.d.ts.map +1 -0
  113. package/dist/promise-runtime.js +86 -0
  114. package/dist/promise-runtime.js.map +1 -0
  115. package/dist/reactive-bridge-runtime.d.ts +7 -0
  116. package/dist/reactive-bridge-runtime.d.ts.map +1 -0
  117. package/dist/reactive-bridge-runtime.js +112 -0
  118. package/dist/reactive-bridge-runtime.js.map +1 -0
  119. package/dist/runtime-abi.d.ts +24 -0
  120. package/dist/runtime-abi.d.ts.map +1 -0
  121. package/dist/runtime-abi.js +24 -0
  122. package/dist/runtime-abi.js.map +1 -0
  123. package/dist/semantic.d.ts +142 -0
  124. package/dist/semantic.d.ts.map +1 -0
  125. package/dist/semantic.js +845 -0
  126. package/dist/semantic.js.map +1 -0
  127. package/dist/source-names.d.ts +32 -0
  128. package/dist/source-names.d.ts.map +1 -0
  129. package/dist/source-names.js +101 -0
  130. package/dist/source-names.js.map +1 -0
  131. package/dist/source.d.ts +19 -0
  132. package/dist/source.d.ts.map +1 -0
  133. package/dist/source.js +64 -0
  134. package/dist/source.js.map +1 -0
  135. package/dist/text-runtime.d.ts +2 -0
  136. package/dist/text-runtime.d.ts.map +1 -0
  137. package/dist/text-runtime.js +285 -0
  138. package/dist/text-runtime.js.map +1 -0
  139. package/dist/token.d.ts +19 -0
  140. package/dist/token.d.ts.map +1 -0
  141. package/dist/token.js +51 -0
  142. package/dist/token.js.map +1 -0
  143. package/dist/type-registry-runtime.d.ts +7 -0
  144. package/dist/type-registry-runtime.d.ts.map +1 -0
  145. package/dist/type-registry-runtime.js +51 -0
  146. package/dist/type-registry-runtime.js.map +1 -0
  147. package/dist/type-validation-runtime.d.ts +17 -0
  148. package/dist/type-validation-runtime.d.ts.map +1 -0
  149. package/dist/type-validation-runtime.js +150 -0
  150. package/dist/type-validation-runtime.js.map +1 -0
  151. package/dist/types.d.ts +356 -0
  152. package/dist/types.d.ts.map +1 -0
  153. package/dist/types.js +1170 -0
  154. package/dist/types.js.map +1 -0
  155. package/dist/utf8-runtime.d.ts +7 -0
  156. package/dist/utf8-runtime.d.ts.map +1 -0
  157. package/dist/utf8-runtime.js +43 -0
  158. package/dist/utf8-runtime.js.map +1 -0
  159. package/package.json +48 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Scans an opaque multiline payload without knowing its language or owner.
3
+ * The closing backtick must appear at `declarationIndentation`, alone except
4
+ * for a tail accepted by its language owner. Content is never decoded,
5
+ * dedented, or searched for language constructs.
6
+ */
7
+ export function scanOpaqueEmbeddedSource(source, start, declarationIndentation, acceptsClosingTail) {
8
+ const openingBreakLength = newlineLength(source, start + 1);
9
+ const openingLineBreak = openingBreakLength > 0;
10
+ const firstBoundary = nextLineBoundary(source, start + 1);
11
+ const sourceStart = openingLineBreak ? start + 1 + openingBreakLength : firstBoundary.nextStart;
12
+ let lineStart = sourceStart;
13
+ while (lineStart < source.length) {
14
+ const boundary = nextLineBoundary(source, lineStart);
15
+ const expected = `${declarationIndentation}\``;
16
+ if (source.startsWith(expected, lineStart)) {
17
+ const delimiter = lineStart + expected.length - 1;
18
+ const closingTailStart = delimiter + 1;
19
+ const closingTailEnd = boundary.newlineStart;
20
+ if (acceptsClosingTail(source.slice(closingTailStart, closingTailEnd))) {
21
+ return {
22
+ start,
23
+ sourceStart,
24
+ sourceEnd: lineStart,
25
+ end: delimiter + 1,
26
+ closed: true,
27
+ openingLineBreak,
28
+ closingTailStart,
29
+ closingTailEnd,
30
+ };
31
+ }
32
+ }
33
+ if (boundary.nextStart <= lineStart || boundary.nextStart >= source.length)
34
+ break;
35
+ lineStart = boundary.nextStart;
36
+ }
37
+ return {
38
+ start,
39
+ sourceStart,
40
+ sourceEnd: source.length,
41
+ end: source.length,
42
+ closed: false,
43
+ openingLineBreak,
44
+ closingTailStart: null,
45
+ closingTailEnd: null,
46
+ };
47
+ }
48
+ function nextLineBoundary(source, start) {
49
+ for (let index = start; index < source.length; index += 1) {
50
+ const length = newlineLength(source, index);
51
+ if (length > 0)
52
+ return { newlineStart: index, nextStart: index + length };
53
+ }
54
+ return { newlineStart: source.length, nextStart: source.length };
55
+ }
56
+ function newlineLength(source, index) {
57
+ if (source[index] === "\r")
58
+ return source[index + 1] === "\n" ? 2 : 1;
59
+ return source[index] === "\n" ? 1 : 0;
60
+ }
61
+ //# sourceMappingURL=embedded-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-source.js","sourceRoot":"","sources":["../src/embedded-source.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,KAAa,EACb,sBAA8B,EAC9B,kBAA6C;IAE7C,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;IAChG,IAAI,SAAS,GAAG,WAAW,CAAC;IAE5B,OAAO,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,sBAAsB,IAAI,CAAC;QAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAClD,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC7C,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBACvE,OAAO;oBACL,KAAK;oBACL,WAAW;oBACX,SAAS,EAAE,SAAS;oBACpB,GAAG,EAAE,SAAS,GAAG,CAAC;oBAClB,MAAM,EAAE,IAAI;oBACZ,gBAAgB;oBAChB,gBAAgB;oBAChB,cAAc;iBACf,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM;QAClF,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,OAAO;QACL,KAAK;QACL,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,GAAG,EAAE,MAAM,CAAC,MAAM;QAClB,MAAM,EAAE,KAAK;QACb,gBAAgB;QAChB,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,IAAI;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAa;IACrD,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,KAAa;IAClD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,188 @@
1
+ import type { BindingPattern, Expression, Program, Statement } from "./ast.ts";
2
+ import { type ValueType } from "./types.ts";
3
+ import { type LoweringHints } from "./analyzer.ts";
4
+ import type { CompilerEmbeddedJavaScriptModule, CompilerEmitterOptions } from "./extension.ts";
5
+ import { type SourceText, type Span } from "./source.ts";
6
+ export declare class JavaScriptEmitter {
7
+ private readonly typeDeclarations;
8
+ private readonly runtimeTypes;
9
+ private readonly expandedRuntimeTypes;
10
+ /**
11
+ * D55 rule 121: the type parameters of the generic record currently being
12
+ * emitted. Inside that body a `T`-typed position is checked by the argument
13
+ * predicate the instantiation supplied, which is the only reading of `T` a
14
+ * validator can have once the type is erased.
15
+ */
16
+ private genericTypeParameters;
17
+ /** Hoisted `function __velarTypeOf_N()` bodies for instantiations written outside a generic. */
18
+ private readonly hoistedGenericInstances;
19
+ private readonly externModuleExports;
20
+ private needsExternExportHelper;
21
+ protected readonly hints: LoweringHints;
22
+ private readonly forcedFunctionExports;
23
+ private readonly sharedRuntimeModules;
24
+ private readonly requiredRuntimeModules;
25
+ private needsIndexHelpers;
26
+ private needsBinaryHelpers;
27
+ private needsBitwiseHelpers;
28
+ private needsCollectionHelpers;
29
+ private needsPrimitiveHelpers;
30
+ private needsRecordHelpers;
31
+ private needsObjectBindingHelpers;
32
+ private needsListBindingHelpers;
33
+ private needsDirectCollectionInfrastructure;
34
+ private needsRuntimeTypeHelpers;
35
+ private needsNumberHelper;
36
+ private needsThrownValueHelper;
37
+ private needsErrorCodeHelper;
38
+ private readonly requiredHostErrorClasses;
39
+ private needsDetachedTaskHelper;
40
+ private needsDisposalHelper;
41
+ private needsIntegrityFailureHelper;
42
+ private needsNarrowingErrorClass;
43
+ private suppressPromiseNormalization;
44
+ private nextJavaScriptNodeId;
45
+ private readonly javaScriptNodeSpans;
46
+ private generatedMappings;
47
+ private generatedCode;
48
+ private readonly sourcePath;
49
+ private readonly embeddedJavaScript;
50
+ constructor(hints: LoweringHints, forcedFunctionExports?: ReadonlySet<string>, options?: CompilerEmitterOptions);
51
+ emit(program: Program): string;
52
+ sourceMap(source: SourceText): string;
53
+ embeddedModules(source: SourceText): readonly CompilerEmbeddedJavaScriptModule[];
54
+ runtimeModules(): readonly string[];
55
+ private emitJavaScriptNode;
56
+ private markJavaScriptNode;
57
+ protected emitMappedJavaScript(sourceSpan: Span, render: () => string): string;
58
+ private renderJavaScriptNode;
59
+ protected additionalHelpers(_program: Program): readonly string[];
60
+ protected reactiveBridgeHelpers(needsJavaScriptCallBoundary: boolean, needsCollections: boolean): readonly string[];
61
+ protected usesSharedRuntimeModules(): boolean;
62
+ protected detachedTaskHelpers(): readonly string[];
63
+ /**
64
+ * D43 item 69 rule 8: a release that fails while an error is already in
65
+ * flight must not replace it. The original error keeps the throw; the release
66
+ * failure is normalized and reported through the host channel. The reporter
67
+ * itself never fails outward, for the same reason the detached-task reporter
68
+ * does not — a throw inside it would end the process.
69
+ */
70
+ protected disposalHelpers(): readonly string[];
71
+ /**
72
+ * D51 rule 103: the three failures that mean "this program has a bug", by the
73
+ * one name each of them stamps on itself. A forged name can only make a
74
+ * failure propagate instead of becoming `null`, which is the safe direction:
75
+ * `try` never hides a guard, and `catch` still receives everything.
76
+ */
77
+ protected integrityFailureHelpers(): readonly string[];
78
+ protected requireRuntimeModule(source: string): void;
79
+ protected includesErrorNormalizationRuntime(): boolean;
80
+ protected visitExtensionRuntimeExpression(_expression: Expression, _visitExpression: (expression: Expression) => void): boolean;
81
+ protected visitExtensionRuntimeStatement(_statement: Statement, _visitExpression: (expression: Expression) => void, _visitStatement: (statement: Statement) => void): boolean;
82
+ protected extensionExpressionContainsDirectAwait(_expression: Expression, _contains: (expression: Expression) => boolean): boolean | undefined;
83
+ protected extensionStatementContainsDirectAwait(_statement: Statement, _containsExpression: (expression: Expression) => boolean, _containsBlock: (statements: readonly Statement[]) => boolean): boolean | undefined;
84
+ private collectDeclarations;
85
+ private collectRuntimeUses;
86
+ private markRuntimeType;
87
+ private markRuntimeNarrowingType;
88
+ protected emitMappedStatement(statement: Statement, depth: number): string;
89
+ /**
90
+ * D43 item 69: a `using` binding owns the rest of its block, so a statement
91
+ * list is emitted as a whole. Everything after the binding moves inside the
92
+ * release frame; a second `using` nests inside the first, which is what makes
93
+ * release order the reverse of declaration order.
94
+ */
95
+ protected emitStatementLines(statements: readonly Statement[], depth: number): readonly string[];
96
+ private emitUsingScope;
97
+ protected emitStatement(statement: Statement, depth: number): string;
98
+ private emitImport;
99
+ private prepareEmbeddedJavaScript;
100
+ private emitEmbeddedJavaScript;
101
+ private emitTypeDeclaration;
102
+ private emitRecordTypeDeclaration;
103
+ /** The record predicate itself: identical for a plain record and a generic one but for the arguments it carries. */
104
+ private recordCheckFunctionLines;
105
+ private emitTypeAliasDeclaration;
106
+ private emitEnumDeclaration;
107
+ protected emitTypeCheck(type: ValueType, value: string, state?: string): string;
108
+ protected emitIsCheck(type: ValueType, value: string): string;
109
+ protected emitNarrowingCheck(type: ValueType, value: string, state?: string): string;
110
+ private runtimeTypeCheckName;
111
+ /**
112
+ * D55 rule 121: the name a module writes for a generic record is a JavaScript
113
+ * binding holding its instantiation factory — declared here, or imported from
114
+ * the module that declares it. Nothing else may be written into `.of(...)`.
115
+ */
116
+ protected genericTypeBinding(name: string): boolean;
117
+ /** The instantiation a `named` application stands for, as a JavaScript expression. */
118
+ private genericInstanceExpression;
119
+ /**
120
+ * A type argument's memo key or display text. Both are plain strings when the
121
+ * argument is closed; inside a generic body a mention of the enclosing
122
+ * parameters reads them off the arguments the instantiation supplied, so
123
+ * `type Wrapper<T>: inner: Box<List<T>>` keys and prints correctly at every
124
+ * instantiation without the emitter having seen one.
125
+ */
126
+ private genericArgumentExpression;
127
+ /**
128
+ * The display text of a field's declared type, as a JavaScript expression.
129
+ * A generic record's `parse` failure names the type the caller instantiated
130
+ * — `field 'value' does not match string`, not `does not match T`.
131
+ */
132
+ private typeTextExpression;
133
+ /**
134
+ * A declared type inside a generic record's body. The emitter has no analyzer
135
+ * frame, so the declaration's own parameter names are turned into `parameter`
136
+ * kinds here — the one place the emitter learns that `T` is erased rather
137
+ * than unknown.
138
+ */
139
+ private resolveDeclarationType;
140
+ /**
141
+ * D60 rule 148: a `named` ValueType carries the type's *display* name, which
142
+ * is a runtime binding only when this module really has a Type object under
143
+ * it — a local `type` declaration, an imported one, an enum, or a class. An
144
+ * unresolved generic formats to type text (`Component<(label: string) ->
145
+ * WebNode>`) that is not even a JavaScript identifier, and an extension host
146
+ * scalar (`Color`, `Length`, `WebNode`) has no binding at all. Writing either
147
+ * into the output is how `velar check` passed and `velar build` then failed
148
+ * to parse its own emission; the narrowing path (FLW-U1) already asks this
149
+ * question, and every other check path now asks it too.
150
+ */
151
+ protected runtimeTypeBinding(name: string): boolean;
152
+ /** The runtime class behind a nameable builtin error type, marking the runtime it needs. */
153
+ private builtinErrorRuntimeName;
154
+ /** The enum an alias (or alias chain) resolves to, or null when the name is not an alias of an enum. */
155
+ private enumAliasTarget;
156
+ private emitClass;
157
+ /**
158
+ * D51 rule 102: derived first, base after — construction order reversed, the
159
+ * same intuition LIFO release already has. The base runs on every exit from
160
+ * the derived body, including a `return`, and when the derived part already
161
+ * failed the base failure is reported to the host instead of replacing the
162
+ * error in flight, exactly as rule 8 of D43 item 69 decides for `using`.
163
+ */
164
+ private chainedDisposeLines;
165
+ protected emitParameter(name: string, defaultValue: Expression | null, rest?: boolean): string;
166
+ protected emitMappedExpression(expression: Expression, normalizeNull?: boolean): string;
167
+ private emitMappedAssignmentTarget;
168
+ private bitwiseAssignmentOperator;
169
+ private emitCompoundOperation;
170
+ protected emitExpression(expression: Expression): string;
171
+ protected emitCondition(expression: Expression): string;
172
+ private emitBinaryOperand;
173
+ private emitPostfixReceiver;
174
+ private emitComparisonChain;
175
+ protected expressionContainsDirectAwait(expression: Expression): boolean;
176
+ private typeRuntimeName;
177
+ private collectionHelper;
178
+ private binaryHelper;
179
+ private binaryIndexHelper;
180
+ private binarySetIndexHelper;
181
+ private primitiveHelper;
182
+ protected emitObjectKey(name: string): string;
183
+ private emitMatchPatternAttempt;
184
+ protected emitBindingPatternStatements(pattern: BindingPattern, value: string, binding: "const" | "let", exported: boolean, depth: number, label: string): readonly string[];
185
+ private escapeTemplateText;
186
+ protected blockAlwaysReturns(statements: readonly Statement[]): boolean;
187
+ }
188
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAGd,UAAU,EAGV,OAAO,EACP,SAAS,EAQV,MAAM,UAAU,CAAC;AAKlB,OAAO,EAA2L,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACrO,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAGvF,OAAO,KAAK,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAM/F,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAyCvE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6D;IAC9F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB,CAAkC;IAC/D,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA6B;IACrE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA0C;IAC9E,OAAO,CAAC,uBAAuB,CAAS;IACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,mCAAmC,CAAS;IACpD,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAC9D,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,2BAA2B,CAAS;IAC5C,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8E;IAEjH,YAAY,KAAK,EAAE,aAAa,EAAE,qBAAqB,GAAE,WAAW,CAAC,MAAM,CAAa,EAAE,OAAO,GAAE,sBAA2B,EAK7H;IAED,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAgd7B;IAED,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEpC;IAED,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,gCAAgC,EAAE,CAO/E;IAED,cAAc,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,kBAAkB;IAI1B,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,MAAM,GAAG,MAAM,CAE7E;IAED,OAAO,CAAC,oBAAoB;IAgB5B,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAEhE;IAED,SAAS,CAAC,qBAAqB,CAAC,2BAA2B,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAoBlH;IAED,SAAS,CAAC,wBAAwB,IAAI,OAAO,CAE5C;IAeD,SAAS,CAAC,mBAAmB,IAAI,SAAS,MAAM,EAAE,CA+BjD;IAED;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,IAAI,SAAS,MAAM,EAAE,CAqB7C;IAED;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,IAAI,SAAS,MAAM,EAAE,CAWrD;IAED,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnD;IAED,SAAS,CAAC,iCAAiC,IAAI,OAAO,CAErD;IAED,SAAS,CAAC,+BAA+B,CAAC,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAE9H;IAED,SAAS,CAAC,8BAA8B,CACtC,UAAU,EAAE,SAAS,EACrB,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,EAClD,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAC9C,OAAO,CAET;IAED,SAAS,CAAC,sCAAsC,CAC9C,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,GAC7C,OAAO,GAAG,SAAS,CAErB;IAED,SAAS,CAAC,qCAAqC,CAC7C,UAAU,EAAE,SAAS,EACrB,mBAAmB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,EACxD,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,KAAK,OAAO,GAC5D,OAAO,GAAG,SAAS,CAErB;IAED,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,kBAAkB;IA0K1B,OAAO,CAAC,eAAe;IA0CvB,OAAO,CAAC,wBAAwB;IAehC,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;IAED;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAS/F;IAED,OAAO,CAAC,cAAc;IAkCtB,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmVnE;IAED,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,yBAAyB;IA+GjC,oHAAoH;IACpH,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,wBAAwB;IAyChC,OAAO,CAAC,mBAAmB;IA2B3B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAc,GAAG,MAAM,CAyEnF;IAED,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;IAED,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAc,GAAG,MAAM,CAkCxF;IAED,OAAO,CAAC,oBAAoB;IAI5B;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIlD;IAED,sFAAsF;IACtF,OAAO,CAAC,yBAAyB;IAgBjC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKlD;IAED,4FAA4F;IAC5F,OAAO,CAAC,uBAAuB;IAa/B,wGAAwG;IACxG,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,SAAS;IA+GjB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,UAAQ,GAAG,MAAM,CAG3F;IAED,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,UAAO,GAAG,MAAM,CA6BnF;IAED,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,qBAAqB;IAS7B,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAyavD;IAKD,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAGtD;IAED,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAuC3B,SAAS,CAAC,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAEvE;IAED,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IA+BvB,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;IAED,OAAO,CAAC,uBAAuB;IA0H/B,SAAS,CAAC,4BAA4B,CACpC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GAAG,KAAK,EACxB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,SAAS,MAAM,EAAE,CA2DnB;IAED,OAAO,CAAC,kBAAkB;IAI1B,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAatE;CACF"}