@samva/markup 0.1.2 → 0.3.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 (93) hide show
  1. package/AGENTS.md +25 -5
  2. package/README.md +92 -26
  3. package/dist/{ast-DAhnAvQN.d.ts → ast-63I-VLQx.d.ts} +15 -2
  4. package/dist/ast.d.ts +2 -2
  5. package/dist/ast.js +14 -1
  6. package/dist/{checks-D-zFQt5R.js → checks-DXuERO4B.js} +36 -2
  7. package/dist/checks.d.ts +8 -1
  8. package/dist/checks.js +2 -2
  9. package/dist/compile-sms.d.ts +2 -2
  10. package/dist/compile-whatsapp.d.ts +2 -2
  11. package/dist/compile.d.ts +9 -84
  12. package/dist/compile.js +11 -920
  13. package/dist/compiler.d.ts +303 -0
  14. package/dist/compiler.js +1390 -0
  15. package/dist/components.d.ts +3 -3
  16. package/dist/corpus-qrUD5O6r.d.ts +254 -0
  17. package/dist/css-ar2lU3NC.d.ts +84 -0
  18. package/dist/diagnostics-Djd9ckLg.d.ts +90 -0
  19. package/dist/diagnostics.js +4 -1
  20. package/dist/elements-DtwKlFVH.d.ts +820 -0
  21. package/dist/email/components.d.ts +125 -0
  22. package/dist/email/components.js +210 -0
  23. package/dist/email/diagnostics.d.ts +2 -0
  24. package/dist/email/diagnostics.js +56 -0
  25. package/dist/email/elements.d.ts +2 -0
  26. package/dist/email/elements.js +299 -0
  27. package/dist/email/html.d.ts +42 -0
  28. package/dist/email/html.js +266 -0
  29. package/dist/email/jsx-dev-runtime.d.ts +26 -0
  30. package/dist/email/jsx-dev-runtime.js +12 -0
  31. package/dist/email/jsx-runtime.d.ts +2 -0
  32. package/dist/email/jsx-runtime.js +60 -0
  33. package/dist/email/render.d.ts +43 -0
  34. package/dist/email/render.js +6 -0
  35. package/dist/email/selection.d.ts +102 -0
  36. package/dist/email/selection.js +143 -0
  37. package/dist/email/source-edit.d.ts +67 -0
  38. package/dist/email/source-edit.js +185 -0
  39. package/dist/email/stylesheets.d.ts +15 -0
  40. package/dist/email/stylesheets.js +45 -0
  41. package/dist/email/text.d.ts +7 -0
  42. package/dist/email/text.js +100 -0
  43. package/dist/emit.d.ts +13 -12
  44. package/dist/emit.js +63 -63
  45. package/dist/input-schema-BIfzI63B.d.ts +23 -0
  46. package/dist/input-schema.d.ts +2 -0
  47. package/dist/input-schema.js +170 -0
  48. package/dist/jsx-dev-runtime.d.ts +4 -3
  49. package/dist/jsx-dev-runtime.js +9 -1
  50. package/dist/{jsx-runtime-eNIMY87F.d.ts → jsx-runtime-C5k_Zq0A.d.ts} +3 -3
  51. package/dist/jsx-runtime.d.ts +1 -1
  52. package/dist/jsx-runtime.js +20 -1
  53. package/dist/model.d.ts +1 -1
  54. package/dist/ops.d.ts +1 -1
  55. package/dist/ops.js +1 -1
  56. package/dist/{parser-DkQKIjDa.d.ts → parser-CGBS73Gz.d.ts} +2 -2
  57. package/dist/parser.d.ts +1 -1
  58. package/dist/presets/category-mapping.d.ts +1 -1
  59. package/dist/presets/corpus.d.ts +2 -0
  60. package/dist/presets/corpus.js +247 -0
  61. package/dist/presets/public-gallery.d.ts +290 -2
  62. package/dist/presets/public-gallery.js +428 -6
  63. package/dist/presets/public-handoff.d.ts +164 -2
  64. package/dist/presets/public-handoff.js +229 -61
  65. package/dist/presets/public-preview-artifacts.d.ts +2 -2
  66. package/dist/presets/public-preview-artifacts.js +25 -31
  67. package/dist/presets/public-preview.d.ts +65 -2
  68. package/dist/presets/public-preview.js +402 -1152
  69. package/dist/presets/sources.d.ts +35 -4
  70. package/dist/presets/sources.js +2328 -43
  71. package/dist/presets.d.ts +39 -5
  72. package/dist/presets.js +96 -0
  73. package/dist/printer.d.ts +1 -1
  74. package/dist/render-template.d.ts +5 -2
  75. package/dist/render-template.js +3 -1
  76. package/dist/render-ykQhtMs_.js +592 -0
  77. package/dist/source-locations-BCJQnIfU.d.ts +89 -0
  78. package/dist/source-locations.d.ts +2 -0
  79. package/dist/source-locations.js +125 -0
  80. package/dist/template-Dy5yOPyp.d.ts +60 -0
  81. package/dist/template.d.ts +2 -0
  82. package/dist/template.js +37 -0
  83. package/dist/tsx-source-instrumentation.d.ts +23 -0
  84. package/dist/tsx-source-instrumentation.js +97 -0
  85. package/dist/tsx-tracer.d.ts +116 -0
  86. package/dist/tsx-tracer.js +985 -0
  87. package/generated/sml-agent-contract.json +574 -782
  88. package/generated/sml-email-agent-contract.json +502 -677
  89. package/generated/sml-email-language-reference.md +94 -160
  90. package/generated/sml-language-reference.md +195 -220
  91. package/package.json +111 -9
  92. package/dist/public-gallery-D0Zv0pZE.d.ts +0 -611
  93. package/dist/public-preview-u1Z9aaGq.d.ts +0 -1168
@@ -0,0 +1,303 @@
1
+ import { a as formatEmailDiagnostic, i as EmailDiagnosticSeverity, n as EmailCompileError, o as hasBlockingDiagnostic, r as EmailDiagnostic } from "./diagnostics-Djd9ckLg.js";
2
+ import { a as EmailGlobalProps, c as EmailStyle, d as isUrlAttribute, i as EmailElementSpec, l as EmailTag, m as EmailNode, n as EMAIL_GLOBAL_ATTRIBUTES, o as EmailIntrinsicElements, r as EmailAttributeSpec, s as EmailLayout, t as EMAIL_ELEMENTS, u as emailElement } from "./elements-DtwKlFVH.js";
3
+ import { EmailElementSelection, EmittedPosition, INSTANCE_PATH_ATTRIBUTE, emailAuthoringTarget, emailDefinitionInstances, emailSelectionAncestry, emailSelectionIndex, emailSelectionSiblings, emailSelections } from "./email/selection.js";
4
+ import { EmailHtmlOutput, SerializeEmailOptions, escapeAttribute, escapeText, serializeEmailHtml } from "./email/html.js";
5
+ import { deriveEmailText } from "./email/text.js";
6
+ import { a as compileSelector, c as CompiledSelector, d as matchesSelector, i as Stylesheet, l as Compound, n as CssRule, o as parseStylesheet, r as Specificity, s as Ancestry, t as CssDeclaration, u as classListOf } from "./css-ar2lU3NC.js";
7
+ import { EMAIL_DOCTYPE, EmailCompileOutput, RenderedEmail, compileEmail, renderEmail } from "./email/render.js";
8
+ import { collectStylesheets, hasStylesheets, registerStylesheet, resetStylesheets } from "./email/stylesheets.js";
9
+ import { instrumentTsxSourceForPreview } from "./tsx-source-instrumentation.js";
10
+ import { caniemail } from "caniemail";
11
+ //#region src/email/compatibility.d.ts
12
+ type CaniemailClient = Parameters<typeof caniemail>[0]["clients"][number];
13
+ /** One client this compiler makes claims about. */
14
+ interface EmailClientTarget {
15
+ readonly id: CaniemailClient;
16
+ readonly label: string;
17
+ }
18
+ /**
19
+ * The pinned matrix. Every finding is reported per client, and a client absent
20
+ * from this list is a client Samva makes no claim about.
21
+ */
22
+ declare const EMAIL_CLIENT_MATRIX: readonly EmailClientTarget[];
23
+ interface CompatibilityProvenance {
24
+ /** The exact rules package a finding came from. */
25
+ readonly rules: string;
26
+ readonly apiVersion: string;
27
+ /** The day caniemail last changed the data this build was checked against. */
28
+ readonly lastUpdate: string;
29
+ }
30
+ declare const COMPATIBILITY_PROVENANCE: CompatibilityProvenance;
31
+ /**
32
+ * The constructs whose loss actually breaks a message: the recipient reads
33
+ * something different, in a different order, follows a link that does not work,
34
+ * or sees a layout that has collapsed. A target client dropping one of these
35
+ * blocks publication.
36
+ *
37
+ * The list is deliberately short and enumerated, because the contract is to
38
+ * block *known* failures. Nonessential differences require an assessment of
39
+ * emitted values: a concrete risk warns, expected differences and unverified
40
+ * behavior remain compatibility observations.
41
+ */
42
+ declare const ESSENTIAL_CONSTRUCTS: ReadonlySet<string>;
43
+ interface CompatibilityInput {
44
+ /** The document the recipient receives. */
45
+ readonly html: string;
46
+ /** The declared fixture checked by this invocation. */
47
+ readonly fixture?: string | undefined;
48
+ /** Retained head rules, when they are not already inside the HTML. */
49
+ readonly css?: string | undefined;
50
+ /** Emitted-offset ranges with the origins of the node that produced them. */
51
+ readonly positions?: readonly EmittedPosition[] | undefined;
52
+ readonly clients?: readonly EmailClientTarget[] | undefined;
53
+ }
54
+ /**
55
+ * Check the emitted document against the pinned matrix.
56
+ *
57
+ * Findings are grouped by construct rather than repeated per client, so one
58
+ * unsupported property is one diagnostic naming every client that drops it.
59
+ */
60
+ declare const checkEmailCompatibility: (input: CompatibilityInput) => readonly EmailDiagnostic[];
61
+ /**
62
+ * Constructs the pinned data says nothing about for a target client. These are
63
+ * reported so "we did not check that" is never mistaken for "that works".
64
+ */
65
+ declare const unknownCoverage: (titles: Iterable<string>) => readonly EmailDiagnostic[];
66
+ /** A publication carrying one of these is refused; the message would arrive broken. */
67
+ declare const hasBlockingCompatibility: (findings: readonly EmailDiagnostic[]) => boolean;
68
+ //#endregion
69
+ //#region src/email/assets.d.ts
70
+ /** Files a template may import, and what they are served as. */
71
+ declare const ASSET_CONTENT_TYPES: Readonly<Record<string, string>>;
72
+ interface AssetEntry {
73
+ /** Project-relative path the template imported. */
74
+ readonly path: string;
75
+ /** SHA-256 of the exact bytes, lowercase hex. */
76
+ readonly digest: string;
77
+ readonly bytes: number;
78
+ readonly contentType: string;
79
+ /** `<digest><ext>` — the name the asset has under any base. */
80
+ readonly fileName: string;
81
+ }
82
+ interface AssetManifest {
83
+ /** Where these assets are served from in this build. */
84
+ readonly base: string;
85
+ readonly assets: readonly AssetEntry[];
86
+ }
87
+ /** True when the compiler turns this import into a content-addressed asset. */
88
+ declare const isAssetPath: (path: string) => boolean;
89
+ /** Address one file by its content. */
90
+ declare const assetEntry: (path: string, bytes: Uint8Array) => Promise<AssetEntry>;
91
+ /**
92
+ * The URL an asset has under a base. The base is a build input: publication
93
+ * passes its hosted origin, and a local export passes whatever it will serve
94
+ * the exported files from.
95
+ */
96
+ declare const assetUrl: (entry: AssetEntry, base: string) => string;
97
+ /** Record, but never fetch, a URL the template points at. */
98
+ declare const isExternalAsset: (reference: string) => boolean;
99
+ /**
100
+ * Reject an asset base that would produce URLs a client will not load. The
101
+ * relative forms are the ones a page on disk resolves against its own
102
+ * directory, which is what a local export writes.
103
+ */
104
+ declare const checkAssetBase: (base: string) => readonly EmailDiagnostic[];
105
+ //#endregion
106
+ //#region src/email/css-values.d.ts
107
+ /** Expand `var(--x, fallback)` against the collected custom properties. */
108
+ declare const resolveVariables: (value: string, variables: Readonly<Record<string, string>>, depth?: number) => string;
109
+ /**
110
+ * Fold a constant `calc()` to a plain value. Tailwind writes every spacing
111
+ * utility as `calc(var(--spacing) * n)`, and classic Outlook does not implement
112
+ * `calc()` at all, so an unfolded value is a silently missing style. An
113
+ * expression that cannot be reduced to one term is left exactly as authored.
114
+ */
115
+ declare const foldCalc: (value: string) => string;
116
+ /** Resolve custom properties, then fold what the arithmetic allows. */
117
+ declare const finalizeValue: (value: string, variables: Readonly<Record<string, string>>) => string;
118
+ /** Media Queries Level 4 range syntax down to the `min-`/`max-` prefixes clients support. */
119
+ declare const downlevelMediaQuery: (condition: string) => string;
120
+ /** Render the rules that could not be inlined as one `<style>` body. */
121
+ declare const renderHeadCss: (rules: readonly CssRule[], headAtRules: readonly string[], variables: Readonly<Record<string, string>>) => string;
122
+ //#endregion
123
+ //#region src/email/css-color.d.ts
124
+ /** A color in extended sRGB, alpha included, before clamping and gamma. */
125
+ interface Rgba {
126
+ readonly r: number;
127
+ readonly g: number;
128
+ readonly b: number;
129
+ readonly a: number;
130
+ }
131
+ /** Parse any supported color notation into extended sRGB. `undefined` means "leave it alone". */
132
+ declare const parseColor: (value: string) => Rgba | undefined;
133
+ /** sRGB hex, or `rgba()` when the color is not opaque. */
134
+ declare const formatColor: (color: Rgba) => string;
135
+ /** Rewrite every modern color function in a declaration value; other text is untouched. */
136
+ declare const downlevelColors: (value: string) => string;
137
+ //#endregion
138
+ //#region src/email/cascade.d.ts
139
+ interface AppliedStyles {
140
+ readonly tree: EmailNode;
141
+ /** Rules that could not be inlined, ready for a `<style>` element in `<head>`. */
142
+ readonly headCss: string;
143
+ readonly diagnostics: readonly EmailDiagnostic[];
144
+ }
145
+ /**
146
+ * Resolve every stylesheet against the tree: inline what a client will honor on
147
+ * the element, and keep the rest for `<head>`.
148
+ */
149
+ declare const applyStylesheet: (root: EmailNode, sheet: Stylesheet, options?: {
150
+ readonly knownClasses?: ReadonlySet<string>;
151
+ }) => AppliedStyles;
152
+ //#endregion
153
+ //#region src/email/tailwind-stylesheets.gen.d.ts
154
+ /** The exact Tailwind release the compiler runs, recorded in every build manifest. */
155
+ declare const TAILWIND_VERSION = "4.3.3";
156
+ //#endregion
157
+ //#region src/email/tailwind.d.ts
158
+ interface TailwindOptions {
159
+ /**
160
+ * Project CSS appended to the compiled entry: `@theme` overrides, `@utility`
161
+ * definitions and ordinary rules. This is the project's pinned configuration.
162
+ */
163
+ readonly css?: string | undefined;
164
+ /** Classes the compiler cannot discover, declared by the project on purpose. */
165
+ readonly safelist?: readonly string[] | undefined;
166
+ /** Tailwind's browser reset is off by default; email clients do not want it. */
167
+ readonly preflight?: boolean | undefined;
168
+ /**
169
+ * Bounds on what the compiler may generate. Class discovery reads authored
170
+ * source, so a project can hand it an unbounded candidate set and get an
171
+ * unbounded stylesheet back — inside a build that has a wall clock and a
172
+ * bundle a Worker then has to load. A host that publishes supplies these.
173
+ */
174
+ readonly limits?: TailwindLimits | undefined;
175
+ }
176
+ interface TailwindLimits {
177
+ /** Distinct classes handed to the compiler. */
178
+ readonly candidates: number;
179
+ /** Bytes of generated CSS. */
180
+ readonly cssBytes: number;
181
+ }
182
+ interface TailwindOutput {
183
+ readonly css: string;
184
+ readonly version: string;
185
+ /** Every candidate handed to the compiler, sorted, for the build manifest. */
186
+ readonly candidates: readonly string[];
187
+ }
188
+ /** Compile the discovered class set into CSS with the pinned Tailwind release. */
189
+ declare const compileTailwind: (candidates: Iterable<string>, options?: TailwindOptions) => Promise<TailwindOutput>;
190
+ interface ClassDiscovery {
191
+ readonly candidates: readonly string[];
192
+ readonly diagnostics: readonly EmailDiagnostic[];
193
+ }
194
+ /**
195
+ * Collect the class names one module states literally, and report the positions
196
+ * where a class is assembled from values the compiler cannot see.
197
+ */
198
+ declare const discoverClassCandidates: (source: string, fileName: string) => ClassDiscovery;
199
+ //#endregion
200
+ //#region src/email/transform.d.ts
201
+ /** Where this build serves assets from, and how Tailwind is configured. */
202
+ interface TransformOptions {
203
+ readonly assetBase: string;
204
+ /**
205
+ * Specifier the generated stylesheet modules import `registerStylesheet`
206
+ * from. It is the published subpath by default; a host that resolves the
207
+ * package differently states its own.
208
+ */
209
+ readonly stylesheetModule?: string | undefined;
210
+ /** `false` compiles no Tailwind at all. */
211
+ readonly tailwind?: TailwindOptions | false | undefined;
212
+ }
213
+ interface ModuleTransform {
214
+ /** Always JavaScript, whatever the input file was. */
215
+ readonly code: string;
216
+ readonly asset?: AssetEntry | undefined;
217
+ /** Class names this module states literally, for the Tailwind candidate set. */
218
+ readonly classes?: readonly string[] | undefined;
219
+ readonly diagnostics: readonly EmailDiagnostic[];
220
+ }
221
+ /**
222
+ * Transform one project file into a JavaScript module.
223
+ *
224
+ * `.tsx`/`.ts` keep their authored semantics and gain source origins. A
225
+ * stylesheet becomes a module that registers its parsed rules. An imported
226
+ * binary becomes a module exporting the content-addressed URL of its bytes.
227
+ */
228
+ declare const transformModule: (id: string, source: string | Uint8Array, options: TransformOptions) => Promise<ModuleTransform>;
229
+ interface ProjectTransform {
230
+ /** Every input file, transformed; keys are unchanged. */
231
+ readonly files: Readonly<Record<string, string>>;
232
+ readonly assets: readonly AssetEntry[];
233
+ /**
234
+ * The compiled Tailwind sheet as a registering module, when the project used
235
+ * any utility class. A host writes it at `path` and makes the entry import it
236
+ * first, so the generated layers sit below the project's own stylesheets.
237
+ */
238
+ readonly tailwind: {
239
+ readonly path: string;
240
+ readonly code: string;
241
+ } | undefined;
242
+ readonly diagnostics: readonly EmailDiagnostic[];
243
+ }
244
+ /**
245
+ * The generated Tailwind module is a real file at the project root, not a
246
+ * virtual id. A virtual module has no directory, so its own relative imports
247
+ * resolve differently from the project's and the bundler ends up with a second
248
+ * copy of the stylesheet registry — the sheet registers into a registry the
249
+ * render never reads.
250
+ */
251
+ declare const TAILWIND_MODULE_PATH = ".samva-tailwind.css";
252
+ /** The specifier an entry at this path uses to reach the generated module. */
253
+ declare const tailwindSpecifierFor: (entryPoint: string) => string;
254
+ /** Run the transform over a whole project, then compile the classes it used. */
255
+ declare const transformProject: (files: Readonly<Record<string, string | Uint8Array>>, options: TransformOptions) => Promise<ProjectTransform>;
256
+ /**
257
+ * Put a side-effect import ahead of an entry's own imports, after any leading
258
+ * comment so a `@jsxImportSource` pragma keeps its position. Import order is
259
+ * cascade order, so the generated sheet has to be first.
260
+ */
261
+ declare const withLeadingImport: (source: string, specifier: string) => string;
262
+ /** The generated entry every host builds, so both evaluate the same module. */
263
+ declare const EMAIL_ENTRY_WRAPPER = ".samva-email-entry.ts";
264
+ /**
265
+ * The generated module that clears the stylesheet registry. It is imported
266
+ * first, as its own module, because import order is evaluation order: a reset
267
+ * written as a statement in the wrapper would run after the wrapper's imports
268
+ * had already registered.
269
+ */
270
+ declare const EMAIL_RESET_MODULE = ".samva-email-reset.ts";
271
+ /**
272
+ * The wrapper's source. It exports the template beside a render bound to the
273
+ * sheets the project's own imports registered, so the render runs inside the
274
+ * project's module graph and keeps its styles when a later project loaded into
275
+ * the same process resets the registry. Importing the renderer from outside
276
+ * that graph reaches a second copy of the registry and silently renders unstyled.
277
+ */
278
+ declare const emailEntryWrapper: (entryPoint: string, imports?: readonly string[]) => string;
279
+ /**
280
+ * A host that renders more than one project in one process shares the registry
281
+ * through its module cache, so every project graph starts by clearing it.
282
+ */
283
+ declare const emailResetModule: (options: TransformOptions) => string;
284
+ interface CompiledEmailProject {
285
+ /** Every module as JavaScript, keyed by its authored path. */
286
+ readonly files: Readonly<Record<string, string>>;
287
+ /** The generated module a host bundles or evaluates. */
288
+ readonly entryPoint: string;
289
+ /** The project's own entry, which the wrapper re-exports. */
290
+ readonly authoredEntry: string;
291
+ readonly assets: readonly AssetEntry[];
292
+ readonly diagnostics: readonly EmailDiagnostic[];
293
+ }
294
+ /**
295
+ * The whole compile step, files in and files out: every module transformed, the
296
+ * generated Tailwind sheet written, the generated imports added and the wrapper
297
+ * built. Both hosts call exactly this, which is what stops their outputs from
298
+ * drifting apart.
299
+ */
300
+ declare const compileEmailProject: (source: Readonly<Record<string, string | Uint8Array>>, authoredEntry: string, options: TransformOptions) => Promise<CompiledEmailProject>;
301
+ //#endregion
302
+ export { ASSET_CONTENT_TYPES, type Ancestry, type AppliedStyles, type AssetEntry, type AssetManifest, COMPATIBILITY_PROVENANCE, type ClassDiscovery, type CompatibilityInput, type CompatibilityProvenance, type CompiledEmailProject, type CompiledSelector, type Compound, type CssDeclaration, type CssRule, EMAIL_CLIENT_MATRIX, EMAIL_DOCTYPE, EMAIL_ELEMENTS, EMAIL_ENTRY_WRAPPER, EMAIL_GLOBAL_ATTRIBUTES, EMAIL_RESET_MODULE, ESSENTIAL_CONSTRUCTS, type EmailAttributeSpec, type EmailClientTarget, EmailCompileError, type EmailCompileOutput, EmailDiagnostic, EmailDiagnosticSeverity, EmailElementSelection, type EmailElementSpec, type EmailGlobalProps, type EmailHtmlOutput, type EmailIntrinsicElements, type EmailLayout, type EmailStyle, type EmailTag, EmittedPosition, INSTANCE_PATH_ATTRIBUTE, type ModuleTransform, type ProjectTransform, type RenderedEmail, type SerializeEmailOptions, type Specificity, type Stylesheet, TAILWIND_MODULE_PATH, TAILWIND_VERSION, type TailwindLimits, type TailwindOptions, type TailwindOutput, type TransformOptions, applyStylesheet, assetEntry, assetUrl, checkAssetBase, checkEmailCompatibility, classListOf, collectStylesheets, compileEmail, compileEmailProject, compileSelector, compileTailwind, deriveEmailText, discoverClassCandidates, downlevelColors, downlevelMediaQuery, emailAuthoringTarget, emailDefinitionInstances, emailElement, emailEntryWrapper, emailResetModule, emailSelectionAncestry, emailSelectionIndex, emailSelectionSiblings, emailSelections, escapeAttribute, escapeText, finalizeValue, foldCalc, formatColor, formatEmailDiagnostic, hasBlockingCompatibility, hasBlockingDiagnostic, hasStylesheets, instrumentTsxSourceForPreview, isAssetPath, isExternalAsset, isUrlAttribute, matchesSelector, parseColor, parseStylesheet, registerStylesheet, renderEmail, renderHeadCss, resetStylesheets, resolveVariables, serializeEmailHtml, tailwindSpecifierFor, transformModule, transformProject, unknownCoverage, withLeadingImport };
303
+ //# sourceMappingURL=compiler.d.ts.map