@azure-tools/typespec-ts 0.56.0-dev.3 → 0.56.0-dev.6

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 (63) hide show
  1. package/README.md +0 -6
  2. package/dist/src/framework/declaration.d.ts.map +1 -1
  3. package/dist/src/framework/declaration.js +6 -20
  4. package/dist/src/framework/declaration.js.map +1 -1
  5. package/dist/src/framework/source-file-batch.d.ts +35 -0
  6. package/dist/src/framework/source-file-batch.d.ts.map +1 -0
  7. package/dist/src/framework/source-file-batch.js +128 -0
  8. package/dist/src/framework/source-file-batch.js.map +1 -0
  9. package/dist/src/interfaces.d.ts +0 -1
  10. package/dist/src/interfaces.d.ts.map +1 -1
  11. package/dist/src/interfaces.js.map +1 -1
  12. package/dist/src/lib.d.ts +0 -1
  13. package/dist/src/lib.d.ts.map +1 -1
  14. package/dist/src/lib.js +0 -5
  15. package/dist/src/lib.js.map +1 -1
  16. package/dist/src/metadata/build-readme-file.d.ts.map +1 -1
  17. package/dist/src/metadata/build-readme-file.js +14 -67
  18. package/dist/src/metadata/build-readme-file.js.map +1 -1
  19. package/dist/src/metadata/render-template.d.ts +24 -0
  20. package/dist/src/metadata/render-template.d.ts.map +1 -0
  21. package/dist/src/metadata/render-template.js +148 -0
  22. package/dist/src/metadata/render-template.js.map +1 -0
  23. package/dist/src/metadata/test/build-recorded-client.d.ts.map +1 -1
  24. package/dist/src/metadata/test/build-recorded-client.js +1 -7
  25. package/dist/src/metadata/test/build-recorded-client.js.map +1 -1
  26. package/dist/src/metadata/test/build-sample-test.d.ts.map +1 -1
  27. package/dist/src/metadata/test/build-sample-test.js +1 -4
  28. package/dist/src/metadata/test/build-sample-test.js.map +1 -1
  29. package/dist/src/metadata/test/build-snippets.d.ts.map +1 -1
  30. package/dist/src/metadata/test/build-snippets.js +2 -4
  31. package/dist/src/metadata/test/build-snippets.js.map +1 -1
  32. package/dist/src/metadata/test/template.d.ts +0 -1
  33. package/dist/src/metadata/test/template.d.ts.map +1 -1
  34. package/dist/src/metadata/test/template.js +0 -127
  35. package/dist/src/metadata/test/template.js.map +1 -1
  36. package/dist/src/modular/build-root-index.d.ts.map +1 -1
  37. package/dist/src/modular/build-root-index.js +37 -9
  38. package/dist/src/modular/build-root-index.js.map +1 -1
  39. package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
  40. package/dist/src/modular/build-subpath-index.js +15 -2
  41. package/dist/src/modular/build-subpath-index.js.map +1 -1
  42. package/dist/src/modular/emit-models.d.ts.map +1 -1
  43. package/dist/src/modular/emit-models.js +24 -17
  44. package/dist/src/modular/emit-models.js.map +1 -1
  45. package/dist/src/transform/transform-client-options.d.ts.map +1 -1
  46. package/dist/src/transform/transform-client-options.js +0 -2
  47. package/dist/src/transform/transform-client-options.js.map +1 -1
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +6 -9
  50. package/src/framework/declaration.ts +8 -20
  51. package/src/framework/source-file-batch.ts +140 -0
  52. package/src/interfaces.ts +0 -1
  53. package/src/lib.ts +0 -6
  54. package/src/metadata/build-readme-file.ts +17 -91
  55. package/src/metadata/render-template.ts +202 -0
  56. package/src/metadata/test/build-recorded-client.ts +1 -7
  57. package/src/metadata/test/build-sample-test.ts +1 -4
  58. package/src/metadata/test/build-snippets.ts +2 -4
  59. package/src/metadata/test/template.ts +0 -128
  60. package/src/modular/build-root-index.ts +52 -14
  61. package/src/modular/build-subpath-index.ts +24 -3
  62. package/src/modular/emit-models.ts +24 -18
  63. package/src/transform/transform-client-options.ts +0 -2
@@ -0,0 +1,148 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ const MUSTACHE = /\{\{([^}]*)\}\}/g;
4
+ function tokenize(template) {
5
+ const tokens = [];
6
+ let lastIndex = 0;
7
+ let match;
8
+ MUSTACHE.lastIndex = 0;
9
+ while ((match = MUSTACHE.exec(template)) !== null) {
10
+ tokens.push({ kind: "text", value: template.slice(lastIndex, match.index) });
11
+ const inner = match[1].trim();
12
+ if (inner.startsWith("#if ")) {
13
+ tokens.push({ kind: "open", name: inner.slice(4).trim(), standalone: false });
14
+ }
15
+ else if (inner === "else") {
16
+ tokens.push({ kind: "else", name: "", standalone: false });
17
+ }
18
+ else if (inner === "/if") {
19
+ tokens.push({ kind: "close", name: "", standalone: false });
20
+ }
21
+ else {
22
+ tokens.push({ kind: "var", name: inner, standalone: false });
23
+ }
24
+ lastIndex = match.index + match[0].length;
25
+ }
26
+ tokens.push({ kind: "text", value: template.slice(lastIndex) });
27
+ return tokens;
28
+ }
29
+ /**
30
+ * Applies Handlebars "standalone" whitespace stripping. A block tag (`#if`,
31
+ * `else`, `/if`) that is the only non-whitespace content on its line has the
32
+ * surrounding indentation and trailing newline removed.
33
+ */
34
+ function stripStandaloneWhitespace(tokens) {
35
+ const isBlock = (t) => t.kind === "open" || t.kind === "else" || t.kind === "close";
36
+ // First pass: detect standalone tags from the original text tokens.
37
+ for (let i = 0; i < tokens.length; i++) {
38
+ const token = tokens[i];
39
+ if (!isBlock(token)) {
40
+ continue;
41
+ }
42
+ const prev = tokens[i - 1];
43
+ const next = tokens[i + 1];
44
+ const prevIsFirst = i - 1 === 0;
45
+ const nextIsLast = i + 1 === tokens.length - 1;
46
+ const prevValue = prev?.value ?? "";
47
+ const nextValue = next?.value ?? "";
48
+ const prevStandalone = /\n[ \t]*$/.test(prevValue) || (prevIsFirst && /^[ \t]*$/.test(prevValue));
49
+ const nextStandalone = /^[ \t]*\n/.test(nextValue) || (nextIsLast && /^[ \t]*$/.test(nextValue));
50
+ token.standalone = prevStandalone && nextStandalone;
51
+ }
52
+ // Second pass: strip whitespace around standalone tags.
53
+ for (let i = 0; i < tokens.length; i++) {
54
+ const token = tokens[i];
55
+ if (!isBlock(token) || !token.standalone) {
56
+ continue;
57
+ }
58
+ const prev = tokens[i - 1];
59
+ const next = tokens[i + 1];
60
+ if (prev) {
61
+ // Drop the indentation preceding the tag, keeping the previous newline.
62
+ prev.value = prev.value.replace(/[ \t]*$/, "");
63
+ }
64
+ if (next) {
65
+ // Drop the rest of the tag's line, including its trailing newline.
66
+ next.value = /^[ \t]*\n/.test(next.value)
67
+ ? next.value.replace(/^[ \t]*\n/, "")
68
+ : next.value.replace(/^[ \t]*$/, "");
69
+ }
70
+ }
71
+ }
72
+ function parse(tokens, start, stopKinds) {
73
+ const nodes = [];
74
+ let i = start;
75
+ while (i < tokens.length) {
76
+ const token = tokens[i];
77
+ if (token.kind === "text") {
78
+ if (token.value) {
79
+ nodes.push({ kind: "text", value: token.value });
80
+ }
81
+ i++;
82
+ }
83
+ else if (token.kind === "var") {
84
+ nodes.push({ kind: "var", name: token.name });
85
+ i++;
86
+ }
87
+ else if (token.kind === "open") {
88
+ const [whenTrue, afterTrue] = parse(tokens, i + 1, ["else", "close"]);
89
+ let whenFalse = [];
90
+ let next = afterTrue;
91
+ if (tokens[next]?.kind === "else") {
92
+ const [elseNodes, afterElse] = parse(tokens, next + 1, ["close"]);
93
+ whenFalse = elseNodes;
94
+ next = afterElse;
95
+ }
96
+ // `next` now points at the matching `close` token.
97
+ nodes.push({ kind: "if", condition: token.name, whenTrue, whenFalse });
98
+ i = next + 1;
99
+ }
100
+ else if (stopKinds.includes(token.kind)) {
101
+ return [nodes, i];
102
+ }
103
+ else {
104
+ // Unmatched `else`/`close`; skip defensively.
105
+ i++;
106
+ }
107
+ }
108
+ return [nodes, i];
109
+ }
110
+ function isTruthy(value) {
111
+ if (Array.isArray(value)) {
112
+ return value.length > 0;
113
+ }
114
+ return Boolean(value);
115
+ }
116
+ function renderNodes(nodes, data) {
117
+ let out = "";
118
+ for (const node of nodes) {
119
+ switch (node.kind) {
120
+ case "text":
121
+ out += node.value;
122
+ break;
123
+ case "var": {
124
+ const value = data[node.name];
125
+ out += value === undefined || value === null ? "" : String(value);
126
+ break;
127
+ }
128
+ case "if":
129
+ out += renderNodes(isTruthy(data[node.condition]) ? node.whenTrue : node.whenFalse, data);
130
+ break;
131
+ }
132
+ }
133
+ return out;
134
+ }
135
+ /**
136
+ * Renders a metadata template against the provided data.
137
+ *
138
+ * @param template - Template using the supported `{{var}}` / `{{#if}}` subset.
139
+ * @param data - Values referenced by the template.
140
+ * @returns The rendered string.
141
+ */
142
+ export function renderTemplate(template, data) {
143
+ const tokens = tokenize(template);
144
+ stripStandaloneWhitespace(tokens);
145
+ const [nodes] = parse(tokens, 0, []);
146
+ return renderNodes(nodes, data);
147
+ }
148
+ //# sourceMappingURL=render-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-template.js","sourceRoot":"","sources":["../../../src/metadata/render-template.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-recorded-client.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-recorded-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW;;;EAQ1D"}
1
+ {"version":3,"file":"build-recorded-client.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-recorded-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW;;;EAK1D"}
@@ -1,14 +1,8 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-ignore: to fix the handlebars issue
3
- import hbs from "handlebars";
4
1
  import { recordedClientContent } from "./template.js";
5
2
  export function buildRecordedClientFile(_model) {
6
- const recordedClientFileContents = hbs.compile(recordedClientContent, {
7
- noEscape: true,
8
- });
9
3
  return {
10
4
  path: "test/public/utils/recordedClient.ts",
11
- content: recordedClientFileContents({}),
5
+ content: recordedClientContent,
12
6
  };
13
7
  }
14
8
  //# sourceMappingURL=build-recorded-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-recorded-client.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-recorded-client.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,0CAA0C;AAC1C,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,MAAM,0BAA0B,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE;QACpE,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,0BAA0B,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"build-recorded-client.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-recorded-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,OAAO;QACL,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,qBAAqB;KAC/B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-sample-test.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-sample-test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW;;;EAKlD"}
1
+ {"version":3,"file":"build-sample-test.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-sample-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW;;;EAKlD"}
@@ -1,11 +1,8 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-ignore: to fix the handlebars issue
3
- import hbs from "handlebars";
4
1
  import { sampleTestContent } from "./template.js";
5
2
  export function buildSampleTest(_model) {
6
3
  return {
7
4
  path: "test/public/sampleTest.spec.ts",
8
- content: hbs.compile(sampleTestContent, { noEscape: true })({}),
5
+ content: sampleTestContent,
9
6
  };
10
7
  }
11
8
  //# sourceMappingURL=build-sample-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-sample-test.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-sample-test.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,0CAA0C;AAC1C,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO;QACL,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"build-sample-test.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-sample-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO;QACL,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,iBAAiB;KAC3B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-snippets.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-snippets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM;;;cAiBpE"}
1
+ {"version":3,"file":"build-snippets.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/build-snippets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM;;;cAiBpE"}
@@ -1,7 +1,5 @@
1
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
- // @ts-ignore: to fix the handlebars issue
3
- import hbs from "handlebars";
4
1
  import { getClientName } from "../../utils/name-constructors.js";
2
+ import { renderTemplate } from "../render-template.js";
5
3
  import { snippetsContent } from "./template.js";
6
4
  export function buildSnippets(model, clientName) {
7
5
  // to keep the same config for azure scope in buildReadmeFile.ts
@@ -10,7 +8,7 @@ export function buildSnippets(model, clientName) {
10
8
  model.options.addCredentials) {
11
9
  return {
12
10
  path: "test/snippets.spec.ts",
13
- content: hbs.compile(snippetsContent, { noEscape: true })({
11
+ content: renderTemplate(snippetsContent, {
14
12
  clientClassName: clientName ? clientName : getClientName(model),
15
13
  azureArm: model.options?.azureArm,
16
14
  hasSubscriptionId: model.options.hasSubscriptionId,
@@ -1 +1 @@
1
- {"version":3,"file":"build-snippets.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-snippets.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,0CAA0C;AAC1C,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,UAAmB;IACnE,gEAAgE;IAChE,IACE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,KAAK,OAAO;QACpD,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,KAAK,YAAY,CAAC;QAC7D,KAAK,CAAC,OAAO,CAAC,cAAc,EAC5B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC/D,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ;gBACjC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;aACnD,CAAC;SACH,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"build-snippets.js","sourceRoot":"","sources":["../../../../src/metadata/test/build-snippets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,UAAmB;IACnE,gEAAgE;IAChE,IACE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,KAAK,OAAO;QACpD,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,KAAK,YAAY,CAAC;QAC7D,KAAK,CAAC,OAAO,CAAC,cAAc,EAC5B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE;gBACvC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC/D,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ;gBACjC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB;aACnD,CAAC;SACH,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,4 +1,3 @@
1
- export declare const karmaConfig = "\n// https://github.com/karma-runner/karma-chrome-launcher\nprocess.env.CHROME_BIN = require(\"puppeteer\").executablePath();\nrequire(\"dotenv\").config();\nconst { relativeRecordingsPath } = require(\"@azure-tools/test-recorder\");\nprocess.env.RECORDINGS_RELATIVE_PATH = relativeRecordingsPath();\n\nmodule.exports = function (config) {\n config.set({\n // base path that will be used to resolve all patterns (eg. files, exclude)\n basePath: \"./\",\n\n // frameworks to use\n // available frameworks: https://npmjs.org/browse/keyword/karma-adapter\n frameworks: [\"source-map-support\", \"mocha\"],\n\n plugins: [\n \"karma-mocha\",\n \"karma-mocha-reporter\",\n \"karma-chrome-launcher\",\n \"karma-firefox-launcher\",\n \"karma-env-preprocessor\",\n \"karma-coverage\",\n \"karma-sourcemap-loader\",\n \"karma-junit-reporter\",\n \"karma-source-map-support\",\n ],\n\n // list of files / patterns to load in the browser\n files: [\n \"dist-test/index.browser.js\",\n { pattern: \"dist-test/index.browser.js.map\", type: \"html\", included: false, served: true },\n ],\n\n // list of files / patterns to exclude\n exclude: [],\n\n // preprocess matching files before serving them to the browser\n // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor\n preprocessors: {\n \"**/*.js\": [\"sourcemap\", \"env\"],\n // IMPORTANT: COMMENT following line if you want to debug in your browsers!!\n // Preprocess source file to calculate code coverage, however this will make source file unreadable\n // \"dist-test/index.js\": [\"coverage\"]\n },\n\n envPreprocessor: [\n \"TEST_MODE\",\n \"ENDPOINT\",\n \"AZURE_CLIENT_SECRET\",\n \"AZURE_CLIENT_ID\",\n \"AZURE_TENANT_ID\",\n \"SUBSCRIPTION_ID\",\n \"RECORDINGS_RELATIVE_PATH\",\n ],\n\n // test results reporter to use\n // possible values: 'dots', 'progress'\n // available reporters: https://npmjs.org/browse/keyword/karma-reporter\n reporters: [\"mocha\", \"coverage\", \"junit\"],\n\n coverageReporter: {\n // specify a common output directory\n dir: \"coverage-browser/\",\n reporters: [\n { type: \"json\", subdir: \".\", file: \"coverage.json\" },\n { type: \"lcovonly\", subdir: \".\", file: \"lcov.info\" },\n { type: \"html\", subdir: \"html\" },\n { type: \"cobertura\", subdir: \".\", file: \"cobertura-coverage.xml\" },\n ],\n },\n\n junitReporter: {\n outputDir: \"\", // results will be saved as $outputDir/$browserName.xml\n outputFile: \"test-results.browser.xml\", // if included, results will be saved as $outputDir/$browserName/$outputFile\n suite: \"\", // suite will become the package name attribute in xml testsuite element\n useBrowserName: false, // add browser name to report and classes names\n nameFormatter: undefined, // function (browser, result) to customize the name attribute in xml testcase element\n classNameFormatter: undefined, // function (browser, result) to customize the classname attribute in xml testcase element\n properties: {}, // key value pair of properties to add to the <properties> section of the report\n },\n\n // web server port\n port: 9876,\n\n // enable / disable colors in the output (reporters and logs)\n colors: true,\n\n // level of logging\n // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG\n logLevel: config.LOG_INFO,\n\n // enable / disable watching file and executing tests whenever any file changes\n autoWatch: false,\n\n // --no-sandbox allows our tests to run in Linux without having to change the system.\n // --disable-web-security allows us to authenticate from the browser without having to write tests using interactive auth, which would be far more complex.\n browsers: [\"ChromeHeadlessNoSandbox\"],\n customLaunchers: {\n ChromeHeadlessNoSandbox: {\n base: \"ChromeHeadless\",\n flags: [\"--no-sandbox\", \"--disable-web-security\"],\n },\n },\n\n // Continuous Integration mode\n // if true, Karma captures browsers, runs the tests and exits\n singleRun: false,\n\n // Concurrency level\n // how many browser should be started simultaneous\n concurrency: 1,\n\n browserNoActivityTimeout: 60000000,\n browserDisconnectTimeout: 10000,\n browserDisconnectTolerance: 3,\n\n client: {\n mocha: {\n // change Karma's debug.html to the mocha web reporter\n reporter: \"html\",\n timeout: \"600000\",\n },\n },\n });\n};\n";
2
1
  export declare const recordedClientContent = "\n\nimport {\n Recorder,\n RecorderStartOptions,\n VitestTestContext,\n} from \"@azure-tools/test-recorder\";\n\nconst replaceableVariables: Record<string, string> = {\n SUBSCRIPTION_ID: \"azure_subscription_id\"\n};\n\nconst recorderEnvSetup: RecorderStartOptions = {\n envSetupForPlayback: replaceableVariables,\n};\n\n/**\n * creates the recorder and reads the environment variables from the `.env` file.\n * Should be called first in the test suite to make sure environment variables are\n * read before they are being used.\n */\nexport async function createRecorder(context: VitestTestContext): Promise<Recorder> {\n const recorder = new Recorder(context);\n await recorder.start(recorderEnvSetup);\n return recorder;\n}\n";
3
2
  export declare const sampleTestContent = "\n// import { Recorder } from \"@azure-tools/test-recorder\";\n// import { createRecorder } from \"./utils/recordedClient.js\";\nimport { assert, \n // beforeEach,\n // afterEach,\n it,\n describe\n} from \"vitest\";\n\ndescribe(\"My test\", () => {\n // let recorder: Recorder;\n\n // beforeEach(async function(ctx) {\n // recorder = await createRecorder(ctx);\n // });\n\n // afterEach(async function() {\n // await recorder.stop();\n // });\n\n it(\"sample test\", async function() {\n assert.equal(1, 1);\n });\n});\n";
4
3
  export declare const snippetsContent = "\nimport { {{ clientClassName }} } from \"../src/index.js\";\nimport { DefaultAzureCredential, InteractiveBrowserCredential } from \"@azure/identity\";\nimport { setLogLevel } from \"@azure/logger\";\nimport { describe, it } from \"vitest\";\n\ndescribe(\"snippets\", () => {\n it(\"ReadmeSampleCreateClient_Node\", async () => {\n {{#if azureArm}}\n {{#if hasSubscriptionId}}\n const subscriptionId = \"00000000-0000-0000-0000-000000000000\";\n const client = new {{ clientClassName }}(new DefaultAzureCredential(), subscriptionId);\n {{else}}\n const client = new {{ clientClassName }}(new DefaultAzureCredential());\n {{/if}}\n {{else}}\n const client = new {{ clientClassName }}(\"<endpoint>\", new DefaultAzureCredential());\n {{/if}}\n });\n\n it(\"ReadmeSampleCreateClient_Browser\", async () => {\n {{#if azureArm}}\n const credential = new InteractiveBrowserCredential({\n tenantId: \"<YOUR_TENANT_ID>\",\n clientId: \"<YOUR_CLIENT_ID>\",\n });\n {{#if hasSubscriptionId}}\n const subscriptionId = \"00000000-0000-0000-0000-000000000000\";\n const client = new {{ clientClassName }}(credential, subscriptionId);\n {{else}}\n const client = new {{ clientClassName }}(credential);\n {{/if}}\n {{else}}\n const credential = new InteractiveBrowserCredential({\n tenantId: \"<YOUR_TENANT_ID>\",\n clientId: \"<YOUR_CLIENT_ID>\",\n });\n const client = new {{ clientClassName }}(\"<endpoint>\", credential);\n {{/if}}\n });\n\n it(\"SetLogLevel\", async () => {\n setLogLevel(\"info\");\n });\n});\n";
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,+oJA8HvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,quBA0BjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,8jBAyB7B,CAAC;AAEF,eAAO,MAAM,eAAe,wkDA6C3B,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/metadata/test/template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,quBA0BjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,8jBAyB7B,CAAC;AAEF,eAAO,MAAM,eAAe,wkDA6C3B,CAAC"}
@@ -1,130 +1,3 @@
1
- export const karmaConfig = `
2
- // https://github.com/karma-runner/karma-chrome-launcher
3
- process.env.CHROME_BIN = require("puppeteer").executablePath();
4
- require("dotenv").config();
5
- const { relativeRecordingsPath } = require("@azure-tools/test-recorder");
6
- process.env.RECORDINGS_RELATIVE_PATH = relativeRecordingsPath();
7
-
8
- module.exports = function (config) {
9
- config.set({
10
- // base path that will be used to resolve all patterns (eg. files, exclude)
11
- basePath: "./",
12
-
13
- // frameworks to use
14
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
15
- frameworks: ["source-map-support", "mocha"],
16
-
17
- plugins: [
18
- "karma-mocha",
19
- "karma-mocha-reporter",
20
- "karma-chrome-launcher",
21
- "karma-firefox-launcher",
22
- "karma-env-preprocessor",
23
- "karma-coverage",
24
- "karma-sourcemap-loader",
25
- "karma-junit-reporter",
26
- "karma-source-map-support",
27
- ],
28
-
29
- // list of files / patterns to load in the browser
30
- files: [
31
- "dist-test/index.browser.js",
32
- { pattern: "dist-test/index.browser.js.map", type: "html", included: false, served: true },
33
- ],
34
-
35
- // list of files / patterns to exclude
36
- exclude: [],
37
-
38
- // preprocess matching files before serving them to the browser
39
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
40
- preprocessors: {
41
- "**/*.js": ["sourcemap", "env"],
42
- // IMPORTANT: COMMENT following line if you want to debug in your browsers!!
43
- // Preprocess source file to calculate code coverage, however this will make source file unreadable
44
- // "dist-test/index.js": ["coverage"]
45
- },
46
-
47
- envPreprocessor: [
48
- "TEST_MODE",
49
- "ENDPOINT",
50
- "AZURE_CLIENT_SECRET",
51
- "AZURE_CLIENT_ID",
52
- "AZURE_TENANT_ID",
53
- "SUBSCRIPTION_ID",
54
- "RECORDINGS_RELATIVE_PATH",
55
- ],
56
-
57
- // test results reporter to use
58
- // possible values: 'dots', 'progress'
59
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
60
- reporters: ["mocha", "coverage", "junit"],
61
-
62
- coverageReporter: {
63
- // specify a common output directory
64
- dir: "coverage-browser/",
65
- reporters: [
66
- { type: "json", subdir: ".", file: "coverage.json" },
67
- { type: "lcovonly", subdir: ".", file: "lcov.info" },
68
- { type: "html", subdir: "html" },
69
- { type: "cobertura", subdir: ".", file: "cobertura-coverage.xml" },
70
- ],
71
- },
72
-
73
- junitReporter: {
74
- outputDir: "", // results will be saved as $outputDir/$browserName.xml
75
- outputFile: "test-results.browser.xml", // if included, results will be saved as $outputDir/$browserName/$outputFile
76
- suite: "", // suite will become the package name attribute in xml testsuite element
77
- useBrowserName: false, // add browser name to report and classes names
78
- nameFormatter: undefined, // function (browser, result) to customize the name attribute in xml testcase element
79
- classNameFormatter: undefined, // function (browser, result) to customize the classname attribute in xml testcase element
80
- properties: {}, // key value pair of properties to add to the <properties> section of the report
81
- },
82
-
83
- // web server port
84
- port: 9876,
85
-
86
- // enable / disable colors in the output (reporters and logs)
87
- colors: true,
88
-
89
- // level of logging
90
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
91
- logLevel: config.LOG_INFO,
92
-
93
- // enable / disable watching file and executing tests whenever any file changes
94
- autoWatch: false,
95
-
96
- // --no-sandbox allows our tests to run in Linux without having to change the system.
97
- // --disable-web-security allows us to authenticate from the browser without having to write tests using interactive auth, which would be far more complex.
98
- browsers: ["ChromeHeadlessNoSandbox"],
99
- customLaunchers: {
100
- ChromeHeadlessNoSandbox: {
101
- base: "ChromeHeadless",
102
- flags: ["--no-sandbox", "--disable-web-security"],
103
- },
104
- },
105
-
106
- // Continuous Integration mode
107
- // if true, Karma captures browsers, runs the tests and exits
108
- singleRun: false,
109
-
110
- // Concurrency level
111
- // how many browser should be started simultaneous
112
- concurrency: 1,
113
-
114
- browserNoActivityTimeout: 60000000,
115
- browserDisconnectTimeout: 10000,
116
- browserDisconnectTolerance: 3,
117
-
118
- client: {
119
- mocha: {
120
- // change Karma's debug.html to the mocha web reporter
121
- reporter: "html",
122
- timeout: "600000",
123
- },
124
- },
125
- });
126
- };
127
- `;
128
1
  export const recordedClientContent = `
129
2
 
130
3
  import {
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/metadata/test/template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8H1B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BpC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C9B,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../src/metadata/test/template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BpC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-root-index.d.ts","sourceRoot":"","sources":["../../../src/modular/build-root-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEjG,OAAO,EAAW,UAAU,EAAE,MAAM,UAAU,CAAC;AAK/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,UAAU,EACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,QAiD3D;AAmMD,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAsFD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,EACzD,cAAc,EAAE,qBAAqB,QAuCtC"}
1
+ {"version":3,"file":"build-root-index.d.ts","sourceRoot":"","sources":["../../../src/modular/build-root-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEjG,OAAO,EAAW,UAAU,EAAiB,MAAM,UAAU,CAAC;AAY9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,qBAAqB,EACrC,aAAa,EAAE,UAAU,EACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,QAQ3D;AA2PD,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAyFD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,EACzD,cAAc,EAAE,qBAAqB,QAQtC"}
@@ -1,6 +1,8 @@
1
1
  import { joinPaths, NoTarget } from "@typespec/compiler";
2
+ import { StructureKind } from "ts-morph";
2
3
  import { useContext } from "../context-manager.js";
3
4
  import { resolveReference } from "../framework/reference.js";
5
+ import { beginSourceFileBatch, enqueueStatement, flushSourceFileBatch, getEffectiveExportedNames, getQueuedExportNames, } from "../framework/source-file-batch.js";
4
6
  import { reportDiagnostic } from "../lib.js";
5
7
  import { getClientModuleInfo } from "../utils/client-utils.js";
6
8
  import { NameType, normalizeName } from "../utils/name-utils.js";
@@ -10,6 +12,15 @@ import { getClassicalClientName } from "./helpers/naming-helpers.js";
10
12
  import { isLroOnlyOperation } from "./helpers/operation-helpers.js";
11
13
  import { CloudSettingHelpers, MultipartHelpers, PagingHelpers, PlatformTypeHelpers, } from "./static-helpers-metadata.js";
12
14
  export function buildRootIndex(context, emitterOptions, rootIndexFile, clientMap) {
15
+ beginSourceFileBatch();
16
+ try {
17
+ buildRootIndexImpl(context, emitterOptions, rootIndexFile, clientMap);
18
+ }
19
+ finally {
20
+ flushSourceFileBatch();
21
+ }
22
+ }
23
+ function buildRootIndexImpl(context, emitterOptions, rootIndexFile, clientMap) {
13
24
  if (!clientMap) {
14
25
  // we still need to export the models if no client is provided
15
26
  exportModels(emitterOptions, rootIndexFile);
@@ -75,7 +86,8 @@ function exportRestErrorTypes(rootIndexFile) {
75
86
  const existingExports = getExistingExports(rootIndexFile);
76
87
  const namedExports = ["RestError", "isRestError"].filter((name) => !existingExports.has(name));
77
88
  if (namedExports.length > 0) {
78
- rootIndexFile.addExportDeclaration({
89
+ enqueueStatement(rootIndexFile, {
90
+ kind: StructureKind.ExportDeclaration,
79
91
  moduleSpecifier: "@azure/core-rest-pipeline",
80
92
  namedExports,
81
93
  });
@@ -115,9 +127,7 @@ function exportFileContentsType(context, rootIndexFile) {
115
127
  }
116
128
  }
117
129
  function getExistingExports(rootIndexFile) {
118
- return new Set(rootIndexFile
119
- .getExportDeclarations()
120
- .flatMap((exportDecl) => exportDecl.getNamedExports().map((namedExport) => namedExport.getName())));
130
+ return getEffectiveExportedNames(rootIndexFile);
121
131
  }
122
132
  function getNewNamedExports(namedExports, existingExports) {
123
133
  return namedExports.filter((namedExport) => !existingExports.has(namedExport));
@@ -126,7 +136,8 @@ function addExportsToRootIndexFile(rootIndexFile, namedExports, isTypeOnly = fal
126
136
  const existingExports = getExistingExports(rootIndexFile);
127
137
  const newNamedExports = getNewNamedExports(namedExports, existingExports);
128
138
  if (newNamedExports.length > 0) {
129
- rootIndexFile.addExportDeclaration({
139
+ enqueueStatement(rootIndexFile, {
140
+ kind: StructureKind.ExportDeclaration,
130
141
  isTypeOnly,
131
142
  namedExports: newNamedExports,
132
143
  });
@@ -146,7 +157,8 @@ function exportSimplePollerLike(context, clientMap, indexFile, project, srcPath,
146
157
  return;
147
158
  }
148
159
  const moduleSpecifier = `./${isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""}static-helpers/simplePollerHelpers.js`;
149
- indexFile.addExportDeclaration({
160
+ enqueueStatement(indexFile, {
161
+ kind: StructureKind.ExportDeclaration,
150
162
  isTypeOnly: true,
151
163
  moduleSpecifier,
152
164
  namedExports: ["SimplePollerLike"],
@@ -157,7 +169,10 @@ function exportRestoreHelpers(indexFile, project, srcPath, clientName, subfolder
157
169
  if (!helperFile) {
158
170
  return;
159
171
  }
160
- const exported = new Set(indexFile.getExportedDeclarations().keys());
172
+ const exported = new Set([
173
+ ...indexFile.getExportedDeclarations().keys(),
174
+ ...getQueuedExportNames(indexFile),
175
+ ]);
161
176
  const allEntries = [...helperFile.getExportedDeclarations().entries()];
162
177
  const moduleSpecifier = `./${isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""}restorePollerHelpers.js`;
163
178
  const renamer = (name) => (exported.has(name) ? `${name} as ${clientName}${name}` : name);
@@ -165,7 +180,8 @@ function exportRestoreHelpers(indexFile, project, srcPath, clientName, subfolder
165
180
  }
166
181
  function exportClassicalClient(client, indexFile, subfolder, isSubClient = false) {
167
182
  const clientName = client.name;
168
- indexFile.addExportDeclaration({
183
+ enqueueStatement(indexFile, {
184
+ kind: StructureKind.ExportDeclaration,
169
185
  namedExports: [clientName],
170
186
  moduleSpecifier: `./${subfolder && subfolder !== "" && !isSubClient ? subfolder + "/" : ""}${normalizeName(clientName, NameType.File)}.js`,
171
187
  });
@@ -211,7 +227,10 @@ function exportModules(indexFile, project, srcPath, clientName, moduleName, opti
211
227
  if (!modelsFile) {
212
228
  continue;
213
229
  }
214
- const exported = new Set(indexFile.getExportedDeclarations().keys());
230
+ const exported = new Set([
231
+ ...indexFile.getExportedDeclarations().keys(),
232
+ ...getQueuedExportNames(indexFile),
233
+ ]);
215
234
  const serializerOrDeserializerRegex = /.*(Serializer|Deserializer)(_\d+)?$/;
216
235
  const filteredEntries = [...modelsFile.getExportedDeclarations().entries()].filter((exDeclaration) => {
217
236
  if (exDeclaration[0].startsWith("_")) {
@@ -242,6 +261,15 @@ function exportModules(indexFile, project, srcPath, clientName, moduleName, opti
242
261
  }
243
262
  }
244
263
  export function buildSubClientIndexFile(context, clientMap, emitterOptions) {
264
+ beginSourceFileBatch();
265
+ try {
266
+ buildSubClientIndexFileImpl(context, clientMap, emitterOptions);
267
+ }
268
+ finally {
269
+ flushSourceFileBatch();
270
+ }
271
+ }
272
+ function buildSubClientIndexFileImpl(context, clientMap, emitterOptions) {
245
273
  const project = useContext("outputProject");
246
274
  const [_, client] = clientMap;
247
275
  const { subfolder } = getClientModuleInfo(clientMap);
@@ -1 +1 @@
1
- {"version":3,"file":"build-root-index.js","sourceRoot":"","sources":["../../../src/modular/build-root-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-root-index.js","sourceRoot":"","sources":["../../../src/modular/build-root-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAuB,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,cAAc,CAC5B,OAAmB,EACnB,cAAqC,EACrC,aAAyB,EACzB,SAA0D;IAE1D,oBAAoB,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;YAAS,CAAC;QACT,oBAAoB,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAmB,EACnB,cAAqC,EACrC,aAAyB,EACzB,SAA0D;IAE1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,8DAA8D;QAC9D,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC5C,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,GAAG,OAAO,IAAI,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAChF,UAAU,EACV,QAAQ,CAAC,IAAI,CACd,KAAK,CACP,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE;gBACN,QAAQ,EAAE,GAAG,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aACtE;YACD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,sDAAsD;IAChE,CAAC;IAED,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC9D,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvF,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnF,YAAY,CAAC,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACxD,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;QAChE,SAAS;QACT,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;QACpE,SAAS;QACT,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1C,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/C,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC9C,oBAAoB,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CACnB,cAAqC,EACrC,aAAyB,EACzB,aAAqB,EAAE;IAEvB,yCAAyC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC;IACzD,MAAM,kBAAkB,GAAG,aAAa,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3E,OAAO,CAAC,CAAC,uBAAuB,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;YACnE,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAmB,EAAE,aAAyB;IAC3E,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,+EAA+E;QAC/E,yBAAyB,CAAC,aAAa,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9F,yBAAyB,CACvB,aAAa,EACb,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,EAC5D,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAyB;IACrD,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,CAAC,aAAa,EAAE;YAC9B,IAAI,EAAE,aAAa,CAAC,iBAAiB;YACrC,eAAe,EAAE,2BAA2B;YAC5C,YAAY;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAmB,EAAE,aAAyB;IACvE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,yBAAyB,CACvB,aAAa,EACb;QACE,gBAAgB,CAAC,aAAa,CAAC,YAAY,CAAC;QAC5C,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC;QAC/C,gBAAgB,CAAC,aAAa,CAAC,0BAA0B,CAAC;KAC3D,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAmB;IACpC,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,SAAS,EAAE,CAAC;YACxC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAmB,EAAE,aAAyB;IAC5E,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAChG,CAAC;IAEF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,yBAAyB,CACvB,aAAa,EACb;YACE,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAC/C,gBAAgB,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;SACzD,EACD,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,aAAyB;IACnD,OAAO,yBAAyB,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAsB,EAAE,eAA4B;IAC9E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,yBAAyB,CAChC,aAAyB,EACzB,YAAsB,EACtB,aAAsB,KAAK;IAE3B,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC1E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,gBAAgB,CAAC,aAAa,EAAE;YAC9B,IAAI,EAAE,aAAa,CAAC,iBAAiB;YACrC,UAAU;YACV,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAmB,EACnB,SAAyD,EACzD,SAAqB,EACrB,OAAgB,EAChB,OAAe,EACf,YAAoB,EAAE,EACtB,aAAsB,KAAK;IAE3B,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAE9B,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QAChE,OAAO,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,GAAG,OAAO,IACR,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EACpD,uCAAuC,CACxC,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,eAAe,GAAG,KACtB,UAAU,IAAI,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAClE,uCAAuC,CAAC;IACxC,gBAAgB,CAAC,SAAS,EAAE;QAC1B,IAAI,EAAE,aAAa,CAAC,iBAAiB;QACrC,UAAU,EAAE,IAAI;QAChB,eAAe;QACf,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAqB,EACrB,OAAgB,EAChB,OAAe,EACf,UAAkB,EAClB,YAAoB,EAAE,EACtB,aAAsB,KAAK;IAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CACtC,GAAG,OAAO,IAAI,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAC5F,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,GAAG,SAAS,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE;QAC7C,GAAG,oBAAoB,CAAC,SAAS,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,KACtB,UAAU,IAAI,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAClE,yBAAyB,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClG,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA0C,EAC1C,SAAqB,EACrB,SAAiB,EACjB,cAAuB,KAAK;IAE5B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,gBAAgB,CAAC,SAAS,EAAE;QAC1B,IAAI,EAAE,aAAa,CAAC,iBAAiB;QACrC,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,eAAe,EAAE,KACf,SAAS,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EACpE,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;KACjD,CAAC,CAAC;AACL,CAAC;AASD,SAAS,aAAa,CACpB,SAAqB,EACrB,OAAgB,EAChB,OAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAgC;IAC9B,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,KAAK;CACjB;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,IAAI,OAAiB,CAAC;IACtB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,OAAO;aACd,cAAc,EAAE;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACtD,OAAO,GAAG,OAAO;aACd,cAAc,EAAE;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;YACvB,GAAG,SAAS,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE;YAC7C,GAAG,oBAAoB,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,6BAA6B,GAAG,qCAAqC,CAAC;QAC5E,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAChF,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBAClC,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,sBAAsB,EAAE,CAAC;oBACzE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IACE,UAAU,KAAK,QAAQ;oBACvB,EAAE,CAAC,WAAW,EAAE,KAAK,qBAAqB;oBAC1C,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EACpD,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxF,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,UAAU;aACnC,WAAW,EAAE;aACb,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC;aACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAmB,EACnB,SAAyD,EACzD,cAAqC;IAErC,oBAAoB,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,oBAAoB,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,OAAmB,EACnB,SAAyD,EACzD,cAAqC;IAErC,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC;IACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CACjD,GAAG,OAAO,IAAI,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAC5E,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,MAAM,cAAc,GAAG,GAAG,OAAO,IAC/B,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,EACpD,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE;gBACN,QAAQ,EAAE,cAAc;aACzB;YACD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,sDAAsD;IAChE,CAAC;IAED,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACzE,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5F,oBAAoB,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAClF,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;QACrE,SAAS;QACT,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;QACzE,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-subpath-index.d.ts","sourceRoot":"","sources":["../../../src/modular/build-subpath-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAC1D,OAAO,GAAE,4BAAiC,QA6F3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAGlD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAC3B,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAiB,GAC3C,IAAI,CAwBN"}
1
+ {"version":3,"file":"build-subpath-index.d.ts","sourceRoot":"","sources":["../../../src/modular/build-subpath-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAS3D,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAC1D,OAAO,GAAE,4BAAiC,QAQ3C;AAqGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAGlD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,UAAU,EACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAC3B,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAiB,GAC3C,IAAI,CA0BN"}
@@ -1,7 +1,18 @@
1
1
  import { joinPaths } from "@typespec/compiler";
2
+ import { StructureKind } from "ts-morph";
2
3
  import { useContext } from "../context-manager.js";
4
+ import { beginSourceFileBatch, enqueueStatement, flushSourceFileBatch, } from "../framework/source-file-batch.js";
3
5
  import { getClientModuleInfo } from "../utils/client-utils.js";
4
6
  export function buildSubpathIndexFile(emitterOptions, subpath, clientMap, options = {}) {
7
+ beginSourceFileBatch();
8
+ try {
9
+ buildSubpathIndexFileImpl(emitterOptions, subpath, clientMap, options);
10
+ }
11
+ finally {
12
+ flushSourceFileBatch();
13
+ }
14
+ }
15
+ function buildSubpathIndexFileImpl(emitterOptions, subpath, clientMap, options = {}) {
5
16
  const project = useContext("outputProject");
6
17
  const subfolder = clientMap ? (getClientModuleInfo(clientMap).subfolder ?? "") : "";
7
18
  const srcPath = emitterOptions.modularOptions.sourceRoot;
@@ -103,14 +114,16 @@ export function partitionAndEmitExports(indexFile, moduleSpecifier, entries, map
103
114
  }
104
115
  }
105
116
  if (typeOnlyExports.length > 0) {
106
- indexFile.addExportDeclaration({
117
+ enqueueStatement(indexFile, {
118
+ kind: StructureKind.ExportDeclaration,
107
119
  isTypeOnly: true,
108
120
  moduleSpecifier,
109
121
  namedExports: typeOnlyExports,
110
122
  });
111
123
  }
112
124
  if (valueExports.length > 0) {
113
- indexFile.addExportDeclaration({
125
+ enqueueStatement(indexFile, {
126
+ kind: StructureKind.ExportDeclaration,
114
127
  moduleSpecifier,
115
128
  namedExports: valueExports,
116
129
  });