semantifold 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 (111) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +71 -0
  3. package/build/index.d.ts +54 -0
  4. package/build/index.d.ts.map +1 -0
  5. package/build/index.js +45 -0
  6. package/build/src/backends/identifiers.d.ts +19 -0
  7. package/build/src/backends/identifiers.d.ts.map +1 -0
  8. package/build/src/backends/identifiers.js +93 -0
  9. package/build/src/backends/index.d.ts +35 -0
  10. package/build/src/backends/index.d.ts.map +1 -0
  11. package/build/src/backends/index.js +149 -0
  12. package/build/src/backends/java.d.ts +8 -0
  13. package/build/src/backends/java.d.ts.map +1 -0
  14. package/build/src/backends/java.js +172 -0
  15. package/build/src/backends/javascript.d.ts +8 -0
  16. package/build/src/backends/javascript.d.ts.map +1 -0
  17. package/build/src/backends/javascript.js +173 -0
  18. package/build/src/backends/php.d.ts +8 -0
  19. package/build/src/backends/php.d.ts.map +1 -0
  20. package/build/src/backends/php.js +175 -0
  21. package/build/src/backends/ruby.d.ts +8 -0
  22. package/build/src/backends/ruby.d.ts.map +1 -0
  23. package/build/src/backends/ruby.js +155 -0
  24. package/build/src/backends/scalars.d.ts +15 -0
  25. package/build/src/backends/scalars.d.ts.map +1 -0
  26. package/build/src/backends/scalars.js +138 -0
  27. package/build/src/backends/shared.d.ts +26 -0
  28. package/build/src/backends/shared.d.ts.map +1 -0
  29. package/build/src/backends/shared.js +424 -0
  30. package/build/src/backends/typescript.d.ts +8 -0
  31. package/build/src/backends/typescript.d.ts.map +1 -0
  32. package/build/src/backends/typescript.js +160 -0
  33. package/build/src/backends/writer.d.ts +87 -0
  34. package/build/src/backends/writer.d.ts.map +1 -0
  35. package/build/src/backends/writer.js +207 -0
  36. package/build/src/diagnostic.d.ts +67 -0
  37. package/build/src/diagnostic.d.ts.map +1 -0
  38. package/build/src/diagnostic.js +96 -0
  39. package/build/src/frontends/index.d.ts +14 -0
  40. package/build/src/frontends/index.d.ts.map +1 -0
  41. package/build/src/frontends/index.js +36 -0
  42. package/build/src/frontends/java.d.ts +12 -0
  43. package/build/src/frontends/java.d.ts.map +1 -0
  44. package/build/src/frontends/java.js +630 -0
  45. package/build/src/frontends/javascript-typescript.d.ts +19 -0
  46. package/build/src/frontends/javascript-typescript.d.ts.map +1 -0
  47. package/build/src/frontends/javascript-typescript.js +633 -0
  48. package/build/src/frontends/php.d.ts +12 -0
  49. package/build/src/frontends/php.d.ts.map +1 -0
  50. package/build/src/frontends/php.js +523 -0
  51. package/build/src/frontends/ruby.d.ts +12 -0
  52. package/build/src/frontends/ruby.d.ts.map +1 -0
  53. package/build/src/frontends/ruby.js +515 -0
  54. package/build/src/frontends/scalars.d.ts +19 -0
  55. package/build/src/frontends/scalars.d.ts.map +1 -0
  56. package/build/src/frontends/scalars.js +71 -0
  57. package/build/src/mapping.d.ts +160 -0
  58. package/build/src/mapping.d.ts.map +1 -0
  59. package/build/src/mapping.js +1120 -0
  60. package/build/src/semantic/location.d.ts +61 -0
  61. package/build/src/semantic/location.d.ts.map +1 -0
  62. package/build/src/semantic/location.js +142 -0
  63. package/build/src/semantic/operators.d.ts +16 -0
  64. package/build/src/semantic/operators.d.ts.map +1 -0
  65. package/build/src/semantic/operators.js +24 -0
  66. package/build/src/semantic/provenance.d.ts +74 -0
  67. package/build/src/semantic/provenance.d.ts.map +1 -0
  68. package/build/src/semantic/provenance.js +577 -0
  69. package/build/src/semantic/scalars.d.ts +19 -0
  70. package/build/src/semantic/scalars.d.ts.map +1 -0
  71. package/build/src/semantic/scalars.js +40 -0
  72. package/build/src/semantic/types.d.ts +1003 -0
  73. package/build/src/semantic/types.d.ts.map +1 -0
  74. package/build/src/semantic/types.js +279 -0
  75. package/build/src/semantic/validate.d.ts +60 -0
  76. package/build/src/semantic/validate.d.ts.map +1 -0
  77. package/build/src/semantic/validate.js +472 -0
  78. package/docs/architecture.md +39 -0
  79. package/docs/coding-standards.md +7 -0
  80. package/docs/goals.md +7 -0
  81. package/docs/language-support.md +69 -0
  82. package/docs/plans/2026-09-02-initial-toolchain.md +54 -0
  83. package/docs/source-maps.md +134 -0
  84. package/docs/testing.md +25 -0
  85. package/index.js +63 -0
  86. package/package.json +69 -0
  87. package/src/backends/identifiers.js +101 -0
  88. package/src/backends/index.js +159 -0
  89. package/src/backends/java.js +182 -0
  90. package/src/backends/javascript.js +184 -0
  91. package/src/backends/php.js +184 -0
  92. package/src/backends/ruby.js +163 -0
  93. package/src/backends/scalars.js +120 -0
  94. package/src/backends/shared.js +456 -0
  95. package/src/backends/typescript.js +168 -0
  96. package/src/backends/writer.js +224 -0
  97. package/src/diagnostic.js +103 -0
  98. package/src/frontends/index.js +36 -0
  99. package/src/frontends/java.js +735 -0
  100. package/src/frontends/javascript-typescript.js +718 -0
  101. package/src/frontends/php.js +593 -0
  102. package/src/frontends/ruby.js +622 -0
  103. package/src/frontends/scalars.js +77 -0
  104. package/src/mapping.js +1260 -0
  105. package/src/semantic/location.js +154 -0
  106. package/src/semantic/operators.js +28 -0
  107. package/src/semantic/provenance.js +629 -0
  108. package/src/semantic/scalars.js +44 -0
  109. package/src/semantic/types.js +319 -0
  110. package/src/semantic/validate.js +529 -0
  111. package/tsconfig.json +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/semantic/types.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,279 @@
1
+ // @ts-check
2
+ /** @typedef {"php" | "ruby" | "javascript" | "typescript" | "java"} SemanticLanguage */
3
+ /** @typedef {"integer" | "boolean" | "string"} SemanticTypeName */
4
+ /** @typedef {"IntegerNegate" | "BooleanNot"} SemanticUnaryOperation */
5
+ /** @typedef {"IntegerAdd" | "IntegerSubtract" | "IntegerMultiply" | "BooleanAnd" | "BooleanOr" | "IntegerEqual" | "IntegerNotEqual" | "BooleanEqual" | "BooleanNotEqual" | "StringEqual" | "StringNotEqual" | "IntegerLessThan" | "IntegerLessThanOrEqual" | "IntegerGreaterThan" | "IntegerGreaterThanOrEqual" | "StringConcat"} SemanticBinaryOperation */
6
+ /** @typedef {"function" | "parameter" | "local"} SemanticSymbolKind */
7
+ /** @typedef {"declaration" | "read" | "write" | "call"} SemanticSymbolRole */
8
+ /**
9
+ * @typedef SourcePoint
10
+ * @property {number} line - One-based line.
11
+ * @property {number} column - One-based UTF-16 code-unit column.
12
+ * @property {number} offset - Zero-based UTF-16 source offset.
13
+ */
14
+ /**
15
+ * @typedef SourceLocation
16
+ * @property {string} filename - Originating filename.
17
+ * @property {SourcePoint} start - Inclusive start.
18
+ * @property {SourcePoint} end - Exclusive end.
19
+ */
20
+ /**
21
+ * @typedef RegisteredSource
22
+ * @property {string} id - Registry-local deterministic source identity.
23
+ * @property {string} filename - Original filename, preserved verbatim.
24
+ * @property {string | null} content - Original source content, preserved verbatim when available.
25
+ * @property {SemanticLanguage | null} language - Parser language when known.
26
+ */
27
+ /**
28
+ * @typedef SourceOrigin
29
+ * @property {"source"} kind - Direct source provenance.
30
+ * @property {string} sourceId - Registered source identity.
31
+ * @property {SourceLocation} location - Exact original range.
32
+ */
33
+ /**
34
+ * @typedef RelatedOrigin
35
+ * @property {string} sourceId - Registered source identity.
36
+ * @property {SourceLocation} location - Related original range.
37
+ * @property {string} [nodeId] - Related semantic node identity.
38
+ * @property {string} [symbolId] - Related semantic symbol identity.
39
+ * @property {string} [role] - Relationship role.
40
+ */
41
+ /**
42
+ * @typedef DerivedOrigin
43
+ * @property {"derived"} kind - Provenance derived from one or more origins.
44
+ * @property {RelatedOrigin[]} origins - Ordered, non-empty original ranges.
45
+ */
46
+ /**
47
+ * @typedef SyntheticOrigin
48
+ * @property {"synthetic"} kind - Source-free generated or semantic scaffolding.
49
+ * @property {string} reason - Stable human-readable reason.
50
+ * @property {RelatedOrigin[]} relatedOrigins - Ordered related ranges, possibly empty.
51
+ */
52
+ /** @typedef {SourceOrigin | DerivedOrigin | SyntheticOrigin} SemanticOrigin */
53
+ /**
54
+ * @typedef SemanticNodeSourceProvenance
55
+ * @property {"SemantifoldNodeProvenance"} schema - Association discriminator.
56
+ * @property {1} version - Association version.
57
+ * @property {SemanticOrigin} origin - Source association independent of traversal position.
58
+ * @property {Readonly<Record<string, SourceLocation>>} ranges - Exact semantic-token subranges by role.
59
+ */
60
+ /**
61
+ * @typedef SemanticNodeProvenance
62
+ * @property {string} id - Deterministic module-local node identity.
63
+ * @property {string} path - JSON Pointer from the semantic module root.
64
+ * @property {SemanticNode["kind"] | "TypeReference"} kind - Semantic node kind.
65
+ * @property {SemanticOrigin} origin - Closed provenance value.
66
+ * @property {Readonly<Record<string, SourceLocation>>} ranges - Exact semantic-token subranges by role.
67
+ * @property {string} [symbolId] - Resolved declared/referenced symbol identity.
68
+ */
69
+ /**
70
+ * @typedef SemanticSymbolReference
71
+ * @property {string} nodeId - Referring semantic node identity.
72
+ * @property {SemanticSymbolRole} role - Reference role.
73
+ * @property {SourceLocation} location - Exact reference range.
74
+ */
75
+ /**
76
+ * @typedef SemanticSymbolProvenance
77
+ * @property {string} id - Deterministic module-local symbol identity.
78
+ * @property {string} name - Semantic symbol name.
79
+ * @property {SemanticSymbolKind} kind - Symbol category.
80
+ * @property {string} declarationNodeId - Declaring node identity.
81
+ * @property {SourceLocation} location - Exact declaration-name range.
82
+ * @property {SemanticSymbolReference[]} references - Ordered resolved references.
83
+ */
84
+ /**
85
+ * @typedef SemanticProvenance
86
+ * @property {"SemantifoldProvenance"} schema - Schema discriminator.
87
+ * @property {1} version - Schema version.
88
+ * @property {"utf16"} coordinateSystem - Offset and column unit.
89
+ * @property {RegisteredSource[]} sources - Versioned source registry.
90
+ * @property {SemanticNodeProvenance[]} nodes - Deterministic node index.
91
+ * @property {SemanticSymbolProvenance[]} symbols - Deterministic symbol index.
92
+ */
93
+ /** @typedef {"exact" | "anchor" | "synthetic"} MappingKind */
94
+ /**
95
+ * @typedef SemantifoldMappingSpan
96
+ * @property {SourceLocation} generated - Generated half-open range.
97
+ * @property {MappingKind} mappingKind - Mapping precision.
98
+ * @property {SemanticOrigin} origin - Closed original provenance.
99
+ * @property {string} [nodeId] - Related canonical semantic node.
100
+ * @property {string} [symbolId] - Related canonical semantic symbol.
101
+ * @property {string} [role] - Semantic token role.
102
+ * @property {string} [name] - Useful symbol name for Source Map v3.
103
+ */
104
+ /**
105
+ * @typedef GeneratedSource
106
+ * @property {string} filename - Output filename.
107
+ * @property {SemanticLanguage} language - Output language.
108
+ * @property {string} content - Exact generated LF source.
109
+ */
110
+ /**
111
+ * @typedef SemantifoldMapping
112
+ * @property {"SemantifoldMapping"} schema - Schema discriminator.
113
+ * @property {1} version - Schema version.
114
+ * @property {"utf16"} coordinateSystem - Offset and column unit.
115
+ * @property {GeneratedSource} generated - Generated program identity and content.
116
+ * @property {RegisteredSource[]} sources - Original source registry.
117
+ * @property {SemanticNodeProvenance[]} nodes - Canonical semantic node index.
118
+ * @property {SemanticSymbolProvenance[]} symbols - Canonical semantic symbol index.
119
+ * @property {SemantifoldMappingSpan[]} spans - Ordered generated ranges.
120
+ */
121
+ /**
122
+ * @typedef GeneratedArtifact
123
+ * @property {string} code - Generated output program, including any requested directive.
124
+ * @property {string} filename - Generated output filename.
125
+ * @property {SemanticLanguage} language - Output language.
126
+ * @property {SemantifoldMapping} mapping - Authoritative rich mapping.
127
+ * @property {import("@jridgewell/gen-mapping").EncodedSourceMap} sourceMap - Source Map v3 projection.
128
+ * @property {string} sourceMapFilename - Default external Source Map filename.
129
+ */
130
+ /**
131
+ * @typedef TypeReference
132
+ * @property {"TypeReference"} kind - Node discriminator.
133
+ * @property {SemanticTypeName} name - Normalized type name.
134
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance that survives semantic transforms.
135
+ */
136
+ /**
137
+ * @typedef Parameter
138
+ * @property {"Parameter"} kind - Node discriminator.
139
+ * @property {string} name - Parameter name.
140
+ * @property {TypeReference} type - Parameter type.
141
+ * @property {SourceLocation} location - Source location.
142
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
143
+ */
144
+ /**
145
+ * @typedef IdentifierExpression
146
+ * @property {"IdentifierExpression"} kind - Node discriminator.
147
+ * @property {string} name - Referenced name.
148
+ * @property {SourceLocation} location - Source location.
149
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
150
+ */
151
+ /**
152
+ * @typedef IntegerLiteral
153
+ * @property {"IntegerLiteral"} kind - Node discriminator.
154
+ * @property {number} value - JavaScript-safe integer value.
155
+ * @property {SourceLocation} location - Source location.
156
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
157
+ */
158
+ /**
159
+ * @typedef BooleanLiteral
160
+ * @property {"BooleanLiteral"} kind - Node discriminator.
161
+ * @property {boolean} value - Boolean value.
162
+ * @property {SourceLocation} location - Source location.
163
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
164
+ */
165
+ /**
166
+ * @typedef StringLiteral
167
+ * @property {"StringLiteral"} kind - Node discriminator.
168
+ * @property {string} value - Unicode string value.
169
+ * @property {SourceLocation} location - Source location.
170
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
171
+ */
172
+ /**
173
+ * @typedef UnaryExpression
174
+ * @property {"UnaryExpression"} kind - Node discriminator.
175
+ * @property {SemanticUnaryOperation} operation - Closed semantic operation.
176
+ * @property {Expression} operand - Operand evaluated exactly once.
177
+ * @property {SemanticTypeName} type - Explicit operation result type.
178
+ * @property {SourceLocation} location - Source location.
179
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
180
+ */
181
+ /**
182
+ * @typedef BinaryExpression
183
+ * @property {"BinaryExpression"} kind - Node discriminator.
184
+ * @property {SemanticBinaryOperation} operation - Closed semantic operation.
185
+ * @property {Expression} left - Left operand.
186
+ * @property {Expression} right - Right operand.
187
+ * @property {SemanticTypeName} type - Explicit operation result type.
188
+ * @property {SourceLocation} location - Source location.
189
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
190
+ */
191
+ /**
192
+ * @typedef CallExpression
193
+ * @property {"CallExpression"} kind - Node discriminator.
194
+ * @property {string} callee - Function name.
195
+ * @property {Expression[]} arguments - Positional arguments.
196
+ * @property {SourceLocation} location - Source location.
197
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
198
+ */
199
+ /** @typedef {IdentifierExpression | IntegerLiteral | BooleanLiteral | StringLiteral | UnaryExpression | BinaryExpression | CallExpression} Expression */
200
+ /**
201
+ * @typedef LocalDeclaration
202
+ * @property {"LocalDeclaration"} kind - Node discriminator.
203
+ * @property {string} name - Declared local name.
204
+ * @property {TypeReference} type - Explicit local type.
205
+ * @property {boolean} mutable - Whether later assignment is allowed.
206
+ * @property {Expression} initializer - Required initializer expression.
207
+ * @property {SourceLocation} location - Declaration source location.
208
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
209
+ */
210
+ /**
211
+ * @typedef AssignmentStatement
212
+ * @property {"AssignmentStatement"} kind - Node discriminator.
213
+ * @property {IdentifierExpression} target - Simple local assignment target.
214
+ * @property {Expression} expression - Assigned expression.
215
+ * @property {SourceLocation} location - Assignment source location.
216
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
217
+ */
218
+ /**
219
+ * @typedef ReturnStatement
220
+ * @property {"ReturnStatement"} kind - Node discriminator.
221
+ * @property {Expression} expression - Returned expression.
222
+ * @property {SourceLocation} location - Source location.
223
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
224
+ */
225
+ /**
226
+ * @typedef IfStatement
227
+ * @property {"IfStatement"} kind - Node discriminator.
228
+ * @property {Expression} condition - Branch condition.
229
+ * @property {Block} consequent - True branch.
230
+ * @property {Block} [alternate] - False branch, absent when execution falls through.
231
+ * @property {SourceLocation} location - Source location.
232
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
233
+ */
234
+ /** @typedef {LocalDeclaration | AssignmentStatement} LocalStatement */
235
+ /** @typedef {LocalStatement | IfStatement | ReturnStatement | PrintStatement} Statement */
236
+ /**
237
+ * @typedef Block
238
+ * @property {"Block"} kind - Node discriminator.
239
+ * @property {Statement[]} statements - Ordered statements in one lexical scope.
240
+ * @property {SourceLocation} location - Source location.
241
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
242
+ */
243
+ /**
244
+ * @typedef FunctionDeclaration
245
+ * @property {"FunctionDeclaration"} kind - Node discriminator.
246
+ * @property {string} name - Function name.
247
+ * @property {Parameter[]} parameters - Function parameters.
248
+ * @property {TypeReference} returnType - Return type.
249
+ * @property {Block} body - Function body.
250
+ * @property {SourceLocation} location - Source location.
251
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
252
+ */
253
+ /**
254
+ * @typedef PrintStatement
255
+ * @property {"PrintStatement"} kind - Node discriminator.
256
+ * @property {Expression} expression - Printed expression.
257
+ * @property {SourceLocation} location - Source location.
258
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
259
+ */
260
+ /**
261
+ * @typedef EntryPoint
262
+ * @property {"EntryPoint"} kind - Node discriminator.
263
+ * @property {Block} body - Entry-point body.
264
+ * @property {SourceLocation} location - Source location.
265
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
266
+ */
267
+ /**
268
+ * @typedef SemanticModule
269
+ * @property {"Module"} kind - Node discriminator.
270
+ * @property {FunctionDeclaration[]} functions - Top-level functions.
271
+ * @property {EntryPoint} entryPoint - Executable entry point.
272
+ * @property {SourceLocation} location - Source location.
273
+ * @property {SemanticNodeSourceProvenance} [sourceProvenance] - Node-associated provenance.
274
+ * @property {SemanticProvenance} [provenance] - Parser-authored source and identity index; optional for legacy caller-authored modules.
275
+ */
276
+ /** @typedef {SemanticModule | FunctionDeclaration | Parameter | Block | Statement | EntryPoint | Expression | TypeReference} SemanticNode */
277
+ /** @typedef {SemanticNode} SemanticNodeWithoutLocations */
278
+ export {};
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VtYW50aWMvdHlwZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLHdGQUF3RjtBQUN4RixtRUFBbUU7QUFDbkUsdUVBQXVFO0FBQ3ZFLDZWQUE2VjtBQUM3Vix1RUFBdUU7QUFDdkUsOEVBQThFO0FBRTlFOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7R0FLRztBQUVIOzs7Ozs7O0dBT0c7QUFFSDs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFFSCwrRUFBK0U7QUFFL0U7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7O0dBUUc7QUFFSDs7Ozs7R0FLRztBQUVIOzs7Ozs7OztHQVFHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFFSCw4REFBOEQ7QUFFOUQ7Ozs7Ozs7OztHQVNHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFFSDs7Ozs7R0FLRztBQUVIOzs7Ozs7O0dBT0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7Ozs7R0FRRztBQUVIOzs7Ozs7Ozs7R0FTRztBQUVIOzs7Ozs7O0dBT0c7QUFFSCx5SkFBeUo7QUFFeko7Ozs7Ozs7OztHQVNHO0FBRUg7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7R0FNRztBQUVIOzs7Ozs7OztHQVFHO0FBRUgsdUVBQXVFO0FBQ3ZFLDJGQUEyRjtBQUUzRjs7Ozs7O0dBTUc7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7Ozs7R0FRRztBQUVILDZJQUE2STtBQUM3SSwyREFBMkQ7QUFFM0QsT0FBTyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqIEB0eXBlZGVmIHtcInBocFwiIHwgXCJydWJ5XCIgfCBcImphdmFzY3JpcHRcIiB8IFwidHlwZXNjcmlwdFwiIHwgXCJqYXZhXCJ9IFNlbWFudGljTGFuZ3VhZ2UgKi9cbi8qKiBAdHlwZWRlZiB7XCJpbnRlZ2VyXCIgfCBcImJvb2xlYW5cIiB8IFwic3RyaW5nXCJ9IFNlbWFudGljVHlwZU5hbWUgKi9cbi8qKiBAdHlwZWRlZiB7XCJJbnRlZ2VyTmVnYXRlXCIgfCBcIkJvb2xlYW5Ob3RcIn0gU2VtYW50aWNVbmFyeU9wZXJhdGlvbiAqL1xuLyoqIEB0eXBlZGVmIHtcIkludGVnZXJBZGRcIiB8IFwiSW50ZWdlclN1YnRyYWN0XCIgfCBcIkludGVnZXJNdWx0aXBseVwiIHwgXCJCb29sZWFuQW5kXCIgfCBcIkJvb2xlYW5PclwiIHwgXCJJbnRlZ2VyRXF1YWxcIiB8IFwiSW50ZWdlck5vdEVxdWFsXCIgfCBcIkJvb2xlYW5FcXVhbFwiIHwgXCJCb29sZWFuTm90RXF1YWxcIiB8IFwiU3RyaW5nRXF1YWxcIiB8IFwiU3RyaW5nTm90RXF1YWxcIiB8IFwiSW50ZWdlckxlc3NUaGFuXCIgfCBcIkludGVnZXJMZXNzVGhhbk9yRXF1YWxcIiB8IFwiSW50ZWdlckdyZWF0ZXJUaGFuXCIgfCBcIkludGVnZXJHcmVhdGVyVGhhbk9yRXF1YWxcIiB8IFwiU3RyaW5nQ29uY2F0XCJ9IFNlbWFudGljQmluYXJ5T3BlcmF0aW9uICovXG4vKiogQHR5cGVkZWYge1wiZnVuY3Rpb25cIiB8IFwicGFyYW1ldGVyXCIgfCBcImxvY2FsXCJ9IFNlbWFudGljU3ltYm9sS2luZCAqL1xuLyoqIEB0eXBlZGVmIHtcImRlY2xhcmF0aW9uXCIgfCBcInJlYWRcIiB8IFwid3JpdGVcIiB8IFwiY2FsbFwifSBTZW1hbnRpY1N5bWJvbFJvbGUgKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBTb3VyY2VQb2ludFxuICogQHByb3BlcnR5IHtudW1iZXJ9IGxpbmUgLSBPbmUtYmFzZWQgbGluZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjb2x1bW4gLSBPbmUtYmFzZWQgVVRGLTE2IGNvZGUtdW5pdCBjb2x1bW4uXG4gKiBAcHJvcGVydHkge251bWJlcn0gb2Zmc2V0IC0gWmVyby1iYXNlZCBVVEYtMTYgc291cmNlIG9mZnNldC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNvdXJjZUxvY2F0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmlsZW5hbWUgLSBPcmlnaW5hdGluZyBmaWxlbmFtZS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlUG9pbnR9IHN0YXJ0IC0gSW5jbHVzaXZlIHN0YXJ0LlxuICogQHByb3BlcnR5IHtTb3VyY2VQb2ludH0gZW5kIC0gRXhjbHVzaXZlIGVuZC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFJlZ2lzdGVyZWRTb3VyY2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZCAtIFJlZ2lzdHJ5LWxvY2FsIGRldGVybWluaXN0aWMgc291cmNlIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGZpbGVuYW1lIC0gT3JpZ2luYWwgZmlsZW5hbWUsIHByZXNlcnZlZCB2ZXJiYXRpbS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gY29udGVudCAtIE9yaWdpbmFsIHNvdXJjZSBjb250ZW50LCBwcmVzZXJ2ZWQgdmVyYmF0aW0gd2hlbiBhdmFpbGFibGUuXG4gKiBAcHJvcGVydHkge1NlbWFudGljTGFuZ3VhZ2UgfCBudWxsfSBsYW5ndWFnZSAtIFBhcnNlciBsYW5ndWFnZSB3aGVuIGtub3duLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU291cmNlT3JpZ2luXG4gKiBAcHJvcGVydHkge1wic291cmNlXCJ9IGtpbmQgLSBEaXJlY3Qgc291cmNlIHByb3ZlbmFuY2UuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc291cmNlSWQgLSBSZWdpc3RlcmVkIHNvdXJjZSBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gRXhhY3Qgb3JpZ2luYWwgcmFuZ2UuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBSZWxhdGVkT3JpZ2luXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc291cmNlSWQgLSBSZWdpc3RlcmVkIHNvdXJjZSBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gUmVsYXRlZCBvcmlnaW5hbCByYW5nZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbm9kZUlkXSAtIFJlbGF0ZWQgc2VtYW50aWMgbm9kZSBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc3ltYm9sSWRdIC0gUmVsYXRlZCBzZW1hbnRpYyBzeW1ib2wgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3JvbGVdIC0gUmVsYXRpb25zaGlwIHJvbGUuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBEZXJpdmVkT3JpZ2luXG4gKiBAcHJvcGVydHkge1wiZGVyaXZlZFwifSBraW5kIC0gUHJvdmVuYW5jZSBkZXJpdmVkIGZyb20gb25lIG9yIG1vcmUgb3JpZ2lucy5cbiAqIEBwcm9wZXJ0eSB7UmVsYXRlZE9yaWdpbltdfSBvcmlnaW5zIC0gT3JkZXJlZCwgbm9uLWVtcHR5IG9yaWdpbmFsIHJhbmdlcy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFN5bnRoZXRpY09yaWdpblxuICogQHByb3BlcnR5IHtcInN5bnRoZXRpY1wifSBraW5kIC0gU291cmNlLWZyZWUgZ2VuZXJhdGVkIG9yIHNlbWFudGljIHNjYWZmb2xkaW5nLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHJlYXNvbiAtIFN0YWJsZSBodW1hbi1yZWFkYWJsZSByZWFzb24uXG4gKiBAcHJvcGVydHkge1JlbGF0ZWRPcmlnaW5bXX0gcmVsYXRlZE9yaWdpbnMgLSBPcmRlcmVkIHJlbGF0ZWQgcmFuZ2VzLCBwb3NzaWJseSBlbXB0eS5cbiAqL1xuXG4vKiogQHR5cGVkZWYge1NvdXJjZU9yaWdpbiB8IERlcml2ZWRPcmlnaW4gfCBTeW50aGV0aWNPcmlnaW59IFNlbWFudGljT3JpZ2luICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZVxuICogQHByb3BlcnR5IHtcIlNlbWFudGlmb2xkTm9kZVByb3ZlbmFuY2VcIn0gc2NoZW1hIC0gQXNzb2NpYXRpb24gZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7MX0gdmVyc2lvbiAtIEFzc29jaWF0aW9uIHZlcnNpb24uXG4gKiBAcHJvcGVydHkge1NlbWFudGljT3JpZ2lufSBvcmlnaW4gLSBTb3VyY2UgYXNzb2NpYXRpb24gaW5kZXBlbmRlbnQgb2YgdHJhdmVyc2FsIHBvc2l0aW9uLlxuICogQHByb3BlcnR5IHtSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBTb3VyY2VMb2NhdGlvbj4+fSByYW5nZXMgLSBFeGFjdCBzZW1hbnRpYy10b2tlbiBzdWJyYW5nZXMgYnkgcm9sZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlbWFudGljTm9kZVByb3ZlbmFuY2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZCAtIERldGVybWluaXN0aWMgbW9kdWxlLWxvY2FsIG5vZGUgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGF0aCAtIEpTT04gUG9pbnRlciBmcm9tIHRoZSBzZW1hbnRpYyBtb2R1bGUgcm9vdC5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlW1wia2luZFwiXSB8IFwiVHlwZVJlZmVyZW5jZVwifSBraW5kIC0gU2VtYW50aWMgbm9kZSBraW5kLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY09yaWdpbn0gb3JpZ2luIC0gQ2xvc2VkIHByb3ZlbmFuY2UgdmFsdWUuXG4gKiBAcHJvcGVydHkge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFNvdXJjZUxvY2F0aW9uPj59IHJhbmdlcyAtIEV4YWN0IHNlbWFudGljLXRva2VuIHN1YnJhbmdlcyBieSByb2xlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzeW1ib2xJZF0gLSBSZXNvbHZlZCBkZWNsYXJlZC9yZWZlcmVuY2VkIHN5bWJvbCBpZGVudGl0eS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlbWFudGljU3ltYm9sUmVmZXJlbmNlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbm9kZUlkIC0gUmVmZXJyaW5nIHNlbWFudGljIG5vZGUgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge1NlbWFudGljU3ltYm9sUm9sZX0gcm9sZSAtIFJlZmVyZW5jZSByb2xlLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBFeGFjdCByZWZlcmVuY2UgcmFuZ2UuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBTZW1hbnRpY1N5bWJvbFByb3ZlbmFuY2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZCAtIERldGVybWluaXN0aWMgbW9kdWxlLWxvY2FsIHN5bWJvbCBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gU2VtYW50aWMgc3ltYm9sIG5hbWUuXG4gKiBAcHJvcGVydHkge1NlbWFudGljU3ltYm9sS2luZH0ga2luZCAtIFN5bWJvbCBjYXRlZ29yeS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZWNsYXJhdGlvbk5vZGVJZCAtIERlY2xhcmluZyBub2RlIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBFeGFjdCBkZWNsYXJhdGlvbi1uYW1lIHJhbmdlLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY1N5bWJvbFJlZmVyZW5jZVtdfSByZWZlcmVuY2VzIC0gT3JkZXJlZCByZXNvbHZlZCByZWZlcmVuY2VzLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2VtYW50aWNQcm92ZW5hbmNlXG4gKiBAcHJvcGVydHkge1wiU2VtYW50aWZvbGRQcm92ZW5hbmNlXCJ9IHNjaGVtYSAtIFNjaGVtYSBkaXNjcmltaW5hdG9yLlxuICogQHByb3BlcnR5IHsxfSB2ZXJzaW9uIC0gU2NoZW1hIHZlcnNpb24uXG4gKiBAcHJvcGVydHkge1widXRmMTZcIn0gY29vcmRpbmF0ZVN5c3RlbSAtIE9mZnNldCBhbmQgY29sdW1uIHVuaXQuXG4gKiBAcHJvcGVydHkge1JlZ2lzdGVyZWRTb3VyY2VbXX0gc291cmNlcyAtIFZlcnNpb25lZCBzb3VyY2UgcmVnaXN0cnkuXG4gKiBAcHJvcGVydHkge1NlbWFudGljTm9kZVByb3ZlbmFuY2VbXX0gbm9kZXMgLSBEZXRlcm1pbmlzdGljIG5vZGUgaW5kZXguXG4gKiBAcHJvcGVydHkge1NlbWFudGljU3ltYm9sUHJvdmVuYW5jZVtdfSBzeW1ib2xzIC0gRGV0ZXJtaW5pc3RpYyBzeW1ib2wgaW5kZXguXG4gKi9cblxuLyoqIEB0eXBlZGVmIHtcImV4YWN0XCIgfCBcImFuY2hvclwiIHwgXCJzeW50aGV0aWNcIn0gTWFwcGluZ0tpbmQgKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBTZW1hbnRpZm9sZE1hcHBpbmdTcGFuXG4gKiBAcHJvcGVydHkge1NvdXJjZUxvY2F0aW9ufSBnZW5lcmF0ZWQgLSBHZW5lcmF0ZWQgaGFsZi1vcGVuIHJhbmdlLlxuICogQHByb3BlcnR5IHtNYXBwaW5nS2luZH0gbWFwcGluZ0tpbmQgLSBNYXBwaW5nIHByZWNpc2lvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNPcmlnaW59IG9yaWdpbiAtIENsb3NlZCBvcmlnaW5hbCBwcm92ZW5hbmNlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtub2RlSWRdIC0gUmVsYXRlZCBjYW5vbmljYWwgc2VtYW50aWMgbm9kZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc3ltYm9sSWRdIC0gUmVsYXRlZCBjYW5vbmljYWwgc2VtYW50aWMgc3ltYm9sLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyb2xlXSAtIFNlbWFudGljIHRva2VuIHJvbGUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVXNlZnVsIHN5bWJvbCBuYW1lIGZvciBTb3VyY2UgTWFwIHYzLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgR2VuZXJhdGVkU291cmNlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmlsZW5hbWUgLSBPdXRwdXQgZmlsZW5hbWUuXG4gKiBAcHJvcGVydHkge1NlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gT3V0cHV0IGxhbmd1YWdlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbnRlbnQgLSBFeGFjdCBnZW5lcmF0ZWQgTEYgc291cmNlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2VtYW50aWZvbGRNYXBwaW5nXG4gKiBAcHJvcGVydHkge1wiU2VtYW50aWZvbGRNYXBwaW5nXCJ9IHNjaGVtYSAtIFNjaGVtYSBkaXNjcmltaW5hdG9yLlxuICogQHByb3BlcnR5IHsxfSB2ZXJzaW9uIC0gU2NoZW1hIHZlcnNpb24uXG4gKiBAcHJvcGVydHkge1widXRmMTZcIn0gY29vcmRpbmF0ZVN5c3RlbSAtIE9mZnNldCBhbmQgY29sdW1uIHVuaXQuXG4gKiBAcHJvcGVydHkge0dlbmVyYXRlZFNvdXJjZX0gZ2VuZXJhdGVkIC0gR2VuZXJhdGVkIHByb2dyYW0gaWRlbnRpdHkgYW5kIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge1JlZ2lzdGVyZWRTb3VyY2VbXX0gc291cmNlcyAtIE9yaWdpbmFsIHNvdXJjZSByZWdpc3RyeS5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlUHJvdmVuYW5jZVtdfSBub2RlcyAtIENhbm9uaWNhbCBzZW1hbnRpYyBub2RlIGluZGV4LlxuICogQHByb3BlcnR5IHtTZW1hbnRpY1N5bWJvbFByb3ZlbmFuY2VbXX0gc3ltYm9scyAtIENhbm9uaWNhbCBzZW1hbnRpYyBzeW1ib2wgaW5kZXguXG4gKiBAcHJvcGVydHkge1NlbWFudGlmb2xkTWFwcGluZ1NwYW5bXX0gc3BhbnMgLSBPcmRlcmVkIGdlbmVyYXRlZCByYW5nZXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBHZW5lcmF0ZWRBcnRpZmFjdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvZGUgLSBHZW5lcmF0ZWQgb3V0cHV0IHByb2dyYW0sIGluY2x1ZGluZyBhbnkgcmVxdWVzdGVkIGRpcmVjdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlbmFtZSAtIEdlbmVyYXRlZCBvdXRwdXQgZmlsZW5hbWUuXG4gKiBAcHJvcGVydHkge1NlbWFudGljTGFuZ3VhZ2V9IGxhbmd1YWdlIC0gT3V0cHV0IGxhbmd1YWdlLlxuICogQHByb3BlcnR5IHtTZW1hbnRpZm9sZE1hcHBpbmd9IG1hcHBpbmcgLSBBdXRob3JpdGF0aXZlIHJpY2ggbWFwcGluZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiQGpyaWRnZXdlbGwvZ2VuLW1hcHBpbmdcIikuRW5jb2RlZFNvdXJjZU1hcH0gc291cmNlTWFwIC0gU291cmNlIE1hcCB2MyBwcm9qZWN0aW9uLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNvdXJjZU1hcEZpbGVuYW1lIC0gRGVmYXVsdCBleHRlcm5hbCBTb3VyY2UgTWFwIGZpbGVuYW1lLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgVHlwZVJlZmVyZW5jZVxuICogQHByb3BlcnR5IHtcIlR5cGVSZWZlcmVuY2VcIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNUeXBlTmFtZX0gbmFtZSAtIE5vcm1hbGl6ZWQgdHlwZSBuYW1lLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZSB0aGF0IHN1cnZpdmVzIHNlbWFudGljIHRyYW5zZm9ybXMuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBQYXJhbWV0ZXJcbiAqIEBwcm9wZXJ0eSB7XCJQYXJhbWV0ZXJcIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gUGFyYW1ldGVyIG5hbWUuXG4gKiBAcHJvcGVydHkge1R5cGVSZWZlcmVuY2V9IHR5cGUgLSBQYXJhbWV0ZXIgdHlwZS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIElkZW50aWZpZXJFeHByZXNzaW9uXG4gKiBAcHJvcGVydHkge1wiSWRlbnRpZmllckV4cHJlc3Npb25cIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gUmVmZXJlbmNlZCBuYW1lLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcHJvcGVydHkge1NlbWFudGljTm9kZVNvdXJjZVByb3ZlbmFuY2V9IFtzb3VyY2VQcm92ZW5hbmNlXSAtIE5vZGUtYXNzb2NpYXRlZCBwcm92ZW5hbmNlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgSW50ZWdlckxpdGVyYWxcbiAqIEBwcm9wZXJ0eSB7XCJJbnRlZ2VyTGl0ZXJhbFwifSBraW5kIC0gTm9kZSBkaXNjcmltaW5hdG9yLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZhbHVlIC0gSmF2YVNjcmlwdC1zYWZlIGludGVnZXIgdmFsdWUuXG4gKiBAcHJvcGVydHkge1NvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIFNvdXJjZSBsb2NhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZX0gW3NvdXJjZVByb3ZlbmFuY2VdIC0gTm9kZS1hc3NvY2lhdGVkIHByb3ZlbmFuY2UuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBCb29sZWFuTGl0ZXJhbFxuICogQHByb3BlcnR5IHtcIkJvb2xlYW5MaXRlcmFsXCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZhbHVlIC0gQm9vbGVhbiB2YWx1ZS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFN0cmluZ0xpdGVyYWxcbiAqIEBwcm9wZXJ0eSB7XCJTdHJpbmdMaXRlcmFsXCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUgLSBVbmljb2RlIHN0cmluZyB2YWx1ZS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFVuYXJ5RXhwcmVzc2lvblxuICogQHByb3BlcnR5IHtcIlVuYXJ5RXhwcmVzc2lvblwifSBraW5kIC0gTm9kZSBkaXNjcmltaW5hdG9yLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY1VuYXJ5T3BlcmF0aW9ufSBvcGVyYXRpb24gLSBDbG9zZWQgc2VtYW50aWMgb3BlcmF0aW9uLlxuICogQHByb3BlcnR5IHtFeHByZXNzaW9ufSBvcGVyYW5kIC0gT3BlcmFuZCBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY1R5cGVOYW1lfSB0eXBlIC0gRXhwbGljaXQgb3BlcmF0aW9uIHJlc3VsdCB0eXBlLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcHJvcGVydHkge1NlbWFudGljTm9kZVNvdXJjZVByb3ZlbmFuY2V9IFtzb3VyY2VQcm92ZW5hbmNlXSAtIE5vZGUtYXNzb2NpYXRlZCBwcm92ZW5hbmNlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgQmluYXJ5RXhwcmVzc2lvblxuICogQHByb3BlcnR5IHtcIkJpbmFyeUV4cHJlc3Npb25cIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNCaW5hcnlPcGVyYXRpb259IG9wZXJhdGlvbiAtIENsb3NlZCBzZW1hbnRpYyBvcGVyYXRpb24uXG4gKiBAcHJvcGVydHkge0V4cHJlc3Npb259IGxlZnQgLSBMZWZ0IG9wZXJhbmQuXG4gKiBAcHJvcGVydHkge0V4cHJlc3Npb259IHJpZ2h0IC0gUmlnaHQgb3BlcmFuZC5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNUeXBlTmFtZX0gdHlwZSAtIEV4cGxpY2l0IG9wZXJhdGlvbiByZXN1bHQgdHlwZS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIENhbGxFeHByZXNzaW9uXG4gKiBAcHJvcGVydHkge1wiQ2FsbEV4cHJlc3Npb25cIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjYWxsZWUgLSBGdW5jdGlvbiBuYW1lLlxuICogQHByb3BlcnR5IHtFeHByZXNzaW9uW119IGFyZ3VtZW50cyAtIFBvc2l0aW9uYWwgYXJndW1lbnRzLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcHJvcGVydHkge1NlbWFudGljTm9kZVNvdXJjZVByb3ZlbmFuY2V9IFtzb3VyY2VQcm92ZW5hbmNlXSAtIE5vZGUtYXNzb2NpYXRlZCBwcm92ZW5hbmNlLlxuICovXG5cbi8qKiBAdHlwZWRlZiB7SWRlbnRpZmllckV4cHJlc3Npb24gfCBJbnRlZ2VyTGl0ZXJhbCB8IEJvb2xlYW5MaXRlcmFsIHwgU3RyaW5nTGl0ZXJhbCB8IFVuYXJ5RXhwcmVzc2lvbiB8IEJpbmFyeUV4cHJlc3Npb24gfCBDYWxsRXhwcmVzc2lvbn0gRXhwcmVzc2lvbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIExvY2FsRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7XCJMb2NhbERlY2xhcmF0aW9uXCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbmFtZSAtIERlY2xhcmVkIGxvY2FsIG5hbWUuXG4gKiBAcHJvcGVydHkge1R5cGVSZWZlcmVuY2V9IHR5cGUgLSBFeHBsaWNpdCBsb2NhbCB0eXBlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBtdXRhYmxlIC0gV2hldGhlciBsYXRlciBhc3NpZ25tZW50IGlzIGFsbG93ZWQuXG4gKiBAcHJvcGVydHkge0V4cHJlc3Npb259IGluaXRpYWxpemVyIC0gUmVxdWlyZWQgaW5pdGlhbGl6ZXIgZXhwcmVzc2lvbi5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gRGVjbGFyYXRpb24gc291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIEFzc2lnbm1lbnRTdGF0ZW1lbnRcbiAqIEBwcm9wZXJ0eSB7XCJBc3NpZ25tZW50U3RhdGVtZW50XCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge0lkZW50aWZpZXJFeHByZXNzaW9ufSB0YXJnZXQgLSBTaW1wbGUgbG9jYWwgYXNzaWdubWVudCB0YXJnZXQuXG4gKiBAcHJvcGVydHkge0V4cHJlc3Npb259IGV4cHJlc3Npb24gLSBBc3NpZ25lZCBleHByZXNzaW9uLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBBc3NpZ25tZW50IHNvdXJjZSBsb2NhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZX0gW3NvdXJjZVByb3ZlbmFuY2VdIC0gTm9kZS1hc3NvY2lhdGVkIHByb3ZlbmFuY2UuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBSZXR1cm5TdGF0ZW1lbnRcbiAqIEBwcm9wZXJ0eSB7XCJSZXR1cm5TdGF0ZW1lbnRcIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7RXhwcmVzc2lvbn0gZXhwcmVzc2lvbiAtIFJldHVybmVkIGV4cHJlc3Npb24uXG4gKiBAcHJvcGVydHkge1NvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIFNvdXJjZSBsb2NhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZX0gW3NvdXJjZVByb3ZlbmFuY2VdIC0gTm9kZS1hc3NvY2lhdGVkIHByb3ZlbmFuY2UuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBJZlN0YXRlbWVudFxuICogQHByb3BlcnR5IHtcIklmU3RhdGVtZW50XCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge0V4cHJlc3Npb259IGNvbmRpdGlvbiAtIEJyYW5jaCBjb25kaXRpb24uXG4gKiBAcHJvcGVydHkge0Jsb2NrfSBjb25zZXF1ZW50IC0gVHJ1ZSBicmFuY2guXG4gKiBAcHJvcGVydHkge0Jsb2NrfSBbYWx0ZXJuYXRlXSAtIEZhbHNlIGJyYW5jaCwgYWJzZW50IHdoZW4gZXhlY3V0aW9uIGZhbGxzIHRocm91Z2guXG4gKiBAcHJvcGVydHkge1NvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIFNvdXJjZSBsb2NhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZX0gW3NvdXJjZVByb3ZlbmFuY2VdIC0gTm9kZS1hc3NvY2lhdGVkIHByb3ZlbmFuY2UuXG4gKi9cblxuLyoqIEB0eXBlZGVmIHtMb2NhbERlY2xhcmF0aW9uIHwgQXNzaWdubWVudFN0YXRlbWVudH0gTG9jYWxTdGF0ZW1lbnQgKi9cbi8qKiBAdHlwZWRlZiB7TG9jYWxTdGF0ZW1lbnQgfCBJZlN0YXRlbWVudCB8IFJldHVyblN0YXRlbWVudCB8IFByaW50U3RhdGVtZW50fSBTdGF0ZW1lbnQgKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBCbG9ja1xuICogQHByb3BlcnR5IHtcIkJsb2NrXCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge1N0YXRlbWVudFtdfSBzdGF0ZW1lbnRzIC0gT3JkZXJlZCBzdGF0ZW1lbnRzIGluIG9uZSBsZXhpY2FsIHNjb3BlLlxuICogQHByb3BlcnR5IHtTb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBTb3VyY2UgbG9jYXRpb24uXG4gKiBAcHJvcGVydHkge1NlbWFudGljTm9kZVNvdXJjZVByb3ZlbmFuY2V9IFtzb3VyY2VQcm92ZW5hbmNlXSAtIE5vZGUtYXNzb2NpYXRlZCBwcm92ZW5hbmNlLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgRnVuY3Rpb25EZWNsYXJhdGlvblxuICogQHByb3BlcnR5IHtcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gRnVuY3Rpb24gbmFtZS5cbiAqIEBwcm9wZXJ0eSB7UGFyYW1ldGVyW119IHBhcmFtZXRlcnMgLSBGdW5jdGlvbiBwYXJhbWV0ZXJzLlxuICogQHByb3BlcnR5IHtUeXBlUmVmZXJlbmNlfSByZXR1cm5UeXBlIC0gUmV0dXJuIHR5cGUuXG4gKiBAcHJvcGVydHkge0Jsb2NrfSBib2R5IC0gRnVuY3Rpb24gYm9keS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFByaW50U3RhdGVtZW50XG4gKiBAcHJvcGVydHkge1wiUHJpbnRTdGF0ZW1lbnRcIn0ga2luZCAtIE5vZGUgZGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7RXhwcmVzc2lvbn0gZXhwcmVzc2lvbiAtIFByaW50ZWQgZXhwcmVzc2lvbi5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIEVudHJ5UG9pbnRcbiAqIEBwcm9wZXJ0eSB7XCJFbnRyeVBvaW50XCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge0Jsb2NrfSBib2R5IC0gRW50cnktcG9pbnQgYm9keS5cbiAqIEBwcm9wZXJ0eSB7U291cmNlTG9jYXRpb259IGxvY2F0aW9uIC0gU291cmNlIGxvY2F0aW9uLlxuICogQHByb3BlcnR5IHtTZW1hbnRpY05vZGVTb3VyY2VQcm92ZW5hbmNlfSBbc291cmNlUHJvdmVuYW5jZV0gLSBOb2RlLWFzc29jaWF0ZWQgcHJvdmVuYW5jZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlbWFudGljTW9kdWxlXG4gKiBAcHJvcGVydHkge1wiTW9kdWxlXCJ9IGtpbmQgLSBOb2RlIGRpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge0Z1bmN0aW9uRGVjbGFyYXRpb25bXX0gZnVuY3Rpb25zIC0gVG9wLWxldmVsIGZ1bmN0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7RW50cnlQb2ludH0gZW50cnlQb2ludCAtIEV4ZWN1dGFibGUgZW50cnkgcG9pbnQuXG4gKiBAcHJvcGVydHkge1NvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIFNvdXJjZSBsb2NhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7U2VtYW50aWNOb2RlU291cmNlUHJvdmVuYW5jZX0gW3NvdXJjZVByb3ZlbmFuY2VdIC0gTm9kZS1hc3NvY2lhdGVkIHByb3ZlbmFuY2UuXG4gKiBAcHJvcGVydHkge1NlbWFudGljUHJvdmVuYW5jZX0gW3Byb3ZlbmFuY2VdIC0gUGFyc2VyLWF1dGhvcmVkIHNvdXJjZSBhbmQgaWRlbnRpdHkgaW5kZXg7IG9wdGlvbmFsIGZvciBsZWdhY3kgY2FsbGVyLWF1dGhvcmVkIG1vZHVsZXMuXG4gKi9cblxuLyoqIEB0eXBlZGVmIHtTZW1hbnRpY01vZHVsZSB8IEZ1bmN0aW9uRGVjbGFyYXRpb24gfCBQYXJhbWV0ZXIgfCBCbG9jayB8IFN0YXRlbWVudCB8IEVudHJ5UG9pbnQgfCBFeHByZXNzaW9uIHwgVHlwZVJlZmVyZW5jZX0gU2VtYW50aWNOb2RlICovXG4vKiogQHR5cGVkZWYge1NlbWFudGljTm9kZX0gU2VtYW50aWNOb2RlV2l0aG91dExvY2F0aW9ucyAqL1xuXG5leHBvcnQge31cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ export type Binding = {
2
+ /**
3
+ * - Whether assignment is allowed.
4
+ */
5
+ mutable: boolean;
6
+ /**
7
+ * - Binding type.
8
+ */
9
+ type: import("./types.js").SemanticTypeName;
10
+ };
11
+ export type Scope = {
12
+ /**
13
+ * - Bindings declared directly in this scope.
14
+ */
15
+ bindings: Map<string, Binding>;
16
+ /**
17
+ * - Names declared later in this scope.
18
+ */
19
+ pending: Set<string>;
20
+ /**
21
+ * - Enclosing lexical scope.
22
+ */
23
+ parent: Scope | undefined;
24
+ /**
25
+ * - All names used by the enclosing function or entry point.
26
+ */
27
+ usedNames: Set<string>;
28
+ };
29
+ export type SemanticFail = (code: string, detail: string, location: import("./types.js").SourceLocation) => never;
30
+ /**
31
+ * @typedef Binding
32
+ * @property {boolean} mutable - Whether assignment is allowed.
33
+ * @property {import("./types.js").SemanticTypeName} type - Binding type.
34
+ */
35
+ /**
36
+ * @typedef Scope
37
+ * @property {Map<string, Binding>} bindings - Bindings declared directly in this scope.
38
+ * @property {Set<string>} pending - Names declared later in this scope.
39
+ * @property {Scope | undefined} parent - Enclosing lexical scope.
40
+ * @property {Set<string>} usedNames - All names used by the enclosing function or entry point.
41
+ */
42
+ /**
43
+ * @typedef SemanticFail
44
+ * @type {(code: string, detail: string, location: import("./types.js").SourceLocation) => never}
45
+ */
46
+ /**
47
+ * Enforces the coherent release-candidate semantic subset after adaptation.
48
+ * @param {import("./types.js").SemanticModule} module - Adapted semantic module.
49
+ * @param {import("./types.js").SemanticLanguage} language - Source language.
50
+ * @returns {import("./types.js").SemanticModule} Validated module.
51
+ */
52
+ export declare function validateParsedModule(module: import("./types.js").SemanticModule, language: import("./types.js").SemanticLanguage): import("./types.js").SemanticModule;
53
+ /**
54
+ * Validates scalar types and bindings for a caller-supplied semantic module before emission.
55
+ * @param {import("./types.js").SemanticModule} module - Semantic module.
56
+ * @param {import("./types.js").SemanticLanguage} language - Backend language.
57
+ * @returns {void}
58
+ */
59
+ export declare function validateBackendTypes(module: import("./types.js").SemanticModule, language: import("./types.js").SemanticLanguage): void;
60
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/semantic/validate.js"],"names":[],"mappings":"AAOG,YAAS,OAAO,GAChB;;;;IAAoB,OAAO,EAAhB,OAAO,CAClB;;;;IAAkD,IAAI,EAA3C,OAAO,YAAY,EAAE,gBAAgB,CAClD;CAAA,CAAA;AAGE,YAAS,KAAK,GACd;;;;IAAiC,QAAQ,EAA9B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/B;;;;IAAwB,OAAO,EAApB,GAAG,CAAC,MAAM,CAAC,CACtB;;;;IAA8B,MAAM,EAAzB,KAAK,GAAG,SAAS,CAC5B;;;;IAAwB,SAAS,EAAtB,GAAG,CAAC,MAAM,CAAC,CACxB;CAAA,CAAA;AAGE,YAAS,YAAY,GACd,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,YAAY,EAAE,cAAc,KAAK,KAAK,CAAC;AAhBjG;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAJhC,OAAO,YAAY,EAAE,cAIW,EAAE,QAAQ,EAH1C,OAAO,YAAY,EAAE,gBAGqB,GAFxC,OAAO,YAAY,EAAE,cAAc,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAJhC,OAAO,YAAY,EAAE,cAIW,EAAE,QAAQ,EAH1C,OAAO,YAAY,EAAE,gBAGqB,GAFxC,IAAI,CAIhB"}