diff --git a/api/spec/package.json b/api/spec/package.json index 7a06d25857..f69338907a 100644 --- a/api/spec/package.json +++ b/api/spec/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@fetch-mock/vitest": "0.2.18", - "@typespec/prettier-plugin-typespec": "1.14.0", + "@typespec/prettier-plugin-typespec": "1.16.0", "@vitest/coverage-v8": "4.1.12", "prettier": "3.9.6", "vite": "8.1.6", diff --git a/api/spec/packages/aip/package.json b/api/spec/packages/aip/package.json index d813bf9809..c48d2b9674 100644 --- a/api/spec/packages/aip/package.json +++ b/api/spec/packages/aip/package.json @@ -22,13 +22,14 @@ "@openmeter/typespec-typescript": "workspace:*", "@redocly/cli": "2.40.0", "@types/node": "26.1.1", - "@typespec/compiler": "1.14.0", - "@typespec/http": "1.14.0", - "@typespec/json-schema": "1.14.0", - "@typespec/openapi": "1.14.0", - "@typespec/openapi3": "1.14.0", - "@typespec/prettier-plugin-typespec": "1.14.0", - "@typespec/rest": "0.84.0", + "@typespec/compiler": "1.16.0", + "@typespec/http": "1.16.0", + "@typespec/json-schema": "1.16.0", + "@typespec/openapi": "1.16.0", + "@typespec/openapi3": "1.16.0", + "@typespec/prettier-plugin-typespec": "1.16.0", + "@typespec/rest": "0.86.0", + "@typespec/versioning": "0.86.0", "prettier": "3.9.6", "yaml": "2.9.0" }, diff --git a/api/spec/packages/aip/src/shared/resource.tsp b/api/spec/packages/aip/src/shared/resource.tsp index 0f32bb97f6..f32b94dd53 100644 --- a/api/spec/packages/aip/src/shared/resource.tsp +++ b/api/spec/packages/aip/src/shared/resource.tsp @@ -82,10 +82,9 @@ model ResourceReference { id: ULID; } -alias ExpandableResourceReference = CustomExpandableResourceReference< - T, - Shared.ResourceReference ->; +alias ExpandableResourceReference< + T extends {} +> = CustomExpandableResourceReference>; @doc("{name} or reference.", T) @friendlyName("{name}OrReference", T) diff --git a/api/spec/packages/aip/test/compiler-compatibility.test.js b/api/spec/packages/aip/test/compiler-compatibility.test.js new file mode 100644 index 0000000000..c0343b880a --- /dev/null +++ b/api/spec/packages/aip/test/compiler-compatibility.test.js @@ -0,0 +1,52 @@ +import assert from 'node:assert/strict' +import { it } from 'node:test' +import { getFriendlyName, serializeValueAsJson } from '@typespec/compiler' +import { createTestHost, createTestRunner } from '@typespec/compiler/testing' + +it('preserves distinct names for visibility-projected nested models', async () => { + const host = await createTestHost() + const runner = await createTestRunner(host) + await runner.compile(` + @friendlyName("ApiChild") + model Child { + @visibility(Lifecycle.Read) id: string; + @visibility(Lifecycle.Create) value: string; + } + model Parent { child: Child; } + model Request is FilterVisibility< + Parent, #{ all: #[Lifecycle.Create] }, "Create{name}" + >; + `) + + const models = runner.program.checker.getGlobalNamespaceType().models + const child = models.get('Child') + const requestChild = models.get('Request').properties.get('child').type + + // The request clone must not inherit the response model's schema identity. + assert.equal(getFriendlyName(runner.program, child), 'ApiChild') + assert.equal(getFriendlyName(runner.program, requestChild), 'CreateChild') + assert.deepEqual([...requestChild.properties.keys()], ['value']) +}) + +it('preserves discriminated-union object defaults during JSON serialization', async () => { + const host = await createTestHost() + const runner = await createTestRunner(host) + await runner.compile(` + enum Kind { subscription: "subscription", anchored: "anchored" } + model Subscription { type: Kind.subscription; } + model Anchored { type: Kind.anchored; interval: string; } + @discriminated(#{ discriminatorPropertyName: "type", envelope: "none" }) + union Alignment { subscription: Subscription, anchored: Anchored } + const defaultAlignment: Subscription = #{ type: Kind.subscription }; + model Settings { alignment?: Alignment = defaultAlignment; } + `) + + const property = runner.program.checker + .getGlobalNamespaceType() + .models.get('Settings') + .properties.get('alignment') + assert.deepEqual( + serializeValueAsJson(runner.program, property.defaultValue, property), + { type: 'subscription' }, + ) +}) diff --git a/api/spec/packages/aip/test/openapi-output-path.test.js b/api/spec/packages/aip/test/openapi-output-path.test.js new file mode 100644 index 0000000000..0aba9e2e1c --- /dev/null +++ b/api/spec/packages/aip/test/openapi-output-path.test.js @@ -0,0 +1,52 @@ +import assert from 'node:assert/strict' +import { fileURLToPath } from 'node:url' +import { describe, it } from 'node:test' +import { createTester } from '@typespec/compiler/testing' + +const tester = createTester(fileURLToPath(new URL('..', import.meta.url)), { + libraries: ['@typespec/http', '@typespec/openapi3', '@typespec/versioning'], +}) + +describe('OpenAPI output paths', () => { + for (const { version, filename } of [ + { version: '../../escape', filename: '.._.._escape.json' }, + { version: '..\\..\\escape', filename: '.._.._escape.json' }, + { version: '/tmp/escape', filename: '_tmp_escape.json' }, + { version: '2026-10-22', filename: '2026-10-22.json' }, + ]) { + it(`keeps version ${JSON.stringify(version)} inside the output directory`, async () => { + // Spec-derived names must not control directories, while benign versions + // keep their existing filenames and OpenAPI metadata. + const { outputs } = await tester.emit('@typespec/openapi3', { + 'output-file': '{version}.json', + }).compile(` + import "@typespec/http"; + import "@typespec/versioning"; + using TypeSpec.Http; + using TypeSpec.Versioning; + @service + @versioned(Versions) + namespace Service; + enum Versions { v1: ${JSON.stringify(version)} } + @get op read(): string; + `) + + assert.deepEqual(Object.keys(outputs), [filename]) + assert.equal(JSON.parse(outputs[filename]).info.version, version) + }) + } + + it('keeps spec-derived service names inside the output directory', async () => { + const { outputs } = await tester.emit('@typespec/openapi3', { + 'output-file': '{service-name}.json', + }).compile(` + import "@typespec/http"; + using TypeSpec.Http; + @service + namespace \`../../escape\`; + @get op read(): string; + `) + + assert.deepEqual(Object.keys(outputs), ['.._.._escape.json']) + }) +}) diff --git a/api/spec/packages/legacy/package.json b/api/spec/packages/legacy/package.json index bb8349d9e0..2166e01359 100644 --- a/api/spec/packages/legacy/package.json +++ b/api/spec/packages/legacy/package.json @@ -19,17 +19,17 @@ } }, "devDependencies": { - "@azure-tools/typespec-client-generator-core": "0.70.0", + "@azure-tools/typespec-client-generator-core": "0.72.0", "@types/node": "26.1.1", - "@typespec/compiler": "1.14.0", - "@typespec/http": "1.14.0", + "@typespec/compiler": "1.16.0", + "@typespec/http": "1.16.0", "@typespec/http-client-python": "0.35.0", - "@typespec/openapi": "1.14.0", - "@typespec/openapi3": "1.14.0", - "@typespec/prettier-plugin-typespec": "1.14.0", - "@typespec/rest": "0.84.0", - "@typespec/streams": "0.84.0", - "@typespec/versioning": "0.84.0" + "@typespec/openapi": "1.16.0", + "@typespec/openapi3": "1.16.0", + "@typespec/prettier-plugin-typespec": "1.16.0", + "@typespec/rest": "0.86.0", + "@typespec/streams": "0.86.0", + "@typespec/versioning": "0.86.0" }, "private": true, "packageManager": "pnpm@10.28.0+sha512.05df71d1421f21399e053fde567cea34d446fa02c76571441bfc1c7956e98e363088982d940465fd34480d4d90a0668bc12362f8aa88000a64e83d0b0e47be48" diff --git a/api/spec/packages/legacy/src/notification/invoice.tsp b/api/spec/packages/legacy/src/notification/invoice.tsp index c598a36a14..0cd0012250 100644 --- a/api/spec/packages/legacy/src/notification/invoice.tsp +++ b/api/spec/packages/legacy/src/notification/invoice.tsp @@ -11,9 +11,11 @@ namespace OpenMeter; * Payload for notification event with `invoice.*` type. */ @friendlyName("NotificationEventInvoicePayload") -model NotificationEventInvoicePayload { +model NotificationEventInvoicePayload< + T extends + | NotificationEventType.invoiceCreated + | NotificationEventType.invoiceUpdated +> { /** * A unique identifier for the notification event the payload belongs to. */ diff --git a/api/spec/packages/typespec-go/package.json b/api/spec/packages/typespec-go/package.json index c0ec27c385..288a418115 100644 --- a/api/spec/packages/typespec-go/package.json +++ b/api/spec/packages/typespec-go/package.json @@ -20,10 +20,10 @@ "dependencies": { "@alloy-js/core": "0.24.1", "@alloy-js/go": "0.3.1", - "@typespec/compiler": "1.14.0", + "@typespec/compiler": "1.16.0", "@typespec/emitter-framework": "0.19.0", - "@typespec/http": "1.14.0", - "@typespec/openapi": "1.14.0" + "@typespec/http": "1.16.0", + "@typespec/openapi": "1.16.0" }, "devDependencies": { "@alloy-js/cli": "0.24.0", diff --git a/api/spec/packages/typespec-typescript/package.json b/api/spec/packages/typespec-typescript/package.json index f61e1265cd..c6b593052c 100644 --- a/api/spec/packages/typespec-typescript/package.json +++ b/api/spec/packages/typespec-typescript/package.json @@ -20,11 +20,11 @@ "dependencies": { "@alloy-js/core": "0.24.1", "@alloy-js/typescript": "0.24.0", - "@typespec/compiler": "1.14.0", + "@typespec/compiler": "1.16.0", "@typespec/emitter-framework": "0.19.0", - "@typespec/http": "1.14.0", + "@typespec/http": "1.16.0", "@typespec/http-client": "0.16.0", - "@typespec/openapi": "1.14.0", + "@typespec/openapi": "1.16.0", "typescript": "7.0.2" }, "devDependencies": { diff --git a/api/spec/patches/@typespec__compiler.patch b/api/spec/patches/@typespec__compiler.patch deleted file mode 100644 index 0675377e7d..0000000000 --- a/api/spec/patches/@typespec__compiler.patch +++ /dev/null @@ -1,10338 +0,0 @@ -diff --git a/cmd/tsp-server.js b/cmd/tsp-server.js -index 971b2bd53e4f08152701ded72c8808f1023c89a2..ba7e6517f0d5127f6c4b91a64672363b5aee5d61 100755 ---- a/cmd/tsp-server.js -+++ b/cmd/tsp-server.js -@@ -1,3 +1,3 @@ - #!/usr/bin/env node - import { runScript } from "../dist/src/runner.js"; --await runScript("entrypoints/server.js", "dist/server/server.js"); -+await runScript("entrypoints/server.js"); -diff --git a/cmd/tsp.js b/cmd/tsp.js -index 4f4b95ecccbcf5f51ba64c1c9a19326db3de6e5d..528a587a778e3e1caeeb1aa8c4fb75184d1f522c 100755 ---- a/cmd/tsp.js -+++ b/cmd/tsp.js -@@ -1,3 +1,3 @@ - #!/usr/bin/env node - import { runScript } from "../dist/src/runner.js"; --await runScript("entrypoints/cli.js", "dist/core/cli/cli.js"); -+await runScript("entrypoints/cli.js"); -diff --git a/dist/manifest.js b/dist/manifest.js -index c32624959bee432aba2616a1cac7b438ea30084e..62c2648a470c9295bd88ba5465cbca02960d5ec4 100644 ---- a/dist/manifest.js -+++ b/dist/manifest.js -@@ -1,4 +1,4 @@ - export default { - "version": "1.14.0", -- "commit": "156c91d401959eba1bde02142eb00b27c669e571" -+ "commit": "8e258999dac26fb8886823524fec65f4f2d102e3" - }; -\ No newline at end of file -diff --git a/dist/src/core/checker.d.ts b/dist/src/core/checker.d.ts -index 923cb64e6cbd9de70ba2b46286839ae43e8aa90c..b719e5b4174d2c1003b1e6c0d1401f1f25635af6 100644 ---- a/dist/src/core/checker.d.ts -+++ b/dist/src/core/checker.d.ts -@@ -12,11 +12,11 @@ export interface Checker { - cloneType(type: T, additionalProps?: { - [P in keyof T]?: T[P]; - }): T; -- createType(typeDef: T): T & TypePrototype & { -+ createType(typeDef: T): T & TypePrototype & { - isFinished: boolean; - readonly entityKind: "Type"; - }; -- createAndFinishType(typeDef: T): T & TypePrototype; -+ createAndFinishType(typeDef: T): T & TypePrototype; - finishType(typeDef: T): T; - createLiteralType(value: string, node?: StringLiteralNode): StringLiteral; - createLiteralType(value: number | Numeric, node?: NumericLiteralNode): NumericLiteral; -diff --git a/dist/src/core/checker.d.ts.map b/dist/src/core/checker.d.ts.map -index 7403cc99dd8cbbd281fe9dfca9b9286b5d27a772..52ed5b4f1d1da51f2cd83d83a5138552192e5abb 100644 ---- a/dist/src/core/checker.d.ts.map -+++ b/dist/src/core/checker.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/core/cli/cli.js b/dist/src/core/cli/cli.js -index a7f0878a590706058b6c336610c8605f885f7fc0..df8e40a5175f53a2140067992c653c2ab8f601e1 100644 ---- a/dist/src/core/cli/cli.js -+++ b/dist/src/core/cli/cli.js -@@ -1,11 +1,4 @@ --try { -- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- // @ts-ignore -- await import("source-map-support/register.js"); --} --catch { -- // package only present in dev. --} -+process.setSourceMapsEnabled(true); - import yargs from "yargs"; - import { installTypeSpecDependencies } from "../../install/install.js"; - import { typespecVersion } from "../../manifest.js"; -diff --git a/dist/src/core/cli/cli.js.map b/dist/src/core/cli/cli.js.map -index 20f7551af30b5977ab7690542e64e08de03dadd3..6f225c66073a841410eb037ef962b9dc9372e4b6 100644 ---- a/dist/src/core/cli/cli.js.map -+++ b/dist/src/core/cli/cli.js.map -@@ -1 +1 @@ --{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/core/cli/cli.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/core/cli/install-vsix.d.ts b/dist/src/core/cli/install-vsix.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..ee0d0715b261f4f263740c06edf7ec75225b0f7f ---- /dev/null -+++ b/dist/src/core/cli/install-vsix.d.ts -@@ -0,0 +1,3 @@ -+import { CliCompilerHost } from "./types.js"; -+export declare function installVsix(host: CliCompilerHost, pkg: string, install: (vsixPaths: string[]) => T): Promise; -+//# sourceMappingURL=install-vsix.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/cli/install-vsix.d.ts.map b/dist/src/core/cli/install-vsix.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..68175de066f559be1bc147d0994aae6da7fdc7d2 ---- /dev/null -+++ b/dist/src/core/cli/install-vsix.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"install-vsix.d.ts","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAsB,WAAW,CAAC,CAAC,GAAG,IAAI,EACxC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA6CZ"} -\ No newline at end of file -diff --git a/dist/src/core/cli/install-vsix.js b/dist/src/core/cli/install-vsix.js -new file mode 100644 -index 0000000000000000000000000000000000000000..fcd8d6108ba01156709c1472db7f0d9c5e1253ef ---- /dev/null -+++ b/dist/src/core/cli/install-vsix.js -@@ -0,0 +1,41 @@ -+import { mkdtemp, readdir, rm } from "fs/promises"; -+import os from "os"; -+import { compilerAssert } from "../diagnostics.js"; -+import { joinPaths } from "../path-utils.js"; -+import { run } from "./utils.js"; -+export async function installVsix(host, pkg, install) { -+ // download npm package to temporary directory -+ const temp = await mkdtemp(joinPaths(os.tmpdir(), "typespec")); -+ const npmArgs = ["install"]; -+ // hide npm output unless --debug was passed to typespec -+ if (!host.debug) { -+ npmArgs.push("--silent"); -+ } -+ // NOTE: Using cwd=temp with `--prefix .` instead of `--prefix ${temp}` to -+ // workaround https://github.com/npm/cli/issues/3256. It's still important -+ // to pass --prefix even though we're using cwd as otherwise, npm might -+ // find a package.json file in a parent directory and install to that -+ // directory. -+ npmArgs.push("--prefix", "."); -+ // To debug with a locally built package rather than pulling from npm, -+ // specify the full path to the packed .tgz using TYPESPEC_DEBUG_VSIX_TGZ -+ // environment variable. -+ npmArgs.push(process.env.TYPESPEC_DEBUG_VSIX_TGZ ?? pkg); -+ run(host, "npm", npmArgs, { cwd: temp }); -+ // locate .vsix -+ const dir = joinPaths(temp, "node_modules", pkg); -+ const files = await readdir(dir); -+ const vsixPaths = []; -+ for (const file of files) { -+ if (file.endsWith(".vsix")) { -+ vsixPaths.push(joinPaths(dir, file)); -+ } -+ } -+ compilerAssert(vsixPaths.length > 0, `Installed ${pkg} from npm, but didn't find any .vsix files in it.`); -+ // install extension -+ const result = install(vsixPaths); -+ // delete temporary directory -+ await rm(temp, { recursive: true }); -+ return result; -+} -+//# sourceMappingURL=install-vsix.js.map -\ No newline at end of file -diff --git a/dist/src/core/cli/install-vsix.js.map b/dist/src/core/cli/install-vsix.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..abcc4903b899c933dc73d158bee039a654f94d32 ---- /dev/null -+++ b/dist/src/core/cli/install-vsix.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"install-vsix.js","sourceRoot":"","sources":["../../../../src/core/cli/install-vsix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAqB,EACrB,GAAW,EACX,OAAmC;IAEnC,8CAA8C;IAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5B,wDAAwD;IACxD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,aAAa;IACb,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAE9B,sEAAsE;IACtE,yEAAyE;IACzE,wBAAwB;IACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;IAEzD,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,eAAe;IACf,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,cAAc,CACZ,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB,aAAa,GAAG,mDAAmD,CACpE,CAAC;IAEF,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAElC,6BAA6B;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e896b82b5846d704e77f7b5e4b870be61a9d19d8 ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts -@@ -0,0 +1,6 @@ -+import type { ModelExpressionNode } from "../types.js"; -+/** -+ * Quick fix that convert a model expression to an object value. -+ */ -+export declare function createModelToObjectValueCodeFix(node: ModelExpressionNode): import("../types.js").CodeFix; -+//# sourceMappingURL=model-to-object-literal.codefix.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts.map b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d9597e316aa2726cb2862b4ce8c1b5fcd64e0019 ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model-to-object-literal.codefix.d.ts","sourceRoot":"","sources":["../../../../src/core/compiler-code-fixes/model-to-object-literal.codefix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,mBAAmB,iCASxE"} -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js -new file mode 100644 -index 0000000000000000000000000000000000000000..a876db75824b651b22e9fe92f41b2ade8db6acfb ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js -@@ -0,0 +1,15 @@ -+import { defineCodeFix, getSourceLocation } from "../diagnostics.js"; -+/** -+ * Quick fix that convert a model expression to an object value. -+ */ -+export function createModelToObjectValueCodeFix(node) { -+ return defineCodeFix({ -+ id: "model-to-object-value", -+ label: `Convert to an object value \`#{}\``, -+ fix: (context) => { -+ const location = getSourceLocation(node); -+ return context.prependText(location, "#"); -+ }, -+ }); -+} -+//# sourceMappingURL=model-to-object-literal.codefix.js.map -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js.map b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e90542993c0c60eff1c10cbf3fc44bfb97da7962 ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model-to-object-literal.codefix.js","sourceRoot":"","sources":["../../../../src/core/compiler-code-fixes/model-to-object-literal.codefix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGrE;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAyB;IACvE,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,oCAAoC;QAC3C,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..3c3dc53b43c51ad0559a4860d399e975a06c939b ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts -@@ -0,0 +1,6 @@ -+import type { TupleExpressionNode } from "../types.js"; -+/** -+ * Quick fix that convert a tuple to an array value. -+ */ -+export declare function createTupleToArrayValueCodeFix(node: TupleExpressionNode): import("../types.js").CodeFix; -+//# sourceMappingURL=tuple-to-array-value.codefix.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts.map b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..229cdcd9e1f22b6610e5da58a290d61ee94ebbde ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"tuple-to-array-value.codefix.d.ts","sourceRoot":"","sources":["../../../../src/core/compiler-code-fixes/tuple-to-array-value.codefix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,iCASvE"} -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js -new file mode 100644 -index 0000000000000000000000000000000000000000..9c97e265855af65d2757cd8e46f10cee8c02a989 ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js -@@ -0,0 +1,15 @@ -+import { defineCodeFix, getSourceLocation } from "../diagnostics.js"; -+/** -+ * Quick fix that convert a tuple to an array value. -+ */ -+export function createTupleToArrayValueCodeFix(node) { -+ return defineCodeFix({ -+ id: "tuple-to-array-value", -+ label: `Convert to an array value \`#[]\``, -+ fix: (context) => { -+ const location = getSourceLocation(node); -+ return context.prependText(location, "#"); -+ }, -+ }); -+} -+//# sourceMappingURL=tuple-to-array-value.codefix.js.map -\ No newline at end of file -diff --git a/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js.map b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..b50e1977d588b165e6ce04ba0643839d8a3d53e6 ---- /dev/null -+++ b/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"tuple-to-array-value.codefix.js","sourceRoot":"","sources":["../../../../src/core/compiler-code-fixes/tuple-to-array-value.codefix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGrE;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAyB;IACtE,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,mCAAmC;QAC1C,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/file-ref.d.ts b/dist/src/core/file-ref.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..3e0624225740ff464632c8c52465634189dbc0d9 ---- /dev/null -+++ b/dist/src/core/file-ref.d.ts -@@ -0,0 +1,26 @@ -+/** -+ * A lazy reference to a file on disk. Unlike embedding the file content directly, a -+ * `FileRef` only describes *where* the content lives; it is resolved (read) by tooling -+ * such as `tspd` when needed. Because it does not read the file at definition time, it is -+ * safe to include in code that is bundled for the browser (e.g. the playground). -+ */ -+export interface FileRef { -+ readonly kind: "file-ref"; -+ /** Path to the file, relative to the package root. */ -+ readonly path: string; -+} -+export declare const fileRef: { -+ /** -+ * Create a {@link FileRef} pointing to a file relative to the package root (the directory -+ * containing the library's `package.json`). -+ * -+ * @example -+ * ```ts -+ * docs: fileRef.fromPackageRoot("src/rules/my-rule.md"), -+ * ``` -+ */ -+ fromPackageRoot(path: string): FileRef; -+}; -+/** Type guard for {@link FileRef}. */ -+export declare function isFileRef(value: unknown): value is FileRef; -+//# sourceMappingURL=file-ref.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/file-ref.d.ts.map b/dist/src/core/file-ref.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..6a761e67ec52d6b8645795ea031691618bb6bcac ---- /dev/null -+++ b/dist/src/core/file-ref.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"file-ref.d.ts","sourceRoot":"","sources":["../../../src/core/file-ref.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,OAAO;IAClB;;;;;;;;OAQG;0BACmB,MAAM,GAAG,OAAO;CAGvC,CAAC;AAEF,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D"} -\ No newline at end of file -diff --git a/dist/src/core/file-ref.js b/dist/src/core/file-ref.js -new file mode 100644 -index 0000000000000000000000000000000000000000..3397053df65b94ba031cb8e0d866fd6b48bb6b00 ---- /dev/null -+++ b/dist/src/core/file-ref.js -@@ -0,0 +1,19 @@ -+export const fileRef = { -+ /** -+ * Create a {@link FileRef} pointing to a file relative to the package root (the directory -+ * containing the library's `package.json`). -+ * -+ * @example -+ * ```ts -+ * docs: fileRef.fromPackageRoot("src/rules/my-rule.md"), -+ * ``` -+ */ -+ fromPackageRoot(path) { -+ return { kind: "file-ref", path }; -+ }, -+}; -+/** Type guard for {@link FileRef}. */ -+export function isFileRef(value) { -+ return typeof value === "object" && value !== null && value.kind === "file-ref"; -+} -+//# sourceMappingURL=file-ref.js.map -\ No newline at end of file -diff --git a/dist/src/core/file-ref.js.map b/dist/src/core/file-ref.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..fad69c5037066289987450430a0201eb8252722e ---- /dev/null -+++ b/dist/src/core/file-ref.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"file-ref.js","sourceRoot":"","sources":["../../../src/core/file-ref.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAY;QAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;CACF,CAAC;AAEF,sCAAsC;AACtC,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAK,KAAiB,CAAC,IAAI,KAAK,UAAU,CAAC;AAC/F,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/helpers/projected-names-utils.d.ts b/dist/src/core/helpers/projected-names-utils.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..30e547398087930a0bf3059a08c0d72abe7aa99e ---- /dev/null -+++ b/dist/src/core/helpers/projected-names-utils.d.ts -@@ -0,0 +1,20 @@ -+import type { Program, ProjectedProgram } from "../program.js"; -+import type { Type } from "../types.js"; -+export interface ProjectedNameView { -+ program: ProjectedProgram; -+ /** -+ * Get the name of the given entity in that scope. -+ * If there is a projected name it returns that one otherwise return the original name. -+ */ -+ getProjectedName(target: Type & { -+ name: string; -+ }): string; -+} -+/** -+ * Create an helper to manager project names. -+ * @param program Program -+ * @param target Name of the projected name target(e.g. json, csharp, etc.) -+ * @returns ProjectedNameView -+ */ -+export declare function createProjectedNameProgram(program: Program, target: string): ProjectedNameView; -+//# sourceMappingURL=projected-names-utils.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/helpers/projected-names-utils.d.ts.map b/dist/src/core/helpers/projected-names-utils.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ff1f5a2fcb09a2067b1ae6a8b756d690611a09db ---- /dev/null -+++ b/dist/src/core/helpers/projected-names-utils.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projected-names-utils.d.ts","sourceRoot":"","sources":["../../../../src/core/helpers/projected-names-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAa,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAC3D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAyB9F"} -\ No newline at end of file -diff --git a/dist/src/core/helpers/projected-names-utils.js b/dist/src/core/helpers/projected-names-utils.js -new file mode 100644 -index 0000000000000000000000000000000000000000..1adbc3bc4110ee6e384db8a41a2a93afabd9c5f1 ---- /dev/null -+++ b/dist/src/core/helpers/projected-names-utils.js -@@ -0,0 +1,42 @@ -+import { projectProgram } from "../program.js"; -+/** -+ * Create an helper to manager project names. -+ * @param program Program -+ * @param target Name of the projected name target(e.g. json, csharp, etc.) -+ * @returns ProjectedNameView -+ */ -+export function createProjectedNameProgram(program, target) { -+ const projectedProgram = projectProgram(program, [ -+ { -+ projectionName: "target", -+ arguments: [target], -+ }, -+ ]); -+ return { -+ program: projectedProgram, -+ getProjectedName, -+ }; -+ function getProjectedName(type) { -+ const baseType = findTypeInProjector(projectedProgram.projector, type); -+ const projectedType = projectedProgram.projector.projectedTypes.get(baseType); -+ if (projectedType === undefined || -+ !("name" in projectedType) || -+ projectedType.name === baseType.name) { -+ return type.name; -+ } -+ return projectedType.name; -+ } -+} -+// TODO will REALM help here? -+function findTypeInProjector(projector, type) { -+ if (type.projectionSource === undefined) { -+ return type; -+ } -+ else if (type.projector === projector) { -+ return type; -+ } -+ else { -+ return findTypeInProjector(projector, type.projectionSource); -+ } -+} -+//# sourceMappingURL=projected-names-utils.js.map -\ No newline at end of file -diff --git a/dist/src/core/helpers/projected-names-utils.js.map b/dist/src/core/helpers/projected-names-utils.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c834bfc480733ff645a28b12c0c5b7f821c6171e ---- /dev/null -+++ b/dist/src/core/helpers/projected-names-utils.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projected-names-utils.js","sourceRoot":"","sources":["../../../../src/core/helpers/projected-names-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAa/C;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB,EAAE,MAAc;IACzE,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE;QAC/C;YACE,cAAc,EAAE,QAAQ;YACxB,SAAS,EAAE,CAAC,MAAM,CAAC;SACpB;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,gBAAgB;KACjB,CAAC;IAEF,SAAS,gBAAgB,CAAC,IAA6B;QACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9E,IACE,aAAa,KAAK,SAAS;YAC3B,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC;YAC1B,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EACpC,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,aAAa,CAAC,IAAc,CAAC;IACtC,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,SAAS,mBAAmB,CAAiB,SAAgC,EAAE,IAAO;IACpF,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAQ,CAAC;IACtE,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/index.d.ts b/dist/src/core/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e26a57a8ca84c682b2b77b57b9d6e340ffd33436 ---- /dev/null -+++ b/dist/src/core/index.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/index.d.ts.map b/dist/src/core/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..33498c611c4586fcbb2da09347e7a5638ed298a1 ---- /dev/null -+++ b/dist/src/core/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/src/core/index.js b/dist/src/core/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..f8a711af8c0098cea04acd117a3294818a14a7e8 ---- /dev/null -+++ b/dist/src/core/index.js -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/core/index.js.map b/dist/src/core/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..38b0ffc5f65d20efd64ad564b51cb28fdc5eee3d ---- /dev/null -+++ b/dist/src/core/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/src/core/install.d.ts b/dist/src/core/install.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..d0485c2c41f35550214d2597d9341e58177fed20 ---- /dev/null -+++ b/dist/src/core/install.d.ts -@@ -0,0 +1,3 @@ -+import { CliCompilerHost } from "./cli/types.js"; -+export declare function installTypeSpecDependencies(host: CliCompilerHost, directory: string): Promise; -+//# sourceMappingURL=install.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/install.d.ts.map b/dist/src/core/install.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..dc16719230e8e6bfa10ac449dc343df05871d8d9 ---- /dev/null -+++ b/dist/src/core/install.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUjD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAuBf"} -\ No newline at end of file -diff --git a/dist/src/core/install.js b/dist/src/core/install.js -new file mode 100644 -index 0000000000000000000000000000000000000000..859673c5a21eafdb14106afc9f672b6ff61a0dde ---- /dev/null -+++ b/dist/src/core/install.js -@@ -0,0 +1,24 @@ -+import { spawn } from "child_process"; -+export async function installTypeSpecDependencies(host, directory) { -+ const child = spawn("npm", ["install"], { -+ shell: process.platform === "win32", -+ stdio: "inherit", -+ cwd: directory, -+ env: process.env, -+ }); -+ return new Promise(() => { -+ child.on("error", (error) => { -+ if (error.code === "ENOENT") { -+ host.logger.error("Cannot find `npm` executable. Make sure to have npm installed in your path."); -+ } -+ else { -+ host.logger.error(error.toString()); -+ } -+ process.exit(error.errno); -+ }); -+ child.on("exit", (exitCode) => { -+ process.exit(exitCode ?? -1); -+ }); -+ }); -+} -+//# sourceMappingURL=install.js.map -\ No newline at end of file -diff --git a/dist/src/core/install.js.map b/dist/src/core/install.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..f571f2d85b95a59669f5af87c1dafdfdcc1a19c1 ---- /dev/null -+++ b/dist/src/core/install.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/core/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAWtC,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAqB,EACrB,SAAiB;IAEjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;QACtC,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACnC,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACtB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6EAA6E,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/intrinsic-type-state.d.ts b/dist/src/core/intrinsic-type-state.d.ts -index 9ae8a35cdffe2b85ccf1ef784fcd95ff1d512fe5..c64dc4eb50b415ac3a9d3b8fd7dff763fe70416d 100644 ---- a/dist/src/core/intrinsic-type-state.d.ts -+++ b/dist/src/core/intrinsic-type-state.d.ts -@@ -2,7 +2,7 @@ import { DiscriminatedOptions } from "../../generated-defs/TypeSpec.js"; - import { type Numeric } from "./numeric.js"; - import type { Program } from "./program.js"; - import type { Model, ScalarValue, Type, Union } from "./types.js"; --declare const setMinValue: (program: Program, type: Type, value: Numeric | ScalarValue) => void; -+declare const setMinValue: (program: Program, type: Type, value: ScalarValue | Numeric) => void; - export { setMinValue }; - /** Get the minimum value for a scalar type(datetime, duration, etc.). */ - export declare function getMinValueForScalar(program: Program, target: Type): ScalarValue | undefined; -@@ -14,7 +14,7 @@ export declare function getMinValueAsNumeric(program: Program, target: Type): Nu - * See {@link getMinValueAsNumeric} to get the precise value - */ - export declare function getMinValue(program: Program, target: Type): number | undefined; --declare const setMaxValue: (program: Program, type: Type, value: Numeric | ScalarValue) => void; -+declare const setMaxValue: (program: Program, type: Type, value: ScalarValue | Numeric) => void; - export { setMaxValue }; - /** Get the maximum value for a scalar type(datetime, duration, etc.). */ - export declare function getMaxValueForScalar(program: Program, target: Type): ScalarValue | undefined; -@@ -26,7 +26,7 @@ export declare function getMaxValueAsNumeric(program: Program, target: Type): Nu - * See {@link getMaxValueAsNumeric} to get the precise value - */ - export declare function getMaxValue(program: Program, target: Type): number | undefined; --declare const setMinValueExclusive: (program: Program, type: Type, value: Numeric | ScalarValue) => void; -+declare const setMinValueExclusive: (program: Program, type: Type, value: ScalarValue | Numeric) => void; - export { setMinValueExclusive }; - /** Get the minimum value exclusive for a scalar type(datetime, duration, etc.). */ - export declare function getMinValueExclusiveForScalar(program: Program, target: Type): ScalarValue | undefined; -@@ -38,7 +38,7 @@ export declare function getMinValueExclusiveAsNumeric(program: Program, target: - * See {@link getMinValueExclusiveAsNumeric} to get the precise value - */ - export declare function getMinValueExclusive(program: Program, target: Type): number | undefined; --declare const setMaxValueExclusive: (program: Program, type: Type, value: Numeric | ScalarValue) => void; -+declare const setMaxValueExclusive: (program: Program, type: Type, value: ScalarValue | Numeric) => void; - export { setMaxValueExclusive }; - /** Get the maximum value exclusive for a scalar type(datetime, duration, etc.). */ - export declare function getMaxValueExclusiveForScalar(program: Program, target: Type): ScalarValue | undefined; -diff --git a/dist/src/core/messages.d.ts b/dist/src/core/messages.d.ts -index becba5c48f3562d37e42c76ab565508d03912d50..5b5e0fb7aef82ea503b7ee327f13579048a21c66 100644 ---- a/dist/src/core/messages.d.ts -+++ b/dist/src/core/messages.d.ts -@@ -1126,7 +1126,7 @@ declare const diagnostics: { - }; - export type CompilerDiagnostics = TypeOfDiagnostics; - export declare const compilerDiagnosticCodes: Set; --export declare const createDiagnostic: ; - }; --}, C, M>) => import("./types.js").Diagnostic, reportDiagnostic: ) => import("./types.js").Diagnostic, reportDiagnostic: Type>; -+}; -+//# sourceMappingURL=projection-members.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/projection-members.d.ts.map b/dist/src/core/projection-members.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..08be42f5a7af380a120020b112e91af7272e9c1e ---- /dev/null -+++ b/dist/src/core/projection-members.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projection-members.d.ts","sourceRoot":"","sources":["../../../src/core/projection-members.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAc,IAAI,EAAgB,MAAM,YAAY,CAAC;AAEjE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;KACxD,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,KAAK,IAAI,CAAC;CACjF,CAyZA"} -\ No newline at end of file -diff --git a/dist/src/core/projection-members.js b/dist/src/core/projection-members.js -new file mode 100644 -index 0000000000000000000000000000000000000000..abd9ee299f47a187e197ac3838507ce93c6832bd ---- /dev/null -+++ b/dist/src/core/projection-members.js -@@ -0,0 +1,381 @@ -+import { camelCase, kebabCase, pascalCase, snakeCase } from "change-case"; -+import { ProjectionError, assertType } from "./diagnostics.js"; -+export function createProjectionMembers(checker) { -+ const { voidType, neverType, createType, createFunctionType, createLiteralType } = checker; -+ function createBaseMembers() { -+ return { -+ projectionSource: (base) => base.projectionSource ?? voidType, -+ projectionBase: (base) => base.projectionBase ?? voidType, -+ }; -+ } -+ function createNameableMembers() { -+ return { -+ name: (base) => (base.name ? createLiteralType(base.name) : voidType), -+ rename: (base) => { -+ return createFunctionType((newName) => { -+ assertType("new name", newName, "String"); -+ base.name = newName.value; -+ return voidType; -+ }); -+ }, -+ }; -+ } -+ return { -+ Model: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ properties(base) { -+ return createType({ -+ kind: "Object", -+ properties: { -+ forEach: createFunctionType((block) => { -+ assertType("block", block, "Function"); -+ const props = Array.from(base.properties.values()); -+ props.forEach((p) => block.implementation(p)); -+ return voidType; -+ }), -+ }, -+ }); -+ }, -+ renameProperty(base) { -+ return createFunctionType((oldNameT, newNameT) => { -+ assertType("current property name", oldNameT, "String"); -+ assertType("new property name", newNameT, "String"); -+ const oldName = oldNameT.value; -+ const newName = newNameT.value; -+ const prop = base.properties.get(oldName); -+ if (!prop) { -+ throw new ProjectionError(`Property ${oldName} not found`); -+ } -+ prop.name = newName; -+ base.properties.rekey(oldName, newName); -+ return voidType; -+ }); -+ }, -+ changePropertyType(base) { -+ return createFunctionType((nameT, newType) => { -+ assertType("property name", nameT, "String"); -+ const propertyName = nameT.value; -+ const prop = base.properties.get(propertyName); -+ if (!prop) { -+ throw new ProjectionError(`Property ${propertyName} not found`); -+ } -+ prop.type = newType; -+ return voidType; -+ }); -+ }, -+ addProperty(base) { -+ return createFunctionType((nameT, type, defaultT) => { -+ assertType("property", nameT, "String"); -+ const name = nameT.value; -+ const prop = base.properties.get(name); -+ if (prop) { -+ throw new ProjectionError(`Property ${name} already exists`); -+ } -+ base.properties.set(name, createType({ -+ kind: "ModelProperty", -+ name, -+ optional: false, -+ decorators: [], -+ node: undefined, -+ default: defaultT, -+ type, -+ })); -+ return voidType; -+ }); -+ }, -+ deleteProperty(base) { -+ return createFunctionType((nameT) => { -+ assertType("property", nameT, "String"); -+ const name = nameT.value; -+ const prop = base.properties.get(name); -+ if (!prop) { -+ return voidType; -+ } -+ base.properties.delete(name); -+ return voidType; -+ }); -+ }, -+ }, -+ ModelProperty: { -+ ...createBaseMembers(), -+ name(base) { -+ return createLiteralType(base.name); -+ }, -+ type(base) { -+ return base.type; -+ }, -+ setType(base) { -+ return createFunctionType((t) => { -+ base.type = t; -+ return voidType; -+ }); -+ }, -+ setOptional(base) { -+ return createFunctionType((optional) => { -+ assertType("Optional", optional, "Boolean"); -+ base.optional = optional.value; -+ return voidType; -+ }); -+ }, -+ }, -+ Scalar: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ }, -+ Union: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ variants(base) { -+ return createType({ -+ kind: "Object", -+ properties: { -+ forEach: createFunctionType((block) => { -+ assertType("block", block, "Function"); -+ const variants = Array.from(base.variants.values()); -+ variants.forEach((p) => block.implementation(p)); -+ return voidType; -+ }), -+ }, -+ }); -+ }, -+ renameVariant(base) { -+ return createFunctionType((oldNameT, newNameT) => { -+ assertType("old variant name", oldNameT, "String"); -+ assertType("new variant name", newNameT, "String"); -+ const oldName = oldNameT.value; -+ const newName = newNameT.value; -+ const variant = base.variants.get(oldName); -+ if (!variant) { -+ throw new ProjectionError(`Couldn't find variant ${variant}`); -+ } -+ base.variants.rekey(oldName, newName); -+ variant.name = newName; -+ return voidType; -+ }); -+ }, -+ addVariant(base) { -+ return createFunctionType((nameT, type) => { -+ assertType("Variant name", nameT, "String"); -+ const name = nameT.value; -+ const variantType = createType({ -+ kind: "UnionVariant", -+ decorators: [], -+ name, -+ node: undefined, -+ type, -+ union: base, -+ }); -+ base.variants.set(name, variantType); -+ return voidType; -+ }); -+ }, -+ deleteVariant(base) { -+ return createFunctionType((nameT) => { -+ assertType("Name", nameT, "String"); -+ const name = nameT.value; -+ base.variants.delete(name); -+ return voidType; -+ }); -+ }, -+ }, -+ UnionVariant: { -+ ...createBaseMembers(), -+ name(base) { -+ if (typeof base.name === "string") { -+ return createLiteralType(base.name); -+ } -+ else { -+ throw new ProjectionError("Can't refer to name of anonymous union variant"); -+ } -+ }, -+ setType(base) { -+ return createFunctionType((type) => { -+ base.type = type; -+ return voidType; -+ }); -+ }, -+ type(base) { -+ return base.type; -+ }, -+ }, -+ Operation: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ parameters(base) { -+ return base.parameters; -+ }, -+ returnType(base) { -+ return base.returnType; -+ }, -+ changeReturnType(base) { -+ return createFunctionType((newType) => { -+ base.returnType = newType; -+ return voidType; -+ }); -+ }, -+ }, -+ Interface: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ operations(base) { -+ return createType({ -+ kind: "Object", -+ properties: { -+ forEach: createFunctionType((block) => { -+ assertType("block", block, "Function"); -+ const props = Array.from(base.operations.values()); -+ props.forEach((p) => block.implementation(p)); -+ return voidType; -+ }), -+ }, -+ }); -+ }, -+ renameOperation(base) { -+ return createFunctionType((oldNameT, newNameT) => { -+ assertType("operation name", oldNameT, "String"); -+ assertType("operation name", newNameT, "String"); -+ const oldName = oldNameT.value; -+ const newName = newNameT.value; -+ const op = base.operations.get(oldName); -+ if (!op) { -+ throw new ProjectionError(`Couldn't find operation named ${oldName}`); -+ } -+ op.name = newName; -+ base.operations.rekey(oldName, newName); -+ return voidType; -+ }); -+ }, -+ addOperation(base) { -+ return createFunctionType((nameT, parameters, returnType) => { -+ assertType("operation name", nameT, "String"); -+ assertType("parameters", parameters, "Model"); -+ const name = nameT.value; -+ const prop = base.operations.get(name); -+ if (prop) { -+ throw new ProjectionError(`Operation named ${name} already exists`); -+ } -+ base.operations.set(name, createType({ -+ kind: "Operation", -+ name, -+ node: undefined, -+ parameters, -+ returnType, -+ decorators: [], -+ })); -+ return voidType; -+ }); -+ }, -+ deleteOperation(base) { -+ return createFunctionType((nameT) => { -+ assertType("operation name", nameT, "String"); -+ const name = nameT.value; -+ const prop = base.operations.get(name); -+ if (!prop) { -+ return voidType; -+ } -+ base.operations.delete(name); -+ return voidType; -+ }); -+ }, -+ }, -+ Enum: { -+ ...createBaseMembers(), -+ ...createNameableMembers(), -+ members(base) { -+ return createType({ -+ kind: "Object", -+ properties: { -+ forEach: createFunctionType((block) => { -+ assertType("parameter", block, "Function"); -+ const props = Array.from(base.members.values()); -+ props.forEach((p) => block.implementation(p)); -+ return voidType; -+ }), -+ }, -+ }); -+ }, -+ name(base) { -+ return createLiteralType(base.name); -+ }, -+ addMember(base) { -+ return createFunctionType((nameT, type) => { -+ assertType("enum member", nameT, "String"); -+ type && assertType("enum type", type, "String", "Number"); -+ const name = nameT.value; -+ const member = base.members.get(name); -+ if (member) { -+ throw new ProjectionError(`Enum already has a member named ${name}`); -+ } -+ if (type !== undefined && type.kind !== "Number" && type.kind !== "String") { -+ throw new ProjectionError(`Enum member types must be string or number`); -+ } -+ base.members.set(name, createType({ -+ kind: "EnumMember", -+ enum: base, -+ name, -+ decorators: [], -+ node: undefined, -+ value: type ? type.value : undefined, -+ })); -+ return voidType; -+ }); -+ }, -+ deleteMember(base) { -+ return createFunctionType((nameT) => { -+ assertType("enum member", nameT, "String"); -+ const name = nameT.value; -+ base.members.delete(name); -+ return voidType; -+ }); -+ }, -+ renameMember(base) { -+ return createFunctionType((oldNameT, newNameT) => { -+ assertType("enum member", oldNameT, "String"); -+ assertType("enum member", newNameT, "String"); -+ const oldName = oldNameT.value; -+ const newName = newNameT.value; -+ const member = base.members.get(oldName); -+ if (!member) { -+ throw new ProjectionError(`Enum doesn't have member ${oldName}`); -+ } -+ member.name = newName; -+ base.members.rekey(oldName, newName); -+ return voidType; -+ }); -+ }, -+ }, -+ EnumMember: { -+ ...createBaseMembers(), -+ name(base) { -+ return createLiteralType(base.name); -+ }, -+ type(base) { -+ return base.value ? createLiteralType(base.value) : neverType; -+ }, -+ }, -+ String: { -+ toCamelCase(base) { -+ return createFunctionType(() => { -+ return createLiteralType(camelCase(base.value)); -+ }); -+ }, -+ toPascalCase(base) { -+ return createFunctionType(() => { -+ return createLiteralType(pascalCase(base.value)); -+ }); -+ }, -+ toSnakeCase(base) { -+ return createFunctionType(() => { -+ return createLiteralType(snakeCase(base.value)); -+ }); -+ }, -+ toKebabCase(base) { -+ return createFunctionType(() => { -+ return createLiteralType(kebabCase(base.value)); -+ }); -+ }, -+ }, -+ }; -+} -+//# sourceMappingURL=projection-members.js.map -\ No newline at end of file -diff --git a/dist/src/core/projection-members.js.map b/dist/src/core/projection-members.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..f6f5f09fac2149c0a2a27b11f719a201043e7f52 ---- /dev/null -+++ b/dist/src/core/projection-members.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projection-members.js","sourceRoot":"","sources":["../../../src/core/projection-members.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/core/projector.d.ts b/dist/src/core/projector.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..34a3446a29e2235748583c55cd2d70b157366718 ---- /dev/null -+++ b/dist/src/core/projector.d.ts -@@ -0,0 +1,26 @@ -+import type { Program, ProjectedProgram } from "./program.js"; -+import type { ProjectionApplication, Type } from "./types.js"; -+/** -+ * Creates a projector which returns a projected view of either the global namespace or the -+ * start node provided. Projecting a type effectively clones every type referenced underneath -+ * it. This is accomplished by doing a semantic walk of each type, cloning each type we find, -+ * and running projection code on the clone. -+ * -+ * Projectors can run multiple projections at once. In such cases, each projection is run -+ * on the same clone of the unprojected type. It is up to projections and the user to ensure -+ * that projections which depend on a particular shape are run when that shape is present (or -+ * else to ensure that their projections are tolerant to shape changes). -+ * -+ * The projector maintains its own state maps and sets. If a projection is active (i.e. -+ * program.currentProjector is set), then the projector's state will be returned instead -+ * of the program's state. This ensures that there is no overlap between projected and -+ * unprojected state. It also means that you cannot get state for nodes that are not -+ * part of the active projection. -+ * -+ * Note that decorators are run on namespaces prior to cloning any child types to align -+ * with the checker semantics, while projections are run after everything under the namespace -+ * is cloned. All other run decorators and projections after all child types are cloned and -+ * have their decorators run. -+ */ -+export declare function createProjector(program: Program, projections: ProjectionApplication[], startNode?: Type): ProjectedProgram; -+//# sourceMappingURL=projector.d.ts.map -\ No newline at end of file -diff --git a/dist/src/core/projector.d.ts.map b/dist/src/core/projector.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..348dc1bfdda1459d09b75bf570a5db948e4e67d1 ---- /dev/null -+++ b/dist/src/core/projector.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projector.d.ts","sourceRoot":"","sources":["../../../src/core/projector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI9D,OAAO,KAAK,EAWV,qBAAqB,EAIrB,IAAI,EAKL,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,qBAAqB,EAAE,EACpC,SAAS,CAAC,EAAE,IAAI,GACf,gBAAgB,CAqpBlB"} -\ No newline at end of file -diff --git a/dist/src/core/projector.js b/dist/src/core/projector.js -new file mode 100644 -index 0000000000000000000000000000000000000000..d022951c3895ac2e91686840d821cc01cd72e761 ---- /dev/null -+++ b/dist/src/core/projector.js -@@ -0,0 +1,581 @@ -+import { createRekeyableMap, mutate } from "../utils/misc.js"; -+import { finishTypeForProgram } from "./checker.js"; -+import { compilerAssert } from "./diagnostics.js"; -+import { isProjectedProgram } from "./projected-program.js"; -+import { createStateAccessors } from "./state-accessors.js"; -+import { getParentTemplateNode, isNeverType, isTemplateInstance, isValue } from "./type-utils.js"; -+/** -+ * Creates a projector which returns a projected view of either the global namespace or the -+ * start node provided. Projecting a type effectively clones every type referenced underneath -+ * it. This is accomplished by doing a semantic walk of each type, cloning each type we find, -+ * and running projection code on the clone. -+ * -+ * Projectors can run multiple projections at once. In such cases, each projection is run -+ * on the same clone of the unprojected type. It is up to projections and the user to ensure -+ * that projections which depend on a particular shape are run when that shape is present (or -+ * else to ensure that their projections are tolerant to shape changes). -+ * -+ * The projector maintains its own state maps and sets. If a projection is active (i.e. -+ * program.currentProjector is set), then the projector's state will be returned instead -+ * of the program's state. This ensures that there is no overlap between projected and -+ * unprojected state. It also means that you cannot get state for nodes that are not -+ * part of the active projection. -+ * -+ * Note that decorators are run on namespaces prior to cloning any child types to align -+ * with the checker semantics, while projections are run after everything under the namespace -+ * is cloned. All other run decorators and projections after all child types are cloned and -+ * have their decorators run. -+ */ -+export function createProjector(program, projections, startNode) { -+ const projectedTypes = new Map(); -+ const checker = program.checker; -+ const neverType = checker.neverType; -+ const scope = []; -+ const projector = { -+ projectedTypes, -+ projections, -+ projectType, -+ parentProjector: isProjectedProgram(program) ? program.projector : undefined, -+ }; -+ const projectedNamespaces = []; -+ let projectingNamespaces = false; -+ const projectedProgram = { -+ ...program, -+ getGlobalNamespaceType: () => projector.projectedGlobalNamespace, -+ projector, -+ ...createStateAccessors(program.stateMaps, program.stateSets, projector), -+ }; -+ const targetGlobalNs = startNode -+ ? startNode.projector -+ ? startNode.projector.projectedGlobalNamespace -+ : program.checker.getGlobalNamespaceType() -+ : program.checker.getGlobalNamespaceType(); -+ projectingNamespaces = true; -+ // Project the global namespace to get a reference. -+ projector.projectedGlobalNamespace = projectNamespace(targetGlobalNs, false); -+ // Then project the content -+ projectSubNamespaces(targetGlobalNs, projector.projectedGlobalNamespace); -+ projectingNamespaces = false; -+ // then project all the types -+ for (const ns of projectedNamespaces) { -+ projectNamespaceContents(ns); -+ } -+ projectType(targetGlobalNs); -+ projector.projectedStartNode = startNode -+ ? projectedTypes.get(startNode) -+ : projector.projectedGlobalNamespace; -+ return projectedProgram; -+ function projectType(type) { -+ if (isValue(type)) { -+ if (type.valueKind === "EnumValue") { -+ // This is a hack. We project the enum itself, so we need to project enum values in order to prevent incoherence -+ // between projections that reference enum values and the enum/members themselves. If we project the enummember -+ // in the value and it results in something other than an enum member, we will give up and just return the value -+ // as is. Otherwise we'll return the projected member. -+ const projectedType = projectType(type.type); -+ const projectedMember = projectType(type.value); -+ if (projectedMember.kind === "EnumMember") { -+ return { -+ entityKind: "Value", -+ valueKind: "EnumValue", -+ type: projectedType, -+ value: projectedMember, -+ }; -+ } -+ else { -+ return type; -+ } -+ } -+ else { -+ return type; -+ } -+ } -+ if (type.entityKind === "Indeterminate") { -+ return { entityKind: "Indeterminate", type: projectType(type.type) }; -+ } -+ if (projectedTypes.has(type)) { -+ return projectedTypes.get(type); -+ } -+ scope.push(type); -+ const preProjected = applyPreProjection(type); -+ if (preProjected !== type) { -+ projectedTypes.set(type, preProjected); -+ scope.pop(); -+ return preProjected; -+ } -+ let projected; -+ switch (type.kind) { -+ case "Namespace": -+ compilerAssert(projectingNamespaces, `Namespace ${type.name} should have already been projected.`); -+ projected = projectNamespace(type, false); -+ break; -+ case "Scalar": -+ projected = projectScalar(type); -+ break; -+ case "Model": -+ projected = projectModel(type); -+ break; -+ case "ModelProperty": -+ projected = projectModelProperty(type); -+ break; -+ case "Operation": -+ projected = projectOperation(type); -+ break; -+ case "Interface": -+ projected = projectInterface(type); -+ break; -+ case "Union": -+ projected = projectUnion(type); -+ break; -+ case "UnionVariant": -+ projected = projectUnionVariant(type); -+ break; -+ case "Tuple": -+ projected = projectTuple(type); -+ break; -+ case "Enum": -+ projected = projectEnum(type); -+ break; -+ case "EnumMember": -+ projected = projectEnumMember(type); -+ break; -+ default: -+ projected = type; -+ } -+ scope.pop(); -+ return projected; -+ } -+ function projectSubNamespaces(ns, projectedNs) { -+ if (ns.namespaces.size === projectedNs.namespaces.size) { -+ // Sub namespace should already have been projected. -+ return; -+ } -+ for (const [key, childNs] of ns.namespaces) { -+ const projected = projectNamespace(childNs); -+ if (projected.kind === "Namespace") { -+ // todo: check for never? -+ projectedNs.namespaces.set(key, projected); -+ } -+ } -+ } -+ function projectNamespace(ns, projectSubNamespace = true) { -+ const alreadyProjected = projectedTypes.get(ns); -+ if (alreadyProjected) { -+ if (projectSubNamespace) { -+ projectSubNamespaces(ns, alreadyProjected); -+ } -+ return alreadyProjected; -+ } -+ const projectedNs = shallowClone(ns, { -+ namespaces: new Map(), -+ scalars: new Map(), -+ models: new Map(), -+ operations: new Map(), -+ interfaces: new Map(), -+ unions: new Map(), -+ enums: new Map(), -+ decorators: [], -+ }); -+ projectedNs.decorators = projectDecorators(ns.decorators); -+ if (ns.namespace) { -+ projectedNs.namespace = projectNamespace(ns.namespace, false); -+ } -+ // ns run decorators before projecting anything inside them -+ finishTypeForProgram(projectedProgram, projectedNs); -+ if (projectSubNamespace) { -+ projectSubNamespaces(ns, projectedNs); -+ } -+ projectedNamespaces.push(ns); -+ return applyProjection(ns, projectedNs); -+ } -+ /** -+ * Projects the contents of a namespace, but not the namespace itself. The namespace itself -+ * is projected in an earlier phase. -+ */ -+ function projectNamespaceContents(ns) { -+ const projectedNs = projectedTypes.get(ns); -+ compilerAssert(projectedNs, "Should have projected namespace by now"); -+ if (projectedNs.kind !== "Namespace") { -+ // we projected the namespace to something else so don't do any more work. -+ // this might happen if a namespace itself was added/removed/etc. and is -+ // projected to never. -+ return neverType; -+ } -+ for (const childModel of ns.models.values()) { -+ const projected = projectType(childModel); -+ if (projected.kind === "Model") { -+ projectedNs.models.set(projected.name, projected); -+ } -+ } -+ for (const scalar of ns.scalars.values()) { -+ const projected = projectType(scalar); -+ if (projected.kind === "Scalar") { -+ projectedNs.scalars.set(projected.name, projected); -+ } -+ } -+ for (const childOperation of ns.operations.values()) { -+ const projected = projectType(childOperation); -+ if (projected.kind === "Operation") { -+ projectedNs.operations.set(projected.name, projected); -+ } -+ } -+ for (const childInterface of ns.interfaces.values()) { -+ const projected = projectType(childInterface); -+ if (projected.kind === "Interface") { -+ projectedNs.interfaces.set(projected.name, projected); -+ } -+ } -+ for (const childUnion of ns.unions.values()) { -+ const projected = projectType(childUnion); -+ if (projected.kind === "Union") { -+ projectedNs.unions.set(projected.name, projected); -+ } -+ } -+ for (const childEnum of ns.enums.values()) { -+ const projected = projectType(childEnum); -+ if (projected.kind === "Enum") { -+ projectedNs.enums.set(projected.name, projected); -+ } -+ } -+ return projectedNs; -+ } -+ function projectModel(model) { -+ const properties = createRekeyableMap(); -+ const projectedModel = shallowClone(model, { -+ properties, -+ derivedModels: [], -+ }); -+ if (model.templateMapper) { -+ projectedModel.templateMapper = projectTemplateMapper(model.templateMapper); -+ // eslint-disable-next-line @typescript-eslint/no-deprecated -+ projectedModel.templateArguments = mutate(projectedModel.templateMapper.args); -+ } -+ if (model.baseModel) { -+ projectedModel.baseModel = projectType(model.baseModel); -+ } -+ if (model.sourceModel) { -+ projectedModel.sourceModel = projectType(model.sourceModel); -+ } -+ projectedModel.sourceModels = model.sourceModels.map((source) => { -+ return { ...source, model: projectType(source.model) }; -+ }); -+ if (model.indexer) { -+ const projectedValue = projectType(model.indexer.value); -+ projectedModel.indexer = { -+ key: projectType(model.indexer.key), -+ value: projectedValue, -+ }; -+ } -+ projectedTypes.set(model, projectedModel); -+ for (const prop of model.properties.values()) { -+ const projectedProp = projectType(prop); -+ if (projectedProp.kind === "ModelProperty") { -+ properties.set(projectedProp.name, projectedProp); -+ } -+ } -+ projectedModel.decorators = projectDecorators(model.decorators); -+ if (shouldFinishType(model)) { -+ finishTypeForProgram(projectedProgram, projectedModel); -+ } -+ const projectedResult = applyProjection(model, projectedModel); -+ if (!isNeverType(projectedResult) && -+ projectedResult.kind === "Model" && -+ projectedResult.baseModel) { -+ projectedResult.baseModel.derivedModels ??= []; -+ projectedResult.baseModel.derivedModels.push(projectedModel); -+ } -+ return projectedResult; -+ } -+ function projectTemplateMapper(mapper) { -+ const projectedMapper = { -+ ...mapper, -+ args: [], -+ map: new Map(), -+ }; -+ for (const arg of mapper.args) { -+ mutate(projectedMapper.args).push(projectType(arg)); -+ } -+ for (const [param, type] of mapper.map) { -+ projectedMapper.map.set(param, projectType(type)); -+ } -+ return projectedMapper; -+ } -+ function projectScalar(scalar) { -+ const projectedScalar = shallowClone(scalar, { -+ derivedScalars: [], -+ }); -+ if (scalar.templateMapper) { -+ projectedScalar.templateMapper = projectTemplateMapper(scalar.templateMapper); -+ // eslint-disable-next-line @typescript-eslint/no-deprecated -+ projectedScalar.templateArguments = mutate(projectedScalar.templateMapper.args); -+ } -+ if (scalar.baseScalar) { -+ projectedScalar.baseScalar = projectType(scalar.baseScalar); -+ } -+ projectedTypes.set(scalar, projectedScalar); -+ projectedScalar.decorators = projectDecorators(scalar.decorators); -+ if (shouldFinishType(scalar)) { -+ finishTypeForProgram(projectedProgram, projectedScalar); -+ } -+ const projectedResult = applyProjection(scalar, projectedScalar); -+ if (!isNeverType(projectedResult) && -+ projectedResult.kind === "Scalar" && -+ projectedResult.baseScalar) { -+ projectedResult.baseScalar.derivedScalars ??= []; -+ projectedResult.baseScalar.derivedScalars.push(projectedScalar); -+ } -+ return projectedResult; -+ } -+ /** -+ * Returns true if we should finish a type. The only time we don't finish is when it's -+ * a template type, because we don't want to run decorators for templates. -+ */ -+ function shouldFinishType(type) { -+ const parentTemplate = type.node && getParentTemplateNode(type.node); -+ return !parentTemplate || isTemplateInstance(type); -+ } -+ function projectModelProperty(prop) { -+ const projectedType = projectType(prop.type); -+ const projectedDecs = projectDecorators(prop.decorators); -+ const projectedProp = shallowClone(prop, { -+ type: projectedType, -+ decorators: projectedDecs, -+ }); -+ if (prop.sourceProperty) { -+ const sourceProperty = projectType(prop.sourceProperty); -+ projectedProp.sourceProperty = sourceProperty; -+ } -+ if (shouldFinishType(prop)) { -+ finishTypeForProgram(projectedProgram, projectedProp); -+ } -+ if (prop.model) { -+ projectedProp.model = projectType(prop.model); -+ } -+ return applyProjection(prop, projectedProp); -+ } -+ function projectOperation(op) { -+ const projectedOp = shallowClone(op, {}); -+ projectedOp.parameters = projectType(op.parameters); -+ projectedOp.returnType = projectType(op.returnType); -+ projectedOp.decorators = projectDecorators(op.decorators); -+ if (op.templateMapper) { -+ projectedOp.templateMapper = projectTemplateMapper(op.templateMapper); -+ // eslint-disable-next-line @typescript-eslint/no-deprecated -+ projectedOp.templateArguments = mutate(projectedOp.templateMapper.args); -+ } -+ if (op.sourceOperation) { -+ projectedOp.sourceOperation = projectType(op.sourceOperation); -+ } -+ if (op.namespace) { -+ projectedOp.namespace = projectedNamespaceScope(); -+ } -+ if (op.isFinished) { -+ finishTypeForProgram(projectedProgram, projectedOp); -+ } -+ if (op.interface) { -+ projectedOp.interface = projectType(op.interface); -+ } -+ return applyProjection(op, projectedOp); -+ } -+ function projectInterface(iface) { -+ const operations = createRekeyableMap(); -+ const sourceInterfaces = []; -+ const projectedIface = shallowClone(iface, { -+ operations, -+ sourceInterfaces, -+ }); -+ projectedIface.decorators = projectDecorators(iface.decorators); -+ if (iface.templateMapper) { -+ projectedIface.templateMapper = projectTemplateMapper(iface.templateMapper); -+ // eslint-disable-next-line @typescript-eslint/no-deprecated -+ projectedIface.templateArguments = mutate(projectedIface.templateMapper.args); -+ } -+ for (const op of iface.operations.values()) { -+ const projectedOp = projectType(op); -+ if (projectedOp.kind === "Operation") { -+ operations.set(projectedOp.name, projectedOp); -+ } -+ } -+ for (const source of iface.sourceInterfaces) { -+ sourceInterfaces.push(projectType(source)); -+ } -+ if (shouldFinishType(iface)) { -+ finishTypeForProgram(projectedProgram, projectedIface); -+ } -+ return applyProjection(iface, projectedIface); -+ } -+ function projectUnion(union) { -+ const variants = createRekeyableMap(); -+ const projectedUnion = shallowClone(union, { -+ variants, -+ }); -+ projectedUnion.decorators = projectDecorators(union.decorators); -+ if (union.templateMapper) { -+ projectedUnion.templateMapper = projectTemplateMapper(union.templateMapper); -+ // eslint-disable-next-line @typescript-eslint/no-deprecated -+ projectedUnion.templateArguments = mutate(projectedUnion.templateMapper.args); -+ } -+ for (const variant of union.variants.values()) { -+ const projectedVariant = projectType(variant); -+ if (projectedVariant.kind === "UnionVariant" && projectedVariant.type !== neverType) { -+ variants.set(projectedVariant.name, projectedVariant); -+ } -+ } -+ if (shouldFinishType(union)) { -+ finishTypeForProgram(projectedProgram, projectedUnion); -+ } -+ return applyProjection(union, projectedUnion); -+ } -+ function projectUnionVariant(variant) { -+ const projectedType = projectType(variant.type); -+ const projectedDecs = projectDecorators(variant.decorators); -+ const projectedVariant = shallowClone(variant, { -+ type: projectedType, -+ decorators: projectedDecs, -+ }); -+ finishTypeForProgram(projectedProgram, projectedVariant); -+ projectedVariant.union = projectType(variant.union); -+ return applyProjection(variant, projectedVariant); -+ } -+ function projectTuple(tuple) { -+ const values = []; -+ const projectedTuple = shallowClone(tuple, { -+ values, -+ }); -+ for (const item of tuple.values) { -+ values.push(projectType(item)); -+ } -+ return projectedTuple; -+ } -+ function projectEnum(e) { -+ const members = createRekeyableMap(); -+ const projectedEnum = shallowClone(e, { -+ members, -+ }); -+ projectedEnum.decorators = projectDecorators(e.decorators); -+ projectedTypes.set(e, projectedEnum); -+ for (const member of e.members.values()) { -+ const projectedMember = projectType(member); -+ if (projectedMember.kind === "EnumMember") { -+ members.set(projectedMember.name, projectedMember); -+ } -+ } -+ finishTypeForProgram(projectedProgram, projectedEnum); -+ return applyProjection(e, projectedEnum); -+ } -+ function projectEnumMember(e) { -+ const decorators = projectDecorators(e.decorators); -+ const projectedMember = shallowClone(e, { -+ decorators, -+ }); -+ finishTypeForProgram(projectedProgram, projectedMember); -+ projectedMember.enum = projectType(e.enum); -+ return applyProjection(e, projectedMember); -+ } -+ function projectDecorators(decs) { -+ const decorators = []; -+ for (const dec of decs) { -+ const args = []; -+ for (const arg of dec.args) { -+ const jsValue = typeof arg.jsValue === "object" && arg.jsValue !== null && "entityKind" in arg.jsValue -+ ? projectType(arg.jsValue) -+ : arg.jsValue; -+ args.push({ ...arg, value: projectType(arg.value), jsValue }); -+ } -+ decorators.push({ ...dec, args }); -+ } -+ return decorators; -+ } -+ function getInScopeProjections() { -+ const candidates = new Set(projections); -+ const inScope = []; -+ let currentScope = namespaceScope(); -+ outer: while (currentScope) { -+ for (const candidate of candidates) { -+ if (!candidate.scope || candidate.scope === currentScope) { -+ candidates.delete(candidate); -+ inScope.push(candidate); -+ if (candidates.size === 0) { -+ break outer; -+ } -+ } -+ } -+ currentScope = currentScope.namespace; -+ } -+ return inScope; -+ } -+ function namespaceScope() { -+ for (let i = scope.length - 1; i >= 0; i--) { -+ if (scope[i].namespace !== undefined) { -+ return scope[i].namespace; -+ } -+ } -+ return undefined; -+ } -+ function projectedNamespaceScope() { -+ const ns = namespaceScope(); -+ if (!ns) -+ return ns; -+ return projectType(ns); -+ } -+ function applyProjection(baseType, projectedType) { -+ const inScopeProjections = getInScopeProjections(); -+ for (const projectionApplication of inScopeProjections) { -+ const projectionsByName = baseType.projectionsByName(projectionApplication.projectionName); -+ if (projectionsByName.length === 0) -+ continue; -+ const targetNode = projectionApplication.direction === "from" -+ ? projectionsByName[0].from -+ : projectionsByName[0].to; -+ if (targetNode) { -+ const projected = checker.project(projectedType, targetNode, projectionApplication.arguments); -+ if (projected !== projectedType) { -+ // override the projected type cache with the returned type -+ projectedTypes.set(baseType, projected); -+ return projected; -+ } -+ } -+ } -+ return projectedType; -+ } -+ function applyPreProjection(type) { -+ const inScopeProjections = getInScopeProjections(); -+ for (const projectionApplication of inScopeProjections) { -+ const projectionsByName = type.projectionsByName(projectionApplication.projectionName); -+ if (projectionsByName.length === 0) -+ continue; -+ const targetNode = projectionApplication.direction === "from" -+ ? projectionsByName[0].preFrom -+ : projectionsByName[0].preTo; -+ if (targetNode) { -+ return checker.project(type, targetNode, projectionApplication.arguments); -+ } -+ } -+ return type; -+ } -+ function shallowClone(type, additionalProps) { -+ const scopeProps = {}; -+ if ("namespace" in type && type.namespace !== undefined) { -+ scopeProps.namespace = projectedNamespaceScope(); -+ } -+ const clone = checker.createType({ -+ ...type, -+ ...additionalProps, -+ ...scopeProps, -+ projectionSource: type, -+ projectionBase: type.projectionBase ?? type, -+ projector, -+ }); -+ if (type.kind === "Union") { -+ // create the options getter -+ Object.defineProperty(clone, "options", { -+ get() { -+ return Array.from(this.variants.values()).map((v) => v.type); -+ }, -+ }); -+ } -+ projectedTypes.set(type, clone); -+ return clone; -+ } -+} -+//# sourceMappingURL=projector.js.map -\ No newline at end of file -diff --git a/dist/src/core/projector.js.map b/dist/src/core/projector.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..49754bd661a51e606d5f43deaabe5d003ab7f257 ---- /dev/null -+++ b/dist/src/core/projector.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"projector.js","sourceRoot":"","sources":["../../../src/core/projector.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/core/scanner.d.ts.map b/dist/src/core/scanner.d.ts.map -index 498a6166087bc12df7f21316c0a21d54dffd00b1..2ab525fc5b60ab2c63a2e53e70fd3009c6a57823 100644 ---- a/dist/src/core/scanner.d.ts.map -+++ b/dist/src/core/scanner.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/core/scanner.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/core/scanner.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/core/scanner.js.map b/dist/src/core/scanner.js.map -index fd2c3d8c0b81537f78ad563a5825ddd561f83b16..dbcfb08beaeb7a8f373ad778a60a4d19ab165026 100644 ---- a/dist/src/core/scanner.js.map -+++ b/dist/src/core/scanner.js.map -@@ -1 +1 @@ --{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/core/scanner.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/core/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,YAAY,EACZ,sBAAsB,EACtB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,8BAA8B,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,EAAqB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAuB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,qFAAqF;AACrF,mEAAmE;AACnE,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,MAAM,CAAN,IAAY,KAoLX;AApLD,WAAY,KAAK;IACf,iCAAI,CAAA;IACJ,uCAAO,CAAA;IACP,2CAAS,CAAA;IACT,6CAAU,CAAA;IACV,qDAAc,CAAA;IACd,mDAAa,CAAA;IACb,6DAAkB,CAAA;IAClB,iEAAoB,CAAA;IACpB,6DAAkB,CAAA;IAClB,qEAAqE;IAErE,+DAA+D;IAC/D,SAAS;IACT,gBAAgB,CAAC,mDAAa,CAAA;IAE9B,2DAAiC,CAAA;IACjC,0DAAgB,CAAA;IAChB,wCAAO,CAAA;IACP,8CAAU,CAAA;IACV,sDAAc,CAAA;IACd,uBAAuB;IAEvB,gBAAgB,CAAC,gDAAW,CAAA;IAC5B,+DAA+D;IAE/D,+DAA+D;IAC/D,sBAAsB;IACtB,gBAAgB,CAAC,4DAA+B,CAAA;IAChD,wCAA2B,CAAA;IAC3B,gDAAW,CAAA;IACX,oEAAqB,CAAA;IACrB,gBAAgB,CAAC,wDAAe,CAAA;IAChC,+DAA+D;IAE/D,+DAA+D;IAC/D,cAAc;IACd,gBAAgB,CAAC,8DAAoC,CAAA;IAErD,4CAA8B,CAAA;IAC9B,8CAAU,CAAA;IACV,4CAAS,CAAA;IACT,8CAAU,CAAA;IACV,gDAAW,CAAA;IACX,kDAAY,CAAA;IACZ,gCAAG,CAAA;IACH,0CAAQ,CAAA;IACR,4CAAS,CAAA;IACT,oCAAK,CAAA;IACL,0CAAQ,CAAA;IACR,gDAAW,CAAA;IACX,sCAAM,CAAA;IACN,4CAAS,CAAA;IACT,gCAAG,CAAA;IACH,0CAAQ,CAAA;IACR,oCAAK,CAAA;IACL,8CAAU,CAAA;IACV,8BAAE,CAAA;IACF,kCAAI,CAAA;IACJ,kCAAI,CAAA;IACJ,4CAAS,CAAA;IACT,gDAAW,CAAA;IACX,kCAAI,CAAA;IACJ,kDAAY,CAAA;IACZ,kCAAI,CAAA;IACJ,sCAAM,CAAA;IACN,gDAAW,CAAA;IACX,sDAAc,CAAA;IACd,4DAAiB,CAAA;IACjB,gEAAmB,CAAA;IACnB,sCAAM,CAAA;IACN,kDAAY,CAAA;IACZ,4DAAiB,CAAA;IACjB,4DAAiB,CAAA;IACjB,4BAA4B;IAE5B,gBAAgB,CAAC,0DAAgB,CAAA;IACjC,+DAA+D;IAE/D,+DAA+D;IAC/D,qBAAqB;IACrB,gBAAgB,CAAC,sDAAiC,CAAA;IAClD,gBAAgB,CAAC,wEAAwC,CAAA;IAEzD,oDAAuC,CAAA;IACvC,kDAAY,CAAA;IACZ,oDAAa,CAAA;IACb,0DAAgB,CAAA;IAChB,kDAAY,CAAA;IACZ,4CAAS,CAAA;IACT,gDAAW,CAAA;IACX,kDAAY,CAAA;IACZ,4CAAS,CAAA;IACT,0DAAgB,CAAA;IAChB,kDAAY,CAAA;IACZ,4DAAiB,CAAA;IACjB,gDAAW,CAAA;IACX,4CAAS,CAAA;IACT,8CAAU,CAAA;IACV,kDAAY,CAAA;IACZ,gDAAW,CAAA;IACX,kCAAkC;IAElC,gBAAgB,CAAC,oEAAqB,CAAA;IACtC,+DAA+D;IAE/D,+DAA+D;IAE/D,gBAAgB,CAAC,sEAA8C,CAAA;IAE/D,oDAAsC,CAAA;IACtC,wDAAe,CAAA;IACf,gDAAW,CAAA;IAEX,gBAAgB,CAAC,kEAAoB,CAAA;IACrC,+DAA+D;IAE/D,+DAA+D;IAC/D,iBAAiB;IAEjB,sDAAqC,CAAA;IACrC,4CAAS,CAAA;IACT,gDAAW,CAAA;IACX,kDAAY,CAAA;IACZ,oDAAa,CAAA;IACb,gDAAW,CAAA;IACX,kDAAY,CAAA;IACZ,sDAAc,CAAA;IACd,sDAAc,CAAA;IACd,oDAAa,CAAA;IACb,sCAAsC;IAEtC,gBAAgB,CAAC,kDAAY,CAAA;IAC7B,+DAA+D;IAE/D,gBAAgB,CAAC,sEAAqC,CAAA;IACtD,+DAA+D;IAC/D,6FAA6F;IAC7F,gEAA4C,CAAA;IAC5C,kDAAY,CAAA;IACZ,sDAAc,CAAA;IACd,wDAAe,CAAA;IACf,8CAAU,CAAA;IACV,8CAAU,CAAA;IACV,sDAAc,CAAA;IACd,kDAAY,CAAA;IACZ,oDAAa,CAAA;IACb,oDAAa,CAAA;IACb,oDAAa,CAAA;IACb,8CAAU,CAAA;IACV,8CAAU,CAAA;IACV,sDAAc,CAAA;IACd,gDAAW,CAAA;IACX,wDAAe,CAAA;IACf,wDAAe,CAAA;IACf,8CAAU,CAAA;IACV,+CAAU,CAAA;IACV,uDAAc,CAAA;IACd,mDAAY,CAAA;IACZ,iDAAW,CAAA;IACX,iDAAW,CAAA;IACX,mDAAY,CAAA;IACZ,mDAAY,CAAA;IACZ,iDAAW,CAAA;IACX,6DAAiB,CAAA;IACjB,iDAAW,CAAA;IACX,2DAAgB,CAAA;IAChB,iDAAW,CAAA;IACX,uDAAc,CAAA;IACd,uDAAc,CAAA;IACd,qDAAa,CAAA;IACb,2DAAgB,CAAA;IAChB,qDAAa,CAAA;IACb,mDAAY,CAAA;IACZ,mDAAY,CAAA;IAEZ,gBAAgB,CAAC,mEAAoB,CAAA;IACrC,+DAA+D;IAE/D,gBAAgB,CAAC,yCAA8B,CAAA;AACjD,CAAC,EApLW,KAAK,KAAL,KAAK,QAoLhB;AAmBD,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;IAC/C,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IACpB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;IAC1B,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC;IAChC,CAAC,KAAK,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;IAChD,CAAC,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAC9C,CAAC,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACzC,CAAC,KAAK,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACzC,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACvC,CAAC,KAAK,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAClD,CAAC,KAAK,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;IACtD,CAAC,KAAK,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IAClD,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;IAC1B,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;IAChC,CAAC,KAAK,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IACzD,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC;IACpC,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;IAC3B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;IACxB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;IACzB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;IACxB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;IACzB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;IAC1B,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;IAC3B,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAClB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;IACxB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;IACpB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IACvB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;IAC1B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IACrB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;IACxB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAClB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;IACvB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;IACpB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;IAC1B,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;IACjB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;IACpB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACnB,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;IAC3B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACnB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;IAC3B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACnB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IACrB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;IAC1B,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;IAC9B,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACjC,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACnC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;IAC5B,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACjC,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACjC,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;IAChC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACvC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACvC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACzC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;IACzB,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAE7B,oBAAoB;IACpB,CAAC,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC7C,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC;IACrC,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC;IACrC,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC;IACrC,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;IAC3B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC;IACzC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACvC,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC7B,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC;IACnC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC;IACvC,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC;IACrC,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;IACjC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;IAC/B,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;CAChC,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,CAAC,MAAM,QAAQ,GAA+B,IAAI,GAAG,CAAC;IAC1D,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACvC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IAEnC,oBAAoB;IACpB,CAAC,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAC3C,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACvC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;CAC9B,CAAC,CAAC;AACH,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAA+B,IAAI,GAAG,CAAC;IAClE,oBAAoB;IACpB,CAAC,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;IAC3C,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC;IACnC,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACvC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IACrC,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC/B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;CAC9B,CAAC,CAAC;AA0EH,MAAM,CAAN,IAAY,UAQX;AARD,WAAY,UAAU;IACpB,2CAAQ,CAAA;IACR,iDAAgB,CAAA;IAChB,2DAAqB,CAAA;IACrB,2DAAqB,CAAA;IACrB,mDAAiB,CAAA;IACjB,wDAAmB,CAAA;IACnB,wDAAmB,CAAA;AACrB,CAAC,EARW,UAAU,KAAV,UAAU,QAQrB;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,KAAK,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,KAAK,KAAK,CAAC,iBAAiB,IAAI,KAAK,KAAK,KAAK,CAAC,gBAAgB,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;AACrE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,KAAK,IAAI,KAAK,CAAC,sBAAsB,IAAI,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAY;IACxC,OAAO,KAAK,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,OAAO,KAAK,IAAI,KAAK,CAAC,sBAAsB,IAAI,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAY;IAC7C,OAAO,KAAK,IAAI,KAAK,CAAC,uBAAuB,IAAI,KAAK,GAAG,KAAK,CAAC,qBAAqB,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAA2B,EAC3B,iBAAoC;IAEpC,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;IACjC,WAAW;IACX,IAAI,QAAQ,GAAG,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,uCAA2B,EAAE,CAAC;QACpF,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO;QACL,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,KAAK;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,aAAa;YACf,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,OAAO;QACP,oBAAoB;QACpB,4BAA4B;QAC5B,qCAAqC;QACrC,GAAG;QACH,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,SAAS,GAAG;QACV,OAAO,QAAQ,IAAI,WAAW,CAAC;IACjC,CAAC;IAED,SAAS,YAAY;QACnB,OAAO,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,aAAa;QACpB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,KAAK,CAAC,aAAa,CAAC;YACzB,KAAK,KAAK,CAAC,kBAAkB,CAAC;YAC9B,KAAK,KAAK,CAAC,oBAAoB,CAAC;YAChC,KAAK,KAAK,CAAC,kBAAkB;gBAC3B,OAAO,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChD,KAAK,KAAK,CAAC,UAAU;gBACnB,OAAO,uBAAuB,EAAE,CAAC;YACnC,KAAK,KAAK,CAAC,OAAO;gBAChB,OAAO,eAAe,EAAE,CAAC;YAC3B;gBACE,OAAO,YAAY,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS,SAAS,CAAC,MAAc;QAC/B,MAAM,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,IAAI;QACX,aAAa,GAAG,QAAQ,CAAC;QACzB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC;gBACX;oBACE,IAAI,SAAS,CAAC,CAAC,CAAC,+BAAsB,EAAE,CAAC;wBACvC,QAAQ,EAAE,CAAC;oBACb,CAAC;gBACH,cAAc;gBACd;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE7B,6BAAoB;gBACpB,0BAAkB;gBAClB,mCAA0B;gBAC1B;oBACE,OAAO,cAAc,EAAE,CAAC;gBAE1B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAE/B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAEhC;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE3B;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,4BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEzF;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAE/B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAEjC;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAElC;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAE/B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAEhC;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAE7E;oBACE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC3B,QAAQ,KAAK,EAAE,CAAC;wBACd;4BACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAClC;4BACE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;wBACpC;4BACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;gBAEH;oBACE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEvE;oBACE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEzE;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE9B;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,gCAAuB;wBACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;wBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAE5B;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,0BAAiB,IAAI,SAAS,CAAC,CAAC,CAAC,0BAAiB;wBACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEtB;oBACE,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrB;4BACE,OAAO,qBAAqB,EAAE,CAAC;wBACjC;4BACE,OAAO,oBAAoB,EAAE,CAAC;oBAClC,CAAC;oBAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAElC;oBACE,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrB;4BACE,OAAO,aAAa,EAAE,CAAC;wBACzB;4BACE,OAAO,gBAAgB,EAAE,CAAC;oBAC9B,CAAC;gBACH,cAAc;gBACd,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB,0BAAiB;gBACjB;oBACE,OAAO,UAAU,EAAE,CAAC;gBAEtB;oBACE,IAAI,gBAAgB,EAAE;wBAAE,OAAO,kBAAkB,EAAE,CAAC;oBACpD,OAAO,SAAS,CAAC,CAAC,CAAC,6BAAoB;wBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;wBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE3B;oBACE,IAAI,gBAAgB,EAAE;wBAAE,OAAO,kBAAkB,EAAE,CAAC;oBACpD,OAAO,SAAS,CAAC,CAAC,CAAC,6BAAoB;wBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;wBAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAE9B;oBACE,IAAI,gBAAgB,EAAE;wBAAE,OAAO,kBAAkB,EAAE,CAAC;oBACpD,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrB;4BACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBACrC;4BACE,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;oBAC5C,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAE5B;oBACE,IAAI,gBAAgB,EAAE;wBAAE,OAAO,kBAAkB,EAAE,CAAC;oBACpD,OAAO,SAAS,CAAC,CAAC,CAAC,2BAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEjF;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,kCAAyB,IAAI,SAAS,CAAC,CAAC,CAAC,kCAAyB;wBACnF,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;wBACrC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAElC;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,6BAAoB;wBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;wBAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAE9B;oBACE,OAAO,wBAAwB,EAAE,CAAC;gBAEpC;oBACE,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC/B,OAAO,uBAAuB,EAAE,CAAC;oBACnC,CAAC;oBACD,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC/B,OAAO,cAAc,EAAE,CAAC;oBAC1B,CAAC;oBACD,IAAI,EAAE,+BAAqB,EAAE,CAAC;wBAC5B,OAAO,oBAAoB,EAAE,CAAC;oBAChC,CAAC;oBACD,OAAO,iBAAiB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,OAAO;QACd,aAAa,GAAG,QAAQ,CAAC;QACzB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC;gBACX;oBACE,IAAI,SAAS,CAAC,CAAC,CAAC,+BAAsB,EAAE,CAAC;wBACvC,QAAQ,EAAE,CAAC;oBACb,CAAC;gBACH,cAAc;gBACd;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE7B;oBACE,IAAI,SAAS,CAAC,CAAC,CAAC,yBAAgB,EAAE,CAAC;wBACjC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;wBACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAChC,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE7B,6BAAoB;gBACpB,0BAAkB;gBAClB,mCAA0B;gBAC1B;oBACE,OAAO,cAAc,EAAE,CAAC;gBAE1B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAEhC;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAExB;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1B;oBACE,OAAO,SAAS,CAAC,CAAC,CAAC,+BAAsB,IAAI,SAAS,CAAC,CAAC,CAAC,+BAAsB;wBAC7E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;wBACtC,CAAC,CAAC,eAAe,EAAE,CAAC;gBAExB,gCAAuB;gBACvB,mCAA0B;gBAC1B,8BAAqB;gBACrB;oBACE,IAAI,gBAAgB,EAAE;wBAAE,OAAO,kBAAkB,EAAE,CAAC;oBACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE7B;oBACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,OAAO,cAAc,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,EAAE,+BAAqB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC;YACxC,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,oBAAoB,CAAC,cAA0B;QACtD,QAAQ,GAAG,aAAa,CAAC;QACzB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,OAAO,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,SAAS,CAAI,KAAgB,EAAE,QAAiB;QACvD,MAAM,aAAa,GAAG,QAAQ,CAAC;QAC/B,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACzC,MAAM,eAAe,GAAG,UAAU,CAAC;QAEnC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;QACxB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACnB,aAAa,GAAG,CAAC,CAAC,CAAC;QACnB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;QAE1B,QAAQ,GAAG,aAAa,CAAC;QACzB,WAAW,GAAG,gBAAgB,CAAC;QAC/B,KAAK,GAAG,UAAU,CAAC;QACnB,aAAa,GAAG,kBAAkB,CAAC;QACnC,UAAU,GAAG,eAAe,CAAC;QAE7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,IAAI,CAAkB,CAAI,EAAE,KAAK,GAAG,CAAC;QAC5C,QAAQ,IAAI,KAAK,CAAC;QAClB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAM,CAAC;IAC1B,CAAC;IAED,SAAS,YAAY,CAAkB,CAAI;QACzC,UAAU,IAAI,UAAU,CAAC,YAAY,CAAC;QACtC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAM,CAAC;IAC1B,CAAC;IAED,SAAS,iBAAiB;QACxB,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC;QAClC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,8BAA8B,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,cAAc,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC;QACxC,IAAI,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,SAAS,oBAAoB;QAC3B,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,WAAW,CAAkB,CAAI;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,KAAK,CAIZ,MAAmE,EACnE,GAAY,EACZ,GAAY;QAEZ,MAAM,UAAU,GAAG,gBAAgB,CAAC;YAClC,GAAG,MAAM;YACT,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,EAAE;SAC3D,CAAC,CAAC;QACV,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,cAAc;QACrB,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;QAEvE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,gBAAgB;QACvB,QAAQ,EAAE,CAAC,CAAC,gBAAgB;QAC5B,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,UAAU;QACjB,eAAe,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,0BAAiB,EAAE,CAAC;YAC1D,QAAQ,EAAE,CAAC;YACX,kBAAkB,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAe,EAAE,CAAC;YACxD,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,EAAE,2BAAkB,IAAI,EAAE,4BAAmB,EAAE,CAAC;gBAClD,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,kBAAkB,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,eAAe;QACtB,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;IAC1D,CAAC;IAED,SAAS,kBAAkB;QACzB,IAAI,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,SAAS,aAAa;QACpB,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe;QAE9B,IAAI,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;QAE3D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,gBAAgB;QACvB,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe;QAE9B,IAAI,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QACD,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;QAE9D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,qBAAqB;QAC5B,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,oBAAoB;QAC3B,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC/B,IAAI,SAAS,CAAC,CAAC,CAAC,+BAAsB,EAAE,CAAC;YACvC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxE,QAAQ,GAAG,WAAW,CAAC;QACvB,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,eAAe;QACtB,QAAQ,EAAE,CAAC,CAAC,cAAc;QAE1B,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC;gBACX;oBACE,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrC,sCAA6B;gBAC7B;oBACE,MAAM,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,UAAU,CAAC,UAAsB;QACxC,IAAI,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YACzC,QAAQ,IAAI,CAAC,CAAC,CAAC,gBAAgB;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,CAAC,cAAc;QAC5B,CAAC;QAED,OAAO,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1F,CAAC;IAED,SAAS,sBAAsB,CAC7B,UAAsB;QAEtB,QAAQ,EAAE,CAAC,CAAC,cAAc;QAE1B,OAAO,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjG,CAAC;IAED,SAAS,qBAAqB,CAC5B,mBAA+B,EAC/B,QAAW,EACX,IAAO;QAEP,MAAM,SAAS,GAAG,mBAAmB,GAAG,UAAU,CAAC,YAAY,CAAC;QAChE,UAAU,GAAG,mBAAmB,CAAC;QACjC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC;gBACX;oBACE,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;oBACjC,QAAQ,EAAE,CAAC;oBACX,IAAI,GAAG,EAAE,EAAE,CAAC;wBACV,MAAM,IAAI,CAAC;oBACb,CAAC;oBACD,SAAS;gBACX;oBACE,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,SAAS,CAAC,CAAC,CAAC,kCAAyB,IAAI,SAAS,CAAC,CAAC,CAAC,kCAAyB,EAAE,CAAC;4BACnF,QAAQ,IAAI,CAAC,CAAC;4BACd,KAAK,GAAG,IAAI,CAAC;4BACb,OAAO,IAAI,CAAC;wBACd,CAAC;6BAAM,CAAC;4BACN,SAAS;wBACX,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,QAAQ,EAAE,CAAC;wBACX,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH;oBACE,IAAI,SAAS,CAAC,CAAC,CAAC,iCAAuB,EAAE,CAAC;wBACxC,QAAQ,IAAI,CAAC,CAAC;wBACd,KAAK,GAAG,QAAQ,CAAC;wBACjB,OAAO,QAAQ,CAAC;oBAClB,CAAC;oBACD,SAAS;gBACX,sCAA6B;gBAC7B;oBACE,IAAI,SAAS,EAAE,CAAC;wBACd,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,CAAC;oBACb,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,2BAA2B,CAClC,KAAgD,EAChD,UAAsB;QAEtB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,KAAK,CAAC,aAAa,CAAC;YACzB,KAAK,KAAK,CAAC,kBAAkB;gBAC3B,OAAO,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAClE;gBACE,OAAO,CAAC,CAAC,CAAC,IAAI;QAClB,CAAC;IACH,CAAC;IAED,SAAS,yBAAyB,CAChC,KAAgD,EAChD,UAAsB;QAEtB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,KAAK,CAAC,aAAa,CAAC;YACzB,KAAK,KAAK,CAAC,kBAAkB;gBAC3B,OAAO,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAClE;gBACE,OAAO,CAAC,CAAC,CAAC,KAAK;QACnB,CAAC;IACH,CAAC;IAED,SAAS,mBAAmB,CAC1B,KAAgD,EAChD,UAAsB;QAEtB,IAAI,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,aAAa,CAAC;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC;YACrB,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACpF,OAAO,qCAAqC,CAC1C,KAAK,EACL,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,UAAU,CACX,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC;QAC1C,MAAM,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;QAEnF,IAAI,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,uBAAuB;QAC9B,MAAM,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,MAAM,GAAG,GACP,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;YAC3E,CAAC,CAAC,QAAQ,GAAG,CAAC;YACd,CAAC,CAAC,QAAQ,CAAC;QAEf,MAAM,IAAI,GACR,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7F,IAAI,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,eAAe;QACtB,IAAI,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,GAAG,aAAa,CAAC;YAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC;YAErB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,GAAG,GAAG,KAAK,CAAC;YAEhB,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,EAAE,gCAAuB,EAAE,CAAC;oBAC9B,GAAG,EAAE,CAAC;oBACN,SAAS;gBACX,CAAC;gBAED,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM;gBACR,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACtC,QAAQ,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBAClC;wBACE,MAAM,IAAI,GAAG,CAAC;wBACd,MAAM;oBACR;wBACE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBACD,GAAG,IAAI,CAAC,CAAC;gBACT,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,SAAS,4BAA4B,CAAC,KAAa,EAAE,GAAW;QAC9D,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAChC,uEAAuE;QACvE,4BAA4B;QAC5B,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,OAAO,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,EAAE,CAAC;QACR,CAAC;QACD,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAE7B,mCAAmC;QACnC,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5B,GAAG,EAAE,CAAC;YACR,CAAC;YACD,iDAAiD;YACjD,GAAG,EAAE,CAAC;QACR,CAAC;QAED,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,qCAAqC,CAC5C,KAAa,EACb,GAAW,EACX,gBAAwB,EACxB,cAAsB,EACtB,KAAgD,EAChD,UAAsB;QAEtB,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;QAC5B,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;QAEnE,IAAI,KAAK,KAAK,KAAK,CAAC,aAAa,IAAI,KAAK,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACxE,+DAA+D;YAC/D,OAAO,KAAK,GAAG,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,KAAK,EAAE,CAAC;YACV,CAAC;YACD,qCAAqC;YACrC,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC9B,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC;oBACJ,IAAI,EAAE,gCAAgC;oBACtC,SAAS,EAAE,CAAC,8BAA8B,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,KAAK,CAAC,aAAa,IAAI,KAAK,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACxE,OAAO,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,GAAG,EAAE,CAAC;YACR,CAAC;YAED,mCAAmC;YACnC,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAChC,GAAG,EAAE,CAAC;gBACR,CAAC;gBACD,GAAG,EAAE,CAAC;YACR,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC;oBACJ,IAAI,EAAE,8BAA8B;oBACpC,SAAS,EAAE,CAAC,8BAA8B,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,yFAAyF;QACzF,IAAI,KAAK,KAAK,KAAK,CAAC,oBAAoB,IAAI,KAAK,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC/E,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,0EAA0E;QAC1E,sBAAsB;QACtB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;YACjB,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,GAAG,KAAK,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,EAAE,CAAC;YAEP,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,IAAI,EAAE,gCAAuB,EAAE,CAAC;oBAC9B,GAAG,EAAE,CAAC;oBACN,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACtC,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;oBACrD,GAAG,EAAE,CAAC;gBACR,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC3B,GAAG,IAAI,CAAC,CAAC;gBACX,CAAC;gBACD,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;YACD,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;gBACd,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC5B,iEAAiE;oBACjE,mEAAmE;oBACnE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACtC,MAAM,IAAI,IAAI,CAAC;oBACf,GAAG,IAAI,CAAC,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,GAAG,EAAE,CAAC,CAAC,2BAA2B;oBAClC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,MAAM,CAAC,GAAW,EAAE,KAAa,EAAE,GAAW;QACrD,OAAO,CACL,GAAG,IAAI,KAAK;YACZ,GAAG,GAAG,GAAG,GAAG,CAAC;YACb,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,qCAA4B;YACjD,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,+BAAsB,CAChD,CAAC;IACJ,CAAC;IAED,SAAS,uBAAuB,CAC9B,GAAW,EACX,GAAW,EACX,gBAAwB,EACxB,cAAsB;QAEtB,IAAI,cAAc,GAAG,gBAAgB,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAE/D,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,0DAA0D;gBAC1D,MAAM;YACR,CAAC;YACD,IAAI,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,KAAK,CAAC;oBACJ,IAAI,EAAE,qBAAqB;oBAC3B,SAAS,EAAE,CAAC,8BAA8B,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACzF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,cAAc,EAAE,CAAC;YACjB,GAAG,EAAE,CAAC;QACR,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,cAAc,CAAC,KAAa,EAAE,GAAW;QAChD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,EAAE,gCAAuB,EAAE,CAAC;gBAC9B,GAAG,EAAE,CAAC;gBACN,SAAS;YACX,CAAC;YAED,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,MAAM;YACR,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3B,GAAG,IAAI,CAAC,CAAC;YACT,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,WAAW,CAAC,GAAW;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,QAAQ,EAAE,EAAE,CAAC;YACX;gBACE,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,GAAG,CAAC;YACb;gBACE,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,GAAG,CAAC;YACb;gBACE,OAAO,GAAG,CAAC;YACb;gBACE,OAAO,GAAG,CAAC;YACb;gBACE,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBACzD,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,SAAS,uBAAuB;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,IAAI,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,CAAC;YAER,IAAI,GAAG,EAAE,EAAE,CAAC;gBACV,MAAM;YACR,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,KAAK,kCAAyB,IAAI,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjE,SAAS;YACX,CAAC;YAED,IAAI,yBAAyB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,OAAO,cAAc,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,EAAE,8BAAoB,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC;gBACxC,IAAI,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtC,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,MAAM;QACR,CAAC;QAED,IAAI,KAAK,kCAA0B,IAAI,KAAK,mCAA0B,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,cAAc;QACrB,IAAI,EAAU,CAAC;QAEf,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;YACX,IAAI,GAAG,EAAE,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,QAAQ,yBAAyB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAEvE,IAAI,EAAE,8BAAoB,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC;YACxC,IAAI,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,wBAAwB;QAC/B,QAAQ,EAAE,CAAC,CAAC,cAAc;QAE1B,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC;QAEpC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,QAAQ,EAAE,EAAE,CAAC;gBACX;oBACE,QAAQ,EAAE,CAAC;oBACX,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;oBACjC,SAAS;gBACX;oBACE,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpC,sCAA6B;gBAC7B;oBACE,MAAM,IAAI,CAAC;gBACb;oBACE,IAAI,EAAE,8BAAoB,EAAE,CAAC;wBAC3B,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC;oBACpC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,sBAAsB,CAAC,cAAsB;QACpD,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC;QAClC,IAAI,EAAE,GAAG,cAAc,CAAC;QACxB,GAAG,CAAC;YACF,QAAQ,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,oBAAoB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC,CAAC,EAAE;QAE9E,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,gBAAgB;QACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,kBAAkB;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,QAAQ,IAAI,yBAAyB,CAAC;QACtC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEnC,IAAI,MAAM,+BAAsB,IAAI,MAAM,kCAAyB,EAAE,CAAC;YACpE,qEAAqE;YACrE,OAAO,QAAQ,GAAG,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC1E,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,6DAA6D;YAC7D,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACtC,IACE,CAAC,EAAE,6BAAoB,IAAI,EAAE,kCAAyB,CAAC;oBACvD,EAAE,KAAK,MAAM;oBACb,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,EAC9C,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0B,EAC1B,QAAgB,EAChB,WAAW,GAAG,CAAC,CAAC;IAEhB,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,8EAA8E;QAC9E,QAAQ,EAAE,CAAC;IACb,CAAC;SAAM,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,cAAc,CAAC,KAAK,EAAE,0BAA0B,QAAQ,kBAAkB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM;IACpF,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IACtE,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,QAAQ,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,EAAE,4BAAmB,EAAE,CAAC;YAC1B,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC;oBACE,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAC/D,SAAS;gBACX;oBACE,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,SAAS;YACb,CAAC;QACH,CAAC;QAED,MAAM;IACR,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,QAAgB,EAChB,WAAW,GAAG,KAAK,CAAC,MAAM;IAE1B,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,MAAM;QACR,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAa,EACb,QAAgB,EAChB,WAAW,GAAG,KAAK,CAAC,MAAM;IAE1B,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe;IAE9B,OAAO,QAAQ,GAAG,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1C,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAa,EACb,QAAgB,EAChB,WAAW,GAAG,KAAK,CAAC,MAAM;IAE1B,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe;IAE9B,OAAO,QAAQ,GAAG,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1C,IACE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,+BAAsB;YAChD,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,4BAAmB,EACjD,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,QAAgB,EAAE,UAAU,GAAG,KAAK;IAC1F,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACjF,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvD,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,QAAgB,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM;IACnF,mDAAmD;IACnD,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,GAAG,yBAAyB,GAAG,WAAW,EAAE,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,yBAAyB,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC1C,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,CACL,EAAE,6BAAoB;gBACtB,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,yBAAyB,CAAC,4BAAmB,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA0B;IACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAS,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QACvC,cAAc,CACZ,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,EACnC,yCAAyC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAC9E,CAAC;QACF,cAAc,CACZ,CAAC,KAAK,CAAC,KAAK,CAAC,EACb,+CAA+C,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CACpF,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,yCAAyC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"} -\ No newline at end of file -diff --git a/dist/src/core/types.d.ts b/dist/src/core/types.d.ts -index 82ddb455b1073da79f3b07ef4edbc026532491ec..a503cc13f82c1c39009289d5417f28b92a586b60 100644 ---- a/dist/src/core/types.d.ts -+++ b/dist/src/core/types.d.ts -@@ -1,5 +1,6 @@ - import type { JSONSchemaType as AjvJSONSchemaType } from "ajv"; - import type { ModuleResolutionResult } from "../module-resolver/index.js"; -+import type { FileRef } from "./file-ref.js"; - import type { Numeric } from "./numeric.js"; - import type { Program } from "./program.js"; - export type MarshalledValue = Value extends StringValue ? string : Value extends NumericValue ? number | Numeric : Value extends BooleanValue ? boolean : Value extends ObjectValue ? Record : Value extends ArrayValue ? unknown[] : Value extends EnumValue ? EnumMember : Value extends NullValue ? null : Value extends ScalarValue ? Value : Value; -@@ -1778,6 +1779,12 @@ export interface DiagnosticDefinition { - readonly description?: string; - /** Specifies the URL at which the full documentation can be accessed. */ - readonly url?: string; -+ /** -+ * Extended documentation for this diagnostic. Surfaced both in generated reference -+ * documentation and in editor tooling (e.g. completion and hover). Either raw markdown, -+ * or a {@link FileRef} pointing to a markdown file (recommended). -+ */ -+ readonly docs?: string | FileRef; - } - export interface DiagnosticMessages { - readonly [messageId: string]: string | CallableMessage; -@@ -1881,6 +1888,12 @@ interface LinterRuleDefinitionBase(program: Program, TypeEmitterClass: typeof TypeEmitter, emitContext: EmitContext): AssetEmitter; -+//# sourceMappingURL=asset-emitter.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/asset-emitter.d.ts.map b/dist/src/emitter-framework/asset-emitter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..0ea5db92a7abc2385669fe8c19855e72f943fceb ---- /dev/null -+++ b/dist/src/emitter-framework/asset-emitter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"asset-emitter.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/asset-emitter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,OAAO,EAAQ,MAAM,kBAAkB,CAAC;AAOrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,YAAY,EAiBb,MAAM,YAAY,CAAC;AAWpB,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAC3D,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,EACjD,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GACjC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CA2wB3B"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/asset-emitter.js b/dist/src/emitter-framework/asset-emitter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..174b2ad52ec151fdad4aec9ae49dcbbc910d4129 ---- /dev/null -+++ b/dist/src/emitter-framework/asset-emitter.js -@@ -0,0 +1,720 @@ -+import { compilerAssert } from "../core/diagnostics.js"; -+import { getTypeName } from "../core/helpers/type-name-utils.js"; -+import { joinPaths } from "../core/path-utils.js"; -+import { isTemplateDeclaration } from "../core/type-utils.js"; -+import { CustomKeyMap } from "./custom-key-map.js"; -+import { Placeholder } from "./placeholder.js"; -+import { resolveDeclarationReferenceScope } from "./ref-scope.js"; -+import { ReferenceCycle } from "./reference-cycle.js"; -+import { CircularEmit, Declaration, EmitterResult, NoEmit, RawCode, } from "./types.js"; -+export function createAssetEmitter(program, TypeEmitterClass, emitContext) { -+ const sourceFiles = []; -+ const options = { -+ noEmit: program.compilerOptions.noEmit ?? false, -+ emitterOutputDir: emitContext.emitterOutputDir, -+ ...emitContext.options, -+ }; -+ const typeId = CustomKeyMap.objectKeyer(); -+ const contextId = CustomKeyMap.objectKeyer(); -+ const entryId = CustomKeyMap.objectKeyer(); -+ // This is effectively a seen set, ensuring that we don't emit the same -+ // type with the same context twice. So the map stores a triple of: -+ // -+ // 1. the method of TypeEmitter we would call -+ // 2. the tsp type we're emitting. -+ // 3. the current context. -+ // -+ // Note that in order for this to work, context needs to be interned so -+ // contexts with the same values inside are treated as identical in the -+ // map. See createInterner for more details. -+ const typeToEmitEntity = new CustomKeyMap(([method, type, context]) => { -+ return `${method}-${typeId.getKey(type)}-${contextId.getKey(context)}`; -+ }); -+ // When we encounter a circular reference, this map will hold a callback -+ // that should be called when the circularly referenced type has completed -+ // its emit. -+ const waitingCircularRefs = new CustomKeyMap(([method, type, context]) => { -+ return `${method}-${typeId.getKey(type)}-${contextId.getKey(context)}`; -+ }); -+ // Similar to `typeToEmitEntity`, this ensures we don't recompute context -+ // for types that we already have context for. Note that context is -+ // dependent on the context of the context call, e.g. if a model is -+ // referenced with reference context set we need to get its declaration -+ // context again. So we use the context's context as a key. Context must -+ // be interned, see createInterner for more details. -+ const knownContexts = new CustomKeyMap(([entry, context]) => { -+ return `${entryId.getKey(entry)}-${contextId.getKey(context)}`; -+ }); -+ // The stack of types that the currently emitted type is lexically -+ // contained in. This gets pushed to when we visit a type that is -+ // lexically contained in the current type, and is reset when we jump via -+ // reference to another type in a different lexical context. Note that -+ // this does not correspond to tsp's lexical nesting, e.g. in the case of -+ // an alias to a model expression, the alias is lexically outside the -+ // model, but in the type graph we will consider it to be lexically inside -+ // whatever references the alias. -+ let lexicalTypeStack = []; -+ let referenceTypeChain = []; -+ // Internally, context is is split between lexicalContext and -+ // referenceContext because when a reference is made, we carry over -+ // referenceContext but leave lexical context behind. When context is -+ // accessed by the user, they are merged by getContext(). -+ let context = { -+ lexicalContext: {}, -+ referenceContext: {}, -+ }; -+ let programContext = null; -+ // Incoming reference context is reference context that comes from emitting a -+ // type reference. Incoming reference context is only set on the -+ // incomingReferenceContextTarget and types lexically contained within it. For -+ // example, when referencing a model with reference context set, we may need -+ // to get context from the referenced model's namespaces, and such namespaces -+ // will not see the reference context. However, the reference context will be -+ // available for the model, its properties, and any types nested within it -+ // (e.g. anonymous models). -+ let incomingReferenceContext = null; -+ let incomingReferenceContextTarget = null; -+ const stateInterner = createInterner(); -+ const stackEntryInterner = createInterner(); -+ const assetEmitter = { -+ getContext() { -+ return { -+ ...context.lexicalContext, -+ ...context.referenceContext, -+ }; -+ }, -+ getOptions() { -+ return options; -+ }, -+ getProgram() { -+ return program; -+ }, -+ result: { -+ declaration(name, value) { -+ const scope = currentScope(); -+ compilerAssert(scope, "Emit context must have a scope set in order to create declarations. Consider setting scope to a new source file's global scope in the `programContext` method of `TypeEmitter`."); -+ return new Declaration(name, scope, value); -+ }, -+ rawCode(value) { -+ return new RawCode(value); -+ }, -+ none() { -+ return new NoEmit(); -+ }, -+ }, -+ createScope(block, name, parentScope = null) { -+ let newScope; -+ if (!parentScope) { -+ // create source file scope -+ newScope = { -+ kind: "sourceFile", -+ name, -+ sourceFile: block, -+ parentScope, -+ childScopes: [], -+ declarations: [], -+ }; -+ } -+ else { -+ newScope = { -+ kind: "namespace", -+ name, -+ namespace: block, -+ childScopes: [], -+ declarations: [], -+ parentScope, -+ }; -+ } -+ parentScope?.childScopes.push(newScope); -+ return newScope; // the overload of createScope causes type weirdness -+ }, -+ createSourceFile(path) { -+ const basePath = options.emitterOutputDir; -+ const sourceFile = { -+ globalScope: undefined, -+ path: joinPaths(basePath, path), -+ imports: new Map(), -+ meta: {}, -+ }; -+ sourceFile.globalScope = this.createScope(sourceFile, ""); -+ sourceFiles.push(sourceFile); -+ return sourceFile; -+ }, -+ emitTypeReference(target, options) { -+ return withPatchedReferenceContext(options?.referenceContext, () => { -+ const oldIncomingReferenceContext = incomingReferenceContext; -+ const oldIncomingReferenceContextTarget = incomingReferenceContextTarget; -+ incomingReferenceContext = context.referenceContext ?? null; -+ incomingReferenceContextTarget = incomingReferenceContext ? target : null; -+ let result; -+ if (target.kind === "ModelProperty") { -+ result = invokeTypeEmitter("modelPropertyReference", target); -+ } -+ else if (target.kind === "EnumMember") { -+ result = invokeTypeEmitter("enumMemberReference", target); -+ } -+ if (result) { -+ incomingReferenceContext = oldIncomingReferenceContext; -+ incomingReferenceContextTarget = oldIncomingReferenceContextTarget; -+ return result; -+ } -+ const entity = this.emitType(target); -+ incomingReferenceContext = oldIncomingReferenceContext; -+ incomingReferenceContextTarget = oldIncomingReferenceContextTarget; -+ let placeholder = null; -+ if (entity.kind === "circular") { -+ let waiting = waitingCircularRefs.get(entity.emitEntityKey); -+ if (!waiting) { -+ waiting = []; -+ waitingCircularRefs.set(entity.emitEntityKey, waiting); -+ } -+ const typeChainSnapshot = referenceTypeChain; -+ waiting.push({ -+ state: { -+ lexicalTypeStack, -+ context, -+ }, -+ cb: (resolvedEntity) => invokeReference(this, resolvedEntity, true, resolveReferenceCycle(typeChainSnapshot, entity, typeToEmitEntity)), -+ }); -+ placeholder = new Placeholder(); -+ return this.result.rawCode(placeholder); -+ } -+ else { -+ return invokeReference(this, entity, false); -+ } -+ function invokeReference(assetEmitter, entity, circular, cycle) { -+ let ref; -+ const scope = currentScope(); -+ if (circular) { -+ ref = typeEmitter.circularReference(entity, scope, cycle); -+ } -+ else { -+ if (entity.kind !== "declaration") { -+ return entity; -+ } -+ compilerAssert(scope, "Emit context must have a scope set in order to create references to declarations."); -+ const { pathUp, pathDown, commonScope } = resolveDeclarationReferenceScope(entity, scope); -+ ref = typeEmitter.reference(entity, pathUp, pathDown, commonScope); -+ } -+ if (!(ref instanceof EmitterResult)) { -+ ref = assetEmitter.result.rawCode(ref); -+ } -+ if (placeholder) { -+ // this should never happen as this function shouldn't be called until -+ // the target declaration is finished being emitted. -+ compilerAssert(ref.kind !== "circular", "TypeEmitter `reference` returned circular emit"); -+ // this could presumably be allowed if we want. -+ compilerAssert(ref.kind === "none" || !(ref.value instanceof Placeholder), "TypeEmitter's `reference` method cannot return a placeholder."); -+ switch (ref.kind) { -+ case "code": -+ case "declaration": -+ placeholder.setValue(ref.value); -+ break; -+ case "none": -+ // this cast is incorrect, think about what should happen -+ // if reference returns noEmit... -+ placeholder.setValue(""); -+ break; -+ } -+ } -+ return ref; -+ } -+ }); -+ }, -+ emitDeclarationName(type) { -+ return typeEmitter.declarationName(type); -+ }, -+ async writeOutput() { -+ return typeEmitter.writeOutput(sourceFiles); -+ }, -+ getSourceFiles() { -+ return sourceFiles; -+ }, -+ emitType(type, context) { -+ if (context?.referenceContext) { -+ incomingReferenceContext = context?.referenceContext ?? incomingReferenceContext; -+ incomingReferenceContextTarget = type ?? incomingReferenceContextTarget; -+ } -+ const declName = isDeclaration(type) && type.kind !== "Namespace" ? typeEmitter.declarationName(type) : null; -+ const key = typeEmitterKey(type); -+ let args; -+ switch (key) { -+ case "scalarDeclaration": -+ case "scalarInstantiation": -+ case "modelDeclaration": -+ case "modelInstantiation": -+ case "operationDeclaration": -+ case "interfaceDeclaration": -+ case "interfaceOperationDeclaration": -+ case "enumDeclaration": -+ case "unionDeclaration": -+ case "unionInstantiation": -+ args = [declName]; -+ break; -+ case "arrayDeclaration": -+ const arrayDeclElement = type.indexer.value; -+ args = [declName, arrayDeclElement]; -+ break; -+ case "arrayLiteral": -+ const arrayLiteralElement = type.indexer.value; -+ args = [arrayLiteralElement]; -+ break; -+ case "intrinsic": -+ args = [declName]; -+ break; -+ default: -+ args = []; -+ } -+ const result = invokeTypeEmitter(key, type, ...args); -+ return result; -+ }, -+ emitProgram(options) { -+ const namespace = program.getGlobalNamespaceType(); -+ if (options?.emitGlobalNamespace) { -+ this.emitType(namespace); -+ return; -+ } -+ for (const ns of namespace.namespaces.values()) { -+ if (ns.name === "TypeSpec" && !options?.emitTypeSpecNamespace) -+ continue; -+ this.emitType(ns); -+ } -+ for (const model of namespace.models.values()) { -+ if (!isTemplateDeclaration(model)) { -+ this.emitType(model); -+ } -+ } -+ for (const operation of namespace.operations.values()) { -+ if (!isTemplateDeclaration(operation)) { -+ this.emitType(operation); -+ } -+ } -+ for (const enumeration of namespace.enums.values()) { -+ this.emitType(enumeration); -+ } -+ for (const union of namespace.unions.values()) { -+ if (!isTemplateDeclaration(union)) { -+ this.emitType(union); -+ } -+ } -+ for (const iface of namespace.interfaces.values()) { -+ if (!isTemplateDeclaration(iface)) { -+ this.emitType(iface); -+ } -+ } -+ for (const scalar of namespace.scalars.values()) { -+ this.emitType(scalar); -+ } -+ }, -+ emitModelProperties(model) { -+ const res = invokeTypeEmitter("modelProperties", model); -+ if (res instanceof EmitterResult) { -+ return res; -+ } -+ else { -+ return this.result.rawCode(res); -+ } -+ }, -+ emitModelProperty(property) { -+ return invokeTypeEmitter("modelPropertyLiteral", property); -+ }, -+ emitOperationParameters(operation) { -+ return invokeTypeEmitter("operationParameters", operation, operation.parameters); -+ }, -+ emitOperationReturnType(operation) { -+ return invokeTypeEmitter("operationReturnType", operation, operation.returnType); -+ }, -+ emitInterfaceOperations(iface) { -+ return invokeTypeEmitter("interfaceDeclarationOperations", iface); -+ }, -+ emitInterfaceOperation(operation) { -+ const name = typeEmitter.declarationName(operation); -+ if (name === undefined) { -+ // the general approach of invoking the expression form doesn't work here -+ // because TypeSpec doesn't have operation expressions. -+ compilerAssert(false, "Unnamed operations are not supported"); -+ } -+ return invokeTypeEmitter("interfaceOperationDeclaration", operation, name); -+ }, -+ emitEnumMembers(en) { -+ return invokeTypeEmitter("enumMembers", en); -+ }, -+ emitUnionVariants(union) { -+ return invokeTypeEmitter("unionVariants", union); -+ }, -+ emitTupleLiteralValues(tuple) { -+ return invokeTypeEmitter("tupleLiteralValues", tuple); -+ }, -+ async emitSourceFile(sourceFile) { -+ return await typeEmitter.sourceFile(sourceFile); -+ }, -+ }; -+ const typeEmitter = new TypeEmitterClass(assetEmitter); -+ return assetEmitter; -+ /** -+ * This function takes care of calling a method on the TypeEmitter to -+ * convert it to some emitted output. It will return a cached type if we -+ * have seen it before (and the context is the same). It will establish -+ * the emit context by calling the appropriate methods before getting the -+ * emit result. Also if a type emitter returns just a T or a -+ * Placeholder, it will convert that to a RawCode result. -+ */ -+ function invokeTypeEmitter(method, ...args) { -+ const type = args[0]; -+ let entity; -+ let emitEntityKey; -+ let cached = false; -+ withTypeContext(method, args, () => { -+ emitEntityKey = [method, type, context]; -+ const seenEmitEntity = typeToEmitEntity.get(emitEntityKey); -+ if (seenEmitEntity) { -+ entity = seenEmitEntity; -+ cached = true; -+ return; -+ } -+ typeToEmitEntity.set(emitEntityKey, new CircularEmit(emitEntityKey)); -+ compilerAssert(typeEmitter[method], `TypeEmitter doesn't have a method named ${method}.`); -+ entity = liftToRawCode(typeEmitter[method](...args)); -+ }); -+ if (cached) { -+ return entity; -+ } -+ if (entity instanceof Placeholder) { -+ entity.onValue((v) => handleCompletedEntity(v)); -+ return entity; -+ } -+ handleCompletedEntity(entity); -+ return entity; -+ function handleCompletedEntity(entity) { -+ typeToEmitEntity.set(emitEntityKey, entity); -+ const waitingRefCbs = waitingCircularRefs.get(emitEntityKey); -+ if (waitingRefCbs) { -+ for (const record of waitingRefCbs) { -+ withContext(record.state, () => { -+ record.cb(entity); -+ }); -+ } -+ waitingCircularRefs.set(emitEntityKey, []); -+ } -+ if (entity.kind === "declaration") { -+ entity.scope.declarations.push(entity); -+ } -+ } -+ function liftToRawCode(value) { -+ if (value instanceof EmitterResult) { -+ return value; -+ } -+ return assetEmitter.result.rawCode(value); -+ } -+ } -+ function isInternalMethod(method) { -+ return (method === "interfaceDeclarationOperations" || -+ method === "interfaceOperationDeclaration" || -+ method === "operationParameters" || -+ method === "operationReturnType" || -+ method === "modelProperties" || -+ method === "enumMembers" || -+ method === "tupleLiteralValues" || -+ method === "unionVariants"); -+ } -+ /** -+ * This helper takes a type and sets the `context` state to what it should -+ * be in order to invoke the type emitter method for that type. This needs -+ * to take into account the current context and any incoming reference -+ * context. -+ */ -+ function setContextForType(method, args) { -+ const type = args[0]; -+ let newTypeStack; -+ // if we've walked into a new declaration, reset the lexical type stack -+ // to the lexical containers of the current type. -+ if (isDeclaration(type) && type.kind !== "Intrinsic" && !isInternalMethod(method)) { -+ newTypeStack = [stackEntryInterner.intern({ method, args: stackEntryInterner.intern(args) })]; -+ let ns = type.namespace; -+ while (ns) { -+ if (ns.name === "") -+ break; -+ newTypeStack.unshift(stackEntryInterner.intern({ method: "namespace", args: stackEntryInterner.intern([ns]) })); -+ ns = ns.namespace; -+ } -+ } -+ else { -+ newTypeStack = [ -+ ...lexicalTypeStack, -+ stackEntryInterner.intern({ method, args: stackEntryInterner.intern(args) }), -+ ]; -+ } -+ lexicalTypeStack = newTypeStack; -+ if (!programContext) { -+ programContext = stateInterner.intern({ -+ lexicalContext: typeEmitter.programContext(program), -+ referenceContext: stateInterner.intern({}), -+ }); -+ } -+ // Establish our context by starting from program and walking up the type stack -+ // and merging in context for each of the lexical containers. -+ context = programContext; -+ for (const entry of lexicalTypeStack) { -+ if (incomingReferenceContext && entry.args[0] === incomingReferenceContextTarget) { -+ // bring in any reference context so it is available for any types nested beneath this type. -+ context = stateInterner.intern({ -+ lexicalContext: context.lexicalContext, -+ referenceContext: stateInterner.intern({ -+ ...context.referenceContext, -+ ...incomingReferenceContext, -+ }), -+ }); -+ } -+ const seenContext = knownContexts.get([entry, context]); -+ if (seenContext) { -+ context = seenContext; -+ continue; -+ } -+ const lexicalKey = entry.method + "Context"; -+ const referenceKey = entry.method + "ReferenceContext"; -+ if (keyHasContext(entry.method)) { -+ compilerAssert(typeEmitter[lexicalKey], `TypeEmitter doesn't have a method named ${lexicalKey}`); -+ } -+ if (keyHasReferenceContext(entry.method)) { -+ compilerAssert(typeEmitter[referenceKey], `TypeEmitter doesn't have a method named ${referenceKey}`); -+ } -+ const newContext = keyHasContext(entry.method) -+ ? typeEmitter[lexicalKey](...entry.args) -+ : {}; -+ const newReferenceContext = keyHasReferenceContext(entry.method) -+ ? typeEmitter[referenceKey](...entry.args) -+ : {}; -+ // assemble our new reference and lexical contexts. -+ const newContextState = stateInterner.intern({ -+ lexicalContext: stateInterner.intern({ -+ ...context.lexicalContext, -+ ...newContext, -+ }), -+ referenceContext: stateInterner.intern({ -+ ...context.referenceContext, -+ ...newReferenceContext, -+ }), -+ }); -+ knownContexts.set([entry, context], newContextState); -+ context = newContextState; -+ } -+ if (!isInternalMethod(method)) { -+ referenceTypeChain = [ -+ ...referenceTypeChain, -+ stackEntryInterner.intern({ -+ method, -+ type, -+ context, -+ }), -+ ]; -+ } -+ } -+ /** -+ * Invoke the callback with the proper context for a given type. -+ */ -+ function withTypeContext(method, args, cb) { -+ const oldContext = context; -+ const oldTypeStack = lexicalTypeStack; -+ const oldRefTypeStack = referenceTypeChain; -+ setContextForType(method, args); -+ cb(); -+ context = oldContext; -+ lexicalTypeStack = oldTypeStack; -+ referenceTypeChain = oldRefTypeStack; -+ } -+ function withPatchedReferenceContext(referenceContext, cb) { -+ if (referenceContext !== undefined) { -+ const oldContext = context; -+ context = stateInterner.intern({ -+ lexicalContext: context.lexicalContext, -+ referenceContext: stateInterner.intern({ -+ ...context.referenceContext, -+ ...referenceContext, -+ }), -+ }); -+ const result = cb(); -+ context = oldContext; -+ return result; -+ } -+ else { -+ return cb(); -+ } -+ } -+ /** -+ * Invoke the callback with the given context. -+ */ -+ function withContext(newContext, cb) { -+ const oldContext = context; -+ const oldTypeStack = lexicalTypeStack; -+ context = newContext.context; -+ lexicalTypeStack = newContext.lexicalTypeStack; -+ cb(); -+ context = oldContext; -+ lexicalTypeStack = oldTypeStack; -+ } -+ function typeEmitterKey(type) { -+ switch (type.kind) { -+ case "Model": -+ if (program.checker.isStdType(type) && type.name === "Array") { -+ // likely an array literal, though could be a bare reference to Array maybe? -+ return "arrayLiteral"; -+ } -+ if (type.name === "") { -+ return "modelLiteral"; -+ } -+ if (type.templateMapper) { -+ return "modelInstantiation"; -+ } -+ if (type.indexer && type.indexer.key.name === "integer") { -+ return "arrayDeclaration"; -+ } -+ return "modelDeclaration"; -+ case "Namespace": -+ return "namespace"; -+ case "ModelProperty": -+ return "modelPropertyLiteral"; -+ case "StringTemplate": -+ return "stringTemplate"; -+ case "Boolean": -+ return "booleanLiteral"; -+ case "String": -+ return "stringLiteral"; -+ case "Number": -+ return "numericLiteral"; -+ case "Operation": -+ if (type.interface) { -+ return "interfaceOperationDeclaration"; -+ } -+ else { -+ return "operationDeclaration"; -+ } -+ case "Interface": -+ return "interfaceDeclaration"; -+ case "Enum": -+ return "enumDeclaration"; -+ case "EnumMember": -+ return "enumMember"; -+ case "Union": -+ if (!type.name) { -+ return "unionLiteral"; -+ } -+ if (type.templateMapper) { -+ return "unionInstantiation"; -+ } -+ return "unionDeclaration"; -+ case "UnionVariant": -+ return "unionVariant"; -+ case "Tuple": -+ return "tupleLiteral"; -+ case "Scalar": -+ if (type.templateMapper) { -+ return "scalarInstantiation"; -+ } -+ else { -+ return "scalarDeclaration"; -+ } -+ case "Intrinsic": -+ return "intrinsic"; -+ default: -+ compilerAssert(false, `Encountered type ${type.kind} which we don't know how to emit.`); -+ } -+ } -+ function currentScope() { -+ return context.referenceContext?.scope ?? context.lexicalContext?.scope ?? null; -+ } -+} -+/** -+ * Returns true if the given type is a declaration or an instantiation of a declaration. -+ * @param type -+ * @returns -+ */ -+function isDeclaration(type) { -+ switch (type.kind) { -+ case "Namespace": -+ case "Interface": -+ case "Enum": -+ case "Operation": -+ case "Scalar": -+ case "Intrinsic": -+ return true; -+ case "Model": -+ return type.name ? type.name !== "" && type.name !== "Array" : false; -+ case "Union": -+ return type.name ? type.name !== "" : false; -+ default: -+ return false; -+ } -+} -+/** -+ * An interner takes an object and returns either that same object, or a -+ * previously seen object that has the identical shape. -+ * -+ * This implementation is EXTREMELY non-optimal (O(n*m) where n = number of unique -+ * state objects and m = the number of properties a state object contains). This -+ * will very quickly be a bottleneck. That said, the common case is no state at -+ * all, and also this is essentially implementing records and tuples, so could -+ * probably adopt those when they are released. That that said, the records and -+ * tuples are presently facing headwinds due to implementations facing exactly -+ * these performance characteristics. Regardless, there are optimizations we -+ * could consider. -+ */ -+function createInterner() { -+ const emptyObject = {}; -+ const knownObjects = new Set(); -+ return { -+ intern(object) { -+ const keyLen = Object.keys(object).length; -+ if (keyLen === 0) -+ return emptyObject; -+ for (const ko of knownObjects) { -+ const entries = Object.entries(ko); -+ if (entries.length !== keyLen) -+ continue; -+ let found = true; -+ for (const [key, value] of entries) { -+ if (object[key] !== value) { -+ found = false; -+ break; -+ } -+ } -+ if (found) { -+ return ko; -+ } -+ } -+ knownObjects.add(object); -+ return object; -+ }, -+ }; -+} -+const noContext = new Set(["modelPropertyReference", "enumMemberReference"]); -+function keyHasContext(key) { -+ return !noContext.has(key); -+} -+const noReferenceContext = new Set([ -+ ...noContext, -+ "booleanLiteral", -+ "stringTemplate", -+ "stringLiteral", -+ "numericLiteral", -+ "scalarInstantiation", -+ "enumMember", -+ "enumMembers", -+ "intrinsic", -+]); -+function keyHasReferenceContext(key) { -+ return !noReferenceContext.has(key); -+} -+function resolveReferenceCycle(stack, entity, typeToEmitEntity) { -+ for (let i = stack.length - 1; i >= 0; i--) { -+ if (stack[i].type === entity.emitEntityKey[1]) { -+ return new ReferenceCycle(stack.slice(i).map((x) => { -+ return { -+ type: x.type, -+ entity: typeToEmitEntity.get([x.method, x.type, x.context]), -+ }; -+ })); -+ } -+ } -+ throw new Error(`Couldn't resolve the circular reference stack for ${getTypeName(entity.emitEntityKey[1])}`); -+} -+//# sourceMappingURL=asset-emitter.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/asset-emitter.js.map b/dist/src/emitter-framework/asset-emitter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..4ed40e7e3803e0d26eeac280000fcc565cfe9b2a ---- /dev/null -+++ b/dist/src/emitter-framework/asset-emitter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"asset-emitter.js","sourceRoot":"","sources":["../../../src/emitter-framework/asset-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/array-builder.d.ts b/dist/src/emitter-framework/builders/array-builder.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..35dfd315837f23ebfb1df3e30e7fa4a77b49908c ---- /dev/null -+++ b/dist/src/emitter-framework/builders/array-builder.d.ts -@@ -0,0 +1,7 @@ -+import { Placeholder } from "../placeholder.js"; -+import { EmitEntity } from "../types.js"; -+export declare class ArrayBuilder extends Array { -+ #private; -+ push(...values: (EmitEntity | Placeholder | T)[]): number; -+} -+//# sourceMappingURL=array-builder.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/array-builder.d.ts.map b/dist/src/emitter-framework/builders/array-builder.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..117bdee88f25dda48bb970834a68019763a93ddd ---- /dev/null -+++ b/dist/src/emitter-framework/builders/array-builder.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"array-builder.d.ts","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/array-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAExD,qBAAa,YAAY,CAAC,CAAC,CAAE,SAAQ,KAAK;;IASxC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM;CAwBhE"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/array-builder.js b/dist/src/emitter-framework/builders/array-builder.js -new file mode 100644 -index 0000000000000000000000000000000000000000..80b78582befaf01a844ed1c1e2a9602c15c5e0ce ---- /dev/null -+++ b/dist/src/emitter-framework/builders/array-builder.js -@@ -0,0 +1,35 @@ -+import { compilerAssert } from "../../core/index.js"; -+import { Placeholder } from "../placeholder.js"; -+import { EmitterResult } from "../types.js"; -+export class ArrayBuilder extends Array { -+ #setPlaceholderValue(p, value) { -+ for (const [i, item] of this.entries()) { -+ if (item === p) { -+ this[i] = value; -+ } -+ } -+ } -+ push(...values) { -+ for (const v of values) { -+ let toPush; -+ if (v instanceof EmitterResult) { -+ compilerAssert(v.kind !== "circular", "Can't push a circular emit result."); -+ if (v.kind === "none") { -+ toPush = undefined; -+ } -+ else { -+ toPush = v.value; -+ } -+ } -+ else { -+ toPush = v; -+ } -+ if (toPush instanceof Placeholder) { -+ toPush.onValue((v) => this.#setPlaceholderValue(toPush, v)); -+ } -+ super.push(toPush); -+ } -+ return values.length; -+ } -+} -+//# sourceMappingURL=array-builder.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/array-builder.js.map b/dist/src/emitter-framework/builders/array-builder.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..6e13b1875193c951bf7002b1365c28a007ddf249 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/array-builder.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"array-builder.js","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/array-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,OAAO,YAAgB,SAAQ,KAAK;IACxC,oBAAoB,CAAC,CAAiB,EAAE,KAAQ;QAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,MAA8C;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,MAAsC,CAAC;YAC3C,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;gBAC/B,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,oCAAoC,CAAC,CAAC;gBAE5E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,CAAC;YACb,CAAC;YAED,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAwB,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/object-builder.d.ts b/dist/src/emitter-framework/builders/object-builder.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..6ee04fcf1298788c98651c593ddd77149dfa5766 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/object-builder.d.ts -@@ -0,0 +1,12 @@ -+import { Placeholder } from "../placeholder.js"; -+import { EmitEntity } from "../types.js"; -+declare const placeholderSym: unique symbol; -+export interface ObjectBuilder extends Record { -+} -+export declare class ObjectBuilder { -+ private readonly [placeholderSym]; -+ constructor(initializer?: Record | Placeholder> | ObjectBuilder); -+ set(key: string, v: EmitEntity | Placeholder | T): void; -+} -+export {}; -+//# sourceMappingURL=object-builder.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/object-builder.d.ts.map b/dist/src/emitter-framework/builders/object-builder.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..723fecab45820439f802837abd32aa9f398583e5 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/object-builder.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"object-builder.d.ts","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAExD,QAAA,MAAM,cAAc,eAAwB,CAAC;AAG7C,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAAG;AAEhE,qBAAa,aAAa,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAA+B;gBAG9D,WAAW,GACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACpC,aAAa,CAAC,CAAC,CAAM;IA0B3B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;CAqBvD"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/object-builder.js b/dist/src/emitter-framework/builders/object-builder.js -new file mode 100644 -index 0000000000000000000000000000000000000000..700e4928a597130ebb01a28ebb93f4b6e121084b ---- /dev/null -+++ b/dist/src/emitter-framework/builders/object-builder.js -@@ -0,0 +1,52 @@ -+import { compilerAssert } from "../../core/index.js"; -+import { Placeholder } from "../placeholder.js"; -+import { EmitterResult } from "../types.js"; -+const placeholderSym = Symbol("placeholder"); -+// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging -+export class ObjectBuilder { -+ [placeholderSym]; -+ constructor(initializer = {}) { -+ const copyProperties = (source) => { -+ for (const [key, value] of Object.entries(source)) { -+ this.set(key, value); -+ } -+ }; -+ const registerPlaceholder = (placeholder) => { -+ placeholder.onValue(copyProperties); -+ }; -+ if (initializer instanceof ObjectBuilder) { -+ if (initializer[placeholderSym]) { -+ this[placeholderSym] = initializer[placeholderSym]; -+ registerPlaceholder(initializer[placeholderSym]); -+ } -+ copyProperties(initializer); -+ } -+ else if (initializer instanceof Placeholder) { -+ this[placeholderSym] = initializer; -+ registerPlaceholder(initializer); -+ } -+ else { -+ copyProperties(initializer); -+ } -+ } -+ set(key, v) { -+ let value = v; -+ if (v instanceof EmitterResult) { -+ compilerAssert(v.kind !== "circular", "Can't set a circular emit result."); -+ if (v.kind === "none") { -+ this[key] = undefined; -+ return; -+ } -+ else { -+ value = v.value; -+ } -+ } -+ if (value instanceof Placeholder) { -+ value.onValue((v) => { -+ this[key] = v; -+ }); -+ } -+ this[key] = value; -+ } -+} -+//# sourceMappingURL=object-builder.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/object-builder.js.map b/dist/src/emitter-framework/builders/object-builder.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3edc10c3766a1113a13ab36064fd65b780847dca ---- /dev/null -+++ b/dist/src/emitter-framework/builders/object-builder.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"object-builder.js","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/object-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAc,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAI7C,4EAA4E;AAC5E,MAAM,OAAO,aAAa;IACP,CAAC,cAAc,CAAC,CAA+B;IAEhE,YACE,cAGuB,EAAE;QAEzB,MAAM,cAAc,GAAG,CAAC,MAA+B,EAAE,EAAE;YACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAY,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,mBAAmB,GAAG,CAAC,WAAiD,EAAE,EAAE;YAChF,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,IAAI,WAAW,YAAY,aAAa,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;gBACnD,mBAAmB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,WAAW,YAAY,WAAW,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;YAEnC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,CAAqC;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;YAC/B,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,mCAAmC,CAAC,CAAC;YAE3E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;gBACtB,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/string-builder.d.ts b/dist/src/emitter-framework/builders/string-builder.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..470d2ec1ff6d9d18855ec91d50fddaabe3067801 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/string-builder.d.ts -@@ -0,0 +1,13 @@ -+import { Placeholder } from "../placeholder.js"; -+import { EmitEntity } from "../types.js"; -+export declare class StringBuilder extends Placeholder { -+ #private; -+ segments: (string | Placeholder)[]; -+ pushLiteralSegment(segment: string): void; -+ pushPlaceholder(ph: Placeholder): void; -+ pushStringBuilder(builder: StringBuilder): void; -+ push(segment: StringBuilder | Placeholder | string): void; -+ reduce(): string | this; -+} -+export declare function code(parts: TemplateStringsArray, ...substitutions: (EmitEntity | string | Placeholder | StringBuilder)[]): StringBuilder | string; -+//# sourceMappingURL=string-builder.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/string-builder.d.ts.map b/dist/src/emitter-framework/builders/string-builder.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..b69514e96f8476fd38ce12e9bb9d159c8282131a ---- /dev/null -+++ b/dist/src/emitter-framework/builders/string-builder.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"string-builder.d.ts","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/string-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,qBAAa,aAAc,SAAQ,WAAW,CAAC,MAAM,CAAC;;IAC7C,QAAQ,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAoBvD,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAQlC,eAAe,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC;IAUvC,iBAAiB,CAAC,OAAO,EAAE,aAAa;IAMxC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM;IAU1D,MAAM;CAWP;AAED,wBAAgB,IAAI,CAClB,KAAK,EAAE,oBAAoB,EAC3B,GAAG,aAAa,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,GACtF,aAAa,GAAG,MAAM,CA2BxB"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/string-builder.js b/dist/src/emitter-framework/builders/string-builder.js -new file mode 100644 -index 0000000000000000000000000000000000000000..ca1e86309e6d4256837987b40065e4164403eec1 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/string-builder.js -@@ -0,0 +1,90 @@ -+import { Placeholder } from "../placeholder.js"; -+export class StringBuilder extends Placeholder { -+ segments = []; -+ #placeholders = new Set(); -+ #notifyComplete() { -+ const value = this.segments.join(""); -+ this.setValue(value); -+ } -+ #setPlaceholderValue(ph, value) { -+ for (const [i, segment] of this.segments.entries()) { -+ if (segment === ph) { -+ this.segments[i] = value; -+ } -+ } -+ this.#placeholders.delete(ph); -+ if (this.#placeholders.size === 0) { -+ this.#notifyComplete(); -+ } -+ } -+ pushLiteralSegment(segment) { -+ if (this.#shouldConcatLiteral()) { -+ this.segments[this.segments.length - 1] += segment; -+ } -+ else { -+ this.segments.push(segment); -+ } -+ } -+ pushPlaceholder(ph) { -+ this.#placeholders.add(ph); -+ ph.onValue((value) => { -+ this.#setPlaceholderValue(ph, value); -+ }); -+ this.segments.push(ph); -+ } -+ pushStringBuilder(builder) { -+ for (const segment of builder.segments) { -+ this.push(segment); -+ } -+ } -+ push(segment) { -+ if (typeof segment === "string") { -+ this.pushLiteralSegment(segment); -+ } -+ else if (segment instanceof StringBuilder) { -+ this.pushStringBuilder(segment); -+ } -+ else { -+ this.pushPlaceholder(segment); -+ } -+ } -+ reduce() { -+ if (this.#placeholders.size === 0) { -+ return this.segments.join(""); -+ } -+ return this; -+ } -+ #shouldConcatLiteral() { -+ return this.segments.length > 0 && typeof this.segments[this.segments.length - 1] === "string"; -+ } -+} -+export function code(parts, ...substitutions) { -+ const builder = new StringBuilder(); -+ for (const [i, literalPart] of parts.entries()) { -+ builder.push(literalPart); -+ if (i < substitutions.length) { -+ const sub = substitutions[i]; -+ if (typeof sub === "string") { -+ builder.push(sub); -+ } -+ else if (sub instanceof StringBuilder) { -+ builder.pushStringBuilder(sub); -+ } -+ else if (sub instanceof Placeholder) { -+ builder.pushPlaceholder(sub); -+ } -+ else { -+ switch (sub.kind) { -+ case "circular": -+ case "none": -+ builder.pushLiteralSegment(""); -+ break; -+ default: -+ builder.push(sub.value); -+ } -+ } -+ } -+ } -+ return builder.reduce(); -+} -+//# sourceMappingURL=string-builder.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/builders/string-builder.js.map b/dist/src/emitter-framework/builders/string-builder.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..afca9ba155a6d62d4d66a52bc2829b32a355fbf4 ---- /dev/null -+++ b/dist/src/emitter-framework/builders/string-builder.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"string-builder.js","sourceRoot":"","sources":["../../../../src/emitter-framework/builders/string-builder.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/custom-key-map.d.ts b/dist/src/emitter-framework/custom-key-map.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..923c14e6bbb178e24baea5b8cb480f0631375329 ---- /dev/null -+++ b/dist/src/emitter-framework/custom-key-map.d.ts -@@ -0,0 +1,29 @@ -+/** -+ * This is a map type that allows providing a custom keyer function. The keyer -+ * function returns a string that is used to look up in the map. This is useful -+ * for implementing maps that look up based on an arbitrary number of keys. -+ * -+ * For example, to look up in a map with a [ObjA, ObjB)] tuple, such that tuples -+ * with identical values (but not necessarily identical tuples!) create an -+ * object keyer for each of the objects: -+ * -+ * const aKeyer = CustomKeyMap.objectKeyer(); -+ * const bKeyer = CUstomKeyMap.objectKeyer(); -+ * -+ * And compose these into a tuple keyer to use when instantiating the custom key -+ * map: -+ * -+ * const tupleKeyer = ([a, b]) => `${aKeyer.getKey(a)}-${bKeyer.getKey(b)}`; -+ * const map = new CustomKeyMap(tupleKeyer); -+ * -+ */ -+export declare class CustomKeyMap { -+ #private; -+ constructor(keyer: (args: K) => string); -+ get(items: K): V | undefined; -+ set(items: K, value: V): void; -+ static objectKeyer(): { -+ getKey(o: object): number | undefined; -+ }; -+} -+//# sourceMappingURL=custom-key-map.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/custom-key-map.d.ts.map b/dist/src/emitter-framework/custom-key-map.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ad34e72f3d895fba8b116f462718e9f86b5bb33d ---- /dev/null -+++ b/dist/src/emitter-framework/custom-key-map.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"custom-key-map.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/custom-key-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,CAAC;;gBAIvC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM;IAItC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI5B,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAK7B,MAAM,CAAC,WAAW;kBAIJ,MAAM;;CAYrB"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/custom-key-map.js b/dist/src/emitter-framework/custom-key-map.js -new file mode 100644 -index 0000000000000000000000000000000000000000..2ccbd6b7a20cd9ef21f6ff81b464001e99509522 ---- /dev/null -+++ b/dist/src/emitter-framework/custom-key-map.js -@@ -0,0 +1,49 @@ -+/** -+ * This is a map type that allows providing a custom keyer function. The keyer -+ * function returns a string that is used to look up in the map. This is useful -+ * for implementing maps that look up based on an arbitrary number of keys. -+ * -+ * For example, to look up in a map with a [ObjA, ObjB)] tuple, such that tuples -+ * with identical values (but not necessarily identical tuples!) create an -+ * object keyer for each of the objects: -+ * -+ * const aKeyer = CustomKeyMap.objectKeyer(); -+ * const bKeyer = CUstomKeyMap.objectKeyer(); -+ * -+ * And compose these into a tuple keyer to use when instantiating the custom key -+ * map: -+ * -+ * const tupleKeyer = ([a, b]) => `${aKeyer.getKey(a)}-${bKeyer.getKey(b)}`; -+ * const map = new CustomKeyMap(tupleKeyer); -+ * -+ */ -+export class CustomKeyMap { -+ #items = new Map(); -+ #keyer; -+ constructor(keyer) { -+ this.#keyer = keyer; -+ } -+ get(items) { -+ return this.#items.get(this.#keyer(items)); -+ } -+ set(items, value) { -+ const key = this.#keyer(items); -+ this.#items.set(key, value); -+ } -+ static objectKeyer() { -+ const knownKeys = new WeakMap(); -+ let count = 0; -+ return { -+ getKey(o) { -+ if (knownKeys.has(o)) { -+ return knownKeys.get(o); -+ } -+ const key = count; -+ count++; -+ knownKeys.set(o, key); -+ return key; -+ }, -+ }; -+ } -+} -+//# sourceMappingURL=custom-key-map.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/custom-key-map.js.map b/dist/src/emitter-framework/custom-key-map.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..7f6cad3ac396e2952b89dae044700e2ba1e77136 ---- /dev/null -+++ b/dist/src/emitter-framework/custom-key-map.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"custom-key-map.js","sourceRoot":"","sources":["../../../src/emitter-framework/custom-key-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,YAAY;IACvB,MAAM,GAAG,IAAI,GAAG,EAAa,CAAC;IAC9B,MAAM,CAAC;IAEP,YAAY,KAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,KAAQ,EAAE,KAAQ;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAkB,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO;YACL,MAAM,CAAC,CAAS;gBACd,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;gBAED,MAAM,GAAG,GAAG,KAAK,CAAC;gBAClB,KAAK,EAAE,CAAC;gBACR,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtB,OAAO,GAAG,CAAC;YACb,CAAC;SACF,CAAC;IACJ,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/index.d.ts b/dist/src/emitter-framework/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..439d7661e9379adea134d4c98c09e84e962963d3 ---- /dev/null -+++ b/dist/src/emitter-framework/index.d.ts -@@ -0,0 +1,9 @@ -+export * from "./asset-emitter.js"; -+export * from "./builders/array-builder.js"; -+export * from "./builders/object-builder.js"; -+export * from "./builders/string-builder.js"; -+export * from "./placeholder.js"; -+export { ReferenceCycle } from "./reference-cycle.js"; -+export * from "./type-emitter.js"; -+export * from "./types.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/index.d.ts.map b/dist/src/emitter-framework/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e549eed231778f76151380d7ebab35f51b99a10a ---- /dev/null -+++ b/dist/src/emitter-framework/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/index.js b/dist/src/emitter-framework/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..27b1a124b15b159bab2a27c7f7784aef51c65f1b ---- /dev/null -+++ b/dist/src/emitter-framework/index.js -@@ -0,0 +1,9 @@ -+export * from "./asset-emitter.js"; -+export * from "./builders/array-builder.js"; -+export * from "./builders/object-builder.js"; -+export * from "./builders/string-builder.js"; -+export * from "./placeholder.js"; -+export { ReferenceCycle } from "./reference-cycle.js"; -+export * from "./type-emitter.js"; -+export * from "./types.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/index.js.map b/dist/src/emitter-framework/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..fe76e4f1e17acae15940c26d630c7327463fb427 ---- /dev/null -+++ b/dist/src/emitter-framework/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/emitter-framework/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/placeholder.d.ts b/dist/src/emitter-framework/placeholder.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..654d526978be94a7a4690969a957d98e68ae78af ---- /dev/null -+++ b/dist/src/emitter-framework/placeholder.d.ts -@@ -0,0 +1,12 @@ -+/** -+ * Keeps track of a value we don't know yet because of a circular reference. Use -+ * the `onValue` method to provide a callback with how to handle the -+ * placeholder's value becoming available. Generally the callback will replace -+ * this placeholder with the value in whatever references the placeholder. -+ */ -+export declare class Placeholder { -+ #private; -+ setValue(value: T): void; -+ onValue(cb: (value: T) => void): void; -+} -+//# sourceMappingURL=placeholder.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/placeholder.d.ts.map b/dist/src/emitter-framework/placeholder.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..2c6a98b00064b4fa03a9ffbc0866133f69bb4631 ---- /dev/null -+++ b/dist/src/emitter-framework/placeholder.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"placeholder.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/placeholder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,CAAC;;IAExB,QAAQ,CAAC,KAAK,EAAE,CAAC;IAMjB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI;CAG/B"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/placeholder.js b/dist/src/emitter-framework/placeholder.js -new file mode 100644 -index 0000000000000000000000000000000000000000..afdbfdbd8e070e23d5e289b8d1e8231abb35557e ---- /dev/null -+++ b/dist/src/emitter-framework/placeholder.js -@@ -0,0 +1,18 @@ -+/** -+ * Keeps track of a value we don't know yet because of a circular reference. Use -+ * the `onValue` method to provide a callback with how to handle the -+ * placeholder's value becoming available. Generally the callback will replace -+ * this placeholder with the value in whatever references the placeholder. -+ */ -+export class Placeholder { -+ #listeners = []; -+ setValue(value) { -+ for (const listener of this.#listeners) { -+ listener(value); -+ } -+ } -+ onValue(cb) { -+ this.#listeners.push(cb); -+ } -+} -+//# sourceMappingURL=placeholder.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/placeholder.js.map b/dist/src/emitter-framework/placeholder.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..43a489833511764469d1cbe3cfe488cff8feee03 ---- /dev/null -+++ b/dist/src/emitter-framework/placeholder.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/emitter-framework/placeholder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB,UAAU,GAA2B,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAQ;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAsB;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/ref-scope.d.ts b/dist/src/emitter-framework/ref-scope.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..87f311708756f6f3bfa39621154487da9fd0cf93 ---- /dev/null -+++ b/dist/src/emitter-framework/ref-scope.d.ts -@@ -0,0 +1,14 @@ -+import type { Declaration, Scope } from "./types.js"; -+export declare function scopeChain(scope: Scope | null): (import("./types.js").SourceFileScope | import("./types.js").NamespaceScope)[]; -+/** -+ * Resolve relative scopes between the current scope and the target declaration. -+ * @param target The target declaration -+ * @param currentScope Current scope -+ * @returns -+ */ -+export declare function resolveDeclarationReferenceScope(target: Declaration, currentScope: Scope): { -+ pathUp: Scope[]; -+ pathDown: Scope[]; -+ commonScope: import("./types.js").SourceFileScope | import("./types.js").NamespaceScope; -+}; -+//# sourceMappingURL=ref-scope.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/ref-scope.d.ts.map b/dist/src/emitter-framework/ref-scope.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..0f755ca549300fad39c5036707a6ce8409a5d905 ---- /dev/null -+++ b/dist/src/emitter-framework/ref-scope.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"ref-scope.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/ref-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,wFAQnD;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,EAChD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;;;;EAmBvB"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/ref-scope.js b/dist/src/emitter-framework/ref-scope.js -new file mode 100644 -index 0000000000000000000000000000000000000000..610fad2463813e389e82c05cbb1062a2b3de9b98 ---- /dev/null -+++ b/dist/src/emitter-framework/ref-scope.js -@@ -0,0 +1,30 @@ -+export function scopeChain(scope) { -+ const chain = []; -+ while (scope) { -+ chain.unshift(scope); -+ scope = scope.parentScope; -+ } -+ return chain; -+} -+/** -+ * Resolve relative scopes between the current scope and the target declaration. -+ * @param target The target declaration -+ * @param currentScope Current scope -+ * @returns -+ */ -+export function resolveDeclarationReferenceScope(target, currentScope) { -+ const targetScope = target.scope; -+ const targetChain = scopeChain(targetScope); -+ const currentChain = scopeChain(currentScope); -+ let diffStart = 0; -+ while (targetChain[diffStart] && -+ currentChain[diffStart] && -+ targetChain[diffStart] === currentChain[diffStart]) { -+ diffStart++; -+ } -+ const pathUp = currentChain.slice(diffStart); -+ const pathDown = targetChain.slice(diffStart); -+ const commonScope = targetChain[diffStart - 1] ?? null; -+ return { pathUp, pathDown, commonScope }; -+} -+//# sourceMappingURL=ref-scope.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/ref-scope.js.map b/dist/src/emitter-framework/ref-scope.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a76a846b4808582db1a8d8a324b0f87a5e55626c ---- /dev/null -+++ b/dist/src/emitter-framework/ref-scope.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"ref-scope.js","sourceRoot":"","sources":["../../../src/emitter-framework/ref-scope.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAI,KAAsB;IAClD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,OAAO,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrB,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAsB,EACtB,YAAsB;IAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IACjC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OACE,WAAW,CAAC,SAAS,CAAC;QACtB,YAAY,CAAC,SAAS,CAAC;QACvB,WAAW,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,SAAS,CAAC,EAClD,CAAC;QACD,SAAS,EAAE,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAe,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAe,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACvD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/reference-cycle.d.ts b/dist/src/emitter-framework/reference-cycle.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..7e993e3c92a69ab8052a092cbd683e01623b4a48 ---- /dev/null -+++ b/dist/src/emitter-framework/reference-cycle.d.ts -@@ -0,0 +1,23 @@ -+import type { Type } from "../core/index.js"; -+import type { EmitEntity } from "./types.js"; -+export interface ReferenceCycleEntry { -+ type: Type; -+ entity: EmitEntity; -+} -+/** -+ * Represent a reference cycle. -+ * The cycle entries will always start with a declaration if there is one in the cycle. -+ */ -+export declare class ReferenceCycle implements Iterable { -+ #private; -+ /** -+ * If this cycle contains a declaration. -+ */ -+ readonly containsDeclaration: boolean; -+ constructor(entries: ReferenceCycleEntry[]); -+ get first(): ReferenceCycleEntry; -+ [Symbol.iterator](): Iterator; -+ [Symbol.toStringTag](): string; -+ toString(): string; -+} -+//# sourceMappingURL=reference-cycle.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/reference-cycle.d.ts.map b/dist/src/emitter-framework/reference-cycle.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..85035eb89dba9114dbd5c8ea0b250de8e48bdc45 ---- /dev/null -+++ b/dist/src/emitter-framework/reference-cycle.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"reference-cycle.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/reference-cycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,cAAe,YAAW,QAAQ,CAAC,mBAAmB,CAAC;;IAClE;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;gBAI1B,OAAO,EAAE,mBAAmB,EAAE;IAQ1C,IAAI,KAAK,IAAI,mBAAmB,CAE/B;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC;IAIlD,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM;IAI9B,QAAQ,IAAI,MAAM;CAGnB"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/reference-cycle.js b/dist/src/emitter-framework/reference-cycle.js -new file mode 100644 -index 0000000000000000000000000000000000000000..b3b40ba488a682a1dbcf325fc7cdf498091c9613 ---- /dev/null -+++ b/dist/src/emitter-framework/reference-cycle.js -@@ -0,0 +1,32 @@ -+import { getTypeName } from "../core/helpers/type-name-utils.js"; -+/** -+ * Represent a reference cycle. -+ * The cycle entries will always start with a declaration if there is one in the cycle. -+ */ -+export class ReferenceCycle { -+ /** -+ * If this cycle contains a declaration. -+ */ -+ containsDeclaration; -+ #entries; -+ constructor(entries) { -+ const firstDeclarationIndex = entries.findIndex((entry) => entry.entity.kind === "declaration"); -+ this.containsDeclaration = firstDeclarationIndex !== -1; -+ this.#entries = this.containsDeclaration -+ ? [...entries.slice(firstDeclarationIndex), ...entries.slice(0, firstDeclarationIndex)] -+ : entries; -+ } -+ get first() { -+ return this.#entries[0]; -+ } -+ [Symbol.iterator]() { -+ return this.#entries[Symbol.iterator](); -+ } -+ [Symbol.toStringTag]() { -+ return [...this.#entries, this.#entries[0]].map((x) => getTypeName(x.type)).join(" -> "); -+ } -+ toString() { -+ return this[Symbol.toStringTag](); -+ } -+} -+//# sourceMappingURL=reference-cycle.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/reference-cycle.js.map b/dist/src/emitter-framework/reference-cycle.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d2be6f823836093c6ffc2630112ee3656b76e46a ---- /dev/null -+++ b/dist/src/emitter-framework/reference-cycle.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"reference-cycle.js","sourceRoot":"","sources":["../../../src/emitter-framework/reference-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AASjE;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACM,mBAAmB,CAAU;IAEtC,QAAQ,CAAwB;IAEhC,YAAY,OAA8B;QACxC,MAAM,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAChG,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB;YACtC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;YACvF,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,CAAC,MAAM,CAAC,WAAW,CAAC;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;IACpC,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/type-emitter.d.ts b/dist/src/emitter-framework/type-emitter.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..1a2e0227e11ee97669e7e78921c1ddc9a3bd362c ---- /dev/null -+++ b/dist/src/emitter-framework/type-emitter.d.ts -@@ -0,0 +1,349 @@ -+import type { Program } from "../core/program.js"; -+import type { BooleanLiteral, Enum, EnumMember, Interface, IntrinsicType, Model, ModelProperty, Namespace, NumericLiteral, Operation, Scalar, StringLiteral, StringTemplate, Tuple, Type, Union, UnionVariant } from "../core/types.js"; -+import { Placeholder } from "./placeholder.js"; -+import { ReferenceCycle } from "./reference-cycle.js"; -+import { AssetEmitter, Context, Declaration, EmitEntity, EmittedSourceFile, Scope, SourceFile, TypeSpecDeclaration } from "./types.js"; -+export type EmitterOutput = EmitEntity | Placeholder | T; -+/** -+ * Implement emitter logic by extending this class and passing it to -+ * `emitContext.createAssetEmitter`. This class should not be constructed -+ * directly. -+ * -+ * TypeEmitters serve two primary purposes: -+ * -+ * 1. Handle emitting TypeSpec types into other languages -+ * 2. Set emitter context -+ * -+ * The generic type parameter `T` is the type you expect to produce for each TypeSpec type. -+ * In the case of generating source code for a programming language, this is probably `string` -+ * (in which case, consider using the `CodeTypeEmitter`) but might also be an AST node. If you -+ * are emitting JSON or similar, `T` would likely be `object`. -+ * -+ * ## Emitting types -+ * -+ * Emitting TypeSpec types into other languages is accomplished by implementing -+ * the AssetEmitter method that corresponds with the TypeSpec type you are -+ * emitting. For example, to emit a TypeSpec model declaration, implement the -+ * `modelDeclaration` method. -+ * -+ * TypeSpec types that have both declaration and literal forms like models or -+ * unions will have separate methods. For example, models have both -+ * `modelDeclaration` and `modelLiteral` methods that can be implemented -+ * separately. -+ * -+ * Also, types which can be instantiated like models or operations have a -+ * separate method for the instantiated type. For example, models have a -+ * `modelInstantiation` method that gets called with such types. Generally these -+ * will be treated either as if they were declarations or literals depending on -+ * preference, but may also be treated specially. -+ * -+ * ## Emitter results -+ * There are three kinds of results your methods might return - declarations, -+ * raw code, or nothing. -+ * -+ * ### Declarations -+ * -+ * Create declarations by calling `this.emitter.result.declaration` passing it a -+ * name and the emit output for the declaration. Note that you must have scope -+ * in your context or you will get an error. If you want all declarations to be -+ * emitted to the same source file, you can create a single scope in -+ * `programContext` via something like: -+ * -+ * ```typescript -+ * programContext(program: Program): Context { -+ * const sourceFile = this.emitter.createSourceFile("test.txt"); -+ * return { -+ * scope: sourceFile.globalScope, -+ * }; -+ * } -+ * ``` -+ * -+ * ### Raw Code -+ * -+ * Create raw code, or emitter output that doesn't contribute to a declaration, -+ * by calling `this.emitter.result.rawCode` passing it a value. Returning just a -+ * value is considered raw code and so you often don't need to call this -+ * directly. -+ * -+ * ### No Emit -+ * -+ * When a type doesn't contribute anything to the emitted output, return -+ * `this.emitter.result.none()`. -+ * -+ * ## Context -+ * -+ * The TypeEmitter will often want to keep track of what context a type is found -+ * in. There are two kinds of context - lexical context, and reference context. -+ * -+ * * Lexical context is context that applies to the type and every type -+ * contained inside of it. For example, lexical context for a model will apply -+ * to the model, its properties, and any nested model literals. -+ * * Reference context is context that applies to types contained inside of the -+ * type and referenced anywhere inside of it. For example, reference context -+ * set on a model will apply to the model, its properties, any nested model -+ * literals, and any type referenced inside anywhere inside the model and any -+ * of the referenced types' references. -+ * -+ * In both cases, context is an object. It's strongly recommended that the context -+ * object either contain only primitive types, or else only reference immutable -+ * objects. -+ * -+ * Set lexical by implementing the `*Context` methods of the TypeEmitter and -+ * returning the context, for example `modelDeclarationContext` sets the context -+ * for model declarations and the types contained inside of it. -+ * -+ * Set reference context by implementing the `*ReferenceContext` methods of the -+ * TypeEmitter and returning the context. Note that not all types have reference -+ * context methods, because not all types can actually reference anything. -+ * -+ * When a context method returns some context, it is merged with the current -+ * context. It is not possible to remove previous context, but it can be -+ * overridden with `undefined`. -+ * -+ * When emitting types with context, the same type might be emitted multiple -+ * times if we come across that type with different contexts. For example, if we -+ * have a TypeSpec program like -+ * -+ * ```typespec -+ * model Pet { } -+ * model Person { -+ * pet: Pet; -+ * } -+ * ``` -+ * -+ * And we set reference context for the Person model, Pet will be emitted twice, -+ * once without context and once with the reference context. -+ */ -+export declare class TypeEmitter> { -+ protected emitter: AssetEmitter; -+ /** -+ * @private -+ * -+ * Constructs a TypeEmitter. Do not use this constructor directly, instead -+ * call `createAssetEmitter` on the emitter context object. -+ * @param emitter The asset emitter -+ */ -+ constructor(emitter: AssetEmitter); -+ /** -+ * Context shared by the entire program. In cases where you are emitting to a -+ * single file, use this method to establish your main source file and set the -+ * `scope` property to that source file's `globalScope`. -+ * @param program -+ * @returns Context -+ */ -+ programContext(program: Program): Context; -+ /** -+ * Emit a namespace -+ * -+ * @param namespace -+ * @returns Emitter output -+ */ -+ namespace(namespace: Namespace): EmitterOutput; -+ /** -+ * Set lexical context for a namespace -+ * -+ * @param namespace -+ */ -+ namespaceContext(namespace: Namespace): Context; -+ /** -+ * Set reference context for a namespace. -+ * -+ * @param namespace -+ */ -+ namespaceReferenceContext(namespace: Namespace): Context; -+ /** -+ * Emit a model literal (e.g. as created by `{}` syntax in TypeSpec). -+ * -+ * @param model -+ */ -+ modelLiteral(model: Model): EmitterOutput; -+ /** -+ * Set lexical context for a model literal. -+ * @param model -+ */ -+ modelLiteralContext(model: Model): Context; -+ /** -+ * Set reference context for a model literal. -+ * @param model -+ */ -+ modelLiteralReferenceContext(model: Model): Context; -+ /** -+ * Emit a model declaration (e.g. as created by `model Foo { }` syntax in -+ * TypeSpec). -+ * -+ * @param model -+ */ -+ modelDeclaration(model: Model, name: string): EmitterOutput; -+ /** -+ * Set lexical context for a model declaration. -+ * -+ * @param model -+ * @param name the model's declaration name as retrieved from the -+ * `declarationName` method. -+ */ -+ modelDeclarationContext(model: Model, name: string): Context; -+ /** -+ * Set reference context for a model declaration. -+ * @param model -+ */ -+ modelDeclarationReferenceContext(model: Model, name: string): Context; -+ /** -+ * Emit a model instantiation (e.g. as created by `Box` syntax in -+ * TypeSpec). In some cases, `name` is undefined because a good name could -+ * not be found for the instantiation. This often occurs with for instantiations -+ * involving type expressions like `Box`. -+ * -+ * @param model -+ * @param name The name of the instantiation as retrieved from the -+ * `declarationName` method. -+ */ -+ modelInstantiation(model: Model, name: string | undefined): EmitterOutput; -+ /** -+ * Set lexical context for a model instantiation. -+ * @param model -+ */ -+ modelInstantiationContext(model: Model, name: string | undefined): Context; -+ /** -+ * Set reference context for a model declaration. -+ * @param model -+ */ -+ modelInstantiationReferenceContext(model: Model, name: string | undefined): Context; -+ /** -+ * Emit a model's properties. Unless overridden, this method will emit each of -+ * the model's properties and return a no emit result. -+ * -+ * @param model -+ */ -+ modelProperties(model: Model): EmitterOutput; -+ modelPropertiesContext(model: Model): Context; -+ modelPropertiesReferenceContext(model: Model): Context; -+ /** -+ * Emit a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteral(property: ModelProperty): EmitterOutput; -+ /** -+ * Set lexical context for a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteralContext(property: ModelProperty): Context; -+ /** -+ * Set reference context for a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteralReferenceContext(property: ModelProperty): Context; -+ /** -+ * Emit a model property reference (e.g. as created by the `SomeModel.prop` -+ * syntax in TypeSpec). By default, this will emit the type of the referenced -+ * property and return that result. In other words, the emit will look as if -+ * `SomeModel.prop` were replaced with the type of `prop`. -+ * -+ * @param property -+ */ -+ modelPropertyReference(property: ModelProperty): EmitterOutput; -+ /** -+ * Emit an enum member reference (e.g. as created by the `SomeEnum.member` syntax -+ * in TypeSpec). By default, this will emit nothing. -+ * -+ * @param property the enum member -+ */ -+ enumMemberReference(member: EnumMember): EmitterOutput; -+ arrayDeclaration(array: Model, name: string, elementType: Type): EmitterOutput; -+ arrayDeclarationContext(array: Model, name: string, elementType: Type): Context; -+ arrayDeclarationReferenceContext(array: Model, name: string, elementType: Type): Context; -+ arrayLiteral(array: Model, elementType: Type): EmitterOutput; -+ arrayLiteralContext(array: Model, elementType: Type): Context; -+ arrayLiteralReferenceContext(array: Model, elementType: Type): Context; -+ scalarDeclaration(scalar: Scalar, name: string): EmitterOutput; -+ scalarDeclarationContext(scalar: Scalar, name: string): Context; -+ scalarDeclarationReferenceContext(scalar: Scalar, name: string): Context; -+ scalarInstantiation(scalar: Scalar, name: string | undefined): EmitterOutput; -+ scalarInstantiationContext(scalar: Scalar, name: string | undefined): Context; -+ intrinsic(intrinsic: IntrinsicType, name: string): EmitterOutput; -+ intrinsicContext(intrinsic: IntrinsicType, name: string): Context; -+ booleanLiteralContext(boolean: BooleanLiteral): Context; -+ booleanLiteral(boolean: BooleanLiteral): EmitterOutput; -+ stringTemplateContext(string: StringTemplate): Context; -+ stringTemplate(stringTemplate: StringTemplate): EmitterOutput; -+ stringLiteralContext(string: StringLiteral): Context; -+ stringLiteral(string: StringLiteral): EmitterOutput; -+ numericLiteralContext(number: NumericLiteral): Context; -+ numericLiteral(number: NumericLiteral): EmitterOutput; -+ operationDeclaration(operation: Operation, name: string): EmitterOutput; -+ operationDeclarationContext(operation: Operation, name: string): Context; -+ operationDeclarationReferenceContext(operation: Operation, name: string): Context; -+ interfaceDeclarationOperationsContext(iface: Interface): Context; -+ interfaceDeclarationOperationsReferenceContext(iface: Interface): Context; -+ interfaceOperationDeclarationContext(operation: Operation, name: string): Context; -+ interfaceOperationDeclarationReferenceContext(operation: Operation, name: string): Context; -+ operationParameters(operation: Operation, parameters: Model): EmitterOutput; -+ operationParametersContext(operation: Operation, parameters: Model): Context; -+ operationParametersReferenceContext(operation: Operation, parameters: Model): Context; -+ operationReturnType(operation: Operation, returnType: Type): EmitterOutput; -+ operationReturnTypeContext(operation: Operation, returnType: Type): Context; -+ operationReturnTypeReferenceContext(operation: Operation, returnType: Type): Context; -+ interfaceDeclaration(iface: Interface, name: string): EmitterOutput; -+ interfaceDeclarationContext(iface: Interface, name: string): Context; -+ interfaceDeclarationReferenceContext(iface: Interface, name: string): Context; -+ interfaceDeclarationOperations(iface: Interface): EmitterOutput; -+ interfaceOperationDeclaration(operation: Operation, name: string): EmitterOutput; -+ enumDeclaration(en: Enum, name: string): EmitterOutput; -+ enumDeclarationContext(en: Enum, name: string): Context; -+ enumDeclarationReferenceContext(en: Enum, name: string): Context; -+ enumMembers(en: Enum): EmitterOutput; -+ enumMembersContext(en: Enum): Context; -+ enumMember(member: EnumMember): EmitterOutput; -+ enumMemberContext(member: EnumMember): {}; -+ unionDeclaration(union: Union, name: string): EmitterOutput; -+ unionDeclarationContext(union: Union): Context; -+ unionDeclarationReferenceContext(union: Union): Context; -+ unionInstantiation(union: Union, name: string): EmitterOutput; -+ unionInstantiationContext(union: Union, name: string): Context; -+ unionInstantiationReferenceContext(union: Union, name: string): Context; -+ unionLiteral(union: Union): EmitterOutput; -+ unionLiteralContext(union: Union): Context; -+ unionLiteralReferenceContext(union: Union): Context; -+ unionVariants(union: Union): EmitterOutput; -+ unionVariantsContext(): Context; -+ unionVariantsReferenceContext(): Context; -+ unionVariant(variant: UnionVariant): EmitterOutput; -+ unionVariantContext(union: Union): Context; -+ unionVariantReferenceContext(union: Union): Context; -+ tupleLiteral(tuple: Tuple): EmitterOutput; -+ tupleLiteralContext(tuple: Tuple): Context; -+ tupleLiteralValues(tuple: Tuple): EmitterOutput; -+ tupleLiteralValuesContext(tuple: Tuple): Context; -+ tupleLiteralValuesReferenceContext(tuple: Tuple): Context; -+ tupleLiteralReferenceContext(tuple: Tuple): Context; -+ sourceFile(sourceFile: SourceFile): Promise | EmittedSourceFile; -+ writeOutput(sourceFiles: SourceFile[]): Promise; -+ reference(targetDeclaration: Declaration, pathUp: Scope[], pathDown: Scope[], commonScope: Scope | null): EmitEntity | T; -+ /** -+ * Handle circular references. When this method is called it means we are resolving a circular reference. -+ * By default if the target is a declaration it will call to {@link reference} otherwise it means we have an inline reference -+ * @param target Reference target. -+ * @param scope Current scope. -+ * @returns Resolved reference entity. -+ */ -+ circularReference(target: EmitEntity, scope: Scope | undefined, cycle: ReferenceCycle): EmitEntity | T; -+ declarationName(declarationType: TypeSpecDeclaration): string | undefined; -+} -+/** -+ * A subclass of `TypeEmitter` that makes working with strings a bit easier. -+ * In particular, when emitting members of a type (`modelProperties`, `enumMembers`, etc.), -+ * instead of returning no result, it returns the value of each of the members concatenated -+ * by commas. It will also construct references by concatenating namespace elements together -+ * with `.` which should work nicely in many object oriented languages. -+ */ -+export declare class CodeTypeEmitter> extends TypeEmitter { -+ modelProperties(model: Model): EmitterOutput; -+ interfaceDeclarationOperations(iface: Interface): EmitterOutput; -+ enumMembers(en: Enum): EmitterOutput; -+ unionVariants(union: Union): EmitterOutput; -+ tupleLiteralValues(tuple: Tuple): EmitterOutput; -+ reference(targetDeclaration: Declaration, pathUp: Scope[], pathDown: Scope[], commonScope: Scope | null): string | EmitEntity; -+} -+//# sourceMappingURL=type-emitter.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/type-emitter.d.ts.map b/dist/src/emitter-framework/type-emitter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..2d730d65f3356673be506ac5d1777a614531c22f ---- /dev/null -+++ b/dist/src/emitter-framework/type-emitter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"type-emitter.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/type-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/type-emitter.js b/dist/src/emitter-framework/type-emitter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..66cb38349f1034f5bbdf7e0ef107d042227c03ed ---- /dev/null -+++ b/dist/src/emitter-framework/type-emitter.js -@@ -0,0 +1,721 @@ -+import { compilerAssert } from "../core/diagnostics.js"; -+import { emitFile } from "../core/emitter-utils.js"; -+import { isTemplateDeclaration } from "../core/type-utils.js"; -+import { StringBuilder, code } from "./builders/string-builder.js"; -+import { resolveDeclarationReferenceScope } from "./ref-scope.js"; -+/** -+ * Implement emitter logic by extending this class and passing it to -+ * `emitContext.createAssetEmitter`. This class should not be constructed -+ * directly. -+ * -+ * TypeEmitters serve two primary purposes: -+ * -+ * 1. Handle emitting TypeSpec types into other languages -+ * 2. Set emitter context -+ * -+ * The generic type parameter `T` is the type you expect to produce for each TypeSpec type. -+ * In the case of generating source code for a programming language, this is probably `string` -+ * (in which case, consider using the `CodeTypeEmitter`) but might also be an AST node. If you -+ * are emitting JSON or similar, `T` would likely be `object`. -+ * -+ * ## Emitting types -+ * -+ * Emitting TypeSpec types into other languages is accomplished by implementing -+ * the AssetEmitter method that corresponds with the TypeSpec type you are -+ * emitting. For example, to emit a TypeSpec model declaration, implement the -+ * `modelDeclaration` method. -+ * -+ * TypeSpec types that have both declaration and literal forms like models or -+ * unions will have separate methods. For example, models have both -+ * `modelDeclaration` and `modelLiteral` methods that can be implemented -+ * separately. -+ * -+ * Also, types which can be instantiated like models or operations have a -+ * separate method for the instantiated type. For example, models have a -+ * `modelInstantiation` method that gets called with such types. Generally these -+ * will be treated either as if they were declarations or literals depending on -+ * preference, but may also be treated specially. -+ * -+ * ## Emitter results -+ * There are three kinds of results your methods might return - declarations, -+ * raw code, or nothing. -+ * -+ * ### Declarations -+ * -+ * Create declarations by calling `this.emitter.result.declaration` passing it a -+ * name and the emit output for the declaration. Note that you must have scope -+ * in your context or you will get an error. If you want all declarations to be -+ * emitted to the same source file, you can create a single scope in -+ * `programContext` via something like: -+ * -+ * ```typescript -+ * programContext(program: Program): Context { -+ * const sourceFile = this.emitter.createSourceFile("test.txt"); -+ * return { -+ * scope: sourceFile.globalScope, -+ * }; -+ * } -+ * ``` -+ * -+ * ### Raw Code -+ * -+ * Create raw code, or emitter output that doesn't contribute to a declaration, -+ * by calling `this.emitter.result.rawCode` passing it a value. Returning just a -+ * value is considered raw code and so you often don't need to call this -+ * directly. -+ * -+ * ### No Emit -+ * -+ * When a type doesn't contribute anything to the emitted output, return -+ * `this.emitter.result.none()`. -+ * -+ * ## Context -+ * -+ * The TypeEmitter will often want to keep track of what context a type is found -+ * in. There are two kinds of context - lexical context, and reference context. -+ * -+ * * Lexical context is context that applies to the type and every type -+ * contained inside of it. For example, lexical context for a model will apply -+ * to the model, its properties, and any nested model literals. -+ * * Reference context is context that applies to types contained inside of the -+ * type and referenced anywhere inside of it. For example, reference context -+ * set on a model will apply to the model, its properties, any nested model -+ * literals, and any type referenced inside anywhere inside the model and any -+ * of the referenced types' references. -+ * -+ * In both cases, context is an object. It's strongly recommended that the context -+ * object either contain only primitive types, or else only reference immutable -+ * objects. -+ * -+ * Set lexical by implementing the `*Context` methods of the TypeEmitter and -+ * returning the context, for example `modelDeclarationContext` sets the context -+ * for model declarations and the types contained inside of it. -+ * -+ * Set reference context by implementing the `*ReferenceContext` methods of the -+ * TypeEmitter and returning the context. Note that not all types have reference -+ * context methods, because not all types can actually reference anything. -+ * -+ * When a context method returns some context, it is merged with the current -+ * context. It is not possible to remove previous context, but it can be -+ * overridden with `undefined`. -+ * -+ * When emitting types with context, the same type might be emitted multiple -+ * times if we come across that type with different contexts. For example, if we -+ * have a TypeSpec program like -+ * -+ * ```typespec -+ * model Pet { } -+ * model Person { -+ * pet: Pet; -+ * } -+ * ``` -+ * -+ * And we set reference context for the Person model, Pet will be emitted twice, -+ * once without context and once with the reference context. -+ */ -+export class TypeEmitter { -+ emitter; -+ /** -+ * @private -+ * -+ * Constructs a TypeEmitter. Do not use this constructor directly, instead -+ * call `createAssetEmitter` on the emitter context object. -+ * @param emitter The asset emitter -+ */ -+ constructor(emitter) { -+ this.emitter = emitter; -+ } -+ /** -+ * Context shared by the entire program. In cases where you are emitting to a -+ * single file, use this method to establish your main source file and set the -+ * `scope` property to that source file's `globalScope`. -+ * @param program -+ * @returns Context -+ */ -+ programContext(program) { -+ return {}; -+ } -+ /** -+ * Emit a namespace -+ * -+ * @param namespace -+ * @returns Emitter output -+ */ -+ namespace(namespace) { -+ for (const ns of namespace.namespaces.values()) { -+ this.emitter.emitType(ns); -+ } -+ for (const model of namespace.models.values()) { -+ if (!isTemplateDeclaration(model)) { -+ this.emitter.emitType(model); -+ } -+ } -+ for (const operation of namespace.operations.values()) { -+ if (!isTemplateDeclaration(operation)) { -+ this.emitter.emitType(operation); -+ } -+ } -+ for (const enumeration of namespace.enums.values()) { -+ this.emitter.emitType(enumeration); -+ } -+ for (const union of namespace.unions.values()) { -+ if (!isTemplateDeclaration(union)) { -+ this.emitter.emitType(union); -+ } -+ } -+ for (const iface of namespace.interfaces.values()) { -+ if (!isTemplateDeclaration(iface)) { -+ this.emitter.emitType(iface); -+ } -+ } -+ for (const scalar of namespace.scalars.values()) { -+ this.emitter.emitType(scalar); -+ } -+ return this.emitter.result.none(); -+ } -+ /** -+ * Set lexical context for a namespace -+ * -+ * @param namespace -+ */ -+ namespaceContext(namespace) { -+ return {}; -+ } -+ /** -+ * Set reference context for a namespace. -+ * -+ * @param namespace -+ */ -+ namespaceReferenceContext(namespace) { -+ return {}; -+ } -+ /** -+ * Emit a model literal (e.g. as created by `{}` syntax in TypeSpec). -+ * -+ * @param model -+ */ -+ modelLiteral(model) { -+ if (model.baseModel) { -+ this.emitter.emitType(model.baseModel); -+ } -+ this.emitter.emitModelProperties(model); -+ return this.emitter.result.none(); -+ } -+ /** -+ * Set lexical context for a model literal. -+ * @param model -+ */ -+ modelLiteralContext(model) { -+ return {}; -+ } -+ /** -+ * Set reference context for a model literal. -+ * @param model -+ */ -+ modelLiteralReferenceContext(model) { -+ return {}; -+ } -+ /** -+ * Emit a model declaration (e.g. as created by `model Foo { }` syntax in -+ * TypeSpec). -+ * -+ * @param model -+ */ -+ modelDeclaration(model, name) { -+ if (model.baseModel) { -+ this.emitter.emitType(model.baseModel); -+ } -+ this.emitter.emitModelProperties(model); -+ return this.emitter.result.none(); -+ } -+ /** -+ * Set lexical context for a model declaration. -+ * -+ * @param model -+ * @param name the model's declaration name as retrieved from the -+ * `declarationName` method. -+ */ -+ modelDeclarationContext(model, name) { -+ return {}; -+ } -+ /** -+ * Set reference context for a model declaration. -+ * @param model -+ */ -+ modelDeclarationReferenceContext(model, name) { -+ return {}; -+ } -+ /** -+ * Emit a model instantiation (e.g. as created by `Box` syntax in -+ * TypeSpec). In some cases, `name` is undefined because a good name could -+ * not be found for the instantiation. This often occurs with for instantiations -+ * involving type expressions like `Box`. -+ * -+ * @param model -+ * @param name The name of the instantiation as retrieved from the -+ * `declarationName` method. -+ */ -+ modelInstantiation(model, name) { -+ if (model.baseModel) { -+ this.emitter.emitType(model.baseModel); -+ } -+ this.emitter.emitModelProperties(model); -+ return this.emitter.result.none(); -+ } -+ /** -+ * Set lexical context for a model instantiation. -+ * @param model -+ */ -+ modelInstantiationContext(model, name) { -+ return {}; -+ } -+ /** -+ * Set reference context for a model declaration. -+ * @param model -+ */ -+ modelInstantiationReferenceContext(model, name) { -+ return {}; -+ } -+ /** -+ * Emit a model's properties. Unless overridden, this method will emit each of -+ * the model's properties and return a no emit result. -+ * -+ * @param model -+ */ -+ modelProperties(model) { -+ for (const prop of model.properties.values()) { -+ this.emitter.emitModelProperty(prop); -+ } -+ return this.emitter.result.none(); -+ } -+ modelPropertiesContext(model) { -+ return {}; -+ } -+ modelPropertiesReferenceContext(model) { -+ return {}; -+ } -+ /** -+ * Emit a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteral(property) { -+ this.emitter.emitTypeReference(property.type); -+ return this.emitter.result.none(); -+ } -+ /** -+ * Set lexical context for a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteralContext(property) { -+ return {}; -+ } -+ /** -+ * Set reference context for a property of a model. -+ * -+ * @param property -+ */ -+ modelPropertyLiteralReferenceContext(property) { -+ return {}; -+ } -+ /** -+ * Emit a model property reference (e.g. as created by the `SomeModel.prop` -+ * syntax in TypeSpec). By default, this will emit the type of the referenced -+ * property and return that result. In other words, the emit will look as if -+ * `SomeModel.prop` were replaced with the type of `prop`. -+ * -+ * @param property -+ */ -+ modelPropertyReference(property) { -+ return this.emitter.emitTypeReference(property.type); -+ } -+ /** -+ * Emit an enum member reference (e.g. as created by the `SomeEnum.member` syntax -+ * in TypeSpec). By default, this will emit nothing. -+ * -+ * @param property the enum member -+ */ -+ enumMemberReference(member) { -+ return this.emitter.result.none(); -+ } -+ arrayDeclaration(array, name, elementType) { -+ this.emitter.emitType(array.indexer.value); -+ return this.emitter.result.none(); -+ } -+ arrayDeclarationContext(array, name, elementType) { -+ return {}; -+ } -+ arrayDeclarationReferenceContext(array, name, elementType) { -+ return {}; -+ } -+ arrayLiteral(array, elementType) { -+ return this.emitter.result.none(); -+ } -+ arrayLiteralContext(array, elementType) { -+ return {}; -+ } -+ arrayLiteralReferenceContext(array, elementType) { -+ return {}; -+ } -+ scalarDeclaration(scalar, name) { -+ if (scalar.baseScalar) { -+ this.emitter.emitType(scalar.baseScalar); -+ } -+ return this.emitter.result.none(); -+ } -+ scalarDeclarationContext(scalar, name) { -+ return {}; -+ } -+ scalarDeclarationReferenceContext(scalar, name) { -+ return {}; -+ } -+ scalarInstantiation(scalar, name) { -+ return this.emitter.result.none(); -+ } -+ scalarInstantiationContext(scalar, name) { -+ return {}; -+ } -+ intrinsic(intrinsic, name) { -+ return this.emitter.result.none(); -+ } -+ intrinsicContext(intrinsic, name) { -+ return {}; -+ } -+ booleanLiteralContext(boolean) { -+ return {}; -+ } -+ booleanLiteral(boolean) { -+ return this.emitter.result.none(); -+ } -+ stringTemplateContext(string) { -+ return {}; -+ } -+ stringTemplate(stringTemplate) { -+ return this.emitter.result.none(); -+ } -+ stringLiteralContext(string) { -+ return {}; -+ } -+ stringLiteral(string) { -+ return this.emitter.result.none(); -+ } -+ numericLiteralContext(number) { -+ return {}; -+ } -+ numericLiteral(number) { -+ return this.emitter.result.none(); -+ } -+ operationDeclaration(operation, name) { -+ this.emitter.emitOperationParameters(operation); -+ this.emitter.emitOperationReturnType(operation); -+ return this.emitter.result.none(); -+ } -+ operationDeclarationContext(operation, name) { -+ return {}; -+ } -+ operationDeclarationReferenceContext(operation, name) { -+ return {}; -+ } -+ interfaceDeclarationOperationsContext(iface) { -+ return {}; -+ } -+ interfaceDeclarationOperationsReferenceContext(iface) { -+ return {}; -+ } -+ interfaceOperationDeclarationContext(operation, name) { -+ return {}; -+ } -+ interfaceOperationDeclarationReferenceContext(operation, name) { -+ return {}; -+ } -+ operationParameters(operation, parameters) { -+ return this.emitter.result.none(); -+ } -+ operationParametersContext(operation, parameters) { -+ return {}; -+ } -+ operationParametersReferenceContext(operation, parameters) { -+ return {}; -+ } -+ operationReturnType(operation, returnType) { -+ return this.emitter.result.none(); -+ } -+ operationReturnTypeContext(operation, returnType) { -+ return {}; -+ } -+ operationReturnTypeReferenceContext(operation, returnType) { -+ return {}; -+ } -+ interfaceDeclaration(iface, name) { -+ this.emitter.emitInterfaceOperations(iface); -+ return this.emitter.result.none(); -+ } -+ interfaceDeclarationContext(iface, name) { -+ return {}; -+ } -+ interfaceDeclarationReferenceContext(iface, name) { -+ return {}; -+ } -+ interfaceDeclarationOperations(iface) { -+ for (const op of iface.operations.values()) { -+ this.emitter.emitInterfaceOperation(op); -+ } -+ return this.emitter.result.none(); -+ } -+ interfaceOperationDeclaration(operation, name) { -+ this.emitter.emitOperationParameters(operation); -+ this.emitter.emitOperationReturnType(operation); -+ return this.emitter.result.none(); -+ } -+ enumDeclaration(en, name) { -+ this.emitter.emitEnumMembers(en); -+ return this.emitter.result.none(); -+ } -+ enumDeclarationContext(en, name) { -+ return {}; -+ } -+ enumDeclarationReferenceContext(en, name) { -+ return {}; -+ } -+ enumMembers(en) { -+ for (const member of en.members.values()) { -+ this.emitter.emitType(member); -+ } -+ return this.emitter.result.none(); -+ } -+ enumMembersContext(en) { -+ return {}; -+ } -+ enumMember(member) { -+ return this.emitter.result.none(); -+ } -+ enumMemberContext(member) { -+ return {}; -+ } -+ unionDeclaration(union, name) { -+ this.emitter.emitUnionVariants(union); -+ return this.emitter.result.none(); -+ } -+ unionDeclarationContext(union) { -+ return {}; -+ } -+ unionDeclarationReferenceContext(union) { -+ return {}; -+ } -+ unionInstantiation(union, name) { -+ this.emitter.emitUnionVariants(union); -+ return this.emitter.result.none(); -+ } -+ unionInstantiationContext(union, name) { -+ return {}; -+ } -+ unionInstantiationReferenceContext(union, name) { -+ return {}; -+ } -+ unionLiteral(union) { -+ this.emitter.emitUnionVariants(union); -+ return this.emitter.result.none(); -+ } -+ unionLiteralContext(union) { -+ return {}; -+ } -+ unionLiteralReferenceContext(union) { -+ return {}; -+ } -+ unionVariants(union) { -+ for (const variant of union.variants.values()) { -+ this.emitter.emitType(variant); -+ } -+ return this.emitter.result.none(); -+ } -+ unionVariantsContext() { -+ return {}; -+ } -+ unionVariantsReferenceContext() { -+ return {}; -+ } -+ unionVariant(variant) { -+ this.emitter.emitTypeReference(variant.type); -+ return this.emitter.result.none(); -+ } -+ unionVariantContext(union) { -+ return {}; -+ } -+ unionVariantReferenceContext(union) { -+ return {}; -+ } -+ tupleLiteral(tuple) { -+ this.emitter.emitTupleLiteralValues(tuple); -+ return this.emitter.result.none(); -+ } -+ tupleLiteralContext(tuple) { -+ return {}; -+ } -+ tupleLiteralValues(tuple) { -+ for (const value of tuple.values.values()) { -+ this.emitter.emitType(value); -+ } -+ return this.emitter.result.none(); -+ } -+ tupleLiteralValuesContext(tuple) { -+ return {}; -+ } -+ tupleLiteralValuesReferenceContext(tuple) { -+ return {}; -+ } -+ tupleLiteralReferenceContext(tuple) { -+ return {}; -+ } -+ sourceFile(sourceFile) { -+ const emittedSourceFile = { -+ path: sourceFile.path, -+ contents: "", -+ }; -+ for (const decl of sourceFile.globalScope.declarations) { -+ emittedSourceFile.contents += decl.value + "\n"; -+ } -+ return emittedSourceFile; -+ } -+ async writeOutput(sourceFiles) { -+ for (const file of sourceFiles) { -+ const outputFile = await this.emitter.emitSourceFile(file); -+ await emitFile(this.emitter.getProgram(), { -+ path: outputFile.path, -+ content: outputFile.contents, -+ }); -+ } -+ } -+ reference(targetDeclaration, pathUp, pathDown, commonScope) { -+ return this.emitter.result.none(); -+ } -+ /** -+ * Handle circular references. When this method is called it means we are resolving a circular reference. -+ * By default if the target is a declaration it will call to {@link reference} otherwise it means we have an inline reference -+ * @param target Reference target. -+ * @param scope Current scope. -+ * @returns Resolved reference entity. -+ */ -+ circularReference(target, scope, cycle) { -+ if (!cycle.containsDeclaration) { -+ throw new Error(`Circular references to non-declarations are not supported by this emitter. Cycle:\n${cycle}`); -+ } -+ if (target.kind !== "declaration") { -+ return target; -+ } -+ compilerAssert(scope, "Emit context must have a scope set in order to create references to declarations."); -+ const { pathUp, pathDown, commonScope } = resolveDeclarationReferenceScope(target, scope); -+ return this.reference(target, pathUp, pathDown, commonScope); -+ } -+ declarationName(declarationType) { -+ compilerAssert(declarationType.name !== undefined, "Can't emit a declaration that doesn't have a name."); -+ if (declarationType.kind === "Enum" || declarationType.kind === "Intrinsic") { -+ return declarationType.name; -+ } -+ // for operations inside interfaces, we don't want to do the fancy thing because it will make -+ // operations inside instantiated interfaces get weird names -+ if (declarationType.kind === "Operation" && declarationType.interface) { -+ return declarationType.name; -+ } -+ if (!declarationType.templateMapper) { -+ return declarationType.name; -+ } -+ let unspeakable = false; -+ const parameterNames = declarationType.templateMapper.args.map((t) => { -+ if (t.entityKind === "Indeterminate") { -+ t = t.type; -+ } -+ if (!("kind" in t)) { -+ return undefined; -+ } -+ switch (t.kind) { -+ case "Model": -+ case "Scalar": -+ case "Interface": -+ case "Operation": -+ case "Enum": -+ case "Union": -+ case "Intrinsic": -+ if (!t.name) { -+ unspeakable = true; -+ return undefined; -+ } -+ const declName = this.emitter.emitDeclarationName(t); -+ if (declName === undefined) { -+ unspeakable = true; -+ return undefined; -+ } -+ return declName[0].toUpperCase() + declName.slice(1); -+ default: -+ unspeakable = true; -+ return undefined; -+ } -+ }); -+ if (unspeakable) { -+ return undefined; -+ } -+ return declarationType.name + parameterNames.join(""); -+ } -+} -+/** -+ * A subclass of `TypeEmitter` that makes working with strings a bit easier. -+ * In particular, when emitting members of a type (`modelProperties`, `enumMembers`, etc.), -+ * instead of returning no result, it returns the value of each of the members concatenated -+ * by commas. It will also construct references by concatenating namespace elements together -+ * with `.` which should work nicely in many object oriented languages. -+ */ -+export class CodeTypeEmitter extends TypeEmitter { -+ modelProperties(model) { -+ const builder = new StringBuilder(); -+ let i = 0; -+ for (const prop of model.properties.values()) { -+ i++; -+ const propVal = this.emitter.emitModelProperty(prop); -+ builder.push(code `${propVal}${i < model.properties.size ? "," : ""}`); -+ } -+ return this.emitter.result.rawCode(builder.reduce()); -+ } -+ interfaceDeclarationOperations(iface) { -+ const builder = new StringBuilder(); -+ let i = 0; -+ for (const op of iface.operations.values()) { -+ i++; -+ builder.push(code `${this.emitter.emitInterfaceOperation(op)}${i < iface.operations.size ? "," : ""}`); -+ } -+ return builder.reduce(); -+ } -+ enumMembers(en) { -+ const builder = new StringBuilder(); -+ let i = 0; -+ for (const enumMember of en.members.values()) { -+ i++; -+ builder.push(code `${this.emitter.emitType(enumMember)}${i < en.members.size ? "," : ""}`); -+ } -+ return builder.reduce(); -+ } -+ unionVariants(union) { -+ const builder = new StringBuilder(); -+ let i = 0; -+ for (const v of union.variants.values()) { -+ i++; -+ builder.push(code `${this.emitter.emitType(v)}${i < union.variants.size ? "," : ""}`); -+ } -+ return builder.reduce(); -+ } -+ tupleLiteralValues(tuple) { -+ const builder = new StringBuilder(); -+ let i = 0; -+ for (const v of tuple.values) { -+ i++; -+ builder.push(code `${this.emitter.emitTypeReference(v)}${i < tuple.values.length ? "," : ""}`); -+ } -+ return builder.reduce(); -+ } -+ reference(targetDeclaration, pathUp, pathDown, commonScope) { -+ const basePath = pathDown.map((s) => s.name).join("."); -+ return basePath -+ ? this.emitter.result.rawCode(basePath + "." + targetDeclaration.name) -+ : this.emitter.result.rawCode(targetDeclaration.name); -+ } -+} -+//# sourceMappingURL=type-emitter.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/type-emitter.js.map b/dist/src/emitter-framework/type-emitter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..7bf99afb88d45a79ede486fd12d57a84d9742e57 ---- /dev/null -+++ b/dist/src/emitter-framework/type-emitter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"type-emitter.js","sourceRoot":"","sources":["../../../src/emitter-framework/type-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/types.d.ts b/dist/src/emitter-framework/types.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..0d7916a77e5cbee6fea4bf0df24752a9300b65c3 ---- /dev/null -+++ b/dist/src/emitter-framework/types.d.ts -@@ -0,0 +1,139 @@ -+import type { Enum, Interface, IntrinsicType, Model, ModelProperty, Operation, Program, Scalar, Tuple, Type, Union } from "../core/index.js"; -+import { Placeholder } from "./placeholder.js"; -+import type { TypeEmitter } from "./type-emitter.js"; -+type AssetEmitterOptions = { -+ noEmit: boolean; -+ emitterOutputDir: string; -+} & TOptions; -+export interface EmitTypeReferenceOptions { -+ readonly referenceContext?: Record; -+} -+export interface AssetEmitter> { -+ /** -+ * Get the current emitter context as set by the TypeEmitter's various -+ * context methods. -+ * -+ * @returns The current emitter context -+ */ -+ getContext(): Context; -+ getOptions(): AssetEmitterOptions; -+ getProgram(): Program; -+ emitTypeReference(type: Type, context?: EmitTypeReferenceOptions): EmitEntity; -+ emitDeclarationName(type: TypeSpecDeclaration): string | undefined; -+ emitType(type: Type, context?: Partial): EmitEntity; -+ emitProgram(options?: { -+ emitGlobalNamespace?: boolean; -+ emitTypeSpecNamespace?: boolean; -+ }): void; -+ emitModelProperties(model: Model): EmitEntity; -+ emitModelProperty(prop: ModelProperty): EmitEntity; -+ emitOperationParameters(operation: Operation): EmitEntity; -+ emitOperationReturnType(operation: Operation): EmitEntity; -+ emitInterfaceOperations(iface: Interface): EmitEntity; -+ emitInterfaceOperation(operation: Operation): EmitEntity; -+ emitEnumMembers(en: Enum): EmitEntity; -+ emitUnionVariants(union: Union): EmitEntity; -+ emitTupleLiteralValues(tuple: Tuple): EmitEntity; -+ emitSourceFile(sourceFile: SourceFile): Promise; -+ /** -+ * Create a source file. -+ * -+ * @param name the path of the file, resolved relative to the emitter's output directory. -+ */ -+ createSourceFile(name: string): SourceFile; -+ createScope(sourceFile: SourceFile, name: string): SourceFileScope; -+ createScope(namespace: any, name: string, parentScope: Scope): NamespaceScope; -+ createScope(block: any, name: string, parentScope?: Scope | null): Scope; -+ result: { -+ declaration(name: string, value: T | Placeholder): Declaration; -+ rawCode(value: T | Placeholder): RawCode; -+ none(): NoEmit; -+ }; -+ writeOutput(): Promise; -+ /** Get source files that have been scoped. */ -+ getSourceFiles(): SourceFile[]; -+} -+export interface ScopeBase { -+ kind: string; -+ name: string; -+ parentScope: Scope | null; -+ childScopes: Scope[]; -+ declarations: Declaration[]; -+} -+export interface SourceFileScope extends ScopeBase { -+ kind: "sourceFile"; -+ sourceFile: SourceFile; -+} -+export interface NamespaceScope extends ScopeBase { -+ kind: "namespace"; -+ parentScope: Scope; -+ namespace: any; -+} -+export type Scope = SourceFileScope | NamespaceScope; -+export interface TypeReference { -+ expression: string; -+} -+export interface SourceFile { -+ path: string; -+ globalScope: Scope; -+ imports: Map; -+ meta: Record; -+} -+export interface EmittedSourceFile { -+ contents: string; -+ path: string; -+} -+export type EmitEntity = Declaration | RawCode | NoEmit | CircularEmit; -+export declare class EmitterResult { -+} -+export declare class Declaration extends EmitterResult { -+ name: string; -+ scope: Scope; -+ value: T | Placeholder; -+ kind: "declaration"; -+ meta: Record; -+ constructor(name: string, scope: Scope, value: T | Placeholder); -+} -+export declare class RawCode extends EmitterResult { -+ value: T | Placeholder; -+ kind: "code"; -+ constructor(value: T | Placeholder); -+} -+export declare class NoEmit extends EmitterResult { -+ kind: "none"; -+} -+export declare class CircularEmit extends EmitterResult { -+ emitEntityKey: [string, Type, ContextState]; -+ kind: "circular"; -+ constructor(emitEntityKey: [string, Type, ContextState]); -+} -+export interface AssetTag { -+ language: AssetTagFactory; -+ create(key: string): AssetTagFactory; -+} -+export interface AssetTagInstance { -+} -+export type AssetTagFactory = { -+ (value: string): AssetTagInstance; -+}; -+export type TypeSpecDeclaration = Model | Interface | Union | Operation | Enum | Scalar | IntrinsicType; -+export interface ContextState { -+ lexicalContext: Record; -+ referenceContext: Record; -+} -+export type Context = Record; -+export type ESRecord = Record & { -+ _record: true; -+}; -+type EndingWith = Names extends `${infer _X}${Name}` ? Names : never; -+export type TypeEmitterMethod = keyof Omit, "sourceFile" | "declarationName" | "reference" | "circularReference" | "emitValue" | "writeOutput" | EndingWith, "Context">>; -+export interface LexicalTypeStackEntry { -+ method: TypeEmitterMethod; -+ args: any[]; -+} -+export interface EmitterState { -+ lexicalTypeStack: LexicalTypeStackEntry[]; -+ context: ContextState; -+} -+export {}; -+//# sourceMappingURL=types.d.ts.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/types.d.ts.map b/dist/src/emitter-framework/types.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..6d163ae4748a5a5cbcae6961818076599386cb2a ---- /dev/null -+++ b/dist/src/emitter-framework/types.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/emitter-framework/types.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/emitter-framework/types.js b/dist/src/emitter-framework/types.js -new file mode 100644 -index 0000000000000000000000000000000000000000..bee61293e799a1827d2b7baa141254f9bf63c3c7 ---- /dev/null -+++ b/dist/src/emitter-framework/types.js -@@ -0,0 +1,42 @@ -+import { Placeholder } from "./placeholder.js"; -+export class EmitterResult { -+} -+export class Declaration extends EmitterResult { -+ name; -+ scope; -+ value; -+ kind = "declaration"; -+ meta = {}; -+ constructor(name, scope, value) { -+ if (value instanceof Placeholder) { -+ value.onValue((v) => (this.value = v)); -+ } -+ super(); -+ this.name = name; -+ this.scope = scope; -+ this.value = value; -+ } -+} -+export class RawCode extends EmitterResult { -+ value; -+ kind = "code"; -+ constructor(value) { -+ if (value instanceof Placeholder) { -+ value.onValue((v) => (this.value = v)); -+ } -+ super(); -+ this.value = value; -+ } -+} -+export class NoEmit extends EmitterResult { -+ kind = "none"; -+} -+export class CircularEmit extends EmitterResult { -+ emitEntityKey; -+ kind = "circular"; -+ constructor(emitEntityKey) { -+ super(); -+ this.emitEntityKey = emitEntityKey; -+ } -+} -+//# sourceMappingURL=types.js.map -\ No newline at end of file -diff --git a/dist/src/emitter-framework/types.js.map b/dist/src/emitter-framework/types.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..141d93840f7b47ce168f5d3a874f7813d23a673f ---- /dev/null -+++ b/dist/src/emitter-framework/types.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/emitter-framework/types.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA+F/C,MAAM,OAAO,aAAa;CAAG;AAC7B,MAAM,OAAO,WAAe,SAAQ,aAAa;IAKtC;IACA;IACA;IANF,IAAI,GAAG,aAAsB,CAAC;IAC9B,IAAI,GAAwB,EAAE,CAAC;IAEtC,YACS,IAAY,EACZ,KAAe,EACf,KAAyB;QAEhC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,EAAE,CAAC;QARD,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAU;QACf,UAAK,GAAL,KAAK,CAAoB;IAOlC,CAAC;CACF;AAED,MAAM,OAAO,OAAW,SAAQ,aAAa;IAGxB;IAFZ,IAAI,GAAG,MAAe,CAAC;IAE9B,YAAmB,KAAyB;QAC1C,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,EAAE,CAAC;QALS,UAAK,GAAL,KAAK,CAAoB;IAM5C,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,aAAa;IAChC,IAAI,GAAG,MAAe,CAAC;CAC/B;AAED,MAAM,OAAO,YAAa,SAAQ,aAAa;IAE1B;IADZ,IAAI,GAAG,UAAmB,CAAC;IAClC,YAAmB,aAA2C;QAC5D,KAAK,EAAE,CAAC;QADS,kBAAa,GAAb,aAAa,CAA8B;IAE9D,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/experimental/mutators.d.ts.map b/dist/src/experimental/mutators.d.ts.map -index 07233f732861b3d0e613d57d3ac16c0a9b53c53d..98bc41fec7edd5d10b8b5972aa58641177be659c 100644 ---- a/dist/src/experimental/mutators.d.ts.map -+++ b/dist/src/experimental/mutators.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/mutators.js.map b/dist/src/experimental/mutators.js.map -index df9232d17eb8674557ba5ac132d4fcb4efee76fd..a8d87b229f65487819e7e148d77c244fe073eb60 100644 ---- a/dist/src/experimental/mutators.js.map -+++ b/dist/src/experimental/mutators.js.map -@@ -1 +1 @@ --{"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/state-accessor.d.ts b/dist/src/experimental/state-accessor.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e2c20f6b5a41559233aea8f98fe49d1861f7a840 ---- /dev/null -+++ b/dist/src/experimental/state-accessor.d.ts -@@ -0,0 +1,13 @@ -+import type { Program } from "../core/program.js"; -+import type { Type } from "../core/types.js"; -+type StateMapGetter = (program: Program, type: K) => V | undefined; -+type StateMapSetter = (program: Program, type: K, value: V) => void; -+type StateMapMapGetter = (program: Program) => Map; -+/** @experimental */ -+export declare function unsafe_useStateMap(key: symbol): [StateMapGetter, StateMapSetter, StateMapMapGetter]; -+type StateSetGetter = (program: Program, type: K) => boolean; -+type StateSetSetter = (program: Program, type: K) => void; -+/** @experimental */ -+export declare function unsafe_useStateSet(key: symbol): [StateSetGetter, StateSetSetter]; -+export {}; -+//# sourceMappingURL=state-accessor.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/state-accessor.d.ts.map b/dist/src/experimental/state-accessor.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..dde1611aedc3b8fdaa2ee81c823b28902b6eca63 ---- /dev/null -+++ b/dist/src/experimental/state-accessor.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"state-accessor.d.ts","sourceRoot":"","sources":["../../../src/experimental/state-accessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,KAAK,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;AACtF,KAAK,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AACvF,KAAK,iBAAiB,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5E,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,EAClD,GAAG,EAAE,MAAM,GACV,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAMvE;AAED,KAAK,cAAc,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAC7E,KAAK,cAAc,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE1E,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,IAAI,EAC/C,GAAG,EAAE,MAAM,GACV,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAKxC"} -\ No newline at end of file -diff --git a/dist/src/experimental/state-accessor.js b/dist/src/experimental/state-accessor.js -new file mode 100644 -index 0000000000000000000000000000000000000000..29809586f0458198c6b711ebf4b598ce07b804cf ---- /dev/null -+++ b/dist/src/experimental/state-accessor.js -@@ -0,0 +1,14 @@ -+/** @experimental */ -+export function unsafe_useStateMap(key) { -+ const getter = (program, target) => program.stateMap(key).get(target); -+ const setter = (program, target, value) => program.stateMap(key).set(target, value); -+ const mapGetter = (program) => program.stateMap(key); -+ return [getter, setter, mapGetter]; -+} -+/** @experimental */ -+export function unsafe_useStateSet(key) { -+ const getter = (program, target) => program.stateSet(key).has(target); -+ const setter = (program, target) => program.stateSet(key).add(target); -+ return [getter, setter]; -+} -+//# sourceMappingURL=state-accessor.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/state-accessor.js.map b/dist/src/experimental/state-accessor.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..85bdaf1868739c749591b33323065e4287b11b2b ---- /dev/null -+++ b/dist/src/experimental/state-accessor.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"state-accessor.js","sourceRoot":"","sources":["../../../src/experimental/state-accessor.ts"],"names":[],"mappings":"AAOA,oBAAoB;AACpB,MAAM,UAAU,kBAAkB,CAChC,GAAW;IAEX,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,MAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,MAAS,EAAE,KAAQ,EAAE,EAAE,CACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAgB,CAAC,CAAC;AAC5C,CAAC;AAKD,oBAAoB;AACpB,MAAM,UAAU,kBAAkB,CAChC,GAAW;IAEX,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,MAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,MAAS,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElF,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/define-kit.d.ts b/dist/src/experimental/typekit/define-kit.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..4099510f788296516701751afa2b6afa8ed970c7 ---- /dev/null -+++ b/dist/src/experimental/typekit/define-kit.d.ts -@@ -0,0 +1,29 @@ -+import { type Program } from "../../core/program.js"; -+import { Realm } from "../realm.js"; -+/** -+ * A Typekit is a collection of utility functions and namespaces that allow you to work with TypeSpec types. -+ * -+ * @experimental -+ */ -+export interface Typekit { -+ readonly program: Program; -+ readonly realm: Realm; -+} -+/** -+ * contextual typing to type guards is annoying (often have to restate the signature), -+ * so this helper will remove the type assertions from the interface you are currently defining. -+ * @experimental -+ */ -+export type StripGuards = { -+ [K in keyof T]: T[K] extends (...args: infer P) => infer R ? (...args: P) => R : T[K] extends Record ? StripGuards : T[K]; -+}; -+export declare const TypekitNamespaceSymbol: unique symbol; -+/** -+ * Defines an extension to the Typekit interface. -+ * -+ * All Typekit instances will inherit the functionality defined by calls to this function. -+ * -+ * @experimental -+ */ -+export declare function defineKit>(source: StripGuards & ThisType): void; -+//# sourceMappingURL=define-kit.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/define-kit.d.ts.map b/dist/src/experimental/typekit/define-kit.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d739828685cbb3369d8b2066b30320df7ffa8f82 ---- /dev/null -+++ b/dist/src/experimental/typekit/define-kit.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"define-kit.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAYD;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACtD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,sBAAsB,eAAiC,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,CAmBN"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/define-kit.js b/dist/src/experimental/typekit/define-kit.js -new file mode 100644 -index 0000000000000000000000000000000000000000..35458c939ff118e98d7a8e1eeaba1b9ebac03b62 ---- /dev/null -+++ b/dist/src/experimental/typekit/define-kit.js -@@ -0,0 +1,35 @@ -+/** -+ * The prototype object for Typekit instances. -+ * -+ * @see {@link defineKit} -+ * -+ * @experimental -+ * @internal -+ */ -+export const TypekitPrototype = {}; -+export const TypekitNamespaceSymbol = Symbol.for("TypekitNamespace"); -+/** -+ * Defines an extension to the Typekit interface. -+ * -+ * All Typekit instances will inherit the functionality defined by calls to this function. -+ * -+ * @experimental -+ */ -+export function defineKit(source) { -+ for (const [name, fnOrNs] of Object.entries(source)) { -+ let kits = fnOrNs; -+ if (TypekitPrototype[name] !== undefined) { -+ kits = { ...TypekitPrototype[name], ...fnOrNs }; -+ } -+ // Tag top-level namespace objects with the symbol -+ if (typeof kits === "object" && kits !== null) { -+ Object.defineProperty(kits, TypekitNamespaceSymbol, { -+ value: true, -+ enumerable: false, // Keep the symbol non-enumerable -+ configurable: false, -+ }); -+ } -+ TypekitPrototype[name] = kits; -+ } -+} -+//# sourceMappingURL=define-kit.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/define-kit.js.map b/dist/src/experimental/typekit/define-kit.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..439b7361e922c7afeae72b5f4847009e6152e9cd ---- /dev/null -+++ b/dist/src/experimental/typekit/define-kit.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"define-kit.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAe5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAA0C;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,GAAG,MAAM,CAAC;QAElB,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAClD,CAAC;QAED,kDAAkD;QAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,EAAE;gBAClD,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,KAAK,EAAE,iCAAiC;gBACpD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/array.d.ts b/dist/src/experimental/typekit/kits/array.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..d4f74542f127d8abb163cb85f60e0f700a1b4501 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/array.d.ts -@@ -0,0 +1,28 @@ -+import { Model, Type } from "../../../core/types.js"; -+/** -+ * @experimental -+ */ -+export interface ArrayKit { -+ /** -+ * Check if a type is an array. -+ */ -+ is(type: Type): boolean; -+ /** -+ * Get the element type of an array. -+ */ -+ getElementType(type: Model): Type; -+ /** -+ * Create an array type. -+ */ -+ create(elementType: Type): Model; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ array: ArrayKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=array.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/array.d.ts.map b/dist/src/experimental/typekit/kits/array.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..f92f1705000a76125b8177808df2f5fd16a1983c ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/array.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/array.js b/dist/src/experimental/typekit/kits/array.js -new file mode 100644 -index 0000000000000000000000000000000000000000..fd05710a1e1fb231eda80c66e421cbfc6b6571a1 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/array.js -@@ -0,0 +1,26 @@ -+import { isArrayModelType } from "../../../core/type-utils.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ array: { -+ is(type) { -+ return (type.kind === "Model" && isArrayModelType(this.program, type) && type.properties.size === 0); -+ }, -+ getElementType(type) { -+ if (!this.array.is(type)) { -+ throw new Error("Type is not an array."); -+ } -+ return type.indexer.value; -+ }, -+ create(elementType) { -+ return this.model.create({ -+ name: "Array", -+ properties: {}, -+ indexer: { -+ key: this.builtin.integer, -+ value: elementType, -+ }, -+ }); -+ }, -+ }, -+}); -+//# sourceMappingURL=array.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/array.js.map b/dist/src/experimental/typekit/kits/array.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..25669809a221c85a3be5d8b05fc527f29346b233 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/array.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6B7C,SAAS,CAAmB;IAC1B,KAAK,EAAE;QACL,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAC5F,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,WAAW;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBACzB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/builtin.d.ts b/dist/src/experimental/typekit/kits/builtin.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..15d06c0e27442104c10b155e897474dd85c323e4 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/builtin.d.ts -@@ -0,0 +1,117 @@ -+import type { Scalar } from "../../../core/types.js"; -+/** -+ * A kit of built-in types. -+ * @experimental -+ */ -+export interface BuiltinKit { -+ /** -+ * Accessor for the string builtin type. -+ */ -+ get string(): Scalar; -+ /** -+ * Accessor for the boolean builtin type. -+ */ -+ get boolean(): Scalar; -+ /** -+ * Accessor for the bytes builtin type, representing binary data. -+ */ -+ get bytes(): Scalar; -+ /** -+ * Accessor for the decimal builtin type for high-precision decimal values. -+ */ -+ get decimal(): Scalar; -+ /** -+ * Accessor for the decimal128 builtin type, a 128-bit decimal value. -+ */ -+ get decimal128(): Scalar; -+ /** -+ * Accessor for the duration builtin type, representing a span of time. -+ */ -+ get duration(): Scalar; -+ /** -+ * Accessor for the float builtin type, representing a double-precision floating-point number. -+ */ -+ get float(): Scalar; -+ /** -+ * Accessor for the float32 builtin type, representing a single-precision floating-point number. -+ */ -+ get float32(): Scalar; -+ /** -+ * Accessor for the float64 builtin type, representing a double-precision floating-point number. -+ */ -+ get float64(): Scalar; -+ /** -+ * Accessor for the int8 builtin type, representing an 8-bit signed integer. -+ */ -+ get int8(): Scalar; -+ /** -+ * Accessor for the int16 builtin type, representing a 16-bit signed integer. -+ */ -+ get int16(): Scalar; -+ /** -+ * Accessor for the int32 builtin type, representing a 32-bit signed integer. -+ */ -+ get int32(): Scalar; -+ /** -+ * Accessor for the int64 builtin type, representing a 64-bit signed integer. -+ */ -+ get int64(): Scalar; -+ /** -+ * Accessor for the integer builtin type, representing an arbitrary-precision integer. -+ */ -+ get integer(): Scalar; -+ /** -+ * Accessor for the offsetDateTime builtin type, representing a date and time with an offset. -+ */ -+ get offsetDateTime(): Scalar; -+ /** -+ * Accessor for the plainDate builtin type, representing a date without time or offset. -+ */ -+ get plainDate(): Scalar; -+ /** -+ * Accessor for the plainTime builtin type, representing a time without date or offset. -+ */ -+ get plainTime(): Scalar; -+ /** -+ * Accessor for the safeInt builtin type, representing an integer within the safe range for JavaScript. -+ */ -+ get safeInt(): Scalar; -+ /** -+ * Accessor for the uint8 builtin type, representing an 8-bit unsigned integer. -+ */ -+ get uint8(): Scalar; -+ /** -+ * Accessor for the uint16 builtin type, representing a 16-bit unsigned integer. -+ */ -+ get uint16(): Scalar; -+ /** -+ * Accessor for the uint32 builtin type, representing a 32-bit unsigned integer. -+ */ -+ get uint32(): Scalar; -+ /** -+ * Accessor for the uint64 builtin type, representing a 64-bit unsigned integer. -+ */ -+ get uint64(): Scalar; -+ /** -+ * Accessor for the url builtin type, representing a valid URL string. -+ */ -+ get url(): Scalar; -+ /** -+ * Accessor for the utcDateTime builtin type, representing a date and time in UTC. -+ */ -+ get utcDateTime(): Scalar; -+ /** -+ * Accessor for the numeric builtin type, representing a numeric value. -+ */ -+ get numeric(): Scalar; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ builtin: BuiltinKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=builtin.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/builtin.d.ts.map b/dist/src/experimental/typekit/kits/builtin.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8219c5f68a39801aaf10560d7190bca911b1a4ef ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/builtin.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAAC;IAE7B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAAC;IAE1B;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;CACvB;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/builtin.js b/dist/src/experimental/typekit/kits/builtin.js -new file mode 100644 -index 0000000000000000000000000000000000000000..31d527ff3d12ee63ac51b217889b5c2d9a000443 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/builtin.js -@@ -0,0 +1,81 @@ -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ builtin: { -+ get string() { -+ return this.program.checker.getStdType("string"); -+ }, -+ get boolean() { -+ return this.program.checker.getStdType("boolean"); -+ }, -+ get bytes() { -+ return this.program.checker.getStdType("bytes"); -+ }, -+ get decimal() { -+ return this.program.checker.getStdType("decimal"); -+ }, -+ get decimal128() { -+ return this.program.checker.getStdType("decimal128"); -+ }, -+ get duration() { -+ return this.program.checker.getStdType("duration"); -+ }, -+ get float() { -+ return this.program.checker.getStdType("float"); -+ }, -+ get float32() { -+ return this.program.checker.getStdType("float32"); -+ }, -+ get float64() { -+ return this.program.checker.getStdType("float64"); -+ }, -+ get int8() { -+ return this.program.checker.getStdType("int8"); -+ }, -+ get int16() { -+ return this.program.checker.getStdType("int16"); -+ }, -+ get int32() { -+ return this.program.checker.getStdType("int32"); -+ }, -+ get int64() { -+ return this.program.checker.getStdType("int64"); -+ }, -+ get integer() { -+ return this.program.checker.getStdType("integer"); -+ }, -+ get offsetDateTime() { -+ return this.program.checker.getStdType("offsetDateTime"); -+ }, -+ get plainDate() { -+ return this.program.checker.getStdType("plainDate"); -+ }, -+ get plainTime() { -+ return this.program.checker.getStdType("plainTime"); -+ }, -+ get safeInt() { -+ return this.program.checker.getStdType("safeint"); -+ }, -+ get uint8() { -+ return this.program.checker.getStdType("uint8"); -+ }, -+ get uint16() { -+ return this.program.checker.getStdType("uint16"); -+ }, -+ get uint32() { -+ return this.program.checker.getStdType("uint32"); -+ }, -+ get uint64() { -+ return this.program.checker.getStdType("uint64"); -+ }, -+ get url() { -+ return this.program.checker.getStdType("url"); -+ }, -+ get utcDateTime() { -+ return this.program.checker.getStdType("utcDateTime"); -+ }, -+ get numeric() { -+ return this.program.checker.getStdType("numeric"); -+ }, -+ }, -+}); -+//# sourceMappingURL=builtin.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/builtin.js.map b/dist/src/experimental/typekit/kits/builtin.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d53ea2568ef371c03b6660f88fa18049b15b749f ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/builtin.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/builtin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA8I7C,SAAS,CAAmB;IAC1B,OAAO,EAAE;QACP,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,cAAc;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,SAAS;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,SAAS;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,GAAG;YACL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum-member.d.ts b/dist/src/experimental/typekit/kits/enum-member.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..b2196aa96e7fe2a8ba3efa8054fe0635932ad69e ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum-member.d.ts -@@ -0,0 +1,52 @@ -+import type { Enum, EnumMember, Type } from "../../../core/types.js"; -+import { DecoratorArgs } from "../utils.js"; -+/** -+ * A descriptor for creating an enum member. -+ * @experimental -+ */ -+export interface EnumMemberDescriptor { -+ /** -+ * The name of the enum member. -+ */ -+ name: string; -+ /** -+ * Decorators to apply to the enum member. -+ */ -+ decorators?: DecoratorArgs[]; -+ /** -+ * The value of the enum member. If not supplied, the value will be the same -+ * as the name. -+ */ -+ value?: string | number; -+ /** -+ * The enum that the member belongs to. If not provided here, it is assumed -+ * that it will be set in `enum.build`. -+ */ -+ enum?: Enum; -+} -+/** -+ * A kit for working with enum members. -+ * @experimental -+ */ -+export interface EnumMemberKit { -+ /** -+ * Create an enum member. The enum member will be finished (i.e. decorators are run). -+ */ -+ create(desc: EnumMemberDescriptor): EnumMember; -+ /** -+ * Check if `type` is an enum member type. -+ * -+ * @param type the type to check. -+ */ -+ is(type: Type): type is EnumMember; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ enumMember: EnumMemberKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=enum-member.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum-member.d.ts.map b/dist/src/experimental/typekit/kits/enum-member.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c57509b9793f9fa7ead777ed699e3e318726d869 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum-member.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"enum-member.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum-member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAAC;IAE/C;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC;CACpC;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum-member.js b/dist/src/experimental/typekit/kits/enum-member.js -new file mode 100644 -index 0000000000000000000000000000000000000000..94642e58ae0f7f8c21a22f53fa3d0a14046de9b5 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum-member.js -@@ -0,0 +1,22 @@ -+import { defineKit } from "../define-kit.js"; -+import { decoratorApplication } from "../utils.js"; -+defineKit({ -+ enumMember: { -+ create(desc) { -+ const member = this.program.checker.createType({ -+ kind: "EnumMember", -+ name: desc.name, -+ value: desc.value, -+ decorators: decoratorApplication(this, desc.decorators), -+ node: undefined, -+ enum: desc.enum, // initialized in enum.build if not provided here -+ }); -+ this.program.checker.finishType(member); -+ return member; -+ }, -+ is(type) { -+ return type.kind === "EnumMember"; -+ }, -+ }, -+}); -+//# sourceMappingURL=enum-member.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum-member.js.map b/dist/src/experimental/typekit/kits/enum-member.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ce9d402a0e9b6594084db0ae5df311423b6e5fd6 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum-member.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"enum-member.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum-member.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AAwDlE,SAAS,CAAmB;IAC1B,UAAU,EAAE;QACV,MAAM,CAAC,IAAI;YACT,MAAM,MAAM,GAAe,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACzD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,IAAI,EAAE,SAAgB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAW,EAAE,iDAAiD;aAC1E,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;QACpC,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum.d.ts b/dist/src/experimental/typekit/kits/enum.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..6b38c389066bc736ea2df7f6bf91ccd68d7b2496 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum.d.ts -@@ -0,0 +1,54 @@ -+import type { Enum, EnumMember, Type, Union } from "../../../core/types.js"; -+import { DecoratorArgs } from "../utils.js"; -+/** -+ * Describes an enum type for creation. -+ * @experimental -+ */ -+interface EnumDescriptor { -+ /** -+ * The name of the enum declaration. -+ */ -+ name: string; -+ /** -+ * Decorators to apply to the enum. -+ */ -+ decorators?: DecoratorArgs[]; -+ /** -+ * The members of the enum. If a member is an object, each property will be -+ * converted to an EnumMember with the same name and value. -+ */ -+ members?: Record | EnumMember[]; -+} -+/** -+ * A kit for working with enum types. -+ * @experimental -+ */ -+export interface EnumKit { -+ /** -+ * Build an enum type. The enum type will be finished (i.e. decorators are -+ * run). -+ */ -+ create(desc: EnumDescriptor): Enum; -+ /** -+ * Build an equivalent enum from the given union. Union variants which are -+ * not valid enum members are skipped. You can check if a union is a valid -+ * enum with {@link UnionKit.union}'s `isEnumValue`. -+ */ -+ createFromUnion(type: Union): Enum; -+ /** -+ * Check if `type` is an enum type. -+ * -+ * @param type the type to check. -+ */ -+ is(type: Type): type is Enum; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ enum: EnumKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=enum.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum.d.ts.map b/dist/src/experimental/typekit/kits/enum.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9abb4a60e78877820f433e0f7f61b32a37bbe14f ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAM5E,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,UAAU,cAAc;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum.js b/dist/src/experimental/typekit/kits/enum.js -new file mode 100644 -index 0000000000000000000000000000000000000000..fa22332bf8e8e9962e002b21e1abf736f184a9a3 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum.js -@@ -0,0 +1,47 @@ -+import { createRekeyableMap } from "../../../utils/misc.js"; -+import { defineKit } from "../define-kit.js"; -+import { decoratorApplication } from "../utils.js"; -+defineKit({ -+ enum: { -+ create(desc) { -+ const en = this.program.checker.createType({ -+ kind: "Enum", -+ name: desc.name, -+ decorators: decoratorApplication(this, desc.decorators), -+ members: createRekeyableMap(), -+ node: undefined, -+ }); -+ if (Array.isArray(desc.members)) { -+ for (const member of desc.members) { -+ member.enum = en; -+ en.members.set(member.name, member); -+ } -+ } -+ else { -+ for (const [name, member] of Object.entries(desc.members ?? {})) { -+ en.members.set(name, this.enumMember.create({ name, value: member, enum: en })); -+ } -+ } -+ this.program.checker.finishType(en); -+ return en; -+ }, -+ is(type) { -+ return type.kind === "Enum"; -+ }, -+ createFromUnion(type) { -+ if (!type.name) { -+ throw new Error("Cannot create an enum from an anonymous union."); -+ } -+ const enumMembers = []; -+ for (const variant of type.variants.values()) { -+ if ((variant.name && typeof variant.name === "symbol") || -+ (!this.literal.isString(variant.type) && !this.literal.isNumeric(variant.type))) { -+ continue; -+ } -+ enumMembers.push(this.enumMember.create({ name: variant.name, value: variant.type.value })); -+ } -+ return this.enum.create({ name: type.name, members: enumMembers }); -+ }, -+ }, -+}); -+//# sourceMappingURL=enum.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/enum.js.map b/dist/src/experimental/typekit/kits/enum.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..b99d0939c78a2e170acf1ff7527b6608ac6ab475 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/enum.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AA2DlE,SAAS,CAAmB;IAC1B,IAAI,EAAE;QACJ,MAAM,CAAC,IAAI;YACT,MAAM,EAAE,GAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC/C,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,OAAO,EAAE,kBAAkB,EAAE;gBAC7B,IAAI,EAAE,SAAgB;aACvB,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACjB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;oBAChE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAC9B,CAAC;QAED,eAAe,CAAC,IAAI;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,IACE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC/E,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/index.d.ts b/dist/src/experimental/typekit/kits/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..be67f3513a336d8ffbe779716cd4a029126bb764 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/index.d.ts -@@ -0,0 +1,15 @@ -+export * from "./array.js"; -+export * from "./builtin.js"; -+export * from "./enum-member.js"; -+export * from "./enum.js"; -+export * from "./literal.js"; -+export * from "./model-property.js"; -+export * from "./model.js"; -+export * from "./operation.js"; -+export * from "./record.js"; -+export * from "./scalar.js"; -+export * from "./type.js"; -+export * from "./union-variant.js"; -+export * from "./union.js"; -+export * from "./value.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/index.d.ts.map b/dist/src/experimental/typekit/kits/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..4439e526ac841b20646ab9c8ca0d7d7fc483bb9b ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/index.js b/dist/src/experimental/typekit/kits/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..7b57fc035454670416fdcb69fe5db4b2c757b2cc ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/index.js -@@ -0,0 +1,15 @@ -+export * from "./array.js"; -+export * from "./builtin.js"; -+export * from "./enum-member.js"; -+export * from "./enum.js"; -+export * from "./literal.js"; -+export * from "./model-property.js"; -+export * from "./model.js"; -+export * from "./operation.js"; -+export * from "./record.js"; -+export * from "./scalar.js"; -+export * from "./type.js"; -+export * from "./union-variant.js"; -+export * from "./union.js"; -+export * from "./value.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/index.js.map b/dist/src/experimental/typekit/kits/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..496cc301eaf6c4556fb3557f79a7f797bf77c836 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/literal.d.ts b/dist/src/experimental/typekit/kits/literal.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..91e8d832795a7bb14738e9d6a8f3a2ce5a1e2df9 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/literal.d.ts -@@ -0,0 +1,69 @@ -+import type { BooleanLiteral, NumericLiteral, StringLiteral, Type } from "../../../core/types.js"; -+/** @experimental */ -+export interface LiteralKit { -+ /** -+ * Create a literal type from a JavaScript value. -+ * -+ * @param value The JavaScript value to turn into a TypeSpec literal type. -+ */ -+ create(value: string | number | boolean): StringLiteral | NumericLiteral | BooleanLiteral; -+ /** -+ * Create a string literal type from a JavaScript string value. -+ * -+ * @param value The string value. -+ */ -+ createString(value: string): StringLiteral; -+ /** -+ * Create a numeric literal type from a JavaScript number value. -+ * -+ * @param value The numeric value. -+ */ -+ createNumeric(value: number): NumericLiteral; -+ /** -+ * Create a boolean literal type from a JavaScript boolean value. -+ * -+ * @param value The boolean value. -+ */ -+ createBoolean(value: boolean): BooleanLiteral; -+ /** -+ * Check if `type` is a literal type. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is StringLiteral | NumericLiteral | BooleanLiteral; -+ /** -+ * Check if `type` is a string literal type. -+ * -+ * @param type The type to check. -+ */ -+ isString(type: Type): type is StringLiteral; -+ /** -+ * Check if `type` is a numeric literal type. -+ * -+ * @param type The type to check. -+ */ -+ isNumeric(type: Type): type is NumericLiteral; -+ /** -+ * Check if `type` is a boolean literal type. -+ * -+ * @param type The type to check. -+ */ -+ isBoolean(type: Type): type is BooleanLiteral; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with literal types. -+ * -+ * Literal types are types that represent a single value, such as a string, -+ * number, or boolean. -+ * -+ * @experimental -+ */ -+ literal: LiteralKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=literal.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/literal.d.ts.map b/dist/src/experimental/typekit/kits/literal.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..489516e7e40b844429177a124a0e5bc3198a68d4 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/literal.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGlG,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAE1F;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAE3C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;IAE7C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC;IAE9C;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAExE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;IAE5C;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;IAE9C;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;CAC/C;AAED,UAAU,gBAAgB;IACxB;;;;;;;OAOG;IACH,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/literal.js b/dist/src/experimental/typekit/kits/literal.js -new file mode 100644 -index 0000000000000000000000000000000000000000..9634061df2dbe2a396087ffde4af68a8664b516e ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/literal.js -@@ -0,0 +1,51 @@ -+import { Numeric } from "../../../core/numeric.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ literal: { -+ create(value) { -+ if (typeof value === "string") { -+ return this.literal.createString(value); -+ } -+ else if (typeof value === "number") { -+ return this.literal.createNumeric(value); -+ } -+ else { -+ return this.literal.createBoolean(value); -+ } -+ }, -+ createString(value) { -+ return this.program.checker.createType({ -+ kind: "String", -+ value, -+ }); -+ }, -+ createNumeric(value) { -+ const valueAsString = String(value); -+ return this.program.checker.createType({ -+ kind: "Number", -+ value, -+ valueAsString, -+ numericValue: Numeric(valueAsString), -+ }); -+ }, -+ createBoolean(value) { -+ return this.program.checker.createType({ -+ kind: "Boolean", -+ value, -+ }); -+ }, -+ isBoolean(type) { -+ return type.kind === "Boolean"; -+ }, -+ isString(type) { -+ return type.kind === "String"; -+ }, -+ isNumeric(type) { -+ return type.kind === "Number"; -+ }, -+ is(type) { -+ return (this.literal.isBoolean(type) || this.literal.isNumeric(type) || this.literal.isString(type)); -+ }, -+ }, -+}); -+//# sourceMappingURL=literal.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/literal.js.map b/dist/src/experimental/typekit/kits/literal.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..47a3c4f7f0d87a54b726d249ba11a3d443d8717c ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/literal.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6E7C,SAAS,CAAmB;IAC1B,OAAO,EAAE;QACP,MAAM,CAAC,KAAK;YACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,aAAa;gBACb,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,SAAS;gBACf,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5F,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model-property.d.ts b/dist/src/experimental/typekit/kits/model-property.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..f304b0147478505fa6da4004051cbe2de6cba5f6 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model-property.d.ts -@@ -0,0 +1,82 @@ -+import type { Enum, EnumMember, ModelProperty, Type, Value } from "../../../core/types.js"; -+import { EncodeData } from "../../../lib/decorators.js"; -+/** -+ * A descriptor for a model property. -+ * @experimental -+ */ -+export interface ModelPropertyDescriptor { -+ /** -+ * The name of the model property. -+ */ -+ name: string; -+ /** -+ * The type of the model property. -+ */ -+ type: Type; -+ /** -+ * Whether the model property is optional. -+ */ -+ optional?: boolean; -+ /** -+ * Default value -+ */ -+ defaultValue?: Value | undefined; -+} -+/** -+ * Utilities for working with model properties. -+ * -+ * For many reflection operations, the metadata being asked for may be found -+ * on the model property or the type of the model property. In such cases, -+ * these operations will return the metadata from the model property if it -+ * exists, or the type of the model property if it exists. -+ * @experimental -+ */ -+export interface ModelPropertyKit { -+ /** -+ * Creates a modelProperty type. -+ * @param desc The descriptor of the model property. -+ */ -+ create(desc: ModelPropertyDescriptor): ModelProperty; -+ /** -+ * Check if the given `type` is a model property. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is ModelProperty; -+ /** -+ * Get the encoding of the model property or its type. The property's type -+ * must be a scalar. -+ * -+ * @param property The model property to get the encoding for. -+ */ -+ getEncoding(property: ModelProperty): EncodeData | undefined; -+ /** -+ * Get the format of the model property or its type. The property's type must -+ * be a string. -+ * -+ * @param property The model property to get the format for. -+ */ -+ getFormat(property: ModelProperty): string | undefined; -+ /** -+ * Get the visibility of the model property. -+ */ -+ getVisibilityForClass(property: ModelProperty, visibilityClass: Enum): Set; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with model properties. -+ * -+ * For many reflection operations, the metadata being asked for may be found -+ * on the model property or the type of the model property. In such cases, -+ * these operations will return the metadata from the model property if it -+ * exists, or the type of the model property if it exists. -+ * @experimental -+ */ -+ modelProperty: ModelPropertyKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=model-property.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model-property.d.ts.map b/dist/src/experimental/typekit/kits/model-property.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..5d56dab2694cfb4abbd84a99faa956e1600e2137 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model-property.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model-property.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/model-property.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAU,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAC;AAG9E;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,aAAa,CAAC;IACrD;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;IAEtC;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;IAE7D;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;IAEvD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;CACxF;AAED,UAAU,gBAAgB;IACxB;;;;;;;;OAQG;IACH,aAAa,EAAE,gBAAgB,CAAC;CACjC;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model-property.js b/dist/src/experimental/typekit/kits/model-property.js -new file mode 100644 -index 0000000000000000000000000000000000000000..2365ec407642e9c672668769bd14f779eabe7f75 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model-property.js -@@ -0,0 +1,31 @@ -+import { getVisibilityForClass } from "../../../core/visibility/core.js"; -+import { getEncode, getFormat } from "../../../lib/decorators.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ modelProperty: { -+ is(type) { -+ return type.kind === "ModelProperty"; -+ }, -+ getEncoding(type) { -+ return getEncode(this.program, type) ?? getEncode(this.program, type.type); -+ }, -+ getFormat(type) { -+ return getFormat(this.program, type) ?? getFormat(this.program, type.type); -+ }, -+ getVisibilityForClass(property, visibilityClass) { -+ return getVisibilityForClass(this.program, property, visibilityClass); -+ }, -+ create(desc) { -+ return this.program.checker.createType({ -+ kind: "ModelProperty", -+ name: desc.name, -+ node: undefined, -+ type: desc.type, -+ optional: desc.optional ?? false, -+ decorators: [], -+ defaultValue: desc.defaultValue, -+ }); -+ }, -+ }, -+}); -+//# sourceMappingURL=model-property.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model-property.js.map b/dist/src/experimental/typekit/kits/model-property.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..4175d8eeca92173d43c737523e9d88bb644a1ef0 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model-property.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model-property.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/model-property.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAc,SAAS,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAyF7C,SAAS,CAAmB;IAC1B,aAAa,EAAE;QACb,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;QACvC,CAAC;QAED,WAAW,CAAC,IAAI;YACd,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;QACvF,CAAC;QAED,SAAS,CAAC,IAAI;YACZ,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAc,CAAC,CAAC;QACvF,CAAC;QAED,qBAAqB,CAAC,QAAQ,EAAE,eAAe;YAC7C,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,IAAI;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,SAAgB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;gBAChC,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model.d.ts b/dist/src/experimental/typekit/kits/model.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..4bb00ec255f185a3373d377288c0bd5131913744 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model.d.ts -@@ -0,0 +1,117 @@ -+import { DiscriminatedUnionLegacy } from "../../../core/helpers/discriminator-utils.js"; -+import type { Model, ModelIndexer, ModelProperty, RekeyableMap, SourceModel, Type } from "../../../core/types.js"; -+import { DecoratorArgs } from "../utils.js"; -+/** -+ * A descriptor for creating a model. -+ * @experimental -+ */ -+export interface ModelDescriptor { -+ /** -+ * The name of the Model. If name is provided, it is a Model declaration. -+ * Otherwise, it is a Model expression. -+ */ -+ name?: string; -+ /** -+ * Decorators to apply to the Model. -+ */ -+ decorators?: DecoratorArgs[]; -+ /** -+ * Properties of the model. -+ */ -+ properties: Record; -+ /** -+ * Models that extend this model. -+ */ -+ derivedModels?: Model[]; -+ /** -+ * Models that this model extends. -+ */ -+ sourceModels?: SourceModel[]; -+ /** -+ * The indexer property of the model. -+ */ -+ indexer?: ModelIndexer; -+} -+/** -+ * Utilities for working with models. -+ * @experimental -+ */ -+export interface ModelKit { -+ /** -+ * Create a model type. -+ * -+ * @param desc The descriptor of the model. -+ */ -+ create(desc: ModelDescriptor): Model; -+ /** -+ * Check if the given `type` is a model.. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is Model; -+ /** -+ * Check this is an anonyous model. Specifically, this checks if the -+ * model has a name. -+ * -+ * @param type The model to check. -+ */ -+ isExpresion(type: Model): boolean; -+ /** -+ * If the input is anonymous (or the provided filter removes properties) -+ * and there exists a named model with the same set of properties -+ * (ignoring filtered properties), then return that named model. -+ * Otherwise, return the input unchanged. -+ * -+ * This can be used by emitters to find a better name for a set of -+ * properties after filtering. For example, given `{ @metadata prop: -+ * string} & SomeName`, and an emitter that wishes to discard properties -+ * marked with `@metadata`, the emitter can use this to recover that the -+ * best name for the remaining properties is `SomeName`. -+ * -+ * @param model The input model -+ * @param filter An optional filter to apply to the input model's -+ * properties. -+ */ -+ getEffectiveModel(model: Model, filter?: (property: ModelProperty) => boolean): Model; -+ /** -+ * Given a model, return the type that is spread -+ * @returns the type that is spread or undefined if no spread -+ */ -+ getSpreadType: (model: Model) => Type | undefined; -+ /** -+ * Gets all properties from a model, explicitly defined and implicitly defined. -+ * @param model model to get the properties from -+ */ -+ getProperties(model: Model, options?: { -+ includeExtended?: boolean; -+ }): RekeyableMap; -+ /** -+ * Get the record representing additional properties, if there are additional properties. -+ * This method checks for additional properties in the following cases: -+ * 1. If the model is a Record type. -+ * 2. If the model extends a Record type. -+ * 3. If the model spreads a Record type. -+ * -+ * @param model The model to get the additional properties type of. -+ * @returns The record representing additional properties, or undefined if there are none. -+ */ -+ getAdditionalPropertiesRecord(model: Model): Model | undefined; -+ /** -+ * Resolves a discriminated union for the given model from inheritance. -+ * @param type Model to resolve the discriminated union for. -+ */ -+ getDiscriminatedUnion(model: Model): DiscriminatedUnionLegacy | undefined; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with models. -+ * @experimental -+ */ -+ model: ModelKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=model.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model.d.ts.map b/dist/src/experimental/typekit/kits/model.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..962ca13a9b5eb644cdaa94cb1601aa7ec88591b1 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/model.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAEzB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,IAAI,EACL,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAiC,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,KAAK,CAAC;IAErC;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC;IAE9B;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IAElC;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAAG,KAAK,CAAC;IAEtF;;;OAGG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,aAAa,CACX,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC;;;;;;;;;OASG;IACH,6BAA6B,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/D;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,wBAAwB,GAAG,SAAS,CAAC;CAC3E;AAED,UAAU,gBAAgB;IACxB;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model.js b/dist/src/experimental/typekit/kits/model.js -new file mode 100644 -index 0000000000000000000000000000000000000000..ad9604a6694570b3bb8864e4f5f2edcb6a930e42 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model.js -@@ -0,0 +1,105 @@ -+import { getEffectiveModelType } from "../../../core/checker.js"; -+import { ignoreDiagnostics } from "../../../core/diagnostics.js"; -+import { getDiscriminatedUnionFromInheritance, } from "../../../core/helpers/discriminator-utils.js"; -+import { getDiscriminator } from "../../../core/intrinsic-type-state.js"; -+import { createRekeyableMap } from "../../../utils/misc.js"; -+import { defineKit } from "../define-kit.js"; -+import { copyMap, decoratorApplication } from "../utils.js"; -+const spreadCache = new Map(); -+defineKit({ -+ model: { -+ create(desc) { -+ const properties = createRekeyableMap(Array.from(Object.entries(desc.properties))); -+ const model = this.program.checker.createType({ -+ kind: "Model", -+ name: desc.name ?? "", -+ decorators: decoratorApplication(this, desc.decorators), -+ properties: properties, -+ node: undefined, -+ derivedModels: desc.derivedModels ?? [], -+ sourceModels: desc.sourceModels ?? [], -+ indexer: desc.indexer, -+ }); -+ this.program.checker.finishType(model); -+ return model; -+ }, -+ is(type) { -+ return type.kind === "Model"; -+ }, -+ isExpresion(type) { -+ return type.name === ""; -+ }, -+ getEffectiveModel(model, filter) { -+ return getEffectiveModelType(this.program, model, filter); -+ }, -+ getSpreadType(model) { -+ if (spreadCache.has(model)) { -+ return spreadCache.get(model); -+ } -+ if (!model.indexer) { -+ return undefined; -+ } -+ if (model.indexer.key.name === "string") { -+ const record = this.record.create(model.indexer.value); -+ spreadCache.set(model, record); -+ return record; -+ } -+ if (model.indexer.key.name === "integer") { -+ const array = this.array.create(model.indexer.value); -+ spreadCache.set(model, array); -+ return array; -+ } -+ return model.indexer.value; -+ }, -+ getProperties(model, options = {}) { -+ // Add explicitly defined properties -+ const properties = copyMap(model.properties); -+ // Add discriminator property if it exists -+ const discriminator = this.type.getDiscriminator(model); -+ if (discriminator) { -+ const discriminatorName = discriminator.propertyName; -+ properties.set(discriminatorName, this.modelProperty.create({ name: discriminatorName, type: this.builtin.string })); -+ } -+ if (options.includeExtended) { -+ let base = model.baseModel; -+ while (base) { -+ for (const [key, value] of base.properties) { -+ if (!properties.has(key)) { -+ properties.set(key, value); -+ } -+ } -+ base = base.baseModel; -+ } -+ } -+ // TODO: Add Spread? -+ return properties; -+ }, -+ getAdditionalPropertiesRecord(model) { -+ // model MyModel is Record<> {} should be model with additional properties -+ if (this.model.is(model) && model.sourceModel && this.record.is(model.sourceModel)) { -+ return model.sourceModel; -+ } -+ // model MyModel extends Record<> {} should be model with additional properties -+ if (model.baseModel && this.record.is(model.baseModel)) { -+ return model.baseModel; -+ } -+ // model MyModel { ...Record<>} should be model with additional properties -+ const spread = this.model.getSpreadType(model); -+ if (spread && this.model.is(spread) && this.record.is(spread)) { -+ return spread; -+ } -+ if (model.baseModel) { -+ return this.model.getAdditionalPropertiesRecord(model.baseModel); -+ } -+ return undefined; -+ }, -+ getDiscriminatedUnion(model) { -+ const discriminator = getDiscriminator(this.program, model); -+ if (!discriminator) { -+ return undefined; -+ } -+ return ignoreDiagnostics(getDiscriminatedUnionFromInheritance(model, discriminator)); -+ }, -+ }, -+}); -+//# sourceMappingURL=model.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/model.js.map b/dist/src/experimental/typekit/kits/model.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3f4c28b3436120a818d43a8de824a44383fc3e17 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/model.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/model.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/operation.d.ts b/dist/src/experimental/typekit/kits/operation.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..f61e9bfb518d23d0d68769b22258296f887a35ff ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/operation.d.ts -@@ -0,0 +1,49 @@ -+import { ModelProperty, Operation, Type } from "../../../core/types.js"; -+/** -+ * A descriptor for an operation. -+ * @experimental -+ */ -+export interface OperationDescriptor { -+ /** -+ * The name of the model property. -+ */ -+ name: string; -+ /** -+ * The parameters to the model -+ */ -+ parameters: ModelProperty[]; -+ /** -+ * The return type of the model -+ */ -+ returnType: Type; -+} -+/** -+ * Utilities for working with operation properties. -+ * @experimental -+ */ -+export interface OperationKit { -+ /** -+ * Create an operation type. -+ * -+ * @param desc The descriptor of the operation. -+ */ -+ create(desc: OperationDescriptor): Operation; -+ /** -+ * Check if the type is an operation. -+ * @param type type to check -+ */ -+ is(type: Type): type is Operation; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with operation properties. -+ * @experimental -+ */ -+ operation: OperationKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=operation.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/operation.d.ts.map b/dist/src/experimental/typekit/kits/operation.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a0664d669a948116781aeed6e86da7fd4684ce1a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/operation.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGxE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC7C;;;OAGG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC;CACnC;AAED,UAAU,gBAAgB;IACxB;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/operation.js b/dist/src/experimental/typekit/kits/operation.js -new file mode 100644 -index 0000000000000000000000000000000000000000..542c8c3713ec51b320c095c4f7c120174b17ad0a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/operation.js -@@ -0,0 +1,28 @@ -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ operation: { -+ is(type) { -+ return type.kind === "Operation"; -+ }, -+ create(desc) { -+ const parametersModel = this.model.create({ -+ name: `${desc.name}Parameters`, -+ properties: desc.parameters.reduce((acc, property) => { -+ acc[property.name] = property; -+ return acc; -+ }, {}), -+ }); -+ const operation = this.program.checker.createType({ -+ kind: "Operation", -+ name: desc.name, -+ decorators: [], -+ parameters: parametersModel, -+ returnType: desc.returnType, -+ node: undefined, -+ }); -+ this.program.checker.finishType(operation); -+ return operation; -+ }, -+ }, -+}); -+//# sourceMappingURL=operation.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/operation.js.map b/dist/src/experimental/typekit/kits/operation.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..efd855f19a160551bd015e91a4fc002e026d708a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/operation.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/operation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAqD7C,SAAS,CAAmB;IAC1B,SAAS,EAAE;QACT,EAAE,CAAC,IAAU;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,IAAI;YACT,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,YAAY;gBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAChB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;oBAC9B,OAAO,GAAG,CAAC;gBACb,CAAC,EACD,EAAmC,CACpC;aACF,CAAC,CAAC;YACH,MAAM,SAAS,GAAc,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC3D,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,eAAe;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,SAAgB;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,SAAS,CAAC;QACnB,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/realm.d.ts b/dist/src/experimental/typekit/kits/realm.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..4f73739b93726e288e0434e87cecde635fda6ef1 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/realm.d.ts -@@ -0,0 +1,24 @@ -+import { Realm } from "../../realm.js"; -+/** @experimental */ -+export interface RealmKit { -+ /** -+ * Gets the current realm used by the typekit. -+ */ -+ get(): Realm; -+ /** -+ * Sets the current realm to be used by the typekit. -+ */ -+ set(realm: Realm): void; -+} -+interface BaseTypeKit { -+ /** -+ * Utilities for working with general types. -+ */ -+ realm: RealmKit; -+} -+declare module "../define-kit.js" { -+ interface TypekitPrototype extends BaseTypeKit { -+ } -+} -+export {}; -+//# sourceMappingURL=realm.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/realm.d.ts.map b/dist/src/experimental/typekit/kits/realm.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..82caeb2a71e6cb8156a3df9ef7cbeaa03189ca95 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/realm.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/realm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,oBAAoB;AACpB,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,GAAG,IAAI,KAAK,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,WAAW;IACnB;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,gBAAiB,SAAQ,WAAW;KAAG;CAClD"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/realm.js b/dist/src/experimental/typekit/kits/realm.js -new file mode 100644 -index 0000000000000000000000000000000000000000..e519a29b3414789ae027f2713d9d6bcaae17acc6 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/realm.js -@@ -0,0 +1,17 @@ -+import { Realm } from "../../realm.js"; -+import { defineKit } from "../define-kit.js"; -+let _realm; -+defineKit({ -+ realm: { -+ get() { -+ if (!_realm) { -+ _realm = new Realm(this.program, " typekit realm"); -+ } -+ return _realm; -+ }, -+ set(realm) { -+ _realm = realm; -+ }, -+ }, -+}); -+//# sourceMappingURL=realm.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/realm.js.map b/dist/src/experimental/typekit/kits/realm.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e82835c67752fc68074070df475e3cb84cb961e2 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/realm.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"realm.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/realm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAyB7C,IAAI,MAAa,CAAC;AAElB,SAAS,CAAc;IACrB,KAAK,EAAE;QACL,GAAG;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,GAAG,CAAC,KAAY;YACd,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/record.d.ts b/dist/src/experimental/typekit/kits/record.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..63e84da5194684f59e8163be15f0db8eaa0d662f ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/record.d.ts -@@ -0,0 +1,33 @@ -+import { Model, Type } from "../../../core/types.js"; -+/** -+ * RecordKit provides utilities for working with Record Model types. -+ * @experimental -+ */ -+export interface RecordKit { -+ /** -+ * Check if the given `type` is a Record. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): boolean; -+ /** -+ * Get the element type of a Record -+ * @param type a Record Model type -+ */ -+ getElementType(type: Model): Type; -+ /** -+ * Create a Record Model type -+ * @param elementType The type of the elements in the record -+ */ -+ create(elementType: Type): Model; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ record: RecordKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=record.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/record.d.ts.map b/dist/src/experimental/typekit/kits/record.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a574762897e7bb8719aa6a8080be0f663d8a6cac ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/record.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/record.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/record.js b/dist/src/experimental/typekit/kits/record.js -new file mode 100644 -index 0000000000000000000000000000000000000000..85a1f44d8a5ab4efe4ec977671a697a8fb74d7ef ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/record.js -@@ -0,0 +1,26 @@ -+import { isRecordModelType } from "../../../core/type-utils.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ record: { -+ is(type) { -+ return (type.kind === "Model" && isRecordModelType(this.program, type) && type.properties.size === 0); -+ }, -+ getElementType(type) { -+ if (!this.record.is(type)) { -+ throw new Error("Type is not a record."); -+ } -+ return type.indexer.value; -+ }, -+ create(elementType) { -+ return this.model.create({ -+ name: "Record", -+ properties: {}, -+ indexer: { -+ key: this.builtin.string, -+ value: elementType, -+ }, -+ }); -+ }, -+ }, -+}); -+//# sourceMappingURL=record.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/record.js.map b/dist/src/experimental/typekit/kits/record.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8f43b329c655a3f06ab59b34319a6fd601ceb2c8 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/record.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAkC7C,SAAS,CAAmB;IAC1B,MAAM,EAAE;QACN,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAC7F,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,WAAW;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBACxB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/scalar.d.ts b/dist/src/experimental/typekit/kits/scalar.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..a8d4e26d5354fc3b08405bbe59f43b0f921424e9 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/scalar.d.ts -@@ -0,0 +1,360 @@ -+import type { Scalar, Type } from "../../../core/types.js"; -+import { type EncodeData } from "../../../lib/decorators.js"; -+/** -+ * Operations for scalar types like strings, numerics, booleans, dates, etc. -+ * @experimental -+ */ -+export interface ScalarKit { -+ /** -+ * Check if `type` is any scalar type. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard boolean type. -+ * -+ * @param type The type to check. -+ */ -+ isBoolean(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard bytes type. -+ * -+ * @param type The type to check. -+ */ -+ isBytes(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard decimal type. -+ * -+ * @param type The type to check. -+ */ -+ isDecimal(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard decimal128 type. -+ * -+ * @param type The type to check. -+ */ -+ isDecimal128(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard duration type. -+ * -+ * @param type The type to check. -+ */ -+ isDuration(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard float type. -+ * -+ * @param type The type to check. -+ */ -+ isFloat(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard float32 type. -+ * -+ * @param type The type to check. -+ */ -+ isFloat32(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard float64 type. -+ * -+ * @param type The type to check. -+ */ -+ isFloat64(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard int8 type. -+ * -+ * @param type The type to check. -+ */ -+ isInt8(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard int16 type. -+ * -+ * @param type The type to check. -+ */ -+ isInt16(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard int32 type. -+ * -+ * @param type The type to check. -+ */ -+ isInt32(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard int64 type. -+ * -+ * @param type The type to check. -+ */ -+ isInt64(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard integer type. -+ * -+ * @param type The type to check. -+ */ -+ isInteger(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard offsetDateTime type. -+ * -+ * @param type The type to check. -+ */ -+ isOffsetDateTime(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard plainDate type. -+ * -+ * @param type The type to check. -+ */ -+ isPlainDate(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard plainTime type. -+ * -+ * @param type The type to check. -+ */ -+ isPlainTime(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard safeint type. -+ * -+ * @param type The type to check. -+ */ -+ isSafeint(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard uint8 type. -+ * -+ * @param type The type to check. -+ */ -+ isUint8(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard uint16 type. -+ * -+ * @param type The type to check. -+ */ -+ isUint16(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard uint32 type. -+ * -+ * @param type The type to check. -+ */ -+ isUint32(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard uint64 type. -+ * -+ * @param type The type to check. -+ */ -+ isUint64(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard url type. -+ * -+ * @param type The type to check. -+ */ -+ isUrl(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard utcDateTime type. -+ * -+ * @param type The type to check. -+ */ -+ isUtcDateTime(type: Type): type is Scalar; -+ /** -+ * -+ * @param type The type to check. -+ */ -+ isNumeric(type: Type): type is Scalar; -+ /** -+ * Check if `type` is exactly the standard string type. -+ * -+ * @param type The type to check. -+ */ -+ isString(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard boolean type. -+ * -+ * @param type The type to check. -+ */ -+ extendsBoolean(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard string type. -+ * -+ * @param type The type to check. -+ */ -+ extendsString(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard numeric type. -+ * -+ * @param type The type to check. -+ */ -+ extendsNumeric(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard bytes type. -+ * -+ * @param type The type to check. -+ */ -+ extendsBytes(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard decimal type. -+ * -+ * @param type The type to check. -+ */ -+ extendsDecimal(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard decimal128 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsDecimal128(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard duration type. -+ * -+ * @param type The type to check. -+ */ -+ extendsDuration(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard float type. -+ * -+ * @param type The type to check. -+ */ -+ extendsFloat(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard float32 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsFloat32(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard float64 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsFloat64(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard int8 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsInt8(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard int16 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsInt16(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard int32 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsInt32(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard int64 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsInt64(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard integer type. -+ * -+ * @param type The type to check. -+ */ -+ extendsInteger(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard offsetDateTime type. -+ * -+ * @param type The type to check. -+ */ -+ extendsOffsetDateTime(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard plainDate type. -+ * -+ * @param type The type to check. -+ */ -+ extendsPlainDate(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard plainTime type. -+ * -+ * @param type The type to check. -+ */ -+ extendsPlainTime(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard safeint type. -+ * -+ * @param type The type to check. -+ */ -+ extendsSafeint(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard uint8 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUint8(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard uint16 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUint16(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard uint32 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUint32(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard uint64 type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUint64(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard url type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUrl(type: Type): type is Scalar; -+ /** -+ * Check if `type` extends the standard utcDateTime type. -+ * -+ * @param type The type to check. -+ */ -+ extendsUtcDateTime(type: Type): type is Scalar; -+ /** -+ * Get the standard built-in base type of a scalar. For all built-in scalar -+ * types (numeric, string, int32, etc.) this will just return the scalar -+ * type. For user-defined scalars, this will return the first base scalar -+ * that is built-in. For user-defined scalars without a standard base type, -+ * this will return null. -+ * -+ * @param type The scalar to check. -+ */ -+ getStdBase(type: Scalar): Scalar | null; -+ /** -+ * Get the encoding information for a scalar type. Returns undefined if no -+ * encoding data is specified. -+ * -+ * Note: This will return the encoding data for the scalar type itself, not -+ * the model property that uses the scalar type. If this scalar might be -+ * referenced from a model property, use {@link modelProperty.getEncoding} -+ * instead. -+ * -+ * @param scalar The scalar to get the encoding data for. -+ */ -+ getEncoding(scalar: Scalar): EncodeData | undefined; -+ /** -+ * Get the well-known format for a string scalar. Returns undefined if no -+ * format is specified. -+ * -+ * Note: This will return the format data for the scalar type itself, not -+ * the model property that uses the scalar type. If this scalar might be -+ * referenced from a model property, use {@link ModelPropertyKit.getEncoding} -+ * instead. -+ * -+ * @param scalar The scalar to get the format for. -+ */ -+ getFormat(scalar: Scalar): string | undefined; -+} -+interface TypekitExtension { -+ /** -+ * Operations for scalar types like strings, numerics, booleans, dates, etc. -+ * @experimental -+ */ -+ scalar: ScalarKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=scalar.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/scalar.d.ts.map b/dist/src/experimental/typekit/kits/scalar.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..99cb7fc7cbd1ba7a09b5c4ceee92deddaa65373a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/scalar.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/scalar.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/scalar.js b/dist/src/experimental/typekit/kits/scalar.js -new file mode 100644 -index 0000000000000000000000000000000000000000..51ed18777188a22dfaf91223b423384449a306d0 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/scalar.js -@@ -0,0 +1,91 @@ -+import { isIntrinsicType } from "../../../core/decorator-utils.js"; -+import { getEncode, getFormat } from "../../../lib/decorators.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ scalar: { -+ is(type) { -+ return type.kind === "Scalar"; -+ }, -+ extendsBoolean: extendsStdType("boolean"), -+ extendsBytes: extendsStdType("bytes"), -+ extendsDecimal: extendsStdType("decimal"), -+ extendsDecimal128: extendsStdType("decimal128"), -+ extendsDuration: extendsStdType("duration"), -+ extendsFloat: extendsStdType("float"), -+ extendsFloat32: extendsStdType("float32"), -+ extendsFloat64: extendsStdType("float64"), -+ extendsInt8: extendsStdType("int8"), -+ extendsInt16: extendsStdType("int16"), -+ extendsInt32: extendsStdType("int32"), -+ extendsInt64: extendsStdType("int64"), -+ extendsInteger: extendsStdType("integer"), -+ extendsNumeric: extendsStdType("numeric"), -+ extendsOffsetDateTime: extendsStdType("offsetDateTime"), -+ extendsPlainDate: extendsStdType("plainDate"), -+ extendsPlainTime: extendsStdType("plainTime"), -+ extendsSafeint: extendsStdType("safeint"), -+ extendsString: extendsStdType("string"), -+ extendsUint8: extendsStdType("uint8"), -+ extendsUint16: extendsStdType("uint16"), -+ extendsUint32: extendsStdType("uint32"), -+ extendsUint64: extendsStdType("uint64"), -+ extendsUrl: extendsStdType("url"), -+ extendsUtcDateTime: extendsStdType("utcDateTime"), -+ isBoolean: isStdType("boolean"), -+ isBytes: isStdType("bytes"), -+ isDecimal: isStdType("decimal"), -+ isDecimal128: isStdType("decimal128"), -+ isDuration: isStdType("duration"), -+ isFloat: isStdType("float"), -+ isFloat32: isStdType("float32"), -+ isFloat64: isStdType("float64"), -+ isInt8: isStdType("int8"), -+ isInt16: isStdType("int16"), -+ isInt32: isStdType("int32"), -+ isInt64: isStdType("int64"), -+ isInteger: isStdType("integer"), -+ isNumeric: isStdType("numeric"), -+ isOffsetDateTime: isStdType("offsetDateTime"), -+ isPlainDate: isStdType("plainDate"), -+ isPlainTime: isStdType("plainTime"), -+ isSafeint: isStdType("safeint"), -+ isString: isStdType("string"), -+ isUint8: isStdType("uint8"), -+ isUint16: isStdType("uint16"), -+ isUint32: isStdType("uint32"), -+ isUint64: isStdType("uint64"), -+ isUrl: isStdType("url"), -+ isUtcDateTime: isStdType("utcDateTime"), -+ getStdBase(type) { -+ const tspNamespace = this.program.resolveTypeReference("TypeSpec")[0]; -+ let current = type; -+ while (current) { -+ if (current.namespace === tspNamespace) { -+ return current; -+ } -+ current = current.baseScalar; -+ } -+ return null; -+ }, -+ getEncoding(type) { -+ return getEncode(this.program, type); -+ }, -+ getFormat(type) { -+ return getFormat(this.program, type); -+ }, -+ }, -+}); -+function isStdType(typeName) { -+ return function (type) { -+ return type === this.program.checker.getStdType(typeName); -+ }; -+} -+function extendsStdType(typeName) { -+ return function (type) { -+ if (!this.scalar.is(type)) { -+ return false; -+ } -+ return isIntrinsicType(this.program, type, typeName); -+ }; -+} -+//# sourceMappingURL=scalar.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/scalar.js.map b/dist/src/experimental/typekit/kits/scalar.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..b64d03ff1fc6d9d55189c46820a506a2bcad95cc ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/scalar.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/scalar.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/type.d.ts b/dist/src/experimental/typekit/kits/type.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..262aaff76dcc72b56b9ead6127570c55ae8693ec ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/type.d.ts -@@ -0,0 +1,113 @@ -+import { Discriminator } from "../../../core/intrinsic-type-state.js"; -+import { Enum, Model, Scalar, Union, type Type } from "../../../core/types.js"; -+/** @experimental */ -+export interface TypeTypekit { -+ /** -+ * Clones a type and adds it to the typekit's realm. -+ * @param type Type to clone -+ */ -+ clone(type: T): T; -+ /** -+ * Finishes a type, applying all the decorators. -+ */ -+ finishType(type: Type): void; -+ /** -+ * Checks if a type is decorated with @error -+ * @param type The type to check. -+ */ -+ isError(type: Type): boolean; -+ /** -+ * Get the name of this type in the specified encoding. -+ */ -+ getEncodedName(type: Type & { -+ name: string; -+ }, encoding: string): string; -+ /** -+ * Get the summary of this type as specified by the `@summary` decorator. -+ * -+ * @param type The type to get the summary for. -+ */ -+ getSummary(type: Type): string | undefined; -+ /** -+ * Get the documentation of this type as specified by the `@doc` decorator or -+ * the JSDoc comment. -+ * -+ * @param type The type to get the documentation for. -+ */ -+ getDoc(type: Type): string | undefined; -+ /** -+ * Get the plausible name of a type. If the type has a name, it will use it otherwise it will try generate a name based on the context. -+ * If the type can't get a name, it will return an empty string. -+ * If the type is a TemplateInstance, it will prefix the name with the template arguments. -+ * @param type The scalar to get the name of.z -+ */ -+ getPlausibleName(type: Model | Union | Enum | Scalar): string; -+ /** -+ * Resolves the discriminator for a discriminated union. Returns undefined if the type is not a discriminated union. -+ * @param type -+ */ -+ getDiscriminator(type: Model | Union): Discriminator | undefined; -+ /** -+ * Gets the maximum value for a numeric or model property type. -+ * @param type type to get the maximum value for -+ */ -+ maxValue(type: Type): number | undefined; -+ /** -+ * Gets the minimum value for a numeric or model property type. -+ * @param type type to get the minimum value for -+ */ -+ minValue(type: Type): number | undefined; -+ /** -+ * Gets the maximum value this numeric type should be, exclusive of the given value. -+ * @param type -+ */ -+ maxValueExclusive(type: Type): number | undefined; -+ /** -+ * Gets the minimum value this numeric type should be, exclusive of the given value. -+ * @param type type to get the minimum value for -+ */ -+ minValueExclusive(type: Type): number | undefined; -+ /** -+ * Gets the maximum length for a string type. -+ * @param type type to get the maximum length for -+ */ -+ maxLength(type: Type): number | undefined; -+ /** -+ * Gets the minimum length for a string type. -+ * @param type type to get the minimum length for -+ */ -+ minLength(type: Type): number | undefined; -+ /** -+ * Gets the maximum number of items for an array type. -+ * @param type type to get the maximum number of items for -+ */ -+ maxItems(type: Type): number | undefined; -+ /** -+ * Gets the minimum number of items for an array type. -+ * @param type type to get the minimum number of items for -+ */ -+ minItems(type: Type): number | undefined; -+ /** -+ * Checks if the given type is a never type. -+ */ -+ isNever(type: Type): boolean; -+ /** -+ * Checks if the given type is a user defined type. Non-user defined types are defined in the compiler or other libraries imported by the spec. -+ * @param type The type to check. -+ * @returns True if the type is a user defined type, false otherwise. -+ */ -+ isUserDefined(type: Type): boolean; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with general types. -+ * @experimental -+ */ -+ type: TypeTypekit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=type.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/type.d.ts.map b/dist/src/experimental/typekit/kits/type.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..670a5d40e0e9af01e2c1377fc1ebfefbcef10337 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/type.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/type.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAUd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAQ/E,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC7B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAExE;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAE3C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9D;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;IACjE;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAEzC;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAElD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAElD;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;CACpC;AAED,UAAU,gBAAgB;IACxB;;;OAGG;IACH,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/type.js b/dist/src/experimental/typekit/kits/type.js -new file mode 100644 -index 0000000000000000000000000000000000000000..81a5782038c346b1d7f04014bb0a568a2ae38d19 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/type.js -@@ -0,0 +1,150 @@ -+import { ignoreDiagnostics } from "../../../core/diagnostics.js"; -+import { getDiscriminatedUnion } from "../../../core/helpers/discriminator-utils.js"; -+import { getLocationContext } from "../../../core/helpers/location-context.js"; -+import { getDiscriminator, getMaxItems, getMaxLength, getMaxValue, getMaxValueExclusive, getMinItems, getMinLength, getMinValue, getMinValueExclusive, } from "../../../core/intrinsic-type-state.js"; -+import { isErrorType, isNeverType } from "../../../core/type-utils.js"; -+import { getDoc, getSummary } from "../../../lib/decorators.js"; -+import { resolveEncodedName } from "../../../lib/encoded-names.js"; -+import { defineKit } from "../define-kit.js"; -+import { $ } from "../index.js"; -+import { copyMap } from "../utils.js"; -+import { getPlausibleName } from "../utils/get-plausible-name.js"; -+defineKit({ -+ type: { -+ finishType(type) { -+ this.program.checker.finishType(type); -+ }, -+ clone(type) { -+ let clone; -+ switch (type.kind) { -+ case "Model": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ derivedModels: [...type.derivedModels], -+ sourceModels: type.sourceModels.map((x) => ({ ...x })), -+ properties: copyMap(type.properties), -+ indexer: type.indexer ? { ...type.indexer } : undefined, -+ }); -+ break; -+ case "Union": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ variants: copyMap(type.variants), -+ get options() { -+ return Array.from(this.variants.values()).map((v) => v.type); -+ }, -+ }); -+ break; -+ case "Interface": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ operations: copyMap(type.operations), -+ }); -+ break; -+ case "Enum": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ members: copyMap(type.members), -+ }); -+ break; -+ case "Namespace": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ instantiationParameters: type.instantiationParameters -+ ? [...type.instantiationParameters] -+ : undefined, -+ models: copyMap(type.models), -+ decoratorDeclarations: copyMap(type.decoratorDeclarations), -+ enums: copyMap(type.enums), -+ unions: copyMap(type.unions), -+ operations: copyMap(type.operations), -+ interfaces: copyMap(type.interfaces), -+ namespaces: copyMap(type.namespaces), -+ scalars: copyMap(type.scalars), -+ }); -+ break; -+ case "Scalar": -+ clone = this.program.checker.createType({ -+ ...type, -+ decorators: [...type.decorators], -+ derivedScalars: [...type.derivedScalars], -+ constructors: copyMap(type.constructors), -+ }); -+ break; -+ default: -+ clone = this.program.checker.createType({ -+ ...type, -+ ...("decorators" in type ? { decorators: [...type.decorators] } : {}), -+ }); -+ break; -+ } -+ this.realm.addType(clone); -+ return clone; -+ }, -+ isError(type) { -+ return isErrorType(type); -+ }, -+ getEncodedName(type, encoding) { -+ return resolveEncodedName(this.program, type, encoding); -+ }, -+ getSummary(type) { -+ return getSummary(this.program, type); -+ }, -+ getDoc(type) { -+ return getDoc(this.program, type); -+ }, -+ getPlausibleName(type) { -+ return getPlausibleName(type); -+ }, -+ getDiscriminator(type) { -+ let discriminator; -+ if ($.model.is(type)) { -+ discriminator = getDiscriminator(this.program, type); -+ } -+ else { -+ const unionDiscriminator = ignoreDiagnostics(getDiscriminatedUnion(this.program, type)); -+ const propertyName = unionDiscriminator?.options.discriminatorPropertyName; -+ if (propertyName) { -+ discriminator = { propertyName }; -+ } -+ } -+ return discriminator; -+ }, -+ maxValue(type) { -+ return getMaxValue(this.program, type); -+ }, -+ minValue(type) { -+ return getMinValue(this.program, type); -+ }, -+ maxLength(type) { -+ return getMaxLength(this.program, type); -+ }, -+ minLength(type) { -+ return getMinLength(this.program, type); -+ }, -+ maxItems(type) { -+ return getMaxItems(this.program, type); -+ }, -+ maxValueExclusive(type) { -+ return getMaxValueExclusive(this.program, type); -+ }, -+ minValueExclusive(type) { -+ return getMinValueExclusive(this.program, type); -+ }, -+ minItems(type) { -+ return getMinItems(this.program, type); -+ }, -+ isNever(type) { -+ return isNeverType(type); -+ }, -+ isUserDefined(type) { -+ return getLocationContext(this.program, type).type === "project"; -+ }, -+ }, -+}); -+//# sourceMappingURL=type.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/type.js.map b/dist/src/experimental/typekit/kits/type.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3359b4740cb65fe8d0372b7b8390283880ae572f ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/type.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/type.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union-variant.d.ts b/dist/src/experimental/typekit/kits/union-variant.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..6b3678511b7ce1c77e6abc63ebdbfd846b15d49e ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union-variant.d.ts -@@ -0,0 +1,60 @@ -+import type { Type, Union, UnionVariant } from "../../../core/types.js"; -+import { DecoratorArgs } from "../utils.js"; -+/** -+ * A descriptor for a union variant. -+ * @experimental -+ */ -+export interface UnionVariantDescriptor { -+ /** -+ * The name of the union variant. -+ */ -+ name?: string | symbol; -+ /** -+ * Decorators to apply to the union variant. -+ */ -+ decorators?: DecoratorArgs[]; -+ /** -+ * The type of the union variant. -+ */ -+ type: Type; -+ /** -+ * The union that the variant belongs to. If not provided here, it is assumed -+ * that it will be set in `union.build`. -+ */ -+ union?: Union; -+} -+/** -+ * Utilities for working with union variants. -+ * -+ * Union variants are types that represent a single value within a union that can be one of -+ * several types. -+ * -+ * @experimental -+ */ -+export interface UnionVariantKit { -+ /** -+ * Create a union variant. -+ * -+ * @param desc The descriptor of the union variant. -+ */ -+ create(desc: UnionVariantDescriptor): UnionVariant; -+ /** -+ * Check if the given `type` is a union. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is UnionVariant; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with union variants. -+ * @experimental -+ */ -+ unionVariant: UnionVariantKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=union-variant.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union-variant.d.ts.map b/dist/src/experimental/typekit/kits/union-variant.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e0cc190a6fa878a2968ce2e7325a37aa84550e25 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union-variant.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"union-variant.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union-variant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC;IAEnD;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,YAAY,CAAC;CACtC;AAED,UAAU,gBAAgB;IACxB;;;OAGG;IACH,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union-variant.js b/dist/src/experimental/typekit/kits/union-variant.js -new file mode 100644 -index 0000000000000000000000000000000000000000..2d5fade21827f2b2b9e89a5b1bc01bf020b65b51 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union-variant.js -@@ -0,0 +1,22 @@ -+import { defineKit } from "../define-kit.js"; -+import { decoratorApplication } from "../utils.js"; -+defineKit({ -+ unionVariant: { -+ create(desc) { -+ const variant = this.program.checker.createType({ -+ kind: "UnionVariant", -+ name: desc.name ?? Symbol("name"), -+ decorators: decoratorApplication(this, desc.decorators), -+ type: desc.type, -+ node: undefined, -+ union: desc.union, -+ }); -+ this.program.checker.finishType(variant); -+ return variant; -+ }, -+ is(type) { -+ return type.kind === "UnionVariant"; -+ }, -+ }, -+}); -+//# sourceMappingURL=union-variant.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union-variant.js.map b/dist/src/experimental/typekit/kits/union-variant.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..dd824be140eb52174c99a57b3596f7997befe016 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union-variant.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"union-variant.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union-variant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AAiElE,SAAS,CAAmB;IAC1B,YAAY,EAAE;QACZ,MAAM,CAAC,IAAI;YACT,MAAM,OAAO,GAAiB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC5D,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;gBACjC,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,SAAgB;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAY;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;QACtC,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union.d.ts b/dist/src/experimental/typekit/kits/union.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..2f22697b3fb4c27be4e9a83b47429d95a7ce3da9 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union.d.ts -@@ -0,0 +1,85 @@ -+import { DiscriminatedUnion } from "../../../core/helpers/discriminator-utils.js"; -+import type { Type, Union, UnionVariant } from "../../../core/types.js"; -+import { DecoratorArgs } from "../utils.js"; -+/** -+ * A descriptor for a union type. -+ * @experimental -+ */ -+export interface UnionDescriptor { -+ /** -+ * The name of the union. If name is provided, it is a union declaration. -+ * Otherwise, it is a union expression. -+ */ -+ name?: string; -+ /** -+ * Decorators to apply to the union. -+ */ -+ decorators?: DecoratorArgs[]; -+ /** -+ * The variants of the union. If a variant is a string, number, or boolean, it -+ * will be converted to a union variant with the same name and type. -+ */ -+ variants?: Record | UnionVariant[]; -+} -+/** -+ * Utilities for working with unions. -+ * @experimental -+ */ -+export interface UnionKit { -+ /** -+ * Creates a union type with filtered variants. -+ * @param filterFn Function to filter the union variants -+ */ -+ filter(union: Union, filterFn: (variant: UnionVariant) => boolean): Union; -+ /** -+ * Create a union type. -+ * -+ * @param desc The descriptor of the union. -+ */ -+ create(desc: UnionDescriptor): Union; -+ /** -+ * Check if the given `type` is a union. -+ * -+ * @param type The type to check. -+ */ -+ is(type: Type): type is Union; -+ /** -+ * Check if the union is a valid enum. Specifically, this checks if the -+ * union has a name (since there are no enum expressions), and whether each -+ * of the variant types is a valid enum member value. -+ * -+ * @param type The union to check. -+ */ -+ isValidEnum(type: Union): boolean; -+ /** -+ * Check if a union is extensible. Extensible unions are unions which contain a variant -+ * that is a supertype of all the other types. This means that the subtypes of the common -+ * supertype are known example values, but others may be present. -+ * @param type The union to check. -+ */ -+ isExtensible(type: Union): boolean; -+ /** -+ * Checks if an union is an expression (anonymous) or declared. -+ * @param type Uniton to check if it is an expression -+ */ -+ isExpression(type: Union): boolean; -+ /** -+ * Resolves a discriminated union for the given union. -+ * @param type Union to resolve the discriminated union for. -+ */ -+ getDiscriminatedUnion(type: Union): DiscriminatedUnion | undefined; -+} -+interface TypekitExtension { -+ /** -+ * Utilities for working with unions. -+ * @experimental -+ */ -+ union: UnionKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export declare const UnionKit: void; -+export {}; -+//# sourceMappingURL=union.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union.d.ts.map b/dist/src/experimental/typekit/kits/union.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..00a1d1f93209a051c5799737f31ff0bd39143d2f ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAEnB,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;CACtE;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,GAAG,KAAK,CAAC;IAC1E;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,KAAK,CAAC;IAErC;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC;IAE9B;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IAElC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IAEnC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACnC;;;OAGG;IACH,qBAAqB,CAAC,IAAI,EAAE,KAAK,GAAG,kBAAkB,GAAG,SAAS,CAAC;CACpE;AAED,UAAU,gBAAgB;IACxB;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C;AAED,eAAO,MAAM,QAAQ,MAyFnB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union.js b/dist/src/experimental/typekit/kits/union.js -new file mode 100644 -index 0000000000000000000000000000000000000000..f0d267224f2867c33d9333ffe60523440657fd48 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union.js -@@ -0,0 +1,80 @@ -+import { ignoreDiagnostics } from "../../../core/diagnostics.js"; -+import { getDiscriminatedUnion, } from "../../../core/helpers/discriminator-utils.js"; -+import { createRekeyableMap } from "../../../utils/misc.js"; -+import { defineKit } from "../define-kit.js"; -+import { decoratorApplication } from "../utils.js"; -+export const UnionKit = defineKit({ -+ union: { -+ filter(union, filterFn) { -+ const variants = Array.from(union.variants.values()).filter(filterFn); -+ return this.union.create({ variants }); -+ }, -+ create(desc) { -+ const union = this.program.checker.createType({ -+ kind: "Union", -+ name: desc.name, -+ decorators: decoratorApplication(this, desc.decorators), -+ variants: createRekeyableMap(), -+ get options() { -+ return Array.from(this.variants.values()).map((v) => v.type); -+ }, -+ expression: desc.name === undefined, -+ node: undefined, -+ }); -+ if (Array.isArray(desc.variants)) { -+ for (const variant of desc.variants) { -+ union.variants.set(variant.name, variant); -+ variant.union = union; -+ } -+ } -+ else if (desc.variants) { -+ for (const [name, value] of Object.entries(desc.variants)) { -+ union.variants.set(name, this.unionVariant.create({ name, type: this.literal.create(value) })); -+ } -+ } -+ this.program.checker.finishType(union); -+ return union; -+ }, -+ is(type) { -+ return type.kind === "Union"; -+ }, -+ isValidEnum(type) { -+ for (const variant of type.variants.values()) { -+ if (!this.literal.isString(variant.type) && !this.literal.isNumeric(variant.type)) { -+ return false; -+ } -+ } -+ return true; -+ }, -+ isExtensible(type) { -+ const variants = Array.from(type.variants.values()); -+ if (variants.length === 0) { -+ return false; -+ } -+ for (let i = 0; i < variants.length; i++) { -+ let isCommon = true; -+ for (let j = 0; j < variants.length; j++) { -+ if (i === j) { -+ continue; -+ } -+ const assignable = ignoreDiagnostics(this.program.checker.isTypeAssignableTo(variants[j].type, variants[i].type, type)); -+ if (!assignable) { -+ isCommon = false; -+ break; -+ } -+ } -+ if (isCommon) { -+ return true; -+ } -+ } -+ return false; -+ }, -+ isExpression(type) { -+ return type.name === undefined || type.name === ""; -+ }, -+ getDiscriminatedUnion(type) { -+ return ignoreDiagnostics(getDiscriminatedUnion(this.program, type)); -+ }, -+ }, -+}); -+//# sourceMappingURL=union.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/union.js.map b/dist/src/experimental/typekit/kits/union.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a00ebbb96cf4c27b3dc07c91ef67ff3a7ae19fa2 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/union.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"union.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAEL,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AA0FlE,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAmB;IAClD,KAAK,EAAE;QACL,MAAM,CAAC,KAAK,EAAE,QAAQ;YACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,IAAI;YACT,MAAM,KAAK,GAAU,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACnD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,QAAQ,EAAE,kBAAkB,EAAE;gBAC9B,IAAI,OAAO;oBACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/D,CAAC;gBACD,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS;gBACnC,IAAI,EAAE,SAAgB;aACvB,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACpC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC1C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1D,KAAK,CAAC,QAAQ,CAAC,GAAG,CAChB,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CACrE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;QAC/B,CAAC;QAED,WAAW,CAAC,IAAI;YACd,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClF,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,YAAY,CAAC,IAAI;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACZ,SAAS;oBACX,CAAC;oBAED,MAAM,UAAU,GAAG,iBAAiB,CAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAClF,CAAC;oBAEF,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,QAAQ,GAAG,KAAK,CAAC;wBACjB,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,IAAI;YACf,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACrD,CAAC;QACD,qBAAqB,CAAC,IAAI;YACxB,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/value.d.ts b/dist/src/experimental/typekit/kits/value.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..8e73d9ffb989cc56d4efabcdb9049e9713d64132 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/value.d.ts -@@ -0,0 +1,84 @@ -+import type { ArrayValue, BooleanValue, EnumValue, NullValue, NumericValue, ObjectValue, ScalarValue, StringValue, Value } from "../../../core/types.js"; -+/** @experimental */ -+export interface ValueKit { -+ /** -+ * Create a Value type from a JavaScript value. -+ * -+ * @param value The JavaScript value to turn into a TypeSpec Value type. -+ */ -+ create(value: string | number | boolean): Value; -+ /** -+ * Create a string Value type from a JavaScript string value. -+ * -+ * @param value The string value. -+ */ -+ createString(value: string): StringValue; -+ /** -+ * Create a numeric Value type from a JavaScript number value. -+ * -+ * @param value The numeric value. -+ */ -+ createNumeric(value: number): NumericValue; -+ /** -+ * Create a boolean Value type from a JavaScript boolean value. -+ * -+ * @param value The boolean value. -+ */ -+ createBoolean(value: boolean): BooleanValue; -+ /** -+ * Check if `type` is a string Value type. -+ * -+ * @param type The type to check. -+ */ -+ isString(type: Value): type is StringValue; -+ /** -+ * Check if `type` is a numeric Value type. -+ * -+ * @param type The type to check. -+ */ -+ isNumeric(type: Value): type is NumericValue; -+ /** -+ * Check if `type` is a scalar value type -+ * @param type The type to check. -+ */ -+ isScalar(type: Value): type is ScalarValue; -+ /** -+ * Check if `type` is an object value type -+ * @param type The type to check. -+ */ -+ isObject(type: Value): type is ObjectValue; -+ /** -+ * Check if `type` is an array value type -+ * @param type The type to check. -+ */ -+ isArray(type: Value): type is ArrayValue; -+ /** -+ * Check if `type` is an enum value type -+ * @param type The type to check. -+ */ -+ isEnum(type: Value): type is EnumValue; -+ /** -+ * Check if `type` is a null value Type. -+ * @param type The type to check. -+ */ -+ isNull(type: Value): type is NullValue; -+ /** -+ * Check if `type` is a boolean Value type. -+ * -+ * @param type The type to check. -+ */ -+ isBoolean(type: Value): type is BooleanValue; -+ is(type: { -+ valueKind: string; -+ }): type is Value; -+} -+interface TypekitExtension { -+ /** @experimental */ -+ value: ValueKit; -+} -+declare module "../define-kit.js" { -+ interface Typekit extends TypekitExtension { -+ } -+} -+export {}; -+//# sourceMappingURL=value.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/value.d.ts.map b/dist/src/experimental/typekit/kits/value.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..2193e4e30f81badffb2a33e89eb5e55eb1a4e349 ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/value.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/value.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,EACN,MAAM,wBAAwB,CAAC;AAGhC,oBAAoB;AACpB,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAEhD;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IAEzC;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IAE3C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,WAAW,CAAC;IAE3C;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,YAAY,CAAC;IAE7C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,WAAW,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,WAAW,CAAC;IAE3C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,UAAU,CAAC;IAEzC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,SAAS,CAAC;IAEvC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,SAAS,CAAC;IAEvC;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,YAAY,CAAC;IAE7C,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,IAAI,KAAK,CAAC;CAChD;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/value.js b/dist/src/experimental/typekit/kits/value.js -new file mode 100644 -index 0000000000000000000000000000000000000000..18004b7edf4d10a6d191253eb7eba32d994dc10a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/value.js -@@ -0,0 +1,81 @@ -+import { Numeric } from "../../../core/numeric.js"; -+import { defineKit } from "../define-kit.js"; -+defineKit({ -+ value: { -+ is(value) { -+ const type = value; -+ return (this.value.isString(type) || -+ this.value.isNumeric(type) || -+ this.value.isBoolean(type) || -+ this.value.isArray(type) || -+ this.value.isObject(type) || -+ this.value.isEnum(type) || -+ this.value.isNull(type) || -+ this.value.isScalar(type)); -+ }, -+ create(value) { -+ if (typeof value === "string") { -+ return this.value.createString(value); -+ } -+ else if (typeof value === "number") { -+ return this.value.createNumeric(value); -+ } -+ else { -+ return this.value.createBoolean(value); -+ } -+ }, -+ createString(value) { -+ return { -+ entityKind: "Value", -+ value: value, -+ valueKind: "StringValue", -+ type: this.literal.createString(value), -+ scalar: undefined, -+ }; -+ }, -+ createNumeric(value) { -+ const valueAsString = String(value); -+ return { -+ entityKind: "Value", -+ value: Numeric(valueAsString), -+ valueKind: "NumericValue", -+ type: this.literal.createNumeric(value), -+ scalar: undefined, -+ }; -+ }, -+ createBoolean(value) { -+ return { -+ entityKind: "Value", -+ value: value, -+ valueKind: "BooleanValue", -+ type: this.literal.createBoolean(value), -+ scalar: undefined, -+ }; -+ }, -+ isBoolean(type) { -+ return type.valueKind === "BooleanValue"; -+ }, -+ isString(type) { -+ return type.valueKind === "StringValue"; -+ }, -+ isNumeric(type) { -+ return type.valueKind === "NumericValue"; -+ }, -+ isArray(type) { -+ return type.valueKind === "ArrayValue"; -+ }, -+ isObject(type) { -+ return type.valueKind === "ObjectValue"; -+ }, -+ isEnum(type) { -+ return type.valueKind === "EnumValue"; -+ }, -+ isNull(type) { -+ return type.valueKind === "NullValue"; -+ }, -+ isScalar(type) { -+ return type.valueKind === "ScalarValue"; -+ }, -+ }, -+}); -+//# sourceMappingURL=value.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/kits/value.js.map b/dist/src/experimental/typekit/kits/value.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9f9ab264d19d9c204639da454a92bef9a479b12a ---- /dev/null -+++ b/dist/src/experimental/typekit/kits/value.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/value.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/get-plausible-name.d.ts b/dist/src/experimental/typekit/utils/get-plausible-name.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..381d49f266cdcafa7e68773c96cfaf9898f0bfd7 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/get-plausible-name.d.ts -@@ -0,0 +1,7 @@ -+import { Enum, Interface, Model, Scalar, Union } from "../../../core/types.js"; -+/** -+ * Get a plausible name for the given type. -+ * @experimental -+ */ -+export declare function getPlausibleName(type: Model | Union | Enum | Scalar | Interface): string; -+//# sourceMappingURL=get-plausible-name.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/get-plausible-name.d.ts.map b/dist/src/experimental/typekit/utils/get-plausible-name.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..0915b549b5948b539d6c1039a96862de7128fbc2 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/get-plausible-name.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"get-plausible-name.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/utils/get-plausible-name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,UAa/E"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/get-plausible-name.js b/dist/src/experimental/typekit/utils/get-plausible-name.js -new file mode 100644 -index 0000000000000000000000000000000000000000..77a81d8443c4ce00de9770d9c182c6ff41247442 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/get-plausible-name.js -@@ -0,0 +1,17 @@ -+import { isTemplateInstance } from "../../../core/type-utils.js"; -+/** -+ * Get a plausible name for the given type. -+ * @experimental -+ */ -+export function getPlausibleName(type) { -+ let name = type.name; -+ if (!name) { -+ name = "TypeExpression"; // TODO: Implement automatic name generation based on the type context -+ } -+ if (isTemplateInstance(type)) { -+ const namePrefix = type.templateMapper.args.map((a) => ("name" in a && a.name) || "").join("_"); -+ name = `${namePrefix}${name}`; -+ } -+ return name; -+} -+//# sourceMappingURL=get-plausible-name.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/get-plausible-name.js.map b/dist/src/experimental/typekit/utils/get-plausible-name.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..97e356f4aaa299f91bbadab452bf0fe1b9514718 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/get-plausible-name.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"get-plausible-name.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/utils/get-plausible-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA+C;IAC9E,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAErB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,gBAAgB,CAAC,CAAC,sEAAsE;IACjG,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,GAAG,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/index.d.ts b/dist/src/experimental/typekit/utils/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..660fa7fda153683d2a05d50de8771042ebfd04bc ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/index.d.ts -@@ -0,0 +1,2 @@ -+export * from "./get-plausible-name.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/index.d.ts.map b/dist/src/experimental/typekit/utils/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..cf9b3bb7155db394b65c4b404795fba95f3e25e3 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/index.js b/dist/src/experimental/typekit/utils/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..304a615d6be370688abfb98f85fdcecc9f43bfaf ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/index.js -@@ -0,0 +1,2 @@ -+export * from "./get-plausible-name.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils/index.js.map b/dist/src/experimental/typekit/utils/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3d85c42e1beaad96006fb906f45b59774c7652d2 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils.d.ts b/dist/src/experimental/typekit/utils.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..9d5791c566f2da9cf8a457c79abf121d1e9bb9df ---- /dev/null -+++ b/dist/src/experimental/typekit/utils.d.ts -@@ -0,0 +1,32 @@ -+import type { DecoratorApplication, DecoratorFunction, RekeyableMap } from "../../core/types.js"; -+import { Typekit } from "./define-kit.js"; -+/** -+ * Creates a shallow copy of a rekeyable map. -+ * -+ * @experimental -+ */ -+export declare function copyMap(map: RekeyableMap): RekeyableMap; -+/** -+ * Decorator arguments can be either a single decorator (treated as a decorator with no arguments) or an array where the -+ * first element is the decorator and the rest of the elements are the JavaScript values of the arguments. -+ * -+ * @experimental -+ */ -+export type DecoratorArgs = DecoratorFunction | [DecoratorFunction, ...any[]]; -+/** -+ * Utility function for converting a list of decorators and arguments into structure decorator applications that are -+ * compatible with the TypeSpec type graph. -+ * -+ * Note: Not all JavaScript values can be converted faithfully to TypeSpec values. This function will attempt to convert -+ * the value to a literal TypeSpec value if it is a primitive value, otherwise it will be left as a JavaScript value. -+ * The `jsValue` property of the argument will always contain the original JavaScript value passed to the decorator. -+ * -+ * @param typekit - The Typekit instance to use for creating types and values. -+ * @param decorators - The list of decorators and arguments to apply. -+ * -+ * @see {@link DecoratorArgs} -+ * -+ * @experimental -+ */ -+export declare function decoratorApplication(typekit: Typekit, decorators?: DecoratorArgs[]): DecoratorApplication[]; -+//# sourceMappingURL=utils.d.ts.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils.d.ts.map b/dist/src/experimental/typekit/utils.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..afd234385ec8397d5dbeb9331c723de097fa8196 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAEzE;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,aAAa,EAAE,GAC3B,oBAAoB,EAAE,CAiBxB"} -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils.js b/dist/src/experimental/typekit/utils.js -new file mode 100644 -index 0000000000000000000000000000000000000000..92bbf85ea022db2eee41ac8f8308b06840059cb7 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils.js -@@ -0,0 +1,39 @@ -+import { createRekeyableMap } from "../../utils/misc.js"; -+/** -+ * Creates a shallow copy of a rekeyable map. -+ * -+ * @experimental -+ */ -+export function copyMap(map) { -+ return createRekeyableMap(map.entries()); -+} -+/** -+ * Utility function for converting a list of decorators and arguments into structure decorator applications that are -+ * compatible with the TypeSpec type graph. -+ * -+ * Note: Not all JavaScript values can be converted faithfully to TypeSpec values. This function will attempt to convert -+ * the value to a literal TypeSpec value if it is a primitive value, otherwise it will be left as a JavaScript value. -+ * The `jsValue` property of the argument will always contain the original JavaScript value passed to the decorator. -+ * -+ * @param typekit - The Typekit instance to use for creating types and values. -+ * @param decorators - The list of decorators and arguments to apply. -+ * -+ * @see {@link DecoratorArgs} -+ * -+ * @experimental -+ */ -+export function decoratorApplication(typekit, decorators) { -+ return (decorators?.map((arg) => { -+ const [decorator, args] = Array.isArray(arg) ? [arg[0], arg.slice(1)] : [arg, []]; -+ return { -+ decorator, -+ args: args.map((rawValue) => ({ -+ value: typeof rawValue === "object" && rawValue !== null -+ ? rawValue -+ : typekit.literal.create(rawValue), -+ jsValue: rawValue, -+ })), -+ }; -+ }) ?? []); -+} -+//# sourceMappingURL=utils.js.map -\ No newline at end of file -diff --git a/dist/src/experimental/typekit/utils.js.map b/dist/src/experimental/typekit/utils.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..4da05bc2231e2f02e0b428e55c7c394ddd3adea9 ---- /dev/null -+++ b/dist/src/experimental/typekit/utils.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAO,GAAuB;IACnD,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AAUD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,UAA4B;IAE5B,OAAO,CACL,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAElF,OAAO;YACL,SAAS;YACT,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,CAAC;gBACjC,KAAK,EACH,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;oBAC/C,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtC,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,IAAI,EAAE,CACT,CAAC;AACJ,CAAC"} -\ No newline at end of file -diff --git a/dist/src/formatter/print/printer.d.ts b/dist/src/formatter/print/printer.d.ts -index 2f8e115ed5fa1d57f3023821cabe14b6428cbbe7..9235c1e1fbfeaf7e375b4f7d70b7d8ec525a9450 100644 ---- a/dist/src/formatter/print/printer.d.ts -+++ b/dist/src/formatter/print/printer.d.ts -@@ -27,10 +27,10 @@ export declare function printDirectiveArgs(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Doc[]; - export declare function printEnumMember(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Doc[]; - export declare function printUnionStatement(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Doc[]; --export declare function printUnionVariantsBlock(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): "{}" | builders.Group; -+export declare function printUnionVariantsBlock(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Group | "{}"; - export declare function printUnionVariant(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Doc[]; - export declare function printInterfaceStatement(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Doc[]; --export declare function printInterfaceMembers(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): "{}" | builders.Group; -+export declare function printInterfaceMembers(path: AstPath, options: TypeSpecPrettierOptions, print: PrettierChildPrint): builders.Group | "{}"; - /** - * Handle printing an intersection node. - * @example `Foo & Bar` or `{foo: string} & {bar: string}` -diff --git a/dist/src/index.d.ts b/dist/src/index.d.ts -index 17469ab786223a8556321bc3574223e0b827b1e6..b77edfe42b881fb32444868bbaf0c4654473e4d1 100644 ---- a/dist/src/index.d.ts -+++ b/dist/src/index.d.ts -@@ -5,6 +5,7 @@ export { getPropertyType, isTypeSpecValueTypeOf, typespecTypeToJson, validateDec - export { getDeprecationDetails, isDeprecated, markDeprecated, type DeprecationDetails, } from "./core/deprecation.js"; - export { assertType, compilerAssert, createDiagnosticCollector, defineCodeFix, getSourceLocation, ignoreDiagnostics, logDiagnostics, reportDeprecated, type DiagnosticCollector, type DiagnosticHandler, type SourceLocationOptions, type WriteLine, } from "./core/diagnostics.js"; - export { emitFile, type EmitFileOptions, type NewLine } from "./core/emitter-utils.js"; -+export { fileRef, isFileRef, type FileRef } from "./core/file-ref.js"; - export { checkFormatTypeSpec, formatTypeSpec } from "./core/formatter.js"; - export { DiscriminatedUnion, DiscriminatedUnionLegacy, explainStringTemplateNotSerializable, printIdentifier as formatIdentifier, getDiscriminatedUnion, getDiscriminatedUnionFromInheritance, getEntityName, getLocationContext, getNamespaceFullName, getTypeName, interpolatePath, isStdNamespace, listOperationsIn, printIdentifier, resolveUsages, TypeNameOptions, UsageFlags, type ListOperationOptions, type OperationContainer, type TrackableType, type UsageTracker, } from "./core/helpers/index.js"; - export { getDiscriminatedTypes, getDiscriminator, getDocData, getMaxItems, getMaxItemsAsNumeric, getMaxLength, getMaxLengthAsNumeric, getMaxValue, getMaxValueAsNumeric, getMaxValueExclusive, getMaxValueExclusiveAsNumeric, getMaxValueExclusiveForScalar, getMaxValueForScalar, getMinItems, getMinItemsAsNumeric, getMinLength, getMinLengthAsNumeric, getMinValue, getMinValueAsNumeric, getMinValueExclusive, getMinValueExclusiveAsNumeric, getMinValueExclusiveForScalar, getMinValueForScalar, type Discriminator, } from "./core/intrinsic-type-state.js"; -diff --git a/dist/src/index.d.ts.map b/dist/src/index.d.ts.map -index ff664cc9c736fa3c883a2a49ce54e2b22a055743..4ea7d01eb914867d774016afa0a00418c149b953 100644 ---- a/dist/src/index.d.ts.map -+++ b/dist/src/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/index.js b/dist/src/index.js -index a4172c807c4a70a49cb107ae57b57cb2730ca2b5..c622b8f42155e760d7f703e053baf22f24b1fc07 100644 ---- a/dist/src/index.js -+++ b/dist/src/index.js -@@ -7,6 +7,7 @@ export { getPropertyType, isTypeSpecValueTypeOf, typespecTypeToJson, validateDec - export { getDeprecationDetails, isDeprecated, markDeprecated, } from "./core/deprecation.js"; - export { assertType, compilerAssert, createDiagnosticCollector, defineCodeFix, getSourceLocation, ignoreDiagnostics, logDiagnostics, reportDeprecated, } from "./core/diagnostics.js"; - export { emitFile } from "./core/emitter-utils.js"; -+export { fileRef, isFileRef } from "./core/file-ref.js"; - export { checkFormatTypeSpec, formatTypeSpec } from "./core/formatter.js"; - export { explainStringTemplateNotSerializable, printIdentifier as formatIdentifier, getDiscriminatedUnion, getDiscriminatedUnionFromInheritance, getEntityName, getLocationContext, getNamespaceFullName, getTypeName, interpolatePath, isStdNamespace, listOperationsIn, printIdentifier, resolveUsages, UsageFlags, } from "./core/helpers/index.js"; - export { getDiscriminatedTypes, getDiscriminator, getDocData, getMaxItems, getMaxItemsAsNumeric, getMaxLength, getMaxLengthAsNumeric, getMaxValue, getMaxValueAsNumeric, getMaxValueExclusive, getMaxValueExclusiveAsNumeric, getMaxValueExclusiveForScalar, getMaxValueForScalar, getMinItems, getMinItemsAsNumeric, getMinLength, getMinLengthAsNumeric, getMinValue, getMinValueAsNumeric, getMinValueExclusive, getMinValueExclusiveAsNumeric, getMinValueExclusiveForScalar, getMinValueForScalar, } from "./core/intrinsic-type-state.js"; -diff --git a/dist/src/index.js.map b/dist/src/index.js.map -index 4081018710057458a79ce4986ecb76b06c12e5d5..e167cdaaa7971b440bd99c689a32c3bff27d5875 100644 ---- a/dist/src/index.js.map -+++ b/dist/src/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAiC,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO;AAGL,+DAA+D;AAC/D,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,GAO9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GAKjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAsC,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAGL,oCAAoC,EACpC,eAAe,IAAI,gBAAgB,EACnC,qBAAqB,EACrB,oCAAoC,EACpC,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EAEb,UAAU,GAKX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,oBAAoB,GAErB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,IAAI,UAAU,EAC9B,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,MAAM,EACN,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,4BAA4B,EAC5B,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,6BAA6B,EAC7B,UAAU,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EAIZ,kBAAkB,EAClB,oBAAoB,EAGpB,gBAAgB,GASjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,aAAa,GAId,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,YAAY,EACZ,6BAA6B,GAiB9B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9F,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,GAAG,aAAa,CAAC,QAAQ;KAC1B;IACD,qBAAqB,EAAE;QACrB,GAAG,mBAAmB,CAAC,qBAAqB,CAAC;KAC9C;CACF,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE;QACR,GAAG,YAAY,CAAC,QAAQ;KACzB;CACF,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iFAAiF,CAAC;AAC5H,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,oCAAoC,EACpC,2BAA2B,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,cAAc,EACd,KAAK,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,EAChC,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,GAI3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACnF,kHAAkH;AAClH,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,+BAA+B,EAC/B,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,OAAO,EACP,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkKzD,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,0BAA0B,EAC1B,qBAAqB,EACrB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,gCAAgC,EAChC,uBAAuB,EACvB,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,4BAA4B,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/core-templates.d.ts b/dist/src/init/core-templates.d.ts -index 6319fa37cdc0448d252958168e0aac56b19b70cf..22841271ed8574e2e8df2f225ea71d425c33aa48 100644 ---- a/dist/src/init/core-templates.d.ts -+++ b/dist/src/init/core-templates.d.ts -@@ -1,5 +1,4 @@ - import type { SystemHost } from "../core/types.js"; --export declare const templatesDir: string; - export interface LoadedCoreTemplates { - readonly baseUri: string; - readonly templates: Record; -diff --git a/dist/src/init/core-templates.d.ts.map b/dist/src/init/core-templates.d.ts.map -index 77e1f697243a477821e5abbcd51cc524dc2c72f3..64c3084c43422a8fbd6eb480b029d98367ce4a19 100644 ---- a/dist/src/init/core-templates.d.ts.map -+++ b/dist/src/init/core-templates.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"core-templates.d.ts","sourceRoot":"","sources":["../../../src/init/core-templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,eAAO,MAAM,YAAY,QAAgD,CAAC;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC;AAGD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAU7F"} -\ No newline at end of file -+{"version":3,"file":"core-templates.d.ts","sourceRoot":"","sources":["../../../src/init/core-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC;AAGD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAM7F"} -\ No newline at end of file -diff --git a/dist/src/init/core-templates.js b/dist/src/init/core-templates.js -index 1b83009ed8a6c76ce7acbc9fc0ccb4ab58aba866..47b6f4ee704b2784f30221a4ef2aa2a15ea12cc3 100644 ---- a/dist/src/init/core-templates.js -+++ b/dist/src/init/core-templates.js -@@ -1,15 +1,9 @@ --import { CompilerPackageRoot } from "../core/node-host.js"; --import { resolvePath } from "../core/path-utils.js"; --export const templatesDir = resolvePath(CompilerPackageRoot, "templates"); -+import { defaultInternalTemplateSource } from "./template-source/index.js"; - let typeSpecCoreTemplates; - export async function getTypeSpecCoreTemplates(host) { - if (typeSpecCoreTemplates === undefined) { -- const file = await host.readFile(resolvePath(templatesDir, "scaffolding.json")); -- const content = JSON.parse(file.text); -- typeSpecCoreTemplates = { -- baseUri: templatesDir, -- templates: content, -- }; -+ const { templates, baseUri } = await defaultInternalTemplateSource(host).loadIndex(); -+ typeSpecCoreTemplates = { baseUri, templates }; - } - return typeSpecCoreTemplates; - } -diff --git a/dist/src/init/core-templates.js.map b/dist/src/init/core-templates.js.map -index 1bc9adb8912822d77620ce1e33aeffef0331bcd3..28c24fb2199a4b0e8a33aef69e232950db85e93f 100644 ---- a/dist/src/init/core-templates.js.map -+++ b/dist/src/init/core-templates.js.map -@@ -1 +1 @@ --{"version":3,"file":"core-templates.js","sourceRoot":"","sources":["../../../src/init/core-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAM1E,IAAI,qBAAsD,CAAC;AAC3D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAgB;IAC7D,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,qBAAqB,GAAG;YACtB,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC"} -\ No newline at end of file -+{"version":3,"file":"core-templates.js","sourceRoot":"","sources":["../../../src/init/core-templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAO3E,IAAI,qBAAsD,CAAC;AAC3D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAgB;IAC7D,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACrF,qBAAqB,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/init.d.ts b/dist/src/init/init.d.ts -index fc9b7a39b174e657a364faaaa067b5ce3f40bb8c..0652794cff2219dbde4f73ef5a0f8f18da554a94 100644 ---- a/dist/src/init/init.d.ts -+++ b/dist/src/init/init.d.ts -@@ -1,6 +1,6 @@ - import { CliCompilerHost } from "../core/cli/types.js"; --import { Diagnostic, SourceFile } from "../core/types.js"; --import { InitTemplate } from "./init-template.js"; -+import { Diagnostic } from "../core/types.js"; -+import { type TemplateSource } from "./template-source/index.js"; - export interface InitTypeSpecProjectOptions { - readonly templatesUrl?: string; - readonly template?: string; -@@ -8,14 +8,15 @@ export interface InitTypeSpecProjectOptions { - readonly args?: string[]; - readonly "project-name"?: string; - readonly emitters?: string[]; -+ /** -+ * Provider that the `internal:` scheme resolves to (the built-in templates). Defaults to the -+ * compiler's on-disk `templates/` directory; the standalone single-executable injects an in-memory -+ * bundle instead. -+ */ -+ readonly internalTemplateSource?: TemplateSource; - } - export declare function initTypeSpecProject(host: CliCompilerHost, directory: string, options?: InitTypeSpecProjectOptions): Promise; - export declare function initTypeSpecProjectWorker(host: CliCompilerHost, directory: string, options?: InitTypeSpecProjectOptions): Promise; --export interface LoadedTemplate { -- readonly baseUri: string; -- readonly templates: Record; -- readonly file: SourceFile; --} - /** - * Error thrown when init template acquisition fails or template is invalid. - * -diff --git a/dist/src/init/init.d.ts.map b/dist/src/init/init.d.ts.map -index 811d9e1ac9864e409d368ffd3906d8e82062f6ba..25f446568f3a5db12b726cb2c34a33bb31fdd57d 100644 ---- a/dist/src/init/init.d.ts.map -+++ b/dist/src/init/init.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAgB,UAAU,EAAY,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMlF,OAAO,EAAmB,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAItF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAYzC;AACD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAwGzC;AAkGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AA6KD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,WAAW,EAAE,SAAS,UAAU,EAAE;gBAAlC,WAAW,EAAE,SAAS,UAAU,EAAE;CAGtD"} -\ No newline at end of file -+{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,UAAU,EAAY,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,cAAc,CAAC;CAClD;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAYzC;AACD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,iBAiHzC;AA4PD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,WAAW,EAAE,SAAS,UAAU,EAAE;gBAAlC,WAAW,EAAE,SAAS,UAAU,EAAE;CAGtD"} -\ No newline at end of file -diff --git a/dist/src/init/init.js b/dist/src/init/init.js -index 2b4d0016829e7dea61d2db4bba6bb0d7e9d68313..242562d0ce8772bfd6316c0899743ed92ecd15b2 100644 ---- a/dist/src/init/init.js -+++ b/dist/src/init/init.js -@@ -4,15 +4,14 @@ import pc from "picocolors"; - import * as semver from "semver"; - import { parseCliArgsArgOption } from "../core/cli/utils.js"; - import { createDiagnostic } from "../core/messages.js"; --import { getBaseFileName, getDirectoryPath } from "../core/path-utils.js"; -+import { getBaseFileName } from "../core/path-utils.js"; - import { NoTarget } from "../core/types.js"; - import { installTypeSpecDependencies } from "../install/install.js"; - import { MANIFEST } from "../manifest.js"; --import { readUrlOrPath } from "../utils/misc.js"; --import { getTypeSpecCoreTemplates } from "./core-templates.js"; - import { validateTemplateDefinitions } from "./init-template-validate.js"; - import { checkbox } from "./prompts.js"; - import { isFileSkipGeneration, makeScaffoldingConfig, scaffoldNewProject } from "./scaffold.js"; -+import { defaultInternalTemplateSource, UriTemplateSource, } from "./template-source/index.js"; - export async function initTypeSpecProject(host, directory, options = {}) { - try { - await initTypeSpecProjectWorker(host, directory, options); -@@ -34,34 +33,41 @@ export async function initTypeSpecProjectWorker(host, directory, options = {}) { - return; - } - const folderName = getBaseFileName(directory); -- // Download template configuration and prompt user to select a template -- // No validation is done until one has been selected -- const typeSpecCoreTemplates = await getTypeSpecCoreTemplates(host); -- const result = options.templatesUrl === undefined -- ? typeSpecCoreTemplates -- : await downloadTemplates(host, options.templatesUrl, skipPrompts); -+ const isRemote = options.templatesUrl !== undefined; -+ // A `templatesUrl` points at a filesystem path or URL; otherwise use the built-in ("internal") -+ // templates, either an injected provider (e.g. bundled in the standalone executable) or the -+ // compiler's on-disk `templates/` directory. -+ const source = options.templatesUrl !== undefined -+ ? new UriTemplateSource(host, options.templatesUrl) -+ : (options.internalTemplateSource ?? defaultInternalTemplateSource(host)); -+ if (isRemote) { -+ warning(`Downloading or using an untrusted template may contain malicious packages that can compromise your system and data. Proceed with caution and verify the source.`); -+ if (!skipPrompts && !(await confirm("Continue"))) { -+ process.exit(1); -+ } -+ } -+ // No validation is done until a template has been selected. -+ const index = await loadTemplateIndex(source, options.templatesUrl); - if (skipPrompts && !options.template) { - // A template has to be defined if we're skipping prompts -- throw new Error(`A template must be specified when --no-prompt is used. Specify one of the following templates via --template: ${Object.keys(result.templates) -+ throw new Error(`A template must be specified when --no-prompt is used. Specify one of the following templates via --template: ${Object.keys(index.templates) - .map((t) => `"${t}"`) - .join(", ")}`); - } -- const templateName = options.template ?? (await promptTemplateSelection(result.templates)); -- if (!result.templates[templateName]) { -+ const templateName = options.template ?? (await promptTemplateSelection(index.templates)); -+ if (!index.templates[templateName]) { - throw new Error(`Unexpected error: Cannot find template ${templateName}`); - } - // Validate minimum compiler version for non built-in templates -- if (!skipPrompts && -- result !== typeSpecCoreTemplates && -- !(await validateTemplate(result.templates[templateName], result))) { -+ if (!skipPrompts && isRemote && !(await validateTemplate(index.templates[templateName], index))) { - return; - } -- const template = result.templates[templateName]; -+ const template = index.templates[templateName]; - const name = await resolveProjectName(folderName, options); - const emitters = await selectEmitters(template, options); - const parameters = await promptCustomParameters(template, options); - const scaffoldingConfig = makeScaffoldingConfig(template, { -- baseUri: result.baseUri, -+ source, - name, - directory, - parameters, -@@ -173,38 +179,23 @@ async function confirm(message) { - default: true, - }); - } --async function downloadTemplates(host, url, skipCheck) { -- warning(`Downloading or using an untrusted template may contain malicious packages that can compromise your system and data. Proceed with caution and verify the source.`); -- if (!skipCheck && !(await confirm("Continue"))) { -- process.exit(1); -- } -- let file; -- try { -- file = await readUrlOrPath(host, url); -- } -- catch (e) { -- throw new InitTemplateError([ -- createDiagnostic({ -- code: "init-template-download-failed", -- target: NoTarget, -- format: { url: url, message: e.message }, -- }), -- ]); -- } -- let json; -+async function loadTemplateIndex(source, url) { - try { -- json = JSON.parse(file.text); -+ return await source.loadIndex(); - } - catch (e) { -+ if (url === undefined) { -+ throw e; -+ } -+ const code = e instanceof SyntaxError ? "init-template-invalid-json" : "init-template-download-failed"; - throw new InitTemplateError([ - createDiagnostic({ -- code: "init-template-invalid-json", -+ code, - target: NoTarget, -- format: { url: url, message: e.message }, -+ format: { url, message: e.message }, - }), - ]); - } -- return { templates: json, baseUri: getDirectoryPath(file.path), file }; - } - function getTemplateName(template) { - if (isTemplateCompatibleWithTspVersion(template)) { -@@ -240,16 +231,16 @@ function isTemplateCompatibleWithTspVersion(template) { - return (template.compilerVersion === undefined || - semver.gte(currentCompilerVersion, template.compilerVersion)); - } --async function validateTemplate(template, loaded) { -+async function validateTemplate(template, index) { - // After selection, validate the template definition - const currentCompilerVersion = MANIFEST.version; - let validationResult; - // 1. If current version > compilerVersion, proceed with strict validation - if (isTemplateCompatibleWithTspVersion(template)) { -- validationResult = validateTemplateDefinitions(template, loaded.file, true); -+ validationResult = validateTemplateDefinitions(template, index.indexFile, true); - // 1.1 If strict validation fails, try relaxed validation - if (!validationResult.valid) { -- validationResult = validateTemplateDefinitions(template, loaded.file, false); -+ validationResult = validateTemplateDefinitions(template, index.indexFile, false); - } - } - else { -@@ -257,7 +248,7 @@ async function validateTemplate(template, loaded) { - const confirmationMessage = `The template you selected is designed for tsp version ${template.compilerVersion}. You are currently using tsp version ${currentCompilerVersion}.`; - if (await confirm(`${confirmationMessage} The project created may not be correct. Do you want to continue?`)) { - // 2.1 If user choose to continue, proceed with relaxed validation -- validationResult = validateTemplateDefinitions(template, loaded.file, false); -+ validationResult = validateTemplateDefinitions(template, index.indexFile, false); - } - else { - return false; -diff --git a/dist/src/init/init.js.map b/dist/src/init/init.js.map -index 68d294272d23016e0cad74b95628431316137f52..5dadd7c83facd0f4b6e5b85508a525e90c701731 100644 ---- a/dist/src/init/init.js.map -+++ b/dist/src/init/init.js.map -@@ -1 +1 @@ --{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/init/init.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/init/scaffold.d.ts b/dist/src/init/scaffold.d.ts -index eb7625fbf88d7c9939ef5e8ace348313daec739b..0d6eea6e250f06e97e16e3501372131fe2f1efc7 100644 ---- a/dist/src/init/scaffold.d.ts -+++ b/dist/src/init/scaffold.d.ts -@@ -1,13 +1,15 @@ - import type { SystemHost } from "../core/types.js"; - import type { InitTemplate, InitTemplateFile, InitTemplateLibrary, InitTemplateLibrarySpec } from "./init-template.js"; -+import type { TemplateSource } from "./template-source/index.js"; - export declare const TypeSpecConfigFilename = "tspconfig.yaml"; - export interface ScaffoldingConfig { - /** Template used to resolve that config */ - template: InitTemplate; - /** -- * Path where this template was loaded from. -+ * Source the template was loaded from. Used to read the template's files during scaffolding. -+ * Optional: templates that declare no `files` never need it. - */ -- baseUri: string; -+ source?: TemplateSource; - /** - * Directory full path where the project should be initialized. - */ -diff --git a/dist/src/init/scaffold.d.ts.map b/dist/src/init/scaffold.d.ts.map -index c5ce407a4058de6c88b3bc1913eea21972426d0d..a2edd282e0d36af95bb4810b38567f852f6c9fb4 100644 ---- a/dist/src/init/scaffold.d.ts.map -+++ b/dist/src/init/scaffold.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,uBAAuB,EAAE,CAAC;IAErC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,uBAAuB,CAKtF;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,iBAAiB,CAYnB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,iBAOnF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAOzF"} -\ No newline at end of file -+{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,uBAAuB,EAAE,CAAC;IAErC;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,uBAAuB,CAKtF;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,iBAAiB,CAWnB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,iBAOnF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAOzF"} -\ No newline at end of file -diff --git a/dist/src/init/scaffold.js b/dist/src/init/scaffold.js -index 677f490d07f9ec49e4af0c826e2a6b63eee2073e..570b4f758e1f97aa784aab1514156dcee954e6cd 100644 ---- a/dist/src/init/scaffold.js -+++ b/dist/src/init/scaffold.js -@@ -1,7 +1,6 @@ - import { stringify } from "yaml"; - import { getDirectoryPath, joinPaths } from "../core/path-utils.js"; - import { fetchLatestPackageManifest } from "../package-manger/npm-registry.js"; --import { readUrlOrPath, resolveRelativeUrlOrPath } from "../utils/misc.js"; - import { createFileTemplatingContext, render, } from "./file-templating.js"; - export const TypeSpecConfigFilename = "tspconfig.yaml"; - export function normalizeLibrary(library) { -@@ -14,7 +13,6 @@ export function makeScaffoldingConfig(template, config) { - return { - template, - libraries: config.libraries ?? template.libraries?.map(normalizeLibrary) ?? [], -- baseUri: config.baseUri ?? ".", - name: config.name ?? "", - directory: config.directory ?? "", - parameters: config.parameters ?? {}, -@@ -150,8 +148,10 @@ async function writeFiles(host, config) { - } - } - async function writeFile(host, config, context, file) { -- const baseDir = config.baseUri + "/"; -- const template = await readUrlOrPath(host, resolveRelativeUrlOrPath(baseDir, file.path)); -+ if (config.source === undefined) { -+ throw new Error(`Cannot resolve template file "${file.path}": template was loaded without a source.`); -+ } -+ const template = await config.source.readFile(file.path); - const content = render(template.text, context); - const destinationFilePath = joinPaths(config.directory, file.destination); - // create folders in case they don't exist -diff --git a/dist/src/init/scaffold.js.map b/dist/src/init/scaffold.js.map -index 2e6795421982674a4490771e17499e0f6c4f4e10..3921d3a7062685fc0d714ee26844a6d4ff177174 100644 ---- a/dist/src/init/scaffold.js.map -+++ b/dist/src/init/scaffold.js.map -@@ -1 +1 @@ --{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/init/scaffold.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/default-core-templates.d.ts b/dist/src/init/template-source/default-core-templates.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..44aab4991fff6413a9ad334cfedbb499e97b054f ---- /dev/null -+++ b/dist/src/init/template-source/default-core-templates.d.ts -@@ -0,0 +1,9 @@ -+import type { SystemHost } from "../../core/types.js"; -+import type { TemplateSource } from "./types.js"; -+/** -+ * The default source of built-in ("internal") templates: the compiler package's on-disk -+ * `templates/` directory, read through the given {@link SystemHost}. The standalone single-executable -+ * overrides this by injecting its own {@link InMemoryTemplateSource} bundle. -+ */ -+export declare function defaultInternalTemplateSource(host: SystemHost): TemplateSource; -+//# sourceMappingURL=default-core-templates.d.ts.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/default-core-templates.d.ts.map b/dist/src/init/template-source/default-core-templates.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c5aa6346e7e764c49402935895dcff8b3d105e7e ---- /dev/null -+++ b/dist/src/init/template-source/default-core-templates.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"default-core-templates.d.ts","sourceRoot":"","sources":["../../../../src/init/template-source/default-core-templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAE9E"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/default-core-templates.js b/dist/src/init/template-source/default-core-templates.js -new file mode 100644 -index 0000000000000000000000000000000000000000..2d96b4ab379515c19ad0ab76b14527149fcc029c ---- /dev/null -+++ b/dist/src/init/template-source/default-core-templates.js -@@ -0,0 +1,12 @@ -+import { CompilerPackageRoot } from "../../core/node-host.js"; -+import { resolvePath } from "../../core/path-utils.js"; -+import { UriTemplateSource } from "./uri-template-source.js"; -+/** -+ * The default source of built-in ("internal") templates: the compiler package's on-disk -+ * `templates/` directory, read through the given {@link SystemHost}. The standalone single-executable -+ * overrides this by injecting its own {@link InMemoryTemplateSource} bundle. -+ */ -+export function defaultInternalTemplateSource(host) { -+ return UriTemplateSource.fromDirectory(host, resolvePath(CompilerPackageRoot, "templates")); -+} -+//# sourceMappingURL=default-core-templates.js.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/default-core-templates.js.map b/dist/src/init/template-source/default-core-templates.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c03add86d557f674ea98d5462a05eae113bc0e35 ---- /dev/null -+++ b/dist/src/init/template-source/default-core-templates.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"default-core-templates.js","sourceRoot":"","sources":["../../../../src/init/template-source/default-core-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAgB;IAC5D,OAAO,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9F,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/in-memory-template-source.d.ts b/dist/src/init/template-source/in-memory-template-source.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..2a5d2bb24041dc237084a30aa4cd688977c82b7c ---- /dev/null -+++ b/dist/src/init/template-source/in-memory-template-source.d.ts -@@ -0,0 +1,19 @@ -+import type { SourceFile } from "../../core/types.js"; -+import type { LoadedTemplateIndex, TemplateSource } from "./types.js"; -+/** -+ * A {@link TemplateSource} serving an index and its template files from an in-memory map keyed by -+ * relative path. Used for built-in templates that are bundled rather than on disk — e.g. the -+ * standalone single-executable injects one built from its embedded assets. Keys and lookups are -+ * normalized so callers can use `./`-relative or backslash paths interchangeably. -+ */ -+export declare class InMemoryTemplateSource implements TemplateSource { -+ #private; -+ /** -+ * @param files Template files keyed by their relative path (including the index). -+ * @param indexPath Relative path of the index within {@link files}. -+ */ -+ constructor(files: ReadonlyMap, indexPath?: string); -+ loadIndex(): Promise; -+ readFile(relativePath: string): Promise; -+} -+//# sourceMappingURL=in-memory-template-source.d.ts.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/in-memory-template-source.d.ts.map b/dist/src/init/template-source/in-memory-template-source.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..03e4f16489c3f4e9f0ef3eeab058d0eeab31de96 ---- /dev/null -+++ b/dist/src/init/template-source/in-memory-template-source.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"in-memory-template-source.d.ts","sourceRoot":"","sources":["../../../../src/init/template-source/in-memory-template-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMtE;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAI3D;;;OAGG;gBACS,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAE,MAA6B;IAKlF,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAMzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAgB1D"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/in-memory-template-source.js b/dist/src/init/template-source/in-memory-template-source.js -new file mode 100644 -index 0000000000000000000000000000000000000000..188b662e951ed2b575fbf175a311b35aaa811e17 ---- /dev/null -+++ b/dist/src/init/template-source/in-memory-template-source.js -@@ -0,0 +1,45 @@ -+import { normalizePath } from "../../core/path-utils.js"; -+import { createSourceFile } from "../../core/source-file.js"; -+import { SCAFFOLDING_FILENAME } from "./uri-template-source.js"; -+/** Prefix used to label the virtual files this source serves in diagnostics. */ -+const INTERNAL_URI_PREFIX = "internal:"; -+/** -+ * A {@link TemplateSource} serving an index and its template files from an in-memory map keyed by -+ * relative path. Used for built-in templates that are bundled rather than on disk — e.g. the -+ * standalone single-executable injects one built from its embedded assets. Keys and lookups are -+ * normalized so callers can use `./`-relative or backslash paths interchangeably. -+ */ -+export class InMemoryTemplateSource { -+ #files; -+ #indexPath; -+ /** -+ * @param files Template files keyed by their relative path (including the index). -+ * @param indexPath Relative path of the index within {@link files}. -+ */ -+ constructor(files, indexPath = SCAFFOLDING_FILENAME) { -+ this.#indexPath = indexPath; -+ this.#files = new Map([...files].map(([key, value]) => [normalizeKey(key), value])); -+ } -+ async loadIndex() { -+ const indexFile = this.#read(this.#indexPath); -+ const templates = JSON.parse(indexFile.text); -+ return { templates, indexFile, baseUri: INTERNAL_URI_PREFIX }; -+ } -+ async readFile(relativePath) { -+ return this.#read(relativePath); -+ } -+ #read(relativePath) { -+ const key = normalizeKey(relativePath); -+ const content = this.#files.get(key); -+ if (content === undefined) { -+ const error = new Error(`ENOENT: bundled template file not found, '${relativePath}'`); -+ error.code = "ENOENT"; -+ throw error; -+ } -+ return createSourceFile(content, `${INTERNAL_URI_PREFIX}${key}`); -+ } -+} -+function normalizeKey(path) { -+ return normalizePath(path).replace(/^\/+/, ""); -+} -+//# sourceMappingURL=in-memory-template-source.js.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/in-memory-template-source.js.map b/dist/src/init/template-source/in-memory-template-source.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..2f17068b1b8f5db66d6b0ffff6b0aa41ec18735e ---- /dev/null -+++ b/dist/src/init/template-source/in-memory-template-source.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"in-memory-template-source.js","sourceRoot":"","sources":["../../../../src/init/template-source/in-memory-template-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAExC;;;;;GAKG;AACH,MAAM,OAAO,sBAAsB;IACjC,MAAM,CAA8B;IACpC,UAAU,CAAS;IAEnB;;;OAGG;IACH,YAAY,KAAkC,EAAE,YAAoB,oBAAoB;QACtF,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAoB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAoB;QACxB,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,KAAK,GAA0B,IAAI,KAAK,CAC5C,6CAA6C,YAAY,GAAG,CAC7D,CAAC;YACF,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,gBAAgB,CAAC,OAAO,EAAE,GAAG,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/index.d.ts b/dist/src/init/template-source/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..dcf8fc2f0b237c9a529ba0a22ee27be141538b28 ---- /dev/null -+++ b/dist/src/init/template-source/index.d.ts -@@ -0,0 +1,5 @@ -+export { defaultInternalTemplateSource } from "./default-core-templates.js"; -+export { InMemoryTemplateSource } from "./in-memory-template-source.js"; -+export type { LoadedTemplateIndex, TemplateSource } from "./types.js"; -+export { SCAFFOLDING_FILENAME, UriTemplateSource } from "./uri-template-source.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/index.d.ts.map b/dist/src/init/template-source/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..6432a16184aa4627da17bbf958e31b06d6207182 ---- /dev/null -+++ b/dist/src/init/template-source/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/init/template-source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/index.js b/dist/src/init/template-source/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..f511d7607236995fe32136555cb7e786eab1c7e5 ---- /dev/null -+++ b/dist/src/init/template-source/index.js -@@ -0,0 +1,4 @@ -+export { defaultInternalTemplateSource } from "./default-core-templates.js"; -+export { InMemoryTemplateSource } from "./in-memory-template-source.js"; -+export { SCAFFOLDING_FILENAME, UriTemplateSource } from "./uri-template-source.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/index.js.map b/dist/src/init/template-source/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d2ab80089cb9a996060928ab28224578002a357f ---- /dev/null -+++ b/dist/src/init/template-source/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/init/template-source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/types.d.ts b/dist/src/init/template-source/types.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..b24fed658881e9e5679ab24dfb031c718791ff7a ---- /dev/null -+++ b/dist/src/init/template-source/types.d.ts -@@ -0,0 +1,21 @@ -+import type { SourceFile } from "../../core/types.js"; -+import type { InitTemplate } from "../init-template.js"; -+/** Result of loading a template index (the set of templates offered by a {@link TemplateSource}). */ -+export interface LoadedTemplateIndex { -+ /** Templates keyed by their id. */ -+ readonly templates: Record; -+ /** Source file the index was parsed from. Used to position validation diagnostics. */ -+ readonly indexFile: SourceFile; -+ /** Location the index was loaded from (a directory path or URL). Informational only. */ -+ readonly baseUri: string; -+} -+/** -+ * A source of `tsp init` templates. Decouples template loading from the host filesystem: each context -+ * supplies its own implementation — {@link UriTemplateSource} for a path or URL, or -+ * {@link InMemoryTemplateSource} for a bundle addressed through the `internal:` scheme. -+ */ -+export interface TemplateSource { -+ loadIndex(): Promise; -+ readFile(relativePath: string): Promise; -+} -+//# sourceMappingURL=types.d.ts.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/types.d.ts.map b/dist/src/init/template-source/types.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..de523e355da1144d08949910a6320480d4127bfb ---- /dev/null -+++ b/dist/src/init/template-source/types.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/init/template-source/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,qGAAqG;AACrG,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACrD"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/types.js b/dist/src/init/template-source/types.js -new file mode 100644 -index 0000000000000000000000000000000000000000..718fd38ae40c67ea23b242517cf9919f602c5a3e ---- /dev/null -+++ b/dist/src/init/template-source/types.js -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=types.js.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/types.js.map b/dist/src/init/template-source/types.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..db1488f736c763eeb2e41356c0f348a151a82976 ---- /dev/null -+++ b/dist/src/init/template-source/types.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/init/template-source/types.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/src/init/template-source/uri-template-source.d.ts b/dist/src/init/template-source/uri-template-source.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..449ff90e4f790f5b49c82e5fe4b8250cdc5e390e ---- /dev/null -+++ b/dist/src/init/template-source/uri-template-source.d.ts -@@ -0,0 +1,30 @@ -+import type { SourceFile, SystemHost } from "../../core/types.js"; -+import type { LoadedTemplateIndex, TemplateSource } from "./types.js"; -+/** File name of the template index within a template source directory. */ -+export declare const SCAFFOLDING_FILENAME = "scaffolding.json"; -+/** -+ * A {@link TemplateSource} backed by a location: a filesystem path or a URL. The index and every -+ * template file are read through a {@link SystemHost} via {@link readUrlOrPath}, so this handles both -+ * a local directory and a remote `tsp init ` uniformly. Built-in templates are served through -+ * {@link defaultInternalTemplateSource} (or an injected provider) instead. -+ * -+ * Loading an untrusted remote template can execute arbitrary code during scaffolding; callers are -+ * responsible for confirming the source with the user before using it. -+ */ -+export declare class UriTemplateSource implements TemplateSource { -+ #private; -+ /** -+ * @param host Host used to read the index and template files. -+ * @param indexLocation Location of the index file (a path or URL). Template files are resolved -+ * relative to its containing directory. -+ */ -+ constructor(host: SystemHost, indexLocation: string); -+ /** -+ * Create a source for a template root directory (path or URL) whose index is a -+ * `scaffolding.json` at its root. -+ */ -+ static fromDirectory(host: SystemHost, directory: string): UriTemplateSource; -+ loadIndex(): Promise; -+ readFile(relativePath: string): Promise; -+} -+//# sourceMappingURL=uri-template-source.d.ts.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/uri-template-source.d.ts.map b/dist/src/init/template-source/uri-template-source.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..39ae9250fc77260716e4aaf275787df7ba7dedef ---- /dev/null -+++ b/dist/src/init/template-source/uri-template-source.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"uri-template-source.d.ts","sourceRoot":"","sources":["../../../../src/init/template-source/uri-template-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtE,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,cAAc;;IAMtD;;;;OAIG;gBACS,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM;IAMnD;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB;IAOtE,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAMzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAG1D"} -\ No newline at end of file -diff --git a/dist/src/init/template-source/uri-template-source.js b/dist/src/init/template-source/uri-template-source.js -new file mode 100644 -index 0000000000000000000000000000000000000000..3a8fd6f5e0e15e95eceee8cfdfdb940415210c82 ---- /dev/null -+++ b/dist/src/init/template-source/uri-template-source.js -@@ -0,0 +1,45 @@ -+import { getDirectoryPath } from "../../core/path-utils.js"; -+import { readUrlOrPath, resolveRelativeUrlOrPath } from "../../utils/misc.js"; -+/** File name of the template index within a template source directory. */ -+export const SCAFFOLDING_FILENAME = "scaffolding.json"; -+/** -+ * A {@link TemplateSource} backed by a location: a filesystem path or a URL. The index and every -+ * template file are read through a {@link SystemHost} via {@link readUrlOrPath}, so this handles both -+ * a local directory and a remote `tsp init ` uniformly. Built-in templates are served through -+ * {@link defaultInternalTemplateSource} (or an injected provider) instead. -+ * -+ * Loading an untrusted remote template can execute arbitrary code during scaffolding; callers are -+ * responsible for confirming the source with the user before using it. -+ */ -+export class UriTemplateSource { -+ #host; -+ #indexLocation; -+ /** Directory (path or URL) that template file paths are resolved against. */ -+ #baseUri; -+ /** -+ * @param host Host used to read the index and template files. -+ * @param indexLocation Location of the index file (a path or URL). Template files are resolved -+ * relative to its containing directory. -+ */ -+ constructor(host, indexLocation) { -+ this.#host = host; -+ this.#indexLocation = indexLocation; -+ this.#baseUri = getDirectoryPath(indexLocation); -+ } -+ /** -+ * Create a source for a template root directory (path or URL) whose index is a -+ * `scaffolding.json` at its root. -+ */ -+ static fromDirectory(host, directory) { -+ return new UriTemplateSource(host, resolveRelativeUrlOrPath(directory + "/", SCAFFOLDING_FILENAME)); -+ } -+ async loadIndex() { -+ const indexFile = await readUrlOrPath(this.#host, this.#indexLocation); -+ const templates = JSON.parse(indexFile.text); -+ return { templates, indexFile, baseUri: this.#baseUri }; -+ } -+ async readFile(relativePath) { -+ return readUrlOrPath(this.#host, resolveRelativeUrlOrPath(this.#baseUri + "/", relativePath)); -+ } -+} -+//# sourceMappingURL=uri-template-source.js.map -\ No newline at end of file -diff --git a/dist/src/init/template-source/uri-template-source.js.map b/dist/src/init/template-source/uri-template-source.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..34c1a790e679adb06befc932e8e304a67b7c98d5 ---- /dev/null -+++ b/dist/src/init/template-source/uri-template-source.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"uri-template-source.js","sourceRoot":"","sources":["../../../../src/init/template-source/uri-template-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAa;IAClB,cAAc,CAAS;IACvB,6EAA6E;IAC7E,QAAQ,CAAS;IAEjB;;;;OAIG;IACH,YAAY,IAAgB,EAAE,aAAqB;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAgB,EAAE,SAAiB;QACtD,OAAO,IAAI,iBAAiB,CAC1B,IAAI,EACJ,wBAAwB,CAAC,SAAS,GAAG,GAAG,EAAE,oBAAoB,CAAC,CAChE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAoB;QACjC,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAChG,CAAC;CACF"} -\ No newline at end of file -diff --git a/dist/src/internals/index.d.ts b/dist/src/internals/index.d.ts -index 7fdd4ee437a2c3d1d40d76aa5eacb447b5db156e..e9514681d5d7db942c74cf1335c56f1a532bbae6 100644 ---- a/dist/src/internals/index.d.ts -+++ b/dist/src/internals/index.d.ts -@@ -6,6 +6,8 @@ export { resolveCompilerOptions } from "../config/config-to-options.js"; - export { NodeSystemHost } from "../core/node-system-host.js"; - export { InitTemplateSchema } from "../init/init-template.js"; - export { makeScaffoldingConfig, scaffoldNewProject } from "../init/scaffold.js"; -+export type { TemplateSource } from "../init/template-source/types.js"; -+export { UriTemplateSource } from "../init/template-source/uri-template-source.js"; - export { resolveEntrypointFile } from "../server/entrypoint-resolver.js"; - export { InternalCompileResult, ServerDiagnostic } from "../server/index.js"; - //# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/src/internals/index.d.ts.map b/dist/src/internals/index.d.ts.map -index a9ba8e4a63f5712b310d86448881332f6d3f23b3..d8947b56e2a2650444966c6f883d6be6f11d7766 100644 ---- a/dist/src/internals/index.d.ts.map -+++ b/dist/src/internals/index.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} -\ No newline at end of file -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/internals/index.js b/dist/src/internals/index.js -index 275960656fbcf246195f2ebda7f29047856573af..3ed960ac1e7e8c5459304ba8015c8f1a7e14b1be 100644 ---- a/dist/src/internals/index.js -+++ b/dist/src/internals/index.js -@@ -9,5 +9,6 @@ export { resolveCompilerOptions } from "../config/config-to-options.js"; - export { NodeSystemHost } from "../core/node-system-host.js"; - export { InitTemplateSchema } from "../init/init-template.js"; - export { makeScaffoldingConfig, scaffoldNewProject } from "../init/scaffold.js"; -+export { UriTemplateSource } from "../init/template-source/uri-template-source.js"; - export { resolveEntrypointFile } from "../server/entrypoint-resolver.js"; - //# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/src/internals/index.js.map b/dist/src/internals/index.js.map -index d014179a2210afcf01560f8468ae3237d4d60b6c..71ffa58f2d6ace812dfa5b2c81adf9ff183c343c 100644 ---- a/dist/src/internals/index.js.map -+++ b/dist/src/internals/index.js.map -@@ -1 +1 @@ --{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,CAAE,UAAkB,CAAC,6BAA6B,EAAE,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"} -\ No newline at end of file -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internals/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,CAAE,UAAkB,CAAC,6BAA6B,EAAE,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib/decorators.d.ts b/dist/src/lib/decorators.d.ts -index e8e0c50bcba847ee62b1bcd8d0090dd84f54b6d0..b117c4aeb0d35fc588214840593091e6983ec81c 100644 ---- a/dist/src/lib/decorators.d.ts -+++ b/dist/src/lib/decorators.d.ts -@@ -198,6 +198,8 @@ export declare function getAllTags(program: Program, target: Namespace | Interfa - declare const getFriendlyName: (program: Program, type: Type) => string | undefined; - export declare const $friendlyName: FriendlyNameDecorator; - export { getFriendlyName }; -+export declare function clearFriendlyName(program: Program, target: Type): void; -+export declare const setFriendlyName: (program: Program, type: Type, value: string) => void; - /** - * `@key` - mark a model property as the key to identify instances of that type - * -diff --git a/dist/src/lib/decorators.d.ts.map b/dist/src/lib/decorators.d.ts.map -index aa0c5d4cdad94a7447a34934afc47479b3f1d79c..6ff4552fad07fdcd05d9ae2e86b9959657ee86d5 100644 ---- a/dist/src/lib/decorators.d.ts.map -+++ b/dist/src/lib/decorators.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAU1C,OAAO,EACL,OAAO,EAqBR,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAKL,IAAI,EAEJ,SAAS,EACT,KAAK,EACL,aAAa,EACb,SAAS,EAGT,SAAS,EACT,MAAM,EAIN,IAAI,EACJ,KAAK,EAEL,KAAK,EACN,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACpG,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,QAAA,MAAO,UAAU,sDAAuE,CAAC;AACzF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE,gBAWtB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,YAWlB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED,eAAO,MAAM,WAAW,EAAE,mBAOzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAE1F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAErF;AAED,eAAO,MAAM,UAAU,EAAE,kBAOxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAEpF;AAED,eAAO,MAAM,YAAY,EAAE,oBAK1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,wBAK9B,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAK7E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAK9E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAiB/E;AAuID;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,cAGpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAYpE;AAQD;;GAEG;AACH,KAAK,iBAAiB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,EAAE,sBAkB5B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,GAChB,IAAI,CASN;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CA4CnF;AAID,QAAA,MAAO,SAAS,sDAAqE,CAAC;AAEtF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,eAWrB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB,QAAA,MAAO,cAAc,2DAEpB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,QAAQ,EAAE,gBA0BtB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,OAAO;AACL;;;;;;;GAOG;AACH,cAAc,GACf,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAcxB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAexB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,iBAgBvB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,iBAevB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,iBA4BvB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,iBA2BvB,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BA4BhC,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BA2BhC,CAAC;AAGF,QAAA,MAAO,QAAQ,2CAA6D,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,eAMrB,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,MAAM,CAAC;IACvF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,QAAA,MAAO,SAAS,4EAEf,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,eAerB,CAAC;AAsGF,OAAO,EAAE,SAAS,EAAE,CAAC;AAIrB,eAAO,MAAM,uBAAuB,EAAE,+BAMrC,CAAC;AAIF,eAAO,MAAM,yBAAyB,EAAE,iCAmBvC,CAAC;AAIF,eAAO,MAAM,qBAAqB,EAAE,6BAmBnC,CAAC;AAIF,eAAO,MAAM,qBAAqB,EAAE,6BAQnC,CAAC;AAQF,eAAO,MAAM,IAAI,EAAE,YAWlB,CAAC;AAGF,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,CAEhE;AAID,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACxC,MAAM,EAAE,GAAG,SAAS,CAmBtB;AAKD,QAAA,MAAO,eAAe,sDAAmE,CAAC;AAC1F,eAAO,MAAM,aAAa,EAAE,qBAiC3B,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,CAEtE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,YAkBlB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED,QAAA,MAAO,YAAY,gEAElB,CAAC;AACF,QAAA,MAAO,sBAAsB,8DAE5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,iBA+BvB,CAAC;AAiBF,OAAO;AACL;;;;;GAKG;AACH,sBAAsB;AAEtB;;;;;GAKG;AACH,YAAY,GACb,CAAC;AAwBF,eAAO,MAAM,sBAAsB,EAAE,sBAcpC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,sBAM5B,CAAC;AAEF,MAAM,WAAW,OAAQ,SAAQ,cAAc;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AACD,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;CAC7B;AAMD,eAAO,MAAM,QAAQ,EAAE,gBA+BtB,CAAC;AAEF,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,aAAa,GACpD,SAAS,OAAO,EAAE,CAEpB;AAKD,eAAO,MAAM,UAAU,EAAE,kBA8CxB,CAAC;AAoBF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,CAE9E"} -\ No newline at end of file -diff --git a/dist/src/lib/decorators.js b/dist/src/lib/decorators.js -index ee09a01f24bbaf1ce37422b348deb9b0275129fa..0473bf9c02e39b540b50bc71d5d291c4093b9077 100644 ---- a/dist/src/lib/decorators.js -+++ b/dist/src/lib/decorators.js -@@ -720,7 +720,8 @@ export function getAllTags(program, target) { - return tags.size > 0 ? Array.from(tags).reverse() : undefined; - } - // -- @friendlyName decorator --------------------- --const [getFriendlyName, setFriendlyName] = useStateMap(createStateSymbol("friendlyNames")); -+const friendlyNamesSymbol = createStateSymbol("friendlyNames"); -+const [getFriendlyName, setFriendlyName] = useStateMap(friendlyNamesSymbol); - export const $friendlyName = (context, target, friendlyName, sourceObject) => { - // workaround for current lack of functionality in compiler - // https://github.com/microsoft/typespec/issues/2717 -@@ -742,7 +743,10 @@ export const $friendlyName = (context, target, friendlyName, sourceObject) => { - } - setFriendlyName(context.program, target, friendlyName); - }; --export { getFriendlyName }; -+export { getFriendlyName, setFriendlyName }; -+export function clearFriendlyName(program, target) { -+ program.stateMap(friendlyNamesSymbol).delete(target); -+} - /** - * `@key` - mark a model property as the key to identify instances of that type - * -diff --git a/dist/src/lib/decorators.js.map b/dist/src/lib/decorators.js.map -index 5931d6cf83b40788fa46016612faee4609019e80..3aae5821d537bc6f01efd0fec29cf4ed2a00884c 100644 ---- a/dist/src/lib/decorators.js.map -+++ b/dist/src/lib/decorators.js.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/lib/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/lib/examples.js b/dist/src/lib/examples.js -index 6f96f8a1951d5a4acdf24ae56d9aa5c5e69fd79a..8ea9854234076f102ba3ba1d941594c709a88d20 100644 ---- a/dist/src/lib/examples.js -+++ b/dist/src/lib/examples.js -@@ -107,6 +107,11 @@ function serializeObjectValueAsJson(program, value, type, handlers, diagnosticTa - obj[name] = serializeValueAsJson(program, propValue.value, definition, - /* encodeAs: */ undefined, handlers, propValue.node); - } -+ else if (type.kind === "Union") { -+ // If the type is still a union (meaning resolveUnions failed to resolve it to a specific variant), -+ // we should still serialize all the properties from the value -+ obj[propValue.name] = serializeValueAsJson(program, propValue.value, program.checker.anyType); -+ } - } - return obj; - } -diff --git a/dist/src/lib/examples.js.map b/dist/src/lib/examples.js.map -index 1fb03a2fd76a199f54640cdecbe63c829d6a45b6..9ad03753e128e0fdc630072ae75b8d4de8349417 100644 ---- a/dist/src/lib/examples.js.map -+++ b/dist/src/lib/examples.js.map -@@ -1 +1 @@ --{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/lib/examples.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/lib/examples.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/lib/intrinsic-decorators.d.ts b/dist/src/lib/intrinsic-decorators.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..fd2dcb543e802347ad317814d6e24afb7f627974 ---- /dev/null -+++ b/dist/src/lib/intrinsic-decorators.d.ts -@@ -0,0 +1,6 @@ -+import type { Program } from "../core/program.js"; -+import type { DecoratorContext, ModelIndexer, Scalar, Type } from "../core/types.js"; -+export declare const namespace = "TypeSpec"; -+export declare const $indexer: (context: DecoratorContext, target: Type, key: Scalar, value: Type) => void; -+export declare function getIndexer(program: Program, target: Type): ModelIndexer | undefined; -+//# sourceMappingURL=intrinsic-decorators.d.ts.map -\ No newline at end of file -diff --git a/dist/src/lib/intrinsic-decorators.d.ts.map b/dist/src/lib/intrinsic-decorators.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e48dab44010e590a0ee438a993d8f01d78586768 ---- /dev/null -+++ b/dist/src/lib/intrinsic-decorators.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"intrinsic-decorators.d.ts","sourceRoot":"","sources":["../../../src/lib/intrinsic-decorators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErF,eAAO,MAAM,SAAS,aAAa,CAAC;AAGpC,eAAO,MAAM,QAAQ,YAAa,gBAAgB,UAAU,IAAI,OAAO,MAAM,SAAS,IAAI,SAGzF,CAAC;AAEF,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,CAEnF"} -\ No newline at end of file -diff --git a/dist/src/lib/intrinsic-decorators.js b/dist/src/lib/intrinsic-decorators.js -new file mode 100644 -index 0000000000000000000000000000000000000000..c8b5976ace5c00cd501428e62b5e52e89261a892 ---- /dev/null -+++ b/dist/src/lib/intrinsic-decorators.js -@@ -0,0 +1,17 @@ -+import { setDocData } from "../core/intrinsic-type-state.js"; -+export const namespace = "TypeSpec"; -+const indexTypeKey = Symbol.for(`TypeSpec.index`); -+export const $indexer = (context, target, key, value) => { -+ const indexer = { key, value }; -+ context.program.stateMap(indexTypeKey).set(target, indexer); -+}; -+export function getIndexer(program, target) { -+ return program.stateMap(indexTypeKey).get(target); -+} -+/** -+ * @internal to be used to set the `@doc` from doc comment. -+ */ -+export const $docFromComment = (context, target, key, text) => { -+ setDocData(context.program, target, key, { value: text, source: "comment" }); -+}; -+//# sourceMappingURL=intrinsic-decorators.js.map -\ No newline at end of file -diff --git a/dist/src/lib/intrinsic-decorators.js.map b/dist/src/lib/intrinsic-decorators.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..1f1a736f3d7d82ee0140d79005517411f5344827 ---- /dev/null -+++ b/dist/src/lib/intrinsic-decorators.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"intrinsic-decorators.js","sourceRoot":"","sources":["../../../src/lib/intrinsic-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIxE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAyB,EAAE,MAAY,EAAE,GAAW,EAAE,KAAW,EAAE,EAAE;IAC5F,MAAM,OAAO,GAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC7C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,MAAY;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAyB,EACzB,MAAY,EACZ,GAAc,EACd,IAAY,EACZ,EAAE;IACF,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib/visibility.d.ts.map b/dist/src/lib/visibility.d.ts.map -index 0d81a4fedde47bd89a9658083c0d5d717d1ec065..6a3a506ff7a70d3744679b0dcc7bb21584b3de5f 100644 ---- a/dist/src/lib/visibility.d.ts.map -+++ b/dist/src/lib/visibility.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EASL,SAAS,EAKV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EASL,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAmBpC,eAAO,MAAM,yBAAyB,EAAE,iCA+BvC,CAAC;AAoCF,eAAO,MAAM,oBAAoB,EAAE,4BAmBlC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACrE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;CACtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAGrC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAiBlB;AAED,eAAO,MAAM,qBAAqB,EAAE,6BAmBnC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAiBlB;AAQD,eAAO,MAAM,WAAW,EAAE,mBAWzB,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,yBAU/B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAMxB,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BAqBhC,CAAC;AAQF,eAAO,MAAM,eAAe,EAAE,uBAiB7B,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iCAavC,CAAC;AA4EF,eAAO,MAAM,qBAAqB,EAAE,6BASnC,CAAC;AA6DF,eAAO,MAAM,oBAAoB,EAAE,4BAQlC,CAAC"} -\ No newline at end of file -+{"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EASL,SAAS,EAKV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EASL,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAoBpC,eAAO,MAAM,yBAAyB,EAAE,iCA+BvC,CAAC;AAoCF,eAAO,MAAM,oBAAoB,EAAE,4BAmBlC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACrE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;CACtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAGrC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAiBlB;AAED,eAAO,MAAM,qBAAqB,EAAE,6BAmBnC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAiBlB;AAQD,eAAO,MAAM,WAAW,EAAE,mBAWzB,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,yBAU/B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAMxB,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BAqBhC,CAAC;AAQF,eAAO,MAAM,eAAe,EAAE,uBAiB7B,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iCAavC,CAAC;AA4EF,eAAO,MAAM,qBAAqB,EAAE,6BASnC,CAAC;AA6DF,eAAO,MAAM,oBAAoB,EAAE,4BAQlC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib/visibility.js b/dist/src/lib/visibility.js -index 62f48633e13a462984bee84a6e20459696225f01..895170fb38d2fe3342ced197d000ff54d704bd80 100644 ---- a/dist/src/lib/visibility.js -+++ b/dist/src/lib/visibility.js -@@ -9,6 +9,7 @@ import { mutateSubgraph, MutatorFlow, setAlwaysMutate, } from "../experimental/m - import { $ } from "../typekit/index.js"; - import { useStateMap } from "../utils/index.js"; - import { mutate } from "../utils/misc.js"; -+import { $friendlyName, setFriendlyName } from "./decorators.js"; - import { isKey } from "./key.js"; - import { createStateSymbol, filterModelPropertiesInPlace, replaceTemplatedStringFromProperties, } from "./utils.js"; - export const $withDefaultKeyVisibility = (context, entity, visibility) => { -@@ -347,7 +348,12 @@ function createVisibilityFilterMutator(filter, options = {}) { - modified ||= variant.type !== member.type; - } - } -- rename(clone, options.nameTemplate); -+ if (options.nameTemplate) { -+ const beforeLen = clone.decorators.length; -+ clone.decorators = clone.decorators.filter((d) => d.decorator !== $friendlyName); -+ modified ||= clone.decorators.length !== beforeLen; -+ } -+ rename(program, clone, options.nameTemplate); - return modified ? clone : union; - }, - }, -@@ -388,7 +394,12 @@ function createVisibilityFilterMutator(filter, options = {}) { - (options.decoratorName && isTypeSpecDecorator(d, options.decoratorName)))); - modified ||= clone.decorators.length !== model.decorators.length; - } -- rename(clone, options.nameTemplate); -+ if (options.nameTemplate) { -+ const beforeLen = clone.decorators.length; -+ clone.decorators = clone.decorators.filter((d) => d.decorator !== $friendlyName); -+ modified ||= clone.decorators.length !== beforeLen; -+ } -+ rename(program, clone, options.nameTemplate); - return modified ? clone : model; - }, - }, -@@ -427,13 +438,19 @@ function createVisibilityFilterMutator(filter, options = {}) { - return self; - } - /** -- * Internal helper to rename a type in place. -+ * Internal helper to rename a type in place and register the rendered template -+ * as the clone's friendly name. The clone inherits the original's @friendlyName -+ * state (finishType re-applies it from the copied decorators), which would make -+ * the clone collide with the original's schema name; overriding it with the -+ * rendered nameTemplate keeps emitted schema names plain (e.g. "UpdateAddress") -+ * instead of falling back to namespace-qualified type names. - */ --function rename(type, nameTemplate) { -+function rename(program, type, nameTemplate) { - if (!nameTemplate || !type.name) - return; - const renamed = replaceTemplatedStringFromProperties(nameTemplate, type); - type.name = renamed; -+ setFriendlyName(program, type, renamed); - } - function isVisibilitySubject(t) { - return (t.kind === "Model" || -diff --git a/dist/src/lib/visibility.js.map b/dist/src/lib/visibility.js.map -index 2ce9e2ba9b7f64ad173b26b36d3e5830a5ec641a..7e56dbc54065ab8824ca31c31b47e49079d741fd 100644 ---- a/dist/src/lib/visibility.js.map -+++ b/dist/src/lib/visibility.js.map -@@ -1 +1 @@ --{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/package-manger/npm-registry-utils.d.ts b/dist/src/package-manger/npm-registry-utils.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..49ca3d0c733f5ee8b630e89a1040823fde2b0e20 ---- /dev/null -+++ b/dist/src/package-manger/npm-registry-utils.d.ts -@@ -0,0 +1,83 @@ -+import { Hash } from "../install/spec.js"; -+/** Manifest of a single package version. */ -+export interface NpmManifest { -+ readonly name: string; -+ readonly version: string; -+ readonly dependencies: Record; -+ readonly optionalDependencies: Record; -+ readonly devDependencies: Record; -+ readonly peerDependencies: Record; -+ readonly bundleDependencies: false | string[]; -+ readonly dist: NpmPackageDist; -+ readonly bin: Record | null; -+ readonly _shrinkwrap: Record | null; -+ readonly engines?: Record | undefined; -+ readonly cpu?: string[] | undefined; -+ readonly os?: string[] | undefined; -+ readonly _id?: string | undefined; -+ readonly [key: string]: unknown; -+} -+/** Document listing a package information and all its versions. */ -+export interface NpmPackument { -+ readonly name: string; -+ readonly "dist-tags": { -+ latest: string; -+ } & Record; -+ readonly versions: Record; -+ readonly [key: string]: unknown; -+} -+export interface NpmPackageVersion { -+ readonly name: string; -+ readonly version: string; -+ readonly dependencies?: Record | undefined; -+ readonly optionalDependencies?: Record | undefined; -+ readonly devDependencies?: Record | undefined; -+ readonly peerDependencies?: Record | undefined; -+ readonly directories: {}; -+ readonly dist: NpmPackageDist; -+ readonly _hasShrinkwrap: boolean; -+ readonly description?: string | undefined; -+ readonly main?: string | undefined; -+ readonly scripts?: Record | undefined; -+ readonly repository?: { -+ type: string; -+ url: string; -+ directory?: string | undefined; -+ } | undefined; -+ readonly engines?: Record | undefined; -+ readonly keywords?: string[] | undefined; -+ readonly author?: NpmHuman | undefined; -+ readonly contributors?: NpmHuman[] | undefined; -+ readonly maintainers?: NpmHuman[] | undefined; -+ readonly license?: string | undefined; -+ readonly homepage?: string | undefined; -+ readonly bugs?: { -+ url: string; -+ } | undefined; -+ readonly _id?: string | undefined; -+ readonly _nodeVersion?: string | undefined; -+ readonly _npmVersion?: string | undefined; -+ readonly _npmUser?: NpmHuman | undefined; -+ readonly [key: string]: unknown; -+} -+export interface NpmPackageDist { -+ readonly shasum: string; -+ readonly tarball: string; -+ readonly integrity?: string | undefined; -+ readonly fileCount?: number | undefined; -+ readonly unpackedSize?: number | undefined; -+} -+export interface NpmHuman { -+ readonly name: string; -+ readonly email?: string | undefined; -+ readonly url?: string | undefined; -+} -+export declare function fetchPackageManifest(packageName: string, version: string): Promise; -+export declare function fetchLatestPackageManifest(packageName: string): Promise; -+export declare function downloadPackageVersion(packageName: string, version: string, dest: string): Promise; -+export declare function downloadAndExtractPackage(manifest: NpmManifest, dest: string, hashAlgorithm?: string): Promise; -+export interface ExtractedTarballResult { -+ readonly dest: string; -+ readonly hash: Hash; -+} -+//# sourceMappingURL=npm-registry-utils.d.ts.map -\ No newline at end of file -diff --git a/dist/src/package-manger/npm-registry-utils.d.ts.map b/dist/src/package-manger/npm-registry-utils.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3d9fb3afe6ea4ac2cf663870311a3bb38c11d7b3 ---- /dev/null -+++ b/dist/src/package-manger/npm-registry-utils.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"npm-registry-utils.d.ts","sourceRoot":"","sources":["../../../src/package-manger/npm-registry-utils.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/package-manger/npm-registry-utils.js b/dist/src/package-manger/npm-registry-utils.js -new file mode 100644 -index 0000000000000000000000000000000000000000..0fb8bc5fdd194de9329b2bb3d4af8f2dbfdcefe9 ---- /dev/null -+++ b/dist/src/package-manger/npm-registry-utils.js -@@ -0,0 +1,50 @@ -+// Helpers to access the npm registry api https://github.com/npm/registry/blob/main/docs/REGISTRY-API.md#package-endpoints -+import { createHash } from "crypto"; -+import { Readable } from "stream"; -+import { extract as tarX } from "tar/extract"; -+const defaultRegistry = `https://registry.npmjs.org`; -+/** -+ * Returns the npm registry URL to use for fetching packages. -+ * Uses the `TYPESPEC_NPM_REGISTRY` environment variable if set, -+ * otherwise falls back to the default npm registry. -+ */ -+function getNpmRegistry() { -+ return (process.env["TYPESPEC_NPM_REGISTRY"] ?? defaultRegistry).replace(/\/$/, ""); -+} -+export async function fetchPackageManifest(packageName, version) { -+ const url = `${getNpmRegistry()}/${packageName}/${version}`; -+ const res = await fetch(url); -+ return await res.json(); -+} -+export function fetchLatestPackageManifest(packageName) { -+ return fetchPackageManifest(packageName, "latest"); -+} -+export async function downloadPackageVersion(packageName, version, dest) { -+ const manifest = await fetchPackageManifest(packageName, version); -+ return downloadAndExtractTarball(manifest.dist.tarball, dest); -+} -+export async function downloadAndExtractPackage(manifest, dest, hashAlgorithm = "sha512") { -+ return downloadAndExtractTarball(manifest.dist.tarball, dest, hashAlgorithm); -+} -+async function downloadAndExtractTarball(url, dest, hashAlgorithm = "sha512") { -+ const res = await fetch(url); -+ const tarballStream = Readable.fromWeb(res.body); -+ const hash = tarballStream.pipe(createHash(hashAlgorithm)); -+ const extractor = tarX({ -+ strip: 1, -+ cwd: dest, -+ }); -+ const p = new Promise((resolve, reject) => { -+ extractor.on("end", () => { -+ resolve(); -+ }); -+ extractor.on("error", (er) => { -+ reject(er); -+ }); -+ tarballStream.on("error", (er) => reject(er)); -+ }); -+ tarballStream.pipe(extractor); -+ await p; -+ return { dest, hash: { algorithm: hashAlgorithm, value: hash.digest("hex") } }; -+} -+//# sourceMappingURL=npm-registry-utils.js.map -\ No newline at end of file -diff --git a/dist/src/package-manger/npm-registry-utils.js.map b/dist/src/package-manger/npm-registry-utils.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3134abb1d084554402b25630d0098afa47644f08 ---- /dev/null -+++ b/dist/src/package-manger/npm-registry-utils.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"npm-registry-utils.js","sourceRoot":"","sources":["../../../src/package-manger/npm-registry-utils.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAoF9C,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD;;;;GAIG;AACH,SAAS,cAAc;IACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,cAAc,EAAE,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,WAAmB;IAC5D,OAAO,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,OAAe,EACf,IAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAqB,EACrB,IAAY,EACZ,gBAAwB,QAAQ;IAEhC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAMD,KAAK,UAAU,yBAAyB,CACtC,GAAW,EACX,IAAY,EACZ,gBAAwB,QAAQ;IAEhC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YAC3B,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,CAAC,CAAC;IAER,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACjF,CAAC"} -\ No newline at end of file -diff --git a/dist/src/runner.d.ts b/dist/src/runner.d.ts -index aa474fffd482e377a783318958d222f3d6fd5c67..0ba06468746e50c49dfba5b6ce67427ca7e775d8 100644 ---- a/dist/src/runner.d.ts -+++ b/dist/src/runner.d.ts -@@ -5,5 +5,5 @@ - * Prevents loading two conflicting copies of TypeSpec modules from global and - * local package locations. - */ --export declare function runScript(relativePath: string, backupPath: string): Promise; -+export declare function runScript(relativePath: string): Promise; - //# sourceMappingURL=runner.d.ts.map -\ No newline at end of file -diff --git a/dist/src/runner.d.ts.map b/dist/src/runner.d.ts.map -index 5258cefb2efc2f8a3c42fbe39f711ee808c31917..b81525fa9e5b927de9bc38ab6ff083d191099408 100644 ---- a/dist/src/runner.d.ts.map -+++ b/dist/src/runner.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAevF"} -\ No newline at end of file -+{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnE"} -\ No newline at end of file -diff --git a/dist/src/runner.js b/dist/src/runner.js -index d5ee77f1bf48f11fbdb37a011190a605ac989fd5..f9f292aa22dd5f9eee10979e319093ae5bb4572a 100644 ---- a/dist/src/runner.js -+++ b/dist/src/runner.js -@@ -1,4 +1,4 @@ --import { access, readFile, realpath, stat } from "fs/promises"; -+import { readFile, realpath, stat } from "fs/promises"; - import { join, resolve } from "path"; - import { fileURLToPath, pathToFileURL } from "url"; - import { resolveModule } from "./module-resolver/index.js"; -@@ -9,13 +9,10 @@ import { resolveModule } from "./module-resolver/index.js"; - * Prevents loading two conflicting copies of TypeSpec modules from global and - * local package locations. - */ --export async function runScript(relativePath, backupPath) { -+export async function runScript(relativePath) { - const packageRoot = await resolvePackageRoot(); - if (packageRoot) { -- let script = join(packageRoot, relativePath); -- if (!(await checkFileExists(script)) && backupPath) { -- script = join(packageRoot, backupPath); -- } -+ const script = join(packageRoot, relativePath); - const scriptUrl = pathToFileURL(script).toString(); - await import(scriptUrl); - } -@@ -23,11 +20,6 @@ export async function runScript(relativePath, backupPath) { - throw new Error("Couldn't resolve TypeSpec compiler root. This is unexpected. Please file an issue at https://github.com/microsoft/typespec."); - } - } --function checkFileExists(file) { -- return access(file) -- .then(() => true) -- .catch(() => false); --} - async function resolvePackageRoot() { - if (process.env.TYPESPEC_SKIP_COMPILER_RESOLVE === "1") { - return await getThisPackageRoot(); -diff --git a/dist/src/runner.js.map b/dist/src/runner.js.map -index df6cbbca05e730c2d9fb29a65eb8be9112d19fd6..51384f3bbcc11235c593b35ed7f3f9a6ac50a5b5 100644 ---- a/dist/src/runner.js.map -+++ b/dist/src/runner.js.map -@@ -1 +1 @@ --{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAqB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB,EAAE,UAAkB;IACtE,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE/C,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAsB;YAC9B,QAAQ;YACR,QAAQ,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/D,IAAI;SACL,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,2FAA2F,QAAQ,CAAC,IAAI,IAAI,CAC7G,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,mDAAmD;YACnD,OAAO,MAAM,kBAAkB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,OAAO,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC"} -\ No newline at end of file -+{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAqB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,YAAoB;IAClD,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,6HAA6H,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,EAAE,CAAC;QACvD,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAsB;YAC9B,QAAQ;YACR,QAAQ,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/D,IAAI;SACL,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,2FAA2F,QAAQ,CAAC,IAAI,IAAI,CAC7G,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,mDAAmD;YACnD,OAAO,MAAM,kBAAkB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,OAAO,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC"} -\ No newline at end of file -diff --git a/dist/src/server/emitter-provider.d.ts b/dist/src/server/emitter-provider.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e9926786fa1e1622973262c998b9858609d4cd19 ---- /dev/null -+++ b/dist/src/server/emitter-provider.d.ts -@@ -0,0 +1,22 @@ -+import { NpmPackage, NpmPackageProvider } from "./npm-package-provider.js"; -+export declare class EmitterProvider { -+ private npmPackageProvider; -+ private isEmitterPackageCache; -+ constructor(npmPackageProvider: NpmPackageProvider); -+ /** -+ * -+ * @param startFolder folder starts to search for package.json with emitters defined as dependencies -+ * @returns -+ */ -+ listEmitters(startFolder: string): Promise>; -+ /** -+ * -+ * @param startFolder folder starts to search for package.json with emitters defined as dependencies -+ * @param emitterName -+ * @returns -+ */ -+ getEmitter(startFolder: string, emitterName: string): Promise; -+ private isEmitter; -+ private getEmitterFromDep; -+} -+//# sourceMappingURL=emitter-provider.d.ts.map -\ No newline at end of file -diff --git a/dist/src/server/emitter-provider.d.ts.map b/dist/src/server/emitter-provider.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c708db29c29cb8a2ef38a951f3ac4975f7c3f725 ---- /dev/null -+++ b/dist/src/server/emitter-provider.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter-provider.d.ts","sourceRoot":"","sources":["../../../src/server/emitter-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,qBAAa,eAAe;IAEd,OAAO,CAAC,kBAAkB;IADtC,OAAO,CAAC,qBAAqB,CAA8B;gBACvC,kBAAkB,EAAE,kBAAkB;IAE1D;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAsB5E;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAQ7E,SAAS;YAwBT,iBAAiB;CAQhC"} -\ No newline at end of file -diff --git a/dist/src/server/emitter-provider.js b/dist/src/server/emitter-provider.js -new file mode 100644 -index 0000000000000000000000000000000000000000..8313fc52bf7906bd87c04c17015e56600add7d4c ---- /dev/null -+++ b/dist/src/server/emitter-provider.js -@@ -0,0 +1,79 @@ -+import { joinPaths } from "../core/path-utils.js"; -+export class EmitterProvider { -+ npmPackageProvider; -+ isEmitterPackageCache = new Map(); -+ constructor(npmPackageProvider) { -+ this.npmPackageProvider = npmPackageProvider; -+ } -+ /** -+ * -+ * @param startFolder folder starts to search for package.json with emitters defined as dependencies -+ * @returns -+ */ -+ async listEmitters(startFolder) { -+ const packageJsonFolder = await this.npmPackageProvider.getPackageJsonFolder(startFolder); -+ if (!packageJsonFolder) -+ return {}; -+ const pkg = await this.npmPackageProvider.get(packageJsonFolder); -+ const data = await pkg?.getPackageJsonData(); -+ if (!data) -+ return {}; -+ const emitters = {}; -+ const allDep = { -+ ...(data.dependencies ?? {}), -+ ...(data.devDependencies ?? {}), -+ }; -+ for (const dep of Object.keys(allDep)) { -+ const depPkg = await this.getEmitterFromDep(packageJsonFolder, dep); -+ if (depPkg) { -+ emitters[dep] = depPkg; -+ } -+ } -+ return emitters; -+ } -+ /** -+ * -+ * @param startFolder folder starts to search for package.json with emitters defined as dependencies -+ * @param emitterName -+ * @returns -+ */ -+ async getEmitter(startFolder, emitterName) { -+ const packageJsonFolder = await this.npmPackageProvider.getPackageJsonFolder(startFolder); -+ if (!packageJsonFolder) { -+ return undefined; -+ } -+ return this.getEmitterFromDep(packageJsonFolder, emitterName); -+ } -+ async isEmitter(depName, pkg) { -+ if (this.isEmitterPackageCache.has(depName)) { -+ return this.isEmitterPackageCache.get(depName); -+ } -+ const data = await pkg.getPackageJsonData(); -+ // don't add to cache when failing to load package.json which is unexpected -+ if (!data) -+ return false; -+ if ((data.devDependencies && data.devDependencies["@typespec/compiler"]) || -+ (data.dependencies && data.dependencies["@typespec/compiler"])) { -+ const exports = await pkg.getModuleExports(); -+ // don't add to cache when failing to load exports which is unexpected -+ if (!exports) -+ return false; -+ const isEmitter = exports.$onEmit !== undefined; -+ this.isEmitterPackageCache.set(depName, isEmitter); -+ return isEmitter; -+ } -+ else { -+ this.isEmitterPackageCache.set(depName, false); -+ return false; -+ } -+ } -+ async getEmitterFromDep(packageJsonFolder, depName) { -+ const depFolder = joinPaths(packageJsonFolder, "node_modules", depName); -+ const depPkg = await this.npmPackageProvider.get(depFolder); -+ if (depPkg && (await this.isEmitter(depName, depPkg))) { -+ return depPkg; -+ } -+ return undefined; -+ } -+} -+//# sourceMappingURL=emitter-provider.js.map -\ No newline at end of file -diff --git a/dist/src/server/emitter-provider.js.map b/dist/src/server/emitter-provider.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..75875938f4ae63986642a2bbbb4e83b34101dd9a ---- /dev/null -+++ b/dist/src/server/emitter-provider.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter-provider.js","sourceRoot":"","sources":["../../../src/server/emitter-provider.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/server/serverlib.js.map b/dist/src/server/serverlib.js.map -index 1ae8ec69c054b3a47c225007f989520d305cc0e6..469dd4442d5239baa631d11213f8d7afaec1bfdc 100644 ---- a/dist/src/server/serverlib.js.map -+++ b/dist/src/server/serverlib.js.map -@@ -1 +1 @@ --{"version":3,"file":"serverlib.js","sourceRoot":"","sources":["../../../src/server/serverlib.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"serverlib.js","sourceRoot":"","sources":["../../../src/server/serverlib.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/server/tmlanguage.d.ts.map b/dist/src/server/tmlanguage.d.ts.map -index 245dc3a9ca4c864bfe94b73494ef39b91f8689d9..0414fb8013a451419c4948235889b0db28dac513 100644 ---- a/dist/src/server/tmlanguage.d.ts.map -+++ b/dist/src/server/tmlanguage.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"tmlanguage.d.ts","sourceRoot":"","sources":["../../../src/server/tmlanguage.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAErB,mBAAmB,GACnB,+BAA+B,GAE/B,+BAA+B,GAC/B,sBAAsB,GACtB,uBAAuB,GAEvB,4BAA4B,GAC5B,mBAAmB,GACnB,oBAAoB,GAEpB,sBAAsB,GAEtB,sBAAsB,GACtB,0BAA0B,GAC1B,qBAAqB,GACrB,gCAAgC,GAEhC,0BAA0B,GAC1B,0BAA0B,GAE1B,mBAAmB,GAEnB,sCAAsC,GACtC,iCAAiC,GACjC,+BAA+B,GAC/B,+BAA+B,GAC/B,6BAA6B,GAE7B,uBAAuB,GACvB,0BAA0B,GAC1B,sCAAsC,GACtC,iDAAiD,GACjD,+CAA+C,GAC/C,sDAAsD,GACtD,oDAAoD,GACpD,oCAAoC,GACpC,qCAAqC,GACrC,iCAAiC,GACjC,kCAAkC,GAClC,kCAAkC,GAClC,mCAAmC,GACnC,qCAAqC,GACrC,wCAAwC,CAAC;AAo5B7C,wBAAsB,IAAI,kBAWzB"} -\ No newline at end of file -+{"version":3,"file":"tmlanguage.d.ts","sourceRoot":"","sources":["../../../src/server/tmlanguage.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,aAAa,GAErB,mBAAmB,GACnB,+BAA+B,GAE/B,+BAA+B,GAC/B,sBAAsB,GACtB,uBAAuB,GAEvB,4BAA4B,GAC5B,mBAAmB,GACnB,oBAAoB,GAEpB,sBAAsB,GAEtB,sBAAsB,GACtB,0BAA0B,GAC1B,qBAAqB,GACrB,gCAAgC,GAEhC,0BAA0B,GAC1B,0BAA0B,GAE1B,mBAAmB,GAEnB,sCAAsC,GACtC,iCAAiC,GACjC,+BAA+B,GAC/B,+BAA+B,GAC/B,6BAA6B,GAE7B,uBAAuB,GACvB,0BAA0B,GAC1B,sCAAsC,GACtC,iDAAiD,GACjD,+CAA+C,GAC/C,sDAAsD,GACtD,oDAAoD,GACpD,oCAAoC,GACpC,qCAAqC,GACrC,iCAAiC,GACjC,kCAAkC,GAClC,kCAAkC,GAClC,mCAAmC,GACnC,qCAAqC,GACrC,wCAAwC,CAAC;AAg5B7C,wBAAsB,IAAI,kBAWzB"} -\ No newline at end of file -diff --git a/dist/src/server/tmlanguage.js b/dist/src/server/tmlanguage.js -index 6936002697eaf73be1bcfc3737aa7d15531841c3..b8f03764b81b2f1cb1c98f07e5501956041a4096 100644 ---- a/dist/src/server/tmlanguage.js -+++ b/dist/src/server/tmlanguage.js -@@ -36,15 +36,11 @@ const decimalNumber = "(?", -+ uri: options?.caseInsensitiveFileSystem ? rootUri.toUpperCase() : rootUri, -+ }, -+ ], - }); - server.initialized({}); - const serverCompile = server.compile; -diff --git a/dist/src/testing/test-server-host.js.map b/dist/src/testing/test-server-host.js.map -index e91dba190d43389920a655a7bbbfbde2b51776d9..f4cc689a72a7c521a9055af15246bf16666fdb3f 100644 ---- a/dist/src/testing/test-server-host.js.map -+++ b/dist/src/testing/test-server-host.js.map -@@ -1 +1 @@ --{"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"test-server-host.js","sourceRoot":"","sources":["../../../src/testing/test-server-host.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts b/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..069cfe1236b354d96074b447ba7b96c93b2fc4e0 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts -@@ -0,0 +1,3 @@ -+import { EmitContext } from "@typespec/compiler"; -+export declare function $onEmit(context: EmitContext): Promise; -+//# sourceMappingURL=emitter.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts.map b/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9cdd6b8b01a5bc1723c153fea5295fcde0950943 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/emitter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AAExE,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBAKjD"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/emitter.js b/dist/templates/__snapshots__/emitter-ts/src/emitter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..dd1cc0d6462bbdec72f295d94419cb4c1e3548ae ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/emitter.js -@@ -0,0 +1,8 @@ -+import { emitFile, resolvePath } from "@typespec/compiler"; -+export async function $onEmit(context) { -+ await emitFile(context.program, { -+ path: resolvePath(context.emitterOutputDir, "output.txt"), -+ content: "Hello world\n", -+ }); -+} -+//# sourceMappingURL=emitter.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/emitter.js.map b/dist/templates/__snapshots__/emitter-ts/src/emitter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..1fbc5e4c41fed826e21a54cf0457f1af80ff8a3d ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/emitter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;QACzD,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/index.d.ts b/dist/templates/__snapshots__/emitter-ts/src/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..b8309469811aa5cba89329abb34f44ce91ba27f1 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/index.d.ts -@@ -0,0 +1,3 @@ -+export { $onEmit } from "./emitter.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/index.d.ts.map b/dist/templates/__snapshots__/emitter-ts/src/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a3dd26d4a1aa482101a1bf45d796a313fffc6992 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/index.js b/dist/templates/__snapshots__/emitter-ts/src/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..b20a0a9eef5387dce918b892e01b3aed1b2c587b ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/index.js -@@ -0,0 +1,3 @@ -+export { $onEmit } from "./emitter.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/index.js.map b/dist/templates/__snapshots__/emitter-ts/src/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..05ca7a68d67851ca298e4736b6715a7b5b9fcc72 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts b/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..ae28e942f906110c7b4e9d03b0c2c16fb51d74b4 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts -@@ -0,0 +1,3 @@ -+export declare const $lib: any; -+export declare const reportDiagnostic: any, createDiagnostic: any; -+//# sourceMappingURL=lib.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts.map b/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c024863652b1f415c561ee6205e988498ad71e87 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/lib.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,KAGf,CAAC;AAEH,eAAO,MAAQ,gBAAgB,OAAE,gBAAgB,KAAS,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/lib.js b/dist/templates/__snapshots__/emitter-ts/src/lib.js -new file mode 100644 -index 0000000000000000000000000000000000000000..bc21b489321a0641f43cb13edb253e06973bb6b1 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/lib.js -@@ -0,0 +1,7 @@ -+import { createTypeSpecLibrary } from "@typespec/compiler"; -+export const $lib = createTypeSpecLibrary({ -+ name: "emitter-ts", -+ diagnostics: {}, -+}); -+export const { reportDiagnostic, createDiagnostic } = $lib; -+//# sourceMappingURL=lib.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/lib.js.map b/dist/templates/__snapshots__/emitter-ts/src/lib.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..bcef2f9dc35214e8449d76429922b9fdfb7d45a4 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/lib.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts b/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e2e62b06410f1084c85c7926d7d1e92fe705d220 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts -@@ -0,0 +1,3 @@ -+import { TypeSpecTestLibrary } from "@typespec/compiler/testing"; -+export declare const EmitterTsTestLibrary: TypeSpecTestLibrary; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts.map b/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9c7f986d940f4953a87c7fe1e7c7c0555ea4ab45 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/testing/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/emitter-ts/src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGpF,eAAO,MAAM,oBAAoB,EAAE,mBAGjC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/testing/index.js b/dist/templates/__snapshots__/emitter-ts/src/testing/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..6d992245102c13a26f53d318026b65db1d988833 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/testing/index.js -@@ -0,0 +1,8 @@ -+import { resolvePath } from "@typespec/compiler"; -+import { createTestLibrary } from "@typespec/compiler/testing"; -+import { fileURLToPath } from "url"; -+export const EmitterTsTestLibrary = createTestLibrary({ -+ name: "emitter-ts", -+ packageRoot: resolvePath(fileURLToPath(import.meta.url), "../../../../"), -+}); -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/src/testing/index.js.map b/dist/templates/__snapshots__/emitter-ts/src/testing/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..6b11a7d4c800dd1182336fd4cbca60a037a9e2c1 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/src/testing/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/emitter-ts/src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAwB,iBAAiB,CAAC;IACzE,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;CACzE,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts b/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..24d6c5bc2bae002f6267140e532614dc8e5ae61b ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=hello.test.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts.map b/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8717f1af21d895fd27070056f399d028bd61f6d1 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/hello.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"hello.test.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/test/hello.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/hello.test.js b/dist/templates/__snapshots__/emitter-ts/test/hello.test.js -new file mode 100644 -index 0000000000000000000000000000000000000000..a8f4996d749e36e3a6f3b6e4a2210baafddf0980 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/hello.test.js -@@ -0,0 +1,10 @@ -+import { strictEqual } from "node:assert"; -+import { describe, it } from "node:test"; -+import { emit } from "./test-host.js"; -+describe("hello", () => { -+ it("emit output.txt with content hello world", async () => { -+ const results = await emit(`op test(): void;`); -+ strictEqual(results["output.txt"], "Hello world\n"); -+ }); -+}); -+//# sourceMappingURL=hello.test.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/hello.test.js.map b/dist/templates/__snapshots__/emitter-ts/test/hello.test.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..2c6a64ab613b4e8d9a4b12ea1c9f8dc15588bea1 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/hello.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"hello.test.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/test/hello.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts b/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..3d9fdc57d356f7887775421874fd4771f078de0b ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts -@@ -0,0 +1,5 @@ -+import { Diagnostic } from "@typespec/compiler"; -+export declare const Tester: any; -+export declare function emitWithDiagnostics(code: string): Promise<[Record, readonly Diagnostic[]]>; -+export declare function emit(code: string): Promise>; -+//# sourceMappingURL=test-host.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts.map b/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..353b17761291a52a50ff430bd964c47b87241399 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/test-host.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"test-host.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/test/test-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AAI7D,eAAO,MAAM,MAAM,KAEE,CAAC;AAEtB,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CAG1D;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAIxE"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/test-host.js b/dist/templates/__snapshots__/emitter-ts/test/test-host.js -new file mode 100644 -index 0000000000000000000000000000000000000000..ab878912c1466e3a0447dffd46d8190daffa269e ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/test-host.js -@@ -0,0 +1,16 @@ -+import { resolvePath } from "@typespec/compiler"; -+import { expectDiagnosticEmpty } from "@typespec/compiler/testing"; -+import { createTester } from "@typespec/compiler/testing"; -+export const Tester = createTester(resolvePath(import.meta.dirname, "../.."), { -+ libraries: ["emitter-ts"], -+}).emit("emitter-ts"); -+export async function emitWithDiagnostics(code) { -+ const [{ outputs }, diagnostics] = await Tester.compileAndDiagnose(code); -+ return [outputs, diagnostics]; -+} -+export async function emit(code) { -+ const [result, diagnostics] = await emitWithDiagnostics(code); -+ expectDiagnosticEmpty(diagnostics); -+ return result; -+} -+//# sourceMappingURL=test-host.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/emitter-ts/test/test-host.js.map b/dist/templates/__snapshots__/emitter-ts/test/test-host.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..55fa752a963677faec91ece72de05f8d6713d685 ---- /dev/null -+++ b/dist/templates/__snapshots__/emitter-ts/test/test-host.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"test-host.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/emitter-ts/test/test-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;IAC5E,SAAS,EAAE,CAAC,YAAY,CAAC;CAC1B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY;IAEZ,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAY;IACrC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9D,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/decorators.d.ts b/dist/templates/__snapshots__/library-ts/src/decorators.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..2b28ff6d1feb06cf6136a7f3771f4a3edfce9bfc ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/decorators.d.ts -@@ -0,0 +1,19 @@ -+import { DecoratorContext, Operation, Program } from "@typespec/compiler"; -+export declare const namespace = "LibraryTs"; -+/** -+ * __Example implementation of the `@alternateName` decorator.__ -+ * -+ * @param context Decorator context. -+ * @param target Decorator target. Must be an operation. -+ * @param name Alternate name. -+ */ -+export declare function $alternateName(context: DecoratorContext, target: Operation, name: string): void; -+/** -+ * __Example accessor for the `@alternateName` decorator.__ -+ * -+ * @param program TypeSpec program. -+ * @param target Decorator target. Must be an operation. -+ * @returns Altenate name if provided on the given operation or undefined -+ */ -+export declare function getAlternateName(program: Program, target: Operation): string | undefined; -+//# sourceMappingURL=decorators.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/decorators.d.ts.map b/dist/templates/__snapshots__/library-ts/src/decorators.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..78e54af5ca8118d95aafaa55e2e70f8c17f7698d ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/decorators.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG1E,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,QASxF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAExF"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/decorators.js b/dist/templates/__snapshots__/library-ts/src/decorators.js -new file mode 100644 -index 0000000000000000000000000000000000000000..5ca3378dc8a21052b72746980afeb2fe861634c3 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/decorators.js -@@ -0,0 +1,30 @@ -+import { StateKeys, reportDiagnostic } from "./lib.js"; -+export const namespace = "LibraryTs"; -+/** -+ * __Example implementation of the `@alternateName` decorator.__ -+ * -+ * @param context Decorator context. -+ * @param target Decorator target. Must be an operation. -+ * @param name Alternate name. -+ */ -+export function $alternateName(context, target, name) { -+ if (name === "banned") { -+ reportDiagnostic(context.program, { -+ code: "banned-alternate-name", -+ target: context.getArgumentTarget(0), -+ format: { name }, -+ }); -+ } -+ context.program.stateMap(StateKeys.alternateName).set(target, name); -+} -+/** -+ * __Example accessor for the `@alternateName` decorator.__ -+ * -+ * @param program TypeSpec program. -+ * @param target Decorator target. Must be an operation. -+ * @returns Altenate name if provided on the given operation or undefined -+ */ -+export function getAlternateName(program, target) { -+ return program.stateMap(StateKeys.alternateName).get(target); -+} -+//# sourceMappingURL=decorators.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/decorators.js.map b/dist/templates/__snapshots__/library-ts/src/decorators.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..00c850c0a00a11b70f5a6053244289c957b52293 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/decorators.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAyB,EAAE,MAAiB,EAAE,IAAY;IACvF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAiB;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/index.d.ts b/dist/templates/__snapshots__/library-ts/src/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..25437a452553ef7958d83f101b35c78adb363e56 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/index.d.ts -@@ -0,0 +1,3 @@ -+export { getAlternateName } from "./decorators.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/index.d.ts.map b/dist/templates/__snapshots__/library-ts/src/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a46a64bcbac5ff5a7e22d253f4d1ee19980fbf57 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/index.js b/dist/templates/__snapshots__/library-ts/src/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..72863b32236f530660b1553c22c46db04909aee1 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/index.js -@@ -0,0 +1,3 @@ -+export { getAlternateName } from "./decorators.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/index.js.map b/dist/templates/__snapshots__/library-ts/src/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..aee59af55fb411e9e2addadd808797ce1452f858 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/lib.d.ts b/dist/templates/__snapshots__/library-ts/src/lib.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..2692b21de23caf2036c55259cad684679d4a71cf ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/lib.d.ts -@@ -0,0 +1,3 @@ -+export declare const $lib: any; -+export declare const reportDiagnostic: any, createDiagnostic: any, StateKeys: any; -+//# sourceMappingURL=lib.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/lib.d.ts.map b/dist/templates/__snapshots__/library-ts/src/lib.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..3d818e90d6f5d2852d738ac96562dafeedddf3f4 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/lib.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,KAef,CAAC;AAEH,eAAO,MAAQ,gBAAgB,OAAE,gBAAgB,OAAa,SAAS,KAAS,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/lib.js b/dist/templates/__snapshots__/library-ts/src/lib.js -new file mode 100644 -index 0000000000000000000000000000000000000000..398f6f2660dcb834a4ba2908c17e02f853d9fb90 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/lib.js -@@ -0,0 +1,19 @@ -+import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler"; -+export const $lib = createTypeSpecLibrary({ -+ name: "library-ts", -+ // Define diagnostics for the library. This will provide a typed API to report diagnostic as well as a auto doc generation. -+ diagnostics: { -+ "banned-alternate-name": { -+ severity: "error", -+ messages: { -+ default: paramMessage `Banned alternate name "${"name"}".`, -+ }, -+ }, -+ }, -+ // Defined state keys for storing metadata in decorator. -+ state: { -+ alternateName: { description: "alternateName" }, -+ }, -+}); -+export const { reportDiagnostic, createDiagnostic, stateKeys: StateKeys } = $lib; -+//# sourceMappingURL=lib.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/lib.js.map b/dist/templates/__snapshots__/library-ts/src/lib.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..0b71340da5962498ff57e87541b084c77fbb57c4 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/lib.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,2HAA2H;IAC3H,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,0BAA0B,MAAM,IAAI;aAC1D;SACF;KACF;IACD,wDAAwD;IACxD,KAAK,EAAE;QACL,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;KAChD;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/linter.d.ts b/dist/templates/__snapshots__/library-ts/src/linter.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..0e2f006b7e1c6ab49d9f098c8389a772630fe7ec ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/linter.d.ts -@@ -0,0 +1,2 @@ -+export declare const $linter: any; -+//# sourceMappingURL=linter.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/linter.d.ts.map b/dist/templates/__snapshots__/library-ts/src/linter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..b62c75ffae26ac5afa2136dc5e4f85e82b421816 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/linter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/linter.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,KAUlB,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/linter.js b/dist/templates/__snapshots__/library-ts/src/linter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..7374516871a813e301d0f251d7c6173dbde95869 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/linter.js -@@ -0,0 +1,14 @@ -+import { defineLinter } from "@typespec/compiler"; -+import { noInterfaceRule } from "./rules/no-interfaces.rule.js"; -+export const $linter = defineLinter({ -+ rules: [noInterfaceRule], -+ ruleSets: { -+ recommended: { -+ enable: { [`library-ts/${noInterfaceRule.name}`]: true }, -+ }, -+ all: { -+ enable: { [`library-ts/${noInterfaceRule.name}`]: true }, -+ }, -+ }, -+}); -+//# sourceMappingURL=linter.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/linter.js.map b/dist/templates/__snapshots__/library-ts/src/linter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8965785fe27327426379f3351ff6ecc807bcf94e ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/linter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,CAAC,cAAc,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SACzD;QACD,GAAG,EAAE;YACH,MAAM,EAAE,EAAE,CAAC,cAAc,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SACzD;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..1cf6c036b68e9f82c75aeb9f1bd37b1903525ad2 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts -@@ -0,0 +1,2 @@ -+export declare const noInterfaceRule: any; -+//# sourceMappingURL=no-interfaces.rule.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts.map b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..430e18709bbc3a6690c12474bd3491ae9bc9736a ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.d.ts","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,KAgB1B,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js -new file mode 100644 -index 0000000000000000000000000000000000000000..c9c71389c14791b35edf83e93757f7bacc1a7d7e ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js -@@ -0,0 +1,19 @@ -+import { createRule } from "@typespec/compiler"; -+export const noInterfaceRule = createRule({ -+ name: "no-interface", -+ severity: "warning", -+ description: "Make sure interface are not used.", -+ messages: { -+ default: "Interface shouldn't be used with this library. Keep operations at the root.", -+ }, -+ create: (context) => { -+ return { -+ interface: (iface) => { -+ context.reportDiagnostic({ -+ target: iface, -+ }); -+ }, -+ }; -+ }, -+}); -+//# sourceMappingURL=no-interfaces.rule.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js.map b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a95bcb284ab19a0330737a4c90892011e69122ea ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.js","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/src/rules/no-interfaces.rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE;QACR,OAAO,EAAE,6EAA6E;KACvF;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,OAAO;YACL,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,OAAO,CAAC,gBAAgB,CAAC;oBACvB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts b/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..ba7b4bdbac32c39b5da6992ff46f3b2a6d0f59d3 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts -@@ -0,0 +1,3 @@ -+import { TypeSpecTestLibrary } from "@typespec/compiler/testing"; -+export declare const LibraryTsTestLibrary: TypeSpecTestLibrary; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts.map b/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..f6b89198e3fb845934ccdbb4d5d3110260c45c5b ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/testing/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGpF,eAAO,MAAM,oBAAoB,EAAE,mBAGjC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/testing/index.js b/dist/templates/__snapshots__/library-ts/src/testing/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..5e3b46166ca615530a13c67ab0631d30a1c2980f ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/testing/index.js -@@ -0,0 +1,8 @@ -+import { resolvePath } from "@typespec/compiler"; -+import { createTestLibrary } from "@typespec/compiler/testing"; -+import { fileURLToPath } from "url"; -+export const LibraryTsTestLibrary = createTestLibrary({ -+ name: "library-ts", -+ packageRoot: resolvePath(fileURLToPath(import.meta.url), "../../../../"), -+}); -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/src/testing/index.js.map b/dist/templates/__snapshots__/library-ts/src/testing/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..540a6a78e52e5e16d42432b51e5ed13178cfb275 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/src/testing/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAuB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAwB,iBAAiB,CAAC;IACzE,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC;CACzE,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts b/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..b61f7d96896a3ca5ee6cb90326c3b1f528791eef ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=decorators.test.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts.map b/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ce3d019f59d072deefe758b32a9d0b82a57bfc39 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/decorators.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.test.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/test/decorators.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/decorators.test.js b/dist/templates/__snapshots__/library-ts/test/decorators.test.js -new file mode 100644 -index 0000000000000000000000000000000000000000..abb58145083131a488169ce8220a594b2b13a7a1 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/decorators.test.js -@@ -0,0 +1,39 @@ -+import { strictEqual } from "node:assert"; -+import { describe, it } from "node:test"; -+import { expectDiagnostics } from "@typespec/compiler/testing"; -+import { getAlternateName } from "../src/decorators.js"; -+import { Tester } from "./test-host.js"; -+describe("decorators", () => { -+ describe("@alternateName", () => { -+ it("set alternate name on operation", async () => { -+ const { test, program } = (await Tester.compile(` -+ using LibraryTs; -+ @alternateName("bar") @test op test(): void; -+ `)); -+ strictEqual(getAlternateName(program, test), "bar"); -+ }); -+ it("emit diagnostic if not used on an operation", async () => { -+ const diagnostics = await Tester.diagnose(` -+ using LibraryTs; -+ @alternateName("bar") model Test {} -+ `); -+ expectDiagnostics(diagnostics, { -+ severity: "error", -+ code: "decorator-wrong-target", -+ message: "Cannot apply @alternateName decorator to Test since it is not assignable to Operation" -+ }); -+ }); -+ it("emit diagnostic if using banned name", async () => { -+ const diagnostics = await Tester.diagnose(` -+ using LibraryTs; -+ @alternateName("banned") op test(): void; -+ `); -+ expectDiagnostics(diagnostics, { -+ severity: "error", -+ code: "library-ts/banned-alternate-name", -+ message: `Banned alternate name "banned".` -+ }); -+ }); -+ }); -+}); -+//# sourceMappingURL=decorators.test.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/decorators.test.js.map b/dist/templates/__snapshots__/library-ts/test/decorators.test.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..5fabacdac15e0da9a876c6fee3bad79831927a9a ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/decorators.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.test.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/test/decorators.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC;;;OAG/C,CAAC,CAAqD,CAAC;YACxD,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;;;OAGzC,CAAC,CAAC;YACH,iBAAiB,CAAC,WAAW,EAAE;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,uFAAuF;aACjG,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC;QAGH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;;;OAGzC,CAAC,CAAC;YACH,iBAAiB,CAAC,WAAW,EAAE;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAA;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e402e1f5feaef9dcd98035cb0918bef95c3e4431 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=no-interfaces.rule.test.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts.map b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c48b783196042971b46ef936c14d0f8536385665 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.test.d.ts","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js -new file mode 100644 -index 0000000000000000000000000000000000000000..75764591d95b1dbfeb5a0a11984643f75a90309f ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js -@@ -0,0 +1,22 @@ -+import { createLinterRuleTester, createTestRunner, } from "@typespec/compiler/testing"; -+import { beforeEach, describe, it } from "node:test"; -+import { noInterfaceRule } from "../../src/rules/no-interfaces.rule.js"; -+describe("noInterfaceRule", () => { -+ let ruleTester; -+ beforeEach(async () => { -+ const runner = await createTestRunner(); -+ ruleTester = createLinterRuleTester(runner, noInterfaceRule, "library-ts"); -+ }); -+ describe("models", () => { -+ it("emit diagnostics if using interfaces", async () => { -+ await ruleTester.expect(`interface Test {}`).toEmitDiagnostics({ -+ code: "library-ts/no-interface", -+ message: "Interface shouldn't be used with this library. Keep operations at the root.", -+ }); -+ }); -+ it("should be valid if operation is at the root", async () => { -+ await ruleTester.expect(`op test(): void;`).toBeValid(); -+ }); -+ }); -+}); -+//# sourceMappingURL=no-interfaces.rule.test.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js.map b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..afe953e28e4e1eda509b66dc588d182b97dcb3ab ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.test.js","sourceRoot":"","sources":["../../../../../../templates/__snapshots__/library-ts/test/rules/no-interfaces.rule.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,UAA4B,CAAC;IAEjC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC;gBAC7D,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,6EAA6E;aACvF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/test-host.d.ts b/dist/templates/__snapshots__/library-ts/test/test-host.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..7ca7e9a72d79eb9e19ccb2ff53cb9caa1277d55a ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/test-host.d.ts -@@ -0,0 +1,2 @@ -+export declare const Tester: any; -+//# sourceMappingURL=test-host.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/test-host.d.ts.map b/dist/templates/__snapshots__/library-ts/test/test-host.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..25ec7f9f80c60e67cdde120b4e0c11890c0949e4 ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/test-host.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"test-host.d.ts","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/test/test-host.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,KAEI,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/test-host.js b/dist/templates/__snapshots__/library-ts/test/test-host.js -new file mode 100644 -index 0000000000000000000000000000000000000000..357c89ccb9fea9b10ee2647583f550c0e6c3e05b ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/test-host.js -@@ -0,0 +1,6 @@ -+import { resolvePath } from "@typespec/compiler"; -+import { createTester } from "@typespec/compiler/testing"; -+export const Tester = createTester(resolvePath(import.meta.dirname, "../.."), { -+ libraries: ["library-ts"], -+}).import("library-ts"); -+//# sourceMappingURL=test-host.js.map -\ No newline at end of file -diff --git a/dist/templates/__snapshots__/library-ts/test/test-host.js.map b/dist/templates/__snapshots__/library-ts/test/test-host.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..52bd96cf44453d5f350f1694a8f2e2164fa04aca ---- /dev/null -+++ b/dist/templates/__snapshots__/library-ts/test/test-host.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"test-host.js","sourceRoot":"","sources":["../../../../../templates/__snapshots__/library-ts/test/test-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;IAC5E,SAAS,EAAE,CAAC,YAAY,CAAC;CAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/emitter.d.ts b/dist/templates/emitter-ts/src/emitter.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..069cfe1236b354d96074b447ba7b96c93b2fc4e0 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/emitter.d.ts -@@ -0,0 +1,3 @@ -+import { EmitContext } from "@typespec/compiler"; -+export declare function $onEmit(context: EmitContext): Promise; -+//# sourceMappingURL=emitter.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/emitter.d.ts.map b/dist/templates/emitter-ts/src/emitter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..5fb7bd857b09f8ae09c0da2ccb4797159a69034b ---- /dev/null -+++ b/dist/templates/emitter-ts/src/emitter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AAExE,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,iBAKjD"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/emitter.js b/dist/templates/emitter-ts/src/emitter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..dd1cc0d6462bbdec72f295d94419cb4c1e3548ae ---- /dev/null -+++ b/dist/templates/emitter-ts/src/emitter.js -@@ -0,0 +1,8 @@ -+import { emitFile, resolvePath } from "@typespec/compiler"; -+export async function $onEmit(context) { -+ await emitFile(context.program, { -+ path: resolvePath(context.emitterOutputDir, "output.txt"), -+ content: "Hello world\n", -+ }); -+} -+//# sourceMappingURL=emitter.js.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/emitter.js.map b/dist/templates/emitter-ts/src/emitter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..dbf9302397d05c9a98dc86cdbcffdb325addb873 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/emitter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;QACzD,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/index.d.ts b/dist/templates/emitter-ts/src/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..b8309469811aa5cba89329abb34f44ce91ba27f1 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/index.d.ts -@@ -0,0 +1,3 @@ -+export { $onEmit } from "./emitter.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/index.d.ts.map b/dist/templates/emitter-ts/src/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..a05579f647009942052275e4442c775cde5214e2 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/index.js b/dist/templates/emitter-ts/src/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..b20a0a9eef5387dce918b892e01b3aed1b2c587b ---- /dev/null -+++ b/dist/templates/emitter-ts/src/index.js -@@ -0,0 +1,3 @@ -+export { $onEmit } from "./emitter.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/index.js.map b/dist/templates/emitter-ts/src/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..79ed58d17044e0a8c885041feabc0bc8f2d061c4 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/lib.d.ts b/dist/templates/emitter-ts/src/lib.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..ae28e942f906110c7b4e9d03b0c2c16fb51d74b4 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/lib.d.ts -@@ -0,0 +1,3 @@ -+export declare const $lib: any; -+export declare const reportDiagnostic: any, createDiagnostic: any; -+//# sourceMappingURL=lib.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/lib.d.ts.map b/dist/templates/emitter-ts/src/lib.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..1ce44e8589662fd5957678769501cfc94e8936f2 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/lib.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,KAGf,CAAC;AAEH,eAAO,MAAQ,gBAAgB,OAAE,gBAAgB,KAAS,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/lib.js b/dist/templates/emitter-ts/src/lib.js -new file mode 100644 -index 0000000000000000000000000000000000000000..6744e2746fd06142601713ff864b21b0360f28b8 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/lib.js -@@ -0,0 +1,7 @@ -+import { createTypeSpecLibrary } from "@typespec/compiler"; -+export const $lib = createTypeSpecLibrary({ -+ name: "{{name}}", -+ diagnostics: {}, -+}); -+export const { reportDiagnostic, createDiagnostic } = $lib; -+//# sourceMappingURL=lib.js.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/src/lib.js.map b/dist/templates/emitter-ts/src/lib.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..c7ca2f17e7ce6851b99d05f41891c3cfac8b40c6 ---- /dev/null -+++ b/dist/templates/emitter-ts/src/lib.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../templates/emitter-ts/src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/test/hello.test.d.ts b/dist/templates/emitter-ts/test/hello.test.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..24d6c5bc2bae002f6267140e532614dc8e5ae61b ---- /dev/null -+++ b/dist/templates/emitter-ts/test/hello.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=hello.test.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/test/hello.test.d.ts.map b/dist/templates/emitter-ts/test/hello.test.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8b601b0fec5089a72f3272bd0fde631025c59a78 ---- /dev/null -+++ b/dist/templates/emitter-ts/test/hello.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"hello.test.d.ts","sourceRoot":"","sources":["../../../../templates/emitter-ts/test/hello.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/test/hello.test.js b/dist/templates/emitter-ts/test/hello.test.js -new file mode 100644 -index 0000000000000000000000000000000000000000..a8f4996d749e36e3a6f3b6e4a2210baafddf0980 ---- /dev/null -+++ b/dist/templates/emitter-ts/test/hello.test.js -@@ -0,0 +1,10 @@ -+import { strictEqual } from "node:assert"; -+import { describe, it } from "node:test"; -+import { emit } from "./test-host.js"; -+describe("hello", () => { -+ it("emit output.txt with content hello world", async () => { -+ const results = await emit(`op test(): void;`); -+ strictEqual(results["output.txt"], "Hello world\n"); -+ }); -+}); -+//# sourceMappingURL=hello.test.js.map -\ No newline at end of file -diff --git a/dist/templates/emitter-ts/test/hello.test.js.map b/dist/templates/emitter-ts/test/hello.test.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..f99314224b260d4e30f0de513b31c7093b004e7e ---- /dev/null -+++ b/dist/templates/emitter-ts/test/hello.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"hello.test.js","sourceRoot":"","sources":["../../../../templates/emitter-ts/test/hello.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/decorators.d.ts b/dist/templates/library-ts/src/decorators.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..ef1bdcd62a7625d3e09b06a8303c6c823bd798f1 ---- /dev/null -+++ b/dist/templates/library-ts/src/decorators.d.ts -@@ -0,0 +1,19 @@ -+import { DecoratorContext, Operation, Program } from "@typespec/compiler"; -+export declare const namespace = "{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}"; -+/** -+ * __Example implementation of the `@alternateName` decorator.__ -+ * -+ * @param context Decorator context. -+ * @param target Decorator target. Must be an operation. -+ * @param name Alternate name. -+ */ -+export declare function $alternateName(context: DecoratorContext, target: Operation, name: string): void; -+/** -+ * __Example accessor for the `@alternateName` decorator.__ -+ * -+ * @param program TypeSpec program. -+ * @param target Decorator target. Must be an operation. -+ * @returns Altenate name if provided on the given operation or undefined -+ */ -+export declare function getAlternateName(program: Program, target: Operation): string | undefined; -+//# sourceMappingURL=decorators.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/decorators.d.ts.map b/dist/templates/library-ts/src/decorators.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..8a68aa99cb6049d21ca28f3a6da42d83cf4d0f3d ---- /dev/null -+++ b/dist/templates/library-ts/src/decorators.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../templates/library-ts/src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG1E,eAAO,MAAM,SAAS,yDAAyD,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,QASxF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAExF"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/decorators.js b/dist/templates/library-ts/src/decorators.js -new file mode 100644 -index 0000000000000000000000000000000000000000..d4af8a1078f7158d71f57062eb52f3ca0af39571 ---- /dev/null -+++ b/dist/templates/library-ts/src/decorators.js -@@ -0,0 +1,30 @@ -+import { StateKeys, reportDiagnostic } from "./lib.js"; -+export const namespace = "{{#casing.pascalCase}}{{name}}{{/casing.pascalCase}}"; -+/** -+ * __Example implementation of the `@alternateName` decorator.__ -+ * -+ * @param context Decorator context. -+ * @param target Decorator target. Must be an operation. -+ * @param name Alternate name. -+ */ -+export function $alternateName(context, target, name) { -+ if (name === "banned") { -+ reportDiagnostic(context.program, { -+ code: "banned-alternate-name", -+ target: context.getArgumentTarget(0), -+ format: { name }, -+ }); -+ } -+ context.program.stateMap(StateKeys.alternateName).set(target, name); -+} -+/** -+ * __Example accessor for the `@alternateName` decorator.__ -+ * -+ * @param program TypeSpec program. -+ * @param target Decorator target. Must be an operation. -+ * @returns Altenate name if provided on the given operation or undefined -+ */ -+export function getAlternateName(program, target) { -+ return program.stateMap(StateKeys.alternateName).get(target); -+} -+//# sourceMappingURL=decorators.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/decorators.js.map b/dist/templates/library-ts/src/decorators.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ea68c65a07e45bd2d941c2d76e0bd52e62fd6bb0 ---- /dev/null -+++ b/dist/templates/library-ts/src/decorators.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../templates/library-ts/src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,sDAAsD,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAyB,EAAE,MAAiB,EAAE,IAAY;IACvF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;YACrC,MAAM,EAAE,EAAE,IAAI,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAiB;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/index.d.ts b/dist/templates/library-ts/src/index.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..25437a452553ef7958d83f101b35c78adb363e56 ---- /dev/null -+++ b/dist/templates/library-ts/src/index.d.ts -@@ -0,0 +1,3 @@ -+export { getAlternateName } from "./decorators.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/index.d.ts.map b/dist/templates/library-ts/src/index.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d5f61b2a0bd8156d9e9415d0e0a770c273458945 ---- /dev/null -+++ b/dist/templates/library-ts/src/index.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../templates/library-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/index.js b/dist/templates/library-ts/src/index.js -new file mode 100644 -index 0000000000000000000000000000000000000000..72863b32236f530660b1553c22c46db04909aee1 ---- /dev/null -+++ b/dist/templates/library-ts/src/index.js -@@ -0,0 +1,3 @@ -+export { getAlternateName } from "./decorators.js"; -+export { $lib } from "./lib.js"; -+//# sourceMappingURL=index.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/index.js.map b/dist/templates/library-ts/src/index.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..922efc850f4dde26dc4e86078fa28ed4084b5816 ---- /dev/null -+++ b/dist/templates/library-ts/src/index.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../templates/library-ts/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/lib.d.ts b/dist/templates/library-ts/src/lib.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..2692b21de23caf2036c55259cad684679d4a71cf ---- /dev/null -+++ b/dist/templates/library-ts/src/lib.d.ts -@@ -0,0 +1,3 @@ -+export declare const $lib: any; -+export declare const reportDiagnostic: any, createDiagnostic: any, StateKeys: any; -+//# sourceMappingURL=lib.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/lib.d.ts.map b/dist/templates/library-ts/src/lib.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..658a42dfe16a2e54fcf1d968273a214fcad6e04a ---- /dev/null -+++ b/dist/templates/library-ts/src/lib.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../../templates/library-ts/src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,KAef,CAAC;AAEH,eAAO,MAAQ,gBAAgB,OAAE,gBAAgB,OAAa,SAAS,KAAS,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/lib.js b/dist/templates/library-ts/src/lib.js -new file mode 100644 -index 0000000000000000000000000000000000000000..dc8a500c07540e9a42ea4eb54912c2faaa02d0d5 ---- /dev/null -+++ b/dist/templates/library-ts/src/lib.js -@@ -0,0 +1,19 @@ -+import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler"; -+export const $lib = createTypeSpecLibrary({ -+ name: "{{name}}", -+ // Define diagnostics for the library. This will provide a typed API to report diagnostic as well as a auto doc generation. -+ diagnostics: { -+ "banned-alternate-name": { -+ severity: "error", -+ messages: { -+ default: paramMessage `Banned alternate name "${"name"}".`, -+ }, -+ }, -+ }, -+ // Defined state keys for storing metadata in decorator. -+ state: { -+ alternateName: { description: "alternateName" }, -+ }, -+}); -+export const { reportDiagnostic, createDiagnostic, stateKeys: StateKeys } = $lib; -+//# sourceMappingURL=lib.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/lib.js.map b/dist/templates/library-ts/src/lib.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..baa79197afadddb830daa940ad58ba4a7119564b ---- /dev/null -+++ b/dist/templates/library-ts/src/lib.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../templates/library-ts/src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,UAAU;IAChB,2HAA2H;IAC3H,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,0BAA0B,MAAM,IAAI;aAC1D;SACF;KACF;IACD,wDAAwD;IACxD,KAAK,EAAE;QACL,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;KAChD;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/linter.d.ts b/dist/templates/library-ts/src/linter.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..0e2f006b7e1c6ab49d9f098c8389a772630fe7ec ---- /dev/null -+++ b/dist/templates/library-ts/src/linter.d.ts -@@ -0,0 +1,2 @@ -+export declare const $linter: any; -+//# sourceMappingURL=linter.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/linter.d.ts.map b/dist/templates/library-ts/src/linter.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..d3a2958431175026f746342409a6555d04b06e5e ---- /dev/null -+++ b/dist/templates/library-ts/src/linter.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../../templates/library-ts/src/linter.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,KAUlB,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/linter.js b/dist/templates/library-ts/src/linter.js -new file mode 100644 -index 0000000000000000000000000000000000000000..c5333e5eba01ad498da42a15e061e8c2995224a5 ---- /dev/null -+++ b/dist/templates/library-ts/src/linter.js -@@ -0,0 +1,14 @@ -+import { defineLinter } from "@typespec/compiler"; -+import { noInterfaceRule } from "./rules/no-interfaces.rule.js"; -+export const $linter = defineLinter({ -+ rules: [noInterfaceRule], -+ ruleSets: { -+ recommended: { -+ enable: { [`{{name}}/${noInterfaceRule.name}`]: true }, -+ }, -+ all: { -+ enable: { [`{{name}}/${noInterfaceRule.name}`]: true }, -+ }, -+ }, -+}); -+//# sourceMappingURL=linter.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/linter.js.map b/dist/templates/library-ts/src/linter.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..0e70a62245d05800fe5586c0c6b06c24da2c7133 ---- /dev/null -+++ b/dist/templates/library-ts/src/linter.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../../templates/library-ts/src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,MAAM,EAAE,EAAE,CAAC,YAAY,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SACvD;QACD,GAAG,EAAE;YACH,MAAM,EAAE,EAAE,CAAC,YAAY,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SACvD;KACF;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts b/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..1cf6c036b68e9f82c75aeb9f1bd37b1903525ad2 ---- /dev/null -+++ b/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts -@@ -0,0 +1,2 @@ -+export declare const noInterfaceRule: any; -+//# sourceMappingURL=no-interfaces.rule.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts.map b/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..1e38e6d73dbeba3ec8ee4549049c9f82843cc834 ---- /dev/null -+++ b/dist/templates/library-ts/src/rules/no-interfaces.rule.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.d.ts","sourceRoot":"","sources":["../../../../../templates/library-ts/src/rules/no-interfaces.rule.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,KAgB1B,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/rules/no-interfaces.rule.js b/dist/templates/library-ts/src/rules/no-interfaces.rule.js -new file mode 100644 -index 0000000000000000000000000000000000000000..c9c71389c14791b35edf83e93757f7bacc1a7d7e ---- /dev/null -+++ b/dist/templates/library-ts/src/rules/no-interfaces.rule.js -@@ -0,0 +1,19 @@ -+import { createRule } from "@typespec/compiler"; -+export const noInterfaceRule = createRule({ -+ name: "no-interface", -+ severity: "warning", -+ description: "Make sure interface are not used.", -+ messages: { -+ default: "Interface shouldn't be used with this library. Keep operations at the root.", -+ }, -+ create: (context) => { -+ return { -+ interface: (iface) => { -+ context.reportDiagnostic({ -+ target: iface, -+ }); -+ }, -+ }; -+ }, -+}); -+//# sourceMappingURL=no-interfaces.rule.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/src/rules/no-interfaces.rule.js.map b/dist/templates/library-ts/src/rules/no-interfaces.rule.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..4525639d28122d89cef7e3a0ad499d994fd880c8 ---- /dev/null -+++ b/dist/templates/library-ts/src/rules/no-interfaces.rule.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.js","sourceRoot":"","sources":["../../../../../templates/library-ts/src/rules/no-interfaces.rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,mCAAmC;IAChD,QAAQ,EAAE;QACR,OAAO,EAAE,6EAA6E;KACvF;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,OAAO;YACL,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,OAAO,CAAC,gBAAgB,CAAC;oBACvB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..e402e1f5feaef9dcd98035cb0918bef95c3e4431 ---- /dev/null -+++ b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts -@@ -0,0 +1,2 @@ -+export {}; -+//# sourceMappingURL=no-interfaces.rule.test.d.ts.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts.map b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..ce34442cde7782ed2c709612757bd86c03120ca1 ---- /dev/null -+++ b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.test.d.ts","sourceRoot":"","sources":["../../../../../templates/library-ts/test/rules/no-interfaces.rule.test.ts"],"names":[],"mappings":""} -\ No newline at end of file -diff --git a/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js -new file mode 100644 -index 0000000000000000000000000000000000000000..d5630017996dd7bb482887028a047033580b5cad ---- /dev/null -+++ b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js -@@ -0,0 +1,22 @@ -+import { createLinterRuleTester, createTestRunner, } from "@typespec/compiler/testing"; -+import { beforeEach, describe, it } from "node:test"; -+import { noInterfaceRule } from "../../src/rules/no-interfaces.rule.js"; -+describe("noInterfaceRule", () => { -+ let ruleTester; -+ beforeEach(async () => { -+ const runner = await createTestRunner(); -+ ruleTester = createLinterRuleTester(runner, noInterfaceRule, "{{name}}"); -+ }); -+ describe("models", () => { -+ it("emit diagnostics if using interfaces", async () => { -+ await ruleTester.expect(`interface Test {}`).toEmitDiagnostics({ -+ code: "{{name}}/no-interface", -+ message: "Interface shouldn't be used with this library. Keep operations at the root.", -+ }); -+ }); -+ it("should be valid if operation is at the root", async () => { -+ await ruleTester.expect(`op test(): void;`).toBeValid(); -+ }); -+ }); -+}); -+//# sourceMappingURL=no-interfaces.rule.test.js.map -\ No newline at end of file -diff --git a/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js.map b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9b613c81a7289883075a243ee054cf7c1a75e20a ---- /dev/null -+++ b/dist/templates/library-ts/test/rules/no-interfaces.rule.test.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"no-interfaces.rule.test.js","sourceRoot":"","sources":["../../../../../templates/library-ts/test/rules/no-interfaces.rule.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,UAA4B,CAAC;IAEjC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,iBAAiB,CAAC;gBAC7D,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,6EAA6E;aACvF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/vitest.config.d.ts b/dist/vitest.config.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..95144b6274e7d679223755b5731367f36a88c274 ---- /dev/null -+++ b/dist/vitest.config.d.ts -@@ -0,0 +1,3 @@ -+declare const _default: Record; -+export default _default; -+//# sourceMappingURL=vitest.config.d.ts.map -\ No newline at end of file -diff --git a/dist/vitest.config.d.ts.map b/dist/vitest.config.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..677e453bec138f6aa86e9f7f2de3d28741f2375f ---- /dev/null -+++ b/dist/vitest.config.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAGA,wBAQE"} -\ No newline at end of file -diff --git a/dist/vitest.config.e2e.d.ts b/dist/vitest.config.e2e.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..1c4dc179e2fc684ae3c7fa5154c24d179520a3ec ---- /dev/null -+++ b/dist/vitest.config.e2e.d.ts -@@ -0,0 +1,3 @@ -+declare const _default: Record; -+export default _default; -+//# sourceMappingURL=vitest.config.e2e.d.ts.map -\ No newline at end of file -diff --git a/dist/vitest.config.e2e.d.ts.map b/dist/vitest.config.e2e.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..9c51441f2f753605bdfd607fc4100e0ed34469bf ---- /dev/null -+++ b/dist/vitest.config.e2e.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"vitest.config.e2e.d.ts","sourceRoot":"","sources":["../vitest.config.e2e.ts"],"names":[],"mappings":";AAGA,wBAQE"} -\ No newline at end of file -diff --git a/dist/vitest.config.e2e.js b/dist/vitest.config.e2e.js -new file mode 100644 -index 0000000000000000000000000000000000000000..7ac93b654ffc912b9178000da53d0830a524b38b ---- /dev/null -+++ b/dist/vitest.config.e2e.js -@@ -0,0 +1,9 @@ -+import { defineConfig, mergeConfig } from "vitest/config"; -+import { defaultTypeSpecVitestConfig } from "../../vitest.config.js"; -+export default mergeConfig(defaultTypeSpecVitestConfig, defineConfig({ -+ test: { -+ testTimeout: 90_000, -+ include: ["test/**/*.e2e.ts"], -+ }, -+})); -+//# sourceMappingURL=vitest.config.e2e.js.map -\ No newline at end of file -diff --git a/dist/vitest.config.e2e.js.map b/dist/vitest.config.e2e.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..237f421a4bf3b08b4a7bd6f8e62ec388ec5baa96 ---- /dev/null -+++ b/dist/vitest.config.e2e.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"vitest.config.e2e.js","sourceRoot":"","sources":["../vitest.config.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,eAAe,WAAW,CACxB,2BAA2B,EAC3B,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B;CACF,CAAC,CACH,CAAC"} -\ No newline at end of file -diff --git a/dist/vitest.config.js b/dist/vitest.config.js -new file mode 100644 -index 0000000000000000000000000000000000000000..9ba108dbcfb6074e7ec588e03c41ff6a9b8ada93 ---- /dev/null -+++ b/dist/vitest.config.js -@@ -0,0 +1,9 @@ -+import { defineConfig, mergeConfig } from "vitest/config"; -+import { defaultTypeSpecVitestConfig } from "../../vitest.config.js"; -+export default mergeConfig(defaultTypeSpecVitestConfig, defineConfig({ -+ test: { -+ exclude: [...defaultTypeSpecVitestConfig.test.exclude, "templates/**"], -+ testTimeout: 10_000, -+ }, -+})); -+//# sourceMappingURL=vitest.config.js.map -\ No newline at end of file -diff --git a/dist/vitest.config.js.map b/dist/vitest.config.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e2c1c1a0a3d454070ed408c4da3f1af3919db8cf ---- /dev/null -+++ b/dist/vitest.config.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,eAAe,WAAW,CACxB,2BAA2B,EAC3B,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,GAAG,2BAA2B,CAAC,IAAK,CAAC,OAAQ,EAAE,cAAc,CAAC;QACxE,WAAW,EAAE,MAAM;KACpB;CACF,CAAC,CACH,CAAC"} -\ No newline at end of file -diff --git a/package.json b/package.json -index 301ec6e055175d3c3ce261e139b97938cfc76365..bd2a714ef9f8b264715b6b8387b5626b38d19e87 100644 ---- a/package.json -+++ b/package.json -@@ -91,7 +91,7 @@ - "is-unicode-supported": "^2.1.0", - "mustache": "^4.2.0", - "picocolors": "^1.1.1", -- "prettier": "^3.8.1", -+ "prettier": "^3.9.5", - "semver": "^7.7.4", - "tar": "^7.5.13", - "temporal-polyfill": "^1.0.1", -@@ -110,7 +110,6 @@ - "@vitest/ui": "^4.1.3", - "pathe": "^2.0.3", - "rimraf": "^6.1.3", -- "source-map-support": "^0.5.21", - "typescript": "~6.0.2", - "vitest": "^4.1.3", - "vscode-oniguruma": "^2.0.1", -@@ -120,22 +119,22 @@ - }, - "scripts": { - "clean": "rimraf ./dist ./temp", -- "build:init-templates-index": "tsx ./.scripts/build-init-templates.ts", -+ "build:init-templates-index": "node ./.scripts/build-init-templates.ts", - "build": "pnpm gen-manifest && pnpm build:init-templates-index && pnpm compile && pnpm generate-tmlanguage", - "api-extractor": "api-extractor run --local --verbose", - "compile": "tsc -p tsconfig.build.json", - "watch": "tsc -p tsconfig.build.json --watch", -- "watch-tmlanguage": "node scripts/watch-tmlanguage.js", -- "generate-tmlanguage": "node scripts/generate-tmlanguage.js", -- "gen-extern-signature": "tsx ./.scripts/gen-extern-signature.ts", -- "dogfood": "node scripts/dogfood.js", -+ "watch-tmlanguage": "node scripts/watch-tmlanguage.ts", -+ "generate-tmlanguage": "node scripts/generate-tmlanguage.ts", -+ "gen-extern-signature": "node ./.scripts/gen-extern-signature.ts", -+ "dogfood": "node scripts/dogfood.ts", - "test": "vitest run", - "test:ui": "vitest --ui", - "test:watch": "vitest -w", - "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "test:e2e": "vitest run --config ./vitest.config.e2e.ts", -- "gen-manifest": "node scripts/generate-manifest.js", -- "regen-nonascii": "node scripts/regen-nonascii.js", -+ "gen-manifest": "node scripts/generate-manifest.ts", -+ "regen-nonascii": "node scripts/regen-nonascii.ts", - "fuzz": "node dist/test/manual/fuzz.js run", - "lint": "oxlint . --deny-warnings", - "lint:fix": "oxlint . --fix" -diff --git a/templates/__snapshots__/emitter-ts/.gitignore b/templates/__snapshots__/emitter-ts/.gitignore -deleted file mode 100644 -index 0fe4f7a0b28419cfb4197dbdac57d01b605da504..0000000000000000000000000000000000000000 -diff --git a/templates/__snapshots__/library-ts/.gitignore b/templates/__snapshots__/library-ts/.gitignore -deleted file mode 100644 -index 0fe4f7a0b28419cfb4197dbdac57d01b605da504..0000000000000000000000000000000000000000 -diff --git a/templates/__snapshots__/rest/.gitignore b/templates/__snapshots__/rest/.gitignore -deleted file mode 100644 -index 0fe4f7a0b28419cfb4197dbdac57d01b605da504..0000000000000000000000000000000000000000 diff --git a/api/spec/patches/@typespec__compiler@1.16.0.patch b/api/spec/patches/@typespec__compiler@1.16.0.patch new file mode 100644 index 0000000000..a025e4c454 --- /dev/null +++ b/api/spec/patches/@typespec__compiler@1.16.0.patch @@ -0,0 +1,117 @@ +diff --git a/dist/src/lib/decorators.d.ts b/dist/src/lib/decorators.d.ts +index d47aede90d9a522abdeb5dfd363493a7e8ea22d9..578a05f61a1dcd418ce3d39187309ee40a7f35e1 100644 +--- a/dist/src/lib/decorators.d.ts ++++ b/dist/src/lib/decorators.d.ts +@@ -198,6 +198,8 @@ export declare function getAllTags(program: Program, target: Namespace | Interfa + declare const getFriendlyName: (program: Program, type: Type) => string | undefined; + export declare const $friendlyName: FriendlyNameDecorator; + export { getFriendlyName }; ++export declare function clearFriendlyName(program: Program, target: Type): void; ++export declare const setFriendlyName: (program: Program, type: Type, value: string) => void; + /** + * `@key` - mark a model property as the key to identify instances of that type + * +diff --git a/dist/src/lib/decorators.js b/dist/src/lib/decorators.js +index 807bd3fabd06766ab8b1faff980da2307dff8f55..40c45d5441c31d934bf3f7a6d8c5363bace74c9a 100644 +--- a/dist/src/lib/decorators.js ++++ b/dist/src/lib/decorators.js +@@ -720,7 +720,8 @@ export function getAllTags(program, target) { + return tags.size > 0 ? Array.from(tags).reverse() : undefined; + } + // -- @friendlyName decorator --------------------- +-const [getFriendlyName, setFriendlyName] = useStateMap(createStateSymbol("friendlyNames")); ++const friendlyNamesSymbol = createStateSymbol("friendlyNames"); ++const [getFriendlyName, setFriendlyName] = useStateMap(friendlyNamesSymbol); + export const $friendlyName = (context, target, friendlyName, sourceObject) => { + // workaround for current lack of functionality in compiler + // https://github.com/microsoft/typespec/issues/2717 +@@ -742,7 +743,10 @@ export const $friendlyName = (context, target, friendlyName, sourceObject) => { + } + setFriendlyName(context.program, target, friendlyName); + }; +-export { getFriendlyName }; ++export { getFriendlyName, setFriendlyName }; ++export function clearFriendlyName(program, target) { ++ program.stateMap(friendlyNamesSymbol).delete(target); ++} + /** + * `@key` - mark a model property as the key to identify instances of that type + * +diff --git a/dist/src/lib/examples.js b/dist/src/lib/examples.js +index df3a1aeacd0fa9f50f01f2247b62d601d9163991..7e980b323afb97ad02bf1886c1566a76cd5f0059 100644 +--- a/dist/src/lib/examples.js ++++ b/dist/src/lib/examples.js +@@ -107,6 +107,11 @@ function serializeObjectValueAsJson(program, value, type, handlers, diagnosticTa + obj[name] = serializeValueAsJson(program, propValue.value, definition, + /* encodeAs: */ undefined, handlers, propValue.node); + } ++ else if (type.kind === "Union") { ++ // If the type is still a union (meaning resolveUnions failed to resolve it to a specific variant), ++ // we should still serialize all the properties from the value ++ obj[propValue.name] = serializeValueAsJson(program, propValue.value, program.checker.anyType); ++ } + } + return obj; + } +diff --git a/dist/src/lib/visibility.js b/dist/src/lib/visibility.js +index 3b5a795b2c060ae803462be8d6c1e3ab574f4e08..8bd40cd7c3fdc258ef1a9089c6207417c5060509 100644 +--- a/dist/src/lib/visibility.js ++++ b/dist/src/lib/visibility.js +@@ -9,6 +9,7 @@ import { mutateSubgraph, MutatorFlow, setAlwaysMutate } from "../experimental/mu + import { $ } from "../typekit/index.js"; + import { useStateMap } from "../utils/index.js"; + import { mutate } from "../utils/misc.js"; ++import { $friendlyName, setFriendlyName } from "./decorators.js"; + import { isKey } from "./key.js"; + import { createStateSymbol, filterModelPropertiesInPlace, replaceTemplatedStringFromProperties, } from "./utils.js"; + export const $withDefaultKeyVisibility = (context, entity, visibility) => { +@@ -347,7 +348,12 @@ function createVisibilityFilterMutator(filter, options = {}) { + modified ||= variant.type !== member.type; + } + } +- rename(clone, options.nameTemplate); ++ if (options.nameTemplate) { ++ const beforeLen = clone.decorators.length; ++ clone.decorators = clone.decorators.filter((d) => d.decorator !== $friendlyName); ++ modified ||= clone.decorators.length !== beforeLen; ++ } ++ rename(program, clone, options.nameTemplate); + return modified ? clone : union; + }, + }, +@@ -388,7 +394,12 @@ function createVisibilityFilterMutator(filter, options = {}) { + (options.decoratorName && isTypeSpecDecorator(d, options.decoratorName)))); + modified ||= clone.decorators.length !== model.decorators.length; + } +- rename(clone, options.nameTemplate); ++ if (options.nameTemplate) { ++ const beforeLen = clone.decorators.length; ++ clone.decorators = clone.decorators.filter((d) => d.decorator !== $friendlyName); ++ modified ||= clone.decorators.length !== beforeLen; ++ } ++ rename(program, clone, options.nameTemplate); + return modified ? clone : model; + }, + }, +@@ -427,13 +438,19 @@ function createVisibilityFilterMutator(filter, options = {}) { + return self; + } + /** +- * Internal helper to rename a type in place. ++ * Internal helper to rename a type in place and register the rendered template ++ * as the clone's friendly name. The clone inherits the original's @friendlyName ++ * state (finishType re-applies it from the copied decorators), which would make ++ * the clone collide with the original's schema name; overriding it with the ++ * rendered nameTemplate keeps emitted schema names plain (e.g. "UpdateAddress") ++ * instead of falling back to namespace-qualified type names. + */ +-function rename(type, nameTemplate) { ++function rename(program, type, nameTemplate) { + if (!nameTemplate || !type.name) + return; + const renamed = replaceTemplatedStringFromProperties(nameTemplate, type); + type.name = renamed; ++ setFriendlyName(program, type, renamed); + } + function isVisibilitySubject(t) { + return (t.kind === "Model" || diff --git a/api/spec/patches/@typespec__http.patch b/api/spec/patches/@typespec__http.patch deleted file mode 100644 index 5fe5575e6e..0000000000 --- a/api/spec/patches/@typespec__http.patch +++ /dev/null @@ -1,319 +0,0 @@ -diff --git a/dist/generated-defs/TypeSpec.Http.d.ts b/dist/generated-defs/TypeSpec.Http.d.ts -index 0c028724b918f474ad90af4e0acf7aa9256040f9..c3820e4bb8549bae6639d6e9d0ea47d56290d36a 100644 ---- a/dist/generated-defs/TypeSpec.Http.d.ts -+++ b/dist/generated-defs/TypeSpec.Http.d.ts -@@ -9,6 +9,7 @@ export interface CookieOptions { - export interface QueryOptions { - readonly name?: string; - readonly explode?: boolean; -+ readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - } - export interface PathOptions { - readonly name?: string; -diff --git a/dist/generated-defs/TypeSpec.Http.d.ts.map b/dist/generated-defs/TypeSpec.Http.d.ts.map -index b95d5159671d13a210f9a2338caf71c299160437..70cb6ee199c2c0a09bdc160b22939e826118f545 100644 ---- a/dist/generated-defs/TypeSpec.Http.d.ts.map -+++ b/dist/generated-defs/TypeSpec.Http.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"TypeSpec.Http.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.Http.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"TypeSpec.Http.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.Http.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/auth.js b/dist/src/auth.js -index 31950c2f672c4d92ae5e9c290df7240ef417a67b..55320f3fb716960daf1c767baf356ba240c49cd3 100644 ---- a/dist/src/auth.js -+++ b/dist/src/auth.js -@@ -94,7 +94,12 @@ function makeHttpAuthRef(local, reference) { - return { kind: "noAuth", auth: reference }; - } - else { -- return { kind: "any", auth: reference }; -+ // Requirement scopes are read from the per-option (`local`) scheme so that -+ // operation-level `@useAuth` can request a different scope subset than the -+ // service default. Only openIdConnect currently surfaces scopes; the ref is -+ // scheme-agnostic so other scheme types can opt in without a new ref kind. -+ const scopes = local.type === "openIdConnect" ? (local.scopes ?? []) : []; -+ return { kind: "any", auth: reference, scopes }; - } - } - function mergeOAuthScopes(scheme1, scheme2) { -@@ -125,6 +130,13 @@ function authsAreEqual(scheme1, scheme2) { - if (withoutModel1.type === "oauth2" && withoutModel2.type === "oauth2") { - return deepEquals(ignoreScopes(withoutModel1), ignoreScopes(withoutModel2)); - } -+ // Scopes live on the security requirement, not on the scheme identity, so two -+ // openIdConnect schemes that differ only by scopes are the same scheme and -+ // must dedupe to a single id (per-requirement scopes are still carried on the -+ // auth ref). No scope merge is needed because the scheme object lists no scopes. -+ if (withoutModel1.type === "openIdConnect" && withoutModel2.type === "openIdConnect") { -+ return deepEquals({ ...withoutModel1, scopes: [] }, { ...withoutModel2, scopes: [] }); -+ } - return deepEquals(withoutModel1, withoutModel2); - } - //# sourceMappingURL=auth.js.map -\ No newline at end of file -diff --git a/dist/src/auth.js.map b/dist/src/auth.js.map -index 231dd4fb06d8bba1d2e742451c05a51803bd4f56..1e1fc6fbe9c1b319deeecfd54e9d47b12c1fddc3 100644 ---- a/dist/src/auth.js.map -+++ b/dist/src/auth.js.map -@@ -1 +1 @@ --{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAapD;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAgB,EAChB,SAAoB;IAEpB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAEpC,OAAO,SAAS,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAClC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,IAAI,OAAO,GAA6B,EAAE,CAAC;IAC3C,IAAI,WAAW,GAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC3D,MAAM,cAAc,GAA4C,IAAI,GAAG,EAAE,CAAC;IAE1E,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,iBAAiB,CAAC;QAC5B,WAAW,GAAG,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAClF,OAAO,GAAG,iBAAiB,CAAC;YAC5B,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,UAAU,CACjB,cAA8B,EAC9B,cAAwC;IAKxC,MAAM,iBAAiB,GAA6B,cAAc,CAAC;IACnE,MAAM,WAAW,GAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAkC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC9D,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,gBAAgB,GAAG,YAAY,CAAC;YACpC,IAAI,aAAa,EAAE,CAAC;gBAClB,+CAA+C;gBAC/C,gCAAgC;gBAChC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;oBAChD,OAAO,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC3C,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,EAAE,GAAG,GAAG,CAAC;oBAClD,CAAC;gBACH,CAAC;gBACD,0DAA0D;qBACrD,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3E,MAAM,CAAC,GAAG,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;oBACxD,gBAAgB,GAAG,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACpE,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC;YAC1D,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,SAAmB;IAC3D,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACzE,CAAC;SAAM,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA0B,EAC1B,OAA0B;IAE1B,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO;QACL,GAAG,OAAO;QACV,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,MAAwC;IAExC,MAAM,KAAK,GAAU,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO;QACL,GAAG,MAAM;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAiB,EAAE,OAAiB;IACzD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACrD,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,iFAAiF;IACjF,IAAI,aAAa,CAAC,IAAI,KAAK,eAAe,IAAI,aAAa,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrF,OAAO,UAAU,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC"} -\ No newline at end of file -diff --git a/dist/src/decorators.d.ts.map b/dist/src/decorators.d.ts.map -index c8dbd967cc22c15d94543ace2add04550a16e80b..a53776e078715067e28f265e637ff55655b1f2db 100644 ---- a/dist/src/decorators.d.ts.map -+++ b/dist/src/decorators.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/decorators.js b/dist/src/decorators.js -index eee47cbe62c387d324585b38d82838d0cc06c556..eb5b9ffc1bfbd3828610a3a3b2d79f6f807d805c 100644 ---- a/dist/src/decorators.js -+++ b/dist/src/decorators.js -@@ -73,6 +73,7 @@ export const $query = (context, entity, queryNameOrOptions) => { - const userOptions = typeof queryNameOrOptions === "object" ? queryNameOrOptions : {}; - setQueryOptions(context.program, entity, { - explode: userOptions.explode, -+ style: userOptions.style, - name: paramName, - }); - }; -@@ -83,6 +84,7 @@ export function resolveQueryOptionsWithDefaults(options) { - return { - explode: options.explode ?? false, - name: options.name, -+ style: options.style ?? "form", - }; - } - export function getQueryParamOptions(program, entity) { -@@ -444,7 +446,15 @@ function extractHttpAuthentication(program, modelType, diagnosticTarget) { - const description = getDoc(program, modelType); - const auth = result.type === "oauth2" - ? extractOAuth2Auth(modelType, result) -- : { ...result, model: modelType }; -+ : { -+ ...result, -+ // OpenID Connect requirement scopes come from the `scopes` tuple on the -+ // model. Normalize to an array so downstream resolution can rely on it. -+ ...(result.type === "openIdConnect" && { -+ scopes: Array.isArray(result.scopes) ? result.scopes : [], -+ }), -+ model: modelType, -+ }; - return [ - { - ...auth, -diff --git a/dist/src/decorators.js.map b/dist/src/decorators.js.map -index eccf8392079c920b17ba9742b470a02a967fe3a0..ea9a36b846a870d79aee2f3652bd028bff7623cc 100644 ---- a/dist/src/decorators.js.map -+++ b/dist/src/decorators.js.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,yBAAyB,EACzB,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAuBvD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAa3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAoB,CACtC,OAAyB,EACzB,MAAqB,EACrB,mBAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE;KACpE,CAAC;IACF,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,mBAAmB,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;YACtC,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAChC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,MAAY;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,MAAY;IAC/D,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,MAAY;IACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAoB,CACtC,OAAyB,EACzB,MAAqB,EACrB,mBAA4C,EAC5C,EAAE;IACF,MAAM,SAAS,GACb,OAAO,mBAAmB,KAAK,QAAQ;QACrC,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI;YAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;KAChB,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgB,EAChB,MAAY;IAEZ,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAY;IAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,WAAW,CAGpD,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,MAAM,CAAC,MAAM,MAAM,GAAmB,CACpC,OAAyB,EACzB,MAAqB,EACrB,kBAA0C,EAC1C,EAAE;IACF,MAAM,SAAS,GACb,OAAO,kBAAkB,KAAK,QAAQ;QACpC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,WAAW,GACf,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;QACvC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gBAAgB;AAChB,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,gBAAgB;AAChB,MAAM,UAAU,+BAA+B,CAC7C,OAAwC;IAExC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,MAAY;IAEZ,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,MAAa,CAAC,CAAC;IAC5D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,+BAA+B,CAAC,WAAW,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,MAAY;IAC9D,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAY;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,WAAW,CAClD,aAAa,CAAC,IAAI,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAkB,CAClC,OAAyB,EACzB,MAAqB,EACrB,kBAAyC,EACzC,EAAE;IACF,MAAM,SAAS,GACb,OAAO,kBAAkB,KAAK,QAAQ;QACpC,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAgB,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;QACtC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,gBAAgB;AAChB,MAAM,UAAU,8BAA8B,CAC5C,OAAuC;IAEvC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;QAC7C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,MAAY;IAEZ,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,MAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,8BAA8B,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAY;IAC7D,OAAO,cAAc,CAAC,OAAO,EAAE,MAAa,CAAC,EAAE,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,MAAY;IACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAkB,CAAC,OAAyB,EAAE,MAAqB,EAAE,EAAE;IACvF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAsB,CAAC,OAAyB,EAAE,MAAqB,EAAE,EAAE;IAC/F,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAwB,CAC9C,OAAyB,EACzB,MAAqB,EACrB,EAAE;IACF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,OAAgB,EAAE,MAAY;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,MAAqB;IAChE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAqB;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAA2B,CACpD,OAAyB,EACzB,MAAqB,EACrB,EAAE;IACF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,MAAY;IACpE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAwB,CAC9C,OAAyB,EACzB,MAAqB,EACrB,EAAE;IACF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAA6B,EAAE,KAAe;IAC5F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAY;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAgB,EAChB,IAAmB;IAEnB,OAAO,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAqB;IACpE,OAAO,iBAAiB,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,wBAAwB,CAAC,UAAuD;IAC9F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,gBAAgB,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAChG,QAAQ,gBAAgB,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,OAAO,4BAA4B,CAAC;QACtC,KAAK,GAAG;YACN,OAAO,4EAA4E,CAAC;QACtF,KAAK,GAAG;YACN,OAAO,qFAAqF,CAAC;QAC/F,KAAK,GAAG;YACN,OAAO,+EAA+E,CAAC;QACzF,KAAK,GAAG;YACN,OAAO,uGAAuG,CAAC;QACjH,KAAK,GAAG;YACN,OAAO,mFAAmF,CAAC;QAC7F,KAAK,GAAG;YACN,OAAO,oEAAoE,CAAC;QAC9E,KAAK,GAAG;YACN,OAAO,yBAAyB,CAAC;QACnC,KAAK,GAAG;YACN,OAAO,sBAAsB,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,gDAAgD,CAAC;QAC1D,KAAK,GAAG;YACN,OAAO,6DAA6D,CAAC;QACvE,KAAK,GAAG;YACN,OAAO,sBAAsB,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,GAAW;IAClD,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAyB,EAAE,MAAiB,EAAE,IAAc;IACpF,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAyB,EAAE,IAAe;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CACJ,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,mBAAmB;QAC/C,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,CAC/B,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,OAAO,CAAC,eAAe;SAChC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAY;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc;IACzC,OAAO,CAAC,OAAyB,EAAE,MAAiB,EAAE,EAAE;QACtD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAiB,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,IAAI,GAAiB,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,KAAK,GAAkB,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,OAAO,GAAoB,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,KAAK,GAAkB,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE5C,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,WAAW,CACrD,aAAa,CAAC,YAAY,CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,8BAA8B,CAAC,OAAyB,EAAE,MAAiB;IAClF,MAAM,aAAa,GAAG,OAAO,CAAC,eAAsB,CAAC;IAErD,wFAAwF;IACxF,yDAAyD;IACzD,IACE,MAAM,CAAC,SAAS,KAAK,SAAS;QAC9B,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,EAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qEAAqE;IACrE,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,mEAAmE;IACnE,IAAI,aAAa,EAAE,IAAI,KAAK,UAAU,CAAC,mBAAmB,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACnF,IAAI,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAmB,CACpC,OAAyB,EACzB,MAAiB,EACjB,OAAsB,EACtB,EAAE;IACF,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACzC,0EAA0E;YAC1E,yDAAyD;YACzD,IAAI,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpD,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;oBAChC,IAAI,EAAE,iCAAiC;oBACvC,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,SAAoB;IACpE,OAAO,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAQpE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAoB,CACtC,OAAyB,EACzB,MAAiB,EACjB,GAAW,EACX,WAAoB,EACpB,UAAiB,EACjB,EAAE;IACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAE,UAAoB,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IACtE,KAAK,MAAM,aAAa,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBAChC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;aACtC,CAAC,CAAC;YACH,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAiB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,IAAe;IAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,OAAyB,EACzB,MAAyC,EACzC,UAAgB;IAEhB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,MAAyC,EACzC,IAAoB;IAEpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,IAAU;IAEV,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9E,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9D,KAAK,OAAO;YACV,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACtF,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjD,KAAK,OAAO;YACV,OAAO,gCAAgC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D;YACE,OAAO;gBACL,SAAS;gBACT;oBACE,gBAAgB,CAAC;wBACf,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;wBAC3B,MAAM,EAAE,IAAI;qBACb,CAAC;iBACH;aACF,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CACvC,OAAgB,EAChB,KAAY,EACZ,gBAAkC;IAElC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAC5D,CAAC;gBACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,+BAA+B,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAClE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM;YACR;gBACE,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;oBACf,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC5B,MAAM,EAAE,KAAK;iBACd,CAAC,CACH,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,+BAA+B,CACtC,OAAgB,EAChB,KAAY,EACZ,gBAAkC;IAElC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACV,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,yBAAyB,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAC5D,CAAC;gBACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM;YACR;gBACE,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;oBACf,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oBAC5B,MAAM,EAAE,KAAK;iBACd,CAAC,CACH,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAgB,EAChB,SAAgB,EAChB,gBAAkC;IAElC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAAW,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,GACR,MAAM,CAAC,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,CAAC,CAAC;YACE,GAAG,MAAM;YACT,wEAAwE;YACxE,wEAAwE;YACxE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI;gBACrC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAE,MAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC;YACF,KAAK,EAAE,SAAS;SACjB,CAAC;IACR,OAAO;QACL;YACE,GAAG,IAAI;YACP,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YACjC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC;QACD,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAgB,EAAE,IAAS;IACpD,0EAA0E;IAC1E,oEAAoE;IACpE,0DAA0D;IAC1D,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAC9E,CAAC,CAAC,IAAI,CAAC,KAAK;QACZ,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAkB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACxE,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,MAAyC;IAEzC,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC"} -\ No newline at end of file -diff --git a/dist/src/parameters.js b/dist/src/parameters.js -index d7e9c198f6824766b847b87b1ae04e026b63b6d6..bdceb1ce15939ebf662fb4863b11cc1d601ef0dc 100644 ---- a/dist/src/parameters.js -+++ b/dist/src/parameters.js -@@ -56,6 +56,7 @@ function getOperationParametersForVerb(program, operation, verb, partialUriTempl - type: "query", - name: uriParam.name, - explode, -+ style: "form", - }; - } - else if (uriParam.operator === "+") { -diff --git a/dist/src/parameters.js.map b/dist/src/parameters.js.map -index 6cbdc2cfc2382bce5a00bc1e27b58370283fa84e..223f4068c84f90e239e0e52b9c873d75b8c7d136 100644 ---- a/dist/src/parameters.js.map -+++ b/dist/src/parameters.js.map -@@ -1 +1 @@ --{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAK1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAU1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,SAAoB,EACpB,kBAA0B,EAC1B,YAA4B,EAC5B,UAAqC,EAAE;IAEvC,MAAM,IAAI,GACR,CAAC,OAAO,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QACpC,YAAY,EAAE,IAAI,CAAC;IAErB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACrF,CAAC;IAED,wEAAwE;IACxE,kEAAkE;IAClE,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,IAAI,GAAG,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACjB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;CACH,CAAC;AAEX,SAAS,6BAA6B,CACpC,OAAgB,EAChB,SAAoB,EACpB,IAAc,EACd,kBAA0B;IAE1B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAE/D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CACvD,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,sBAAsB,CAAC,OAAO,EAAE;QAC5F,iBAAiB,EAAE,CACjB,KAAoB,EACsC,EAAE;YAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC;YACxD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,YAAY,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnE,MAAM,QAAQ,GAAG,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAEzF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAClC,OAAO;wBACL,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,KAAK;wBACpB,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC;qBAC5B,CAAC;gBACJ,CAAC;gBAED,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC;YACtD,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC3D,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;iBACR,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACrC,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,QAAQ;iBAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,aAAa,EAAE,KAAK;oBACpB,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ;iBAC7E,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,aAAa;gBAChB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ;iBACrB,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAW,EAAE,gCAAgC;oBACxD,GAAG,IAAI,CAAC,OAAO;oBACf,KAAK,EAAE,IAAI,CAAC,QAAQ;iBACrB,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC;IAE1B,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,UAAU,EAAE,QAAQ;QACpB,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,IAAI,QAAQ;YACV,OAAO,IAAI,EAAE,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,aAAa;YACf,OAAO,IAAI,EAAE,QAAQ,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -+{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAK1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAU1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,SAAoB,EACpB,kBAA0B,EAC1B,YAA4B,EAC5B,UAAqC,EAAE;IAEvC,MAAM,IAAI,GACR,CAAC,OAAO,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACnE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QACpC,YAAY,EAAE,IAAI,CAAC;IAErB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACrF,CAAC;IAED,wEAAwE;IACxE,kEAAkE;IAClE,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,IAAI,GAAG,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACjB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;CACH,CAAC;AAEX,SAAS,6BAA6B,CACpC,OAAgB,EAChB,SAAoB,EACpB,IAAc,EACd,kBAA0B;IAE1B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAE/D,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CACvD,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,sBAAsB,CAAC,OAAO,EAAE;QAC5F,iBAAiB,EAAE,CACjB,KAAoB,EACsC,EAAE;YAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC;YACxD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,YAAY,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;YACnE,MAAM,QAAQ,GAAG,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAEzF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAClC,OAAO;wBACL,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,KAAK;wBACpB,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC;qBAC5B,CAAC;gBACJ,CAAC;gBAED,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC;YACtD,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC3D,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,KAAK,EAAE,MAAM;iBACd,CAAC;YACJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACrC,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,QAAQ;iBAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO;oBACP,aAAa,EAAE,KAAK;oBACpB,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ;iBAC7E,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,aAAa;gBAChB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ;iBACrB,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAW,EAAE,gCAAgC;oBACxD,GAAG,IAAI,CAAC,OAAO;oBACf,KAAK,EAAE,IAAI,CAAC,QAAQ;iBACrB,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC;IAE1B,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,UAAU,EAAE,QAAQ;QACpB,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,IAAI,QAAQ;YACV,OAAO,IAAI,EAAE,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,aAAa;YACf,OAAO,IAAI,EAAE,QAAQ,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/src/private.decorators.d.ts.map b/dist/src/private.decorators.d.ts.map -index eb6e4b4e6c86d206913b52ba8db13c909266f624..34e4e0b1ad208820264947358cf3bd1d52473649 100644 ---- a/dist/src/private.decorators.d.ts.map -+++ b/dist/src/private.decorators.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"private.decorators.d.ts","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGhB,KAAK,EACL,aAAa,EAGb,OAAO,EACP,IAAI,EAKL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AAYpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,kBA0BxB,CAAC;AAwBF,eAAO,MAAM,SAAS,EAAE,iBAqFvB,CAAC;AA2DF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAEtD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAgB/D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC5C,aAAa,GAAG,SAAS,CAuC3B;AAeD,eAAO,MAAM,SAAS,EAAE,iBAOvB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAEhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,OAAO,QAIf;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAST"} -\ No newline at end of file -+{"version":3,"file":"private.decorators.d.ts","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGhB,KAAK,EACL,aAAa,EAGb,OAAO,EACP,IAAI,EAKL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AAYpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,kBA0BxB,CAAC;AAwBF,eAAO,MAAM,SAAS,EAAE,iBAiFvB,CAAC;AA2DF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAEtD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAgB/D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC5C,aAAa,GAAG,SAAS,CAuC3B;AAeD,eAAO,MAAM,SAAS,EAAE,iBAOvB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAEhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,OAAO,QAIf;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAST"} -\ No newline at end of file -diff --git a/dist/src/private.decorators.js b/dist/src/private.decorators.js -index bea31e194fee6f6be41f4db72bc17e3eb0a9d0ea..8a40d5acc3ad5fe5adad55b7ff8f713e3a6ef26a 100644 ---- a/dist/src/private.decorators.js -+++ b/dist/src/private.decorators.js -@@ -51,10 +51,10 @@ export const $httpFile = (context, target) => { - const templateMapper = templateMetadata?.templateMapper; - // Validate the `ContentType` type is `TypeSpec.string`, a string literal, or a union of string literals - const contentType = target.properties.get("contentType").type; -- if (!((contentType.kind === "String" || // is string literal -+ if (!(contentType.kind === "String" || // is string literal - context.program.checker.isStdType(contentType, "string") || // is TypeSpec.string - (contentType.kind === "Union" && -- [...contentType.variants.values()].every((v) => v.type.kind === "String"))) // is union of string literals -+ [...contentType.variants.values()].every((v) => v.type.kind === "String")) // is union of string literals - )) { - const contentTypeDiagnosticTarget = getTemplateArgumentTarget(templateMapper?.source, "ContentType", 0) ?? - templateMetadata?.contentTypeArg; -diff --git a/dist/src/private.decorators.js.map b/dist/src/private.decorators.js.map -index dab075fe93fe1e3f15734f437d2ec2ca93b68832..5ce40fc87ce3c82040885449c0d9ceba7f97f496 100644 ---- a/dist/src/private.decorators.js.map -+++ b/dist/src/private.decorators.js.map -@@ -1 +1 @@ --{"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/rules/op-reference-container-route.d.ts.map b/dist/src/rules/op-reference-container-route.d.ts.map -index 404f13f088cd8be90992ed73e9fc59e8c45e6ccf..95f7620cb1b296201d50f5b5e6efe1221ea231da 100644 ---- a/dist/src/rules/op-reference-container-route.d.ts.map -+++ b/dist/src/rules/op-reference-container-route.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"op-reference-container-route.d.ts","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B;;yBAkExC,CAAC"} -\ No newline at end of file -+{"version":3,"file":"op-reference-container-route.d.ts","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B;;yBAmExC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/rules/op-reference-container-route.js b/dist/src/rules/op-reference-container-route.js -index c5b98f811d060cbbaf20510aed34c71bb40b2f98..83391f5f5530ff53bf35d7a3cb69db7cacefaa3c 100644 ---- a/dist/src/rules/op-reference-container-route.js -+++ b/dist/src/rules/op-reference-container-route.js -@@ -1,10 +1,11 @@ --import { createRule, paramMessage } from "@typespec/compiler"; -+import { createRule, fileRef, paramMessage } from "@typespec/compiler"; - import { getRoutePath } from "../route.js"; - export const opReferenceContainerRouteRule = createRule({ - name: "op-reference-container-route", - severity: "warning", - description: "Check for referenced (`op is`) operations which have a @route on one of their containers.", - url: "https://typespec.io/docs/libraries/http/rules/op-reference-container-route", -+ docs: fileRef.fromPackageRoot("src/rules/op-reference-container-route.md"), - messages: { - default: paramMessage `Operation ${"opName"} references an operation which has a @route prefix on its namespace or interface: "${"routePrefix"}". This operation will not carry forward the route prefix so the final route may be different than the referenced operation.`, - }, -diff --git a/dist/src/rules/op-reference-container-route.js.map b/dist/src/rules/op-reference-container-route.js.map -index 5e3a8a08d27117bf60ed266d8534627647d13e4d..ff3c9aac741f8661cb9bce8b0f26e938771aee59 100644 ---- a/dist/src/rules/op-reference-container-route.js.map -+++ b/dist/src/rules/op-reference-container-route.js.map -@@ -1 +1 @@ --{"version":3,"file":"op-reference-container-route.js","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,2FAA2F;IAC7F,GAAG,EAAE,4EAA4E;IACjF,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,aAAa,QAAQ,sFAAsF,aAAa,+HAA+H;KAC7Q;IACD,MAAM,CAAC,OAAO;QACZ,4EAA4E;QAC5E,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE5D,SAAS,uBAAuB,CAC9B,SAAqD;YAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CACL,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC;oBAC5C,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAC7C,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,SAAS,wBAAwB,CAAC,EAAyB,EAAE,UAAqB;YAChF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,gEAAgE;gBAChE,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;gBACvE,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,KAAK,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;wBACpC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;yBACxD,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,2EAA2E;gBAC3E,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} -\ No newline at end of file -+{"version":3,"file":"op-reference-container-route.js","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,2FAA2F;IAC7F,GAAG,EAAE,4EAA4E;IACjF,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,2CAA2C,CAAC;IAC1E,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,aAAa,QAAQ,sFAAsF,aAAa,+HAA+H;KAC7Q;IACD,MAAM,CAAC,OAAO;QACZ,4EAA4E;QAC5E,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE5D,SAAS,uBAAuB,CAC9B,SAAqD;YAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CACL,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC;oBAC5C,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAC7C,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,SAAS,wBAAwB,CAAC,EAAyB,EAAE,UAAqB;YAChF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,gEAAgE;gBAChE,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;gBACvE,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,KAAK,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;wBACpC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;yBACxD,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,2EAA2E;gBAC3E,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} -\ No newline at end of file -diff --git a/dist/src/types.d.ts b/dist/src/types.d.ts -index 92de2bef7757139f99f230d2d251ec99647efb45..67726e21c8a806d6b8c7ec660568173792205e64 100644 ---- a/dist/src/types.d.ts -+++ b/dist/src/types.d.ts -@@ -143,6 +143,8 @@ export interface OAuth2Scope { - export interface OpenIDConnectAuth extends HttpAuthBase { - type: "openIdConnect"; - openIdConnectUrl: string; -+ /** Scope names required for operations that use this scheme. */ -+ scopes: string[]; - } - /** - * This authentication option signifies that API is not secured at all. -@@ -155,6 +157,12 @@ export type HttpAuthRef = AnyHttpAuthRef | OAuth2HttpAuthRef | NoHttpAuthRef; - export interface AnyHttpAuthRef { - readonly kind: "any"; - readonly auth: HttpAuth; -+ /** -+ * Scope names required for this scheme in the containing auth option. Empty -+ * for schemes that do not carry scopes. Populated for `openIdConnect`; kept -+ * scheme-agnostic so other scheme types can carry scopes without a new ref kind. -+ */ -+ readonly scopes: string[]; - } - export interface NoHttpAuthRef { - readonly kind: "noAuth"; -diff --git a/dist/src/types.d.ts.map b/dist/src/types.d.ts.map -index 9a38d55034b62794c5d8bea85a5bb3b3364f496c..9441744652b522595b9c6ed3e0f436533986e7c1 100644 ---- a/dist/src/types.d.ts.map -+++ b/dist/src/types.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/lib/auth.tsp b/lib/auth.tsp -index cc643eac10efdf16f87544c5a8c90bf5714ab158..0b3920e15734fe33bdf0b0c6d7b2ebf2ba4e6815 100644 ---- a/lib/auth.tsp -+++ b/lib/auth.tsp -@@ -211,13 +211,19 @@ model ClientCredentialsFlow { - * ```http - * https://server.com/.well-known/openid-configuration - * ``` -+ * -+ * @template ConnectUrl The openIdConnectUrl, where the OpenID provider publishes its discovery metadata. It can be specified relative to the server URL. -+ * @template Scopes The scope names required for operations that use this scheme. - */ --model OpenIdConnectAuth { -+model OpenIdConnectAuth { - /** Auth type */ - type: AuthType.openIdConnect; - - /** Connect url. It can be specified relative to the server URL */ - openIdConnectUrl: ConnectUrl; -+ -+ /** Scope names required for operations that use this authentication scheme. */ -+ scopes: Scopes; - } - - /** -diff --git a/lib/decorators.tsp b/lib/decorators.tsp -index 3082f405614ea0e7264d64dce097708c179eaa7a..ff50ed667e81135819118f3a62403ba44ce10f66 100644 ---- a/lib/decorators.tsp -+++ b/lib/decorators.tsp -@@ -97,6 +97,11 @@ model QueryOptions { - * - */ - explode?: boolean; -+ -+ /** -+ * Determines the delimiteration of query parameters. -+ */ -+ style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; - } - - /** -diff --git a/package.json b/package.json -index d9ebab76289a17da690055b2b797f1787d7445f6..c2f5878f68cc3adc810763e71f6e26006590e078 100644 ---- a/package.json -+++ b/package.json -@@ -59,8 +59,8 @@ - "!dist/test/**" - ], - "peerDependencies": { -- "@typespec/compiler": "^1.14.0", -- "@typespec/streams": "^0.84.0" -+ "@typespec/streams": "^0.84.0", -+ "@typespec/compiler": "^1.14.0" - }, - "peerDependenciesMeta": { - "@typespec/streams": { -@@ -76,8 +76,8 @@ - "vitest": "^4.1.3", - "@typespec/compiler": "^1.14.0", - "@typespec/streams": "^0.84.0", -- "@typespec/tspd": "^0.76.0", -- "@typespec/library-linter": "^0.84.0" -+ "@typespec/library-linter": "^0.84.0", -+ "@typespec/tspd": "^0.76.0" - }, - "scripts": { - "clean": "rimraf ./dist ./temp", -@@ -92,6 +92,6 @@ - "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "oxlint . --deny-warnings", - "lint:fix": "oxlint . --fix", -- "regen-docs": "tspd doc . --enable-experimental --typekits --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/http/reference" -+ "regen-docs": "tspd doc . --enable-experimental --typekits --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/http/reference --rules-dir ../rules" - } - } diff --git a/api/spec/patches/@typespec__http@1.16.0.patch b/api/spec/patches/@typespec__http@1.16.0.patch new file mode 100644 index 0000000000..17a2a18713 --- /dev/null +++ b/api/spec/patches/@typespec__http@1.16.0.patch @@ -0,0 +1,60 @@ +diff --git a/dist/generated-defs/TypeSpec.Http.d.ts b/dist/generated-defs/TypeSpec.Http.d.ts +index 4ae10983227852587eeae0db2e1d36df8edaa6b1..33a8d03d161702ac6f97e342b5a4a69c93877d4c 100644 +--- a/dist/generated-defs/TypeSpec.Http.d.ts ++++ b/dist/generated-defs/TypeSpec.Http.d.ts +@@ -9,6 +9,7 @@ export interface CookieOptions { + export interface QueryOptions { + readonly name?: string; + readonly explode?: boolean; ++ readonly style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + } + export interface PathOptions { + readonly name?: string; +diff --git a/dist/src/decorators.js b/dist/src/decorators.js +index 31ffc53853bb7656c57d4cdb5e2e65b5df3a7cf2..eb5b9ffc1bfbd3828610a3a3b2d79f6f807d805c 100644 +--- a/dist/src/decorators.js ++++ b/dist/src/decorators.js +@@ -73,6 +73,7 @@ export const $query = (context, entity, queryNameOrOptions) => { + const userOptions = typeof queryNameOrOptions === "object" ? queryNameOrOptions : {}; + setQueryOptions(context.program, entity, { + explode: userOptions.explode, ++ style: userOptions.style, + name: paramName, + }); + }; +@@ -83,6 +84,7 @@ export function resolveQueryOptionsWithDefaults(options) { + return { + explode: options.explode ?? false, + name: options.name, ++ style: options.style ?? "form", + }; + } + export function getQueryParamOptions(program, entity) { +diff --git a/dist/src/parameters.js b/dist/src/parameters.js +index d188d6b939181a4ecac570bd0089e2144629521c..259646d548ef4baf42fd2e050517c4dcaeb1fa38 100644 +--- a/dist/src/parameters.js ++++ b/dist/src/parameters.js +@@ -56,6 +56,7 @@ function getOperationParametersForVerb(program, operation, verb, partialUriTempl + type: "query", + name: uriParam.name, + explode, ++ style: "form", + }; + } + else if (uriParam.operator === "+") { +diff --git a/lib/decorators.tsp b/lib/decorators.tsp +index 0e2203678e588a049435a2e508c5620560425653..91e115f30242c427bb9d69abdd21197ee596c175 100644 +--- a/lib/decorators.tsp ++++ b/lib/decorators.tsp +@@ -97,6 +97,11 @@ model QueryOptions { + * + */ + explode?: boolean; ++ ++ /** ++ * Determines the delimiteration of query parameters. ++ */ ++ style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; + } + + /** diff --git a/api/spec/patches/@typespec__openapi.patch b/api/spec/patches/@typespec__openapi.patch deleted file mode 100644 index 436658aade..0000000000 --- a/api/spec/patches/@typespec__openapi.patch +++ /dev/null @@ -1,274 +0,0 @@ -diff --git a/dist/generated-defs/TypeSpec.OpenAPI.d.ts b/dist/generated-defs/TypeSpec.OpenAPI.d.ts -index 714d5571aad7ceec6119a72a71dab9e39443e0e6..fb390b649218cfab932f5146ba30ebee912730ec 100644 ---- a/dist/generated-defs/TypeSpec.OpenAPI.d.ts -+++ b/dist/generated-defs/TypeSpec.OpenAPI.d.ts -@@ -35,6 +35,7 @@ export interface License { - readonly [key: string]: unknown; - readonly name: string; - readonly url?: string; -+ readonly identifier?: string; - } - export interface ExternalDocs { - readonly [key: string]: unknown; -diff --git a/dist/generated-defs/TypeSpec.OpenAPI.d.ts.map b/dist/generated-defs/TypeSpec.OpenAPI.d.ts.map -index d1dd090515aac46affa053f79d94f3d52ce25529..a1ebd9770423f9531046b1b39eeaad1b4083333a 100644 ---- a/dist/generated-defs/TypeSpec.OpenAPI.d.ts.map -+++ b/dist/generated-defs/TypeSpec.OpenAPI.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"TypeSpec.OpenAPI.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.OpenAPI.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"TypeSpec.OpenAPI.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.OpenAPI.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/decorators.d.ts.map b/dist/src/decorators.d.ts.map -index b669a49dd15a1f5d5f814ac6b9588f8cea71e3d1..f851b622dff63adc591c5b378762c5a2448054b0 100644 ---- a/dist/src/decorators.d.ts.map -+++ b/dist/src/decorators.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,SAAS,EACT,SAAS,EACT,OAAO,EAEP,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EAEpB,oBAAoB,EAErB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7F,eAAO;AACL;;GAEG;AACH,cAAc;AAEd;;;;;GAKG;AACH,cAAc,4DACqD,CAAC;AACtE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAC;AAIF,uCAAuC;AACvC,eAAO,MAAM,UAAU,EAAE,kBAaxB,CAAC;AAuCF;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,QAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,QAKhG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,CAE5F;AAQD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,wBAuC9B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAEzE;AAID;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,qBAW3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,CAExF;AAID,kCAAkC;AAClC,eAAO,MAAM,KAAK,EAAE,aAmCnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAEvF;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAU3F;AAMD,yDAAyD;AACzD,QAAA,MAAO,eAAe,qEAErB,CAAC;AAUF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAgJlC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"} -\ No newline at end of file -+{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,SAAS,EACT,SAAS,EACT,OAAO,EAEP,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EAEpB,oBAAoB,EAErB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7F,eAAO;AACL;;GAEG;AACH,cAAc;AAEd;;;;;GAKG;AACH,cAAc,4DACqD,CAAC;AACtE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAC;AAIF,uCAAuC;AACvC,eAAO,MAAM,UAAU,EAAE,kBAaxB,CAAC;AAuCF;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,QAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,QAKhG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,CAE5F;AAQD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,wBAuC9B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAEzE;AAID;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,qBAW3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,CAExF;AAID,kCAAkC;AAClC,eAAO,MAAM,KAAK,EAAE,aA6CnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAEvF;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAU3F;AAMD,yDAAyD;AACzD,QAAA,MAAO,eAAe,qEAErB,CAAC;AAUF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAgJlC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"} -\ No newline at end of file -diff --git a/dist/src/decorators.js b/dist/src/decorators.js -index f0b5fc9b48188f0fc09db9a84bc5ba2be63f7668..65844ebd066d8c3bb9f38a3ecdab5c862f40e41c 100644 ---- a/dist/src/decorators.js -+++ b/dist/src/decorators.js -@@ -178,6 +178,14 @@ export const $info = (context, entity, data) => { - return; - } - } -+ // Validate license: url and identifier are mutually exclusive -+ if (data.license?.url !== undefined && data.license?.identifier !== undefined) { -+ reportDiagnostic(context.program, { -+ code: "license-url-identifier-conflict", -+ target: context.getArgumentTarget(0), -+ }); -+ return; -+ } - setInfo(context.program, entity, data); - }; - /** -diff --git a/dist/src/decorators.js.map b/dist/src/decorators.js.map -index 853e78a1d12f94ca3b67f684f993d1d03e246bbd..7d17008dd525368e0a509dc5fe66f29e3bc1b1e9 100644 ---- a/dist/src/decorators.js.map -+++ b/dist/src/decorators.js.map -@@ -1 +1 @@ --{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,MAAM,EACN,UAAU,EACV,UAAU,EACV,YAAY,EACZ,MAAM,EAKN,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAWvC,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG9F,MAAM,CAAC,MAAM;AACX;;GAEG;AACH,cAAc;AAEd;;;;;GAKG;AACH,cAAc,EACf,GAAG,WAAW,CAAoB,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;AACtE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB,CAChD,OAAyB,EACzB,MAAiB,EACjB,IAAY,EACZ,EAAE;IACF,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAElE,uCAAuC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAuB,CAC5C,OAAyB,EACzB,MAAY,EACZ,aAAqB,EACrB,KAAc,EACd,EAAE;IACF,cAAc,CACZ,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAY,CAAC,EAC/B,wDAAwD,EACxD,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAC7B,CAAC;IACF,MAAM,SAAS,GAAG,kCAAkC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7E,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAA6B,EAAE,SAAS,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,+FAA+F;AAC/F,oDAAoD;AACpD,SAAS,kCAAkC,CAAC,OAAgB,EAAE,KAAc;IAC1E,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kCAAkC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAA4B,EAAE,CAAC;gBAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACtB,SAAS;oBACX,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,kCAAkC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACjE,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,YAAY,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CACrB,OAAgB,EAChB,MAAiB,EACjB,IAAoD;IAEpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,MAAY,EAAE,aAAqB,EAAE,IAAa;IAC/F,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAe,CAAC;IAC/E,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACxC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAY;IAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAqB,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAChE,6CAA6C;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAA6B,CACxD,OAAyB,EACzB,MAAa,EACb,EAAE;IACD,IAAY,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO;QACL,cAAc,EAAE,GAAG,EAAE;YACnB,MAAM,WAAW,GAA0C,EAAE,CAAC;YAE9D,uDAAuD;YACvD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC7C,WAAW,CAAC,IAAI,CACd,gBAAgB,CAAC;wBACf,IAAI,EAAE,mCAAmC;wBACzC,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,MAAM;qBACf,CAAC,CACH,CAAC;oBACF,MAAM;gBACR,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC1C,WAAW,CAAC,IAAI,CACd,gBAAgB,CAAC;oBACf,IAAI,EAAE,mCAAmC;oBACzC,SAAS,EAAE,OAAO;oBAClB,MAAM,EAAE,MAAM;iBACf,CAAC,CACH,CAAC;YACJ,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,MAAY;IAC9D,OAAO,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,eAAe,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B,CAClD,OAAyB,EACzB,MAAY,EACZ,GAAW,EACX,WAAoB,EACpB,EAAE;IACF,MAAM,GAAG,GAAiB,EAAE,GAAG,EAAE,CAAC;IAClC,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,MAAY;IAC5D,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE1C,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAkB,CAClC,OAAyB,EACzB,MAAiB,EACjB,IAAoD,EACpD,EAAE;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IACE,CAAC,2BAA2B,CAC1B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,IAAI,EACJ,iCAAiC,CAClC,EACD,CAAC;QACD,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IACE,CAAC,aAAa,CACZ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,IAAI,CAAC,cAAc,EACnB,gBAAgB,CACjB,EACD,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9E,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,iCAAiC;YACvC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;SACtC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,MAAiB;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,MAAiB;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC;QACnB,GAAG,IAAI;QACP,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK;QACpC,OAAO,EAAE,IAAI,EAAE,OAAO;QACtB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;QACrD,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAoC,IAAO;IAC/D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAQ,CAAC;AAC7F,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,WAAW,CACpD,WAAW,CAAC,YAAY,CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,GAAG,WAAW,CAC7E,iBAAiB,CAAC,uBAAuB,CAAC,CAC3C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyB,CACxD,OAAyB,EACzB,MAAiB,EACjB,IAAkD,EAClD,WAAyB,EACzB,EAAE;IACF,gDAAgD;IAChD,IACE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,UAAU,EAAE,IAAI,KAAK,UAAU;QACzC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU,CACtD,EACD,CAAC;QACD,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,6BAA6B;YACnC,MAAM,EAAE;gBACN,SAAS,EAAE,MAAM,CAAC,IAAI;aACvB;YACD,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;SACtC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,yDAAyD;QACzD,+FAA+F;QAC/F,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,sCAAsC;gBAC5C,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;aACtC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,wFAAwF;QACxF,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,IACE,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,2BAA2B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EACpD,CAAC;YACD,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;aACtC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;oBAChC,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;oBACjC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;iBACtC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3B,IACE,CAAC,2BAA2B,CAC1B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,OAAO,EACP,sCAAsC,CACvC,EACD,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC;gBAC9B,IACE,CAAC,aAAa,CACZ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,OAAO,CAAC,YAAY,CAAC,GAAG,EACxB,kBAAkB,CACnB,EACD,CAAC;oBACD,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,uCAAuC;QACvC,IAAI,2BAA2B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzD,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;aACtC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE5D,gCAAgC;QAChC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACzB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE;aACtC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAgB,WAAW,IAAI,EAAE,CAAC;QAExD,oCAAoC;QACpC,IACE,CAAC,2BAA2B,CAC1B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,gBAAgB,EAChB,8BAA8B,CAC/B,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,IAAI,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC;YACvC,IACE,CAAC,aAAa,CACZ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAE,EAC7B,gBAAgB,CAAC,YAAY,CAAC,GAAG,EACjC,kBAAkB,CACnB,EACD,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACzC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"} -\ No newline at end of file -diff --git a/dist/src/helpers.d.ts.map b/dist/src/helpers.d.ts.map -index 12cba9075ab031152c386f081a8e26bcb0e9ea93..baabd87561f5d55f9484786ee487da9bd7b8bbbe 100644 ---- a/dist/src/helpers.d.ts.map -+++ b/dist/src/helpers.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAUhB,aAAa,EACb,SAAS,EACT,OAAO,EACP,IAAI,EACJ,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAelE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,QAW9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,eAAe,GACvB,MAAM,CAoBR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAmBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,WAM3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,YAAY,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAgBT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAiBT"} -\ No newline at end of file -+{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAUhB,aAAa,EACb,SAAS,EACT,OAAO,EACP,IAAI,EACJ,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAyBlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,QAW9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,OAAO,EACjB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,eAAe,GACvB,MAAM,CAoBR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAmBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,WAM3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,YAAY,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GACnB,OAAO,CAgBT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAiBT"} -\ No newline at end of file -diff --git a/dist/src/helpers.js b/dist/src/helpers.js -index e51f6c78a032d981ea545524d055fdb089e7a5c3..9709887d5dc3dc2182154a490db70365ddf1e50d 100644 ---- a/dist/src/helpers.js -+++ b/dist/src/helpers.js -@@ -1,6 +1,6 @@ - import { getFriendlyName, getLifecycleVisibilityEnum, getProperty, getTypeName, getVisibilityForClass, isGlobalNamespace, isService, isTemplateInstance, } from "@typespec/compiler"; - import { SyntaxKind, } from "@typespec/compiler/ast"; --import { getOperationId } from "./decorators.js"; -+import { getExtensions, getOperationId } from "./decorators.js"; - import { createDiagnostic, reportDiagnostic } from "./lib.js"; - /** - * Determines whether a type will be inlined in OpenAPI rather than defined -@@ -17,6 +17,14 @@ export function shouldInline(program, type) { - if (getFriendlyName(program, type)) { - return false; - } -+ if (getExtensions(program, type).has("x-inline")) { -+ switch (getExtensions(program, type).get("x-inline")) { -+ case true: -+ return true; -+ case false: -+ return false; -+ } -+ } - switch (type.kind) { - case "Model": - return !type.name || isTemplateInstance(type); -diff --git a/dist/src/helpers.js.map b/dist/src/helpers.js.map -index e25a0b4cf42455db5c841e517dc92e2127121cb2..d1b38fdd8f2da5db6550af3c5d8cdc9815eacca4 100644 ---- a/dist/src/helpers.js.map -+++ b/dist/src/helpers.js.map -@@ -1 +1 @@ --{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/lib.d.ts b/dist/src/lib.d.ts -index 908ff38de0ab104e97b83446cbf5445f2c63e4f1..fd41df06e4b8d67555550ac91b3b1d0957c91641 100644 ---- a/dist/src/lib.d.ts -+++ b/dist/src/lib.d.ts -@@ -25,8 +25,11 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{ - readonly statusCode: "@defaultResponse should not be used on a model that already has a status code defined. The status code will be ignored in favor of the default response."; - readonly error: "@defaultResponse should not be used on a model that is marked with @error. Use either @defaultResponse or @error, not both."; - }; -+ "license-url-identifier-conflict": { -+ readonly default: "License 'url' and 'identifier' are mutually exclusive. Specify only one of them."; -+ }; - }, Record, "tagsMetadata">; --export declare const createDiagnostic: ; - }; -@@ -53,6 +56,9 @@ export declare const createDiagnostic: (diag: import("@typespec/compiler").DiagnosticReport<{ - "invalid-extension-key": { - readonly default: import("@typespec/compiler").CallableMessage<["value"]>; -@@ -80,7 +86,10 @@ export declare const createDiagnostic: ) => import("@typespec/compiler").Diagnostic, reportDiagnostic: ) => import("@typespec/compiler").Diagnostic, reportDiagnostic: ; - }; -@@ -107,6 +116,9 @@ export declare const createDiagnostic: (program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{ - "invalid-extension-key": { - readonly default: import("@typespec/compiler").CallableMessage<["value"]>; -@@ -134,5 +146,8 @@ export declare const createDiagnostic: ) => void, createStateSymbol: (name: string) => symbol, OpenAPIKeys: Record<"tagsMetadata", symbol>; - //# sourceMappingURL=lib.d.ts.map -\ No newline at end of file -diff --git a/dist/src/lib.d.ts.map b/dist/src/lib.d.ts.map -index 28852ffc4b868a3f91608051ae32dca36c8dc46f..270be6397221dceaf7a97394329892c6d22159b6 100644 ---- a/dist/src/lib.d.ts.map -+++ b/dist/src/lib.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAyDf,CAAC;AAEH,eAAO,MACL,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAChB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAChB,iBAAiB,4BACN,WAAW,gCAChB,CAAC"} -\ No newline at end of file -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA+Df,CAAC;AAEH,eAAO,MACL,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAChB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAChB,iBAAiB,4BACN,WAAW,gCAChB,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib.js b/dist/src/lib.js -index 5ce4d876fcf65a2871df6c311fa211322c445400..408d1a8fe7af5a23537efeec3ff3de5895b1513c 100644 ---- a/dist/src/lib.js -+++ b/dist/src/lib.js -@@ -52,6 +52,12 @@ export const $lib = createTypeSpecLibrary({ - error: `@defaultResponse should not be used on a model that is marked with @error. Use either @defaultResponse or @error, not both.`, - }, - }, -+ "license-url-identifier-conflict": { -+ severity: "error", -+ messages: { -+ default: `License 'url' and 'identifier' are mutually exclusive. Specify only one of them.`, -+ }, -+ }, - }, - state: { - tagsMetadata: { description: "State for the @tagMetadata decorator." }, -diff --git a/dist/src/lib.js.map b/dist/src/lib.js.map -index 0fcb4567d4a3afe3f8ab39f7c34847a397c97190..2d87f5a595d6f74f4784c190f99fdd2091818906 100644 ---- a/dist/src/lib.js.map -+++ b/dist/src/lib.js.map -@@ -1 +1 @@ --{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mDAAmD,OAAO,GAAG;aACnF;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,yBAAyB,OAAO,4FAA4F;gBACjJ,SAAS,EAAE,YAAY,CAAA,6BAA6B,OAAO,4FAA4F;aACxJ;SACF;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,GAAG,UAAU,KAAK,OAAO,sBAAsB;aACrE;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,SAAS,yBAAyB;aAC9E;SACF;QACD,yBAAyB,EAAE;YACzB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,gLAAgL;aAC1L;SACF;QACD,sCAAsC,EAAE;YACtC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,wJAAwJ;aAClK;SACF;QACD,6BAA6B,EAAE;YAC7B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,iFAAiF,WAAW,qBAAqB;aACvI;SACF;QACD,mCAAmC,EAAE;YACnC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,UAAU,EAAE,0JAA0J;gBACtK,KAAK,EAAE,6HAA6H;aACrI;SACF;KACF;IACD,KAAK,EAAE;QACL,YAAY,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAE;KACvE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EAAE,WAAW,GACvB,GAAG,IAAI,CAAC"} -\ No newline at end of file -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;QACX,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mDAAmD,OAAO,GAAG;aACnF;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,yBAAyB,OAAO,4FAA4F;gBACjJ,SAAS,EAAE,YAAY,CAAA,6BAA6B,OAAO,4FAA4F;aACxJ;SACF;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,GAAG,UAAU,KAAK,OAAO,sBAAsB;aACrE;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,sBAAsB,SAAS,yBAAyB;aAC9E;SACF;QACD,yBAAyB,EAAE;YACzB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,gLAAgL;aAC1L;SACF;QACD,sCAAsC,EAAE;YACtC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,wJAAwJ;aAClK;SACF;QACD,6BAA6B,EAAE;YAC7B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,iFAAiF,WAAW,qBAAqB;aACvI;SACF;QACD,mCAAmC,EAAE;YACnC,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,UAAU,EAAE,0JAA0J;gBACtK,KAAK,EAAE,6HAA6H;aACrI;SACF;QACD,iCAAiC,EAAE;YACjC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,kFAAkF;aAC5F;SACF;KACF;IACD,KAAK,EAAE;QACL,YAAY,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAE;KACvE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EAAE,WAAW,GACvB,GAAG,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/src/tsdoc-metadata.json b/dist/src/tsdoc-metadata.json -index 9a79dae3ef145be4af62c2346e7cf70cc866fd92..b0ae5524711531bd6b0df8cf85ecefef9196ecc6 100644 ---- a/dist/src/tsdoc-metadata.json -+++ b/dist/src/tsdoc-metadata.json -@@ -5,7 +5,7 @@ - "toolPackages": [ - { - "packageName": "@microsoft/api-extractor", -- "packageVersion": "7.58.9" -+ "packageVersion": "7.58.1" - } - ] - } -diff --git a/dist/src/types.d.ts b/dist/src/types.d.ts -index 7e5f93346b19e012dc0fc8e9d9a322b787f98d4a..9b1b5fc201ee400ec769ab1136494c59008e7d32 100644 ---- a/dist/src/types.d.ts -+++ b/dist/src/types.d.ts -@@ -39,8 +39,12 @@ export interface Contact { - export interface License { - /** The license name used for the API. */ - name: string; -- /** A URL to the license used for the API. MUST be in the format of a URL. */ -+ /** A URL to the license used for the API. MUST be in the format of a URL. Mutually exclusive with `identifier`. */ - url?: string; -+ /** An SPDX license expression for the API. Mutually exclusive with `url`. Only supported in OpenAPI 3.1+. For OpenAPI 3.0, this will be emitted as `x-oai-license-identifier`. */ -+ identifier?: string; -+ /** Additional extension data. Keys must start with `x-`. */ -+ [extensionKey: string]: unknown; - } - /** - * External Docs info -diff --git a/dist/src/types.d.ts.map b/dist/src/types.d.ts.map -index 09d0b9e8bf6b73251372848c9f8a995f34fe7f13..6530a2bfd63569077890dfedfec6265363196299 100644 ---- a/dist/src/types.d.ts.map -+++ b/dist/src/types.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,MAAM,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wIAAwI;IACxI,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,oHAAoH;IACpH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+JAA+J;IAC/J,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qKAAqK;IACrK,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4DAA4D;IAC5D,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd"} -\ No newline at end of file -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,MAAM,EAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wIAAwI;IACxI,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,mHAAmH;IACnH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,kLAAkL;IAClL,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4DAA4D;IAC5D,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,oHAAoH;IACpH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+JAA+J;IAC/J,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qKAAqK;IACrK,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4DAA4D;IAC5D,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd"} -\ No newline at end of file -diff --git a/lib/decorators.tsp b/lib/decorators.tsp -index d52921307ae622482535ac8ba95d6ac5f5c6a34e..a098d66c644c383a6bddb39fbceeed939297f187 100644 ---- a/lib/decorators.tsp -+++ b/lib/decorators.tsp -@@ -103,9 +103,12 @@ model License { - /** The license name used for the API. */ - name: string; - -- /** A URL to the license used for the API. MUST be in the format of a URL. */ -+ /** A URL to the license used for the API. MUST be in the format of a URL. Mutually exclusive with `identifier`. */ - url?: url; - -+ /** An SPDX license expression for the API. Mutually exclusive with `url`. Only supported in OpenAPI 3.1+. For OpenAPI 3.0, this will be emitted as `x-oai-license-identifier`. */ -+ identifier?: string; -+ - ...Record; - } - -diff --git a/package.json b/package.json -index 92d1d5075aaae9e124748ef3dae09dfe0998d84b..208da07c9b35e8a63cb3b5b4170027fecdcd1048 100644 ---- a/package.json -+++ b/package.json -@@ -49,11 +49,11 @@ - "rimraf": "^6.1.3", - "typescript": "~6.0.2", - "vitest": "^4.1.3", -- "@typespec/library-linter": "^0.84.0", - "@typespec/compiler": "^1.14.0", -+ "@typespec/library-linter": "^0.84.0", -+ "@typespec/tspd": "^0.76.0", - "@typespec/rest": "^0.84.0", -- "@typespec/http": "^1.14.0", -- "@typespec/tspd": "^0.76.0" -+ "@typespec/http": "^1.14.0" - }, - "scripts": { - "clean": "rimraf ./dist ./temp", diff --git a/api/spec/patches/@typespec__openapi3.patch b/api/spec/patches/@typespec__openapi3.patch deleted file mode 100644 index 6049b14cea..0000000000 --- a/api/spec/patches/@typespec__openapi3.patch +++ /dev/null @@ -1,1045 +0,0 @@ -diff --git a/README.md b/README.md -index a9f822d64a78e477de7e9e07349cb605fa6b7a70..91e60720cd5523f5d3aea3b0b7e1fb12c2f33d14 100644 ---- a/README.md -+++ b/README.md -@@ -178,11 +178,11 @@ See https://github.com/OAI/OpenAPI-Specification/discussions/4622 for discussion - - **Default:** `"default"` - --How to emit TypeSpec enums. Options are: -+How to emit TypeSpec enums and unions of literals. Options are: - - - `default`: Emit as a single schema using the `enum` keyword. - - `annotated`: Emit as a `oneOf` of `const` subschemas annotated with `title` and `description` -- from each member's `@summary` and `@doc`. Follows the OpenAPI 3.1.1 annotated enumerations pattern. -+ from each member's/variant's `@summary` and `@doc`. Follows the OpenAPI 3.1.1 annotated enumerations pattern. - Only supported by OpenAPI 3.1.0 and above; on 3.0.0 the `default` style is used and a warning is reported. - - ## Decorators -diff --git a/dist/src/attach-extensions.d.ts.map b/dist/src/attach-extensions.d.ts.map -index 7b28892e9cc64d88569596d2f14310e47c0bb214..5f622f032e25cc826f2d91e28d5acbb722c85f93 100644 ---- a/dist/src/attach-extensions.d.ts.map -+++ b/dist/src/attach-extensions.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"attach-extensions.d.ts","sourceRoot":"","sources":["../../src/attach-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAQ7E"} -\ No newline at end of file -+{"version":3,"file":"attach-extensions.d.ts","sourceRoot":"","sources":["../../src/attach-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAW7E"} -\ No newline at end of file -diff --git a/dist/src/attach-extensions.js b/dist/src/attach-extensions.js -index 8e557682fd556430304cd178c93bb3e98cab7fdf..eb543fb17a926596f01227c4ee4610b3a7ecea5d 100644 ---- a/dist/src/attach-extensions.js -+++ b/dist/src/attach-extensions.js -@@ -4,6 +4,9 @@ export function attachExtensions(program, type, emitObject) { - const extensions = getExtensions(program, type); - if (extensions) { - for (const key of extensions.keys()) { -+ if (key === "x-inline") { -+ continue; -+ } - emitObject[key] = extensions.get(key); - } - } -diff --git a/dist/src/attach-extensions.js.map b/dist/src/attach-extensions.js.map -index eed716664757cd2b9f3118c14c2729e11ad9aaf7..f373cd2f88ddcaaade1640b84b589fdae002f9f6 100644 ---- a/dist/src/attach-extensions.js.map -+++ b/dist/src/attach-extensions.js.map -@@ -1 +1 @@ --{"version":3,"file":"attach-extensions.js","sourceRoot":"","sources":["../../src/attach-extensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,IAAU,EAAE,UAAe;IAC5E,gCAAgC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC"} -\ No newline at end of file -+{"version":3,"file":"attach-extensions.js","sourceRoot":"","sources":["../../src/attach-extensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,IAAU,EAAE,UAAe;IAC5E,gCAAgC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/interfaces.d.ts.map b/dist/src/cli/actions/convert/interfaces.d.ts.map -index 79ec684313dca3f3cb38003867ba897751531e3f..9a5512dbe906504c4745fe218a5859f5457bb76c 100644 ---- a/dist/src/cli/actions/convert/interfaces.d.ts.map -+++ b/dist/src/cli/actions/convert/interfaces.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/interfaces.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts -new file mode 100644 -index 0000000000000000000000000000000000000000..eb1691d0b1ca8b04029159faaa1e828ff112e480 ---- /dev/null -+++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts -@@ -0,0 +1,10 @@ -+import { OpenAPI3Responses } from "../../../../types.js"; -+import { TypeSpecModel } from "../interfaces.js"; -+/** -+ * Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models. -+ * @param operationId - Used to generate model names with scopes. -+ * @param operationResponses - The responses object for an operation. -+ */ -+export declare function collectOperationResponses(operationId: string, operationResponses: OpenAPI3Responses): TypeSpecModel[]; -+export declare function generateResponseModelName(operationId: string, statusCode: string, contentType?: string): string; -+//# sourceMappingURL=transform-operation-responses.d.ts.map -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts.map b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts.map -new file mode 100644 -index 0000000000000000000000000000000000000000..925348f344c47cd3d2727f82dc6516f287237b22 ---- /dev/null -+++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts.map -@@ -0,0 +1 @@ -+{"version":3,"file":"transform-operation-responses.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAqB,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAK3F;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,iBAAiB,GACpC,aAAa,EAAE,CAqFjB;AA2ED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CASR"} -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.js b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js -new file mode 100644 -index 0000000000000000000000000000000000000000..7bb4bbbc630f8a50981928bfc0d5df203ed7431f ---- /dev/null -+++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js -@@ -0,0 +1,175 @@ -+import { printIdentifier } from "@typespec/compiler"; -+import { convertHeaderName } from "../utils/convert-header-name.js"; -+import { getDecoratorsForSchema, getExtensions } from "../utils/decorators.js"; -+import { getScopeAndName } from "../utils/get-scope-and-name.js"; -+/** -+ * Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models. -+ * @param operationId - Used to generate model names with scopes. -+ * @param operationResponses - The responses object for an operation. -+ */ -+export function collectOperationResponses(operationId, operationResponses) { -+ const models = []; -+ const rootDecorators = getExtensions(operationResponses); -+ for (const statusCode of Object.keys(operationResponses)) { -+ const response = operationResponses[statusCode]; -+ const decorators = [...rootDecorators]; -+ if ("$ref" in response) { -+ //TODO: Support for referencing #/components/responseBodies -+ continue; -+ } -+ // These headers will be applied to all of the models for this operation/statusCode -+ const commonProperties = []; -+ if (response.headers) { -+ for (const name of Object.keys(response.headers)) { -+ const property = convertHeaderToProperty(name, response.headers[name]); -+ if (property) -+ commonProperties.push(property); -+ } -+ } -+ decorators.push(...getExtensions(response)); -+ // `default` status code is treated as the fallback for any status codes returned that aren't defined. -+ if (statusCode === "default") { -+ decorators.push({ name: "defaultResponse", args: [] }); -+ } -+ else { -+ commonProperties.push(convertStatusCodeToProperty(statusCode)); -+ } -+ if (isErrorStatusCode(statusCode)) { -+ decorators.push({ name: "error", args: [] }); -+ } -+ const scopeAndName = getScopeAndName(operationId); -+ if (!response.content) { -+ // This is common when there is no actual request body, just a statusCode, e.g. for errors -+ models.push({ -+ kind: "model", -+ scope: scopeAndName.scope, -+ name: generateResponseModelName(scopeAndName.rawName, statusCode), -+ decorators, -+ properties: commonProperties, -+ doc: response.description, -+ }); -+ } -+ else { -+ // An operation may produce multiple content types, so need a model for each one. -+ for (const contentType of Object.keys(response.content ?? {})) { -+ const properties = [...commonProperties]; -+ const contentBody = response.content[contentType]; -+ // Wouldn't expect schema can be undefined since that implies contentType is not needed. -+ if (contentBody.schema) { -+ properties.push({ -+ name: "body", -+ isOptional: false, // TODO: use the real value -+ decorators: [{ name: "bodyRoot", args: [] }], -+ schema: contentBody.schema, -+ }); -+ } -+ // Default is application/json, so it doesn't need to be specified -+ if (contentType !== "application/json") { -+ properties.push({ -+ name: "contentType", -+ decorators: [{ name: "header", args: [] }], -+ isOptional: false, -+ schema: { type: "string", enum: [contentType] }, -+ }); -+ } -+ models.push({ -+ kind: "model", -+ scope: scopeAndName.scope, -+ name: generateResponseModelName(scopeAndName.rawName, statusCode, contentType), -+ decorators, -+ properties, -+ doc: response.description, -+ }); -+ } -+ } -+ } -+ return models; -+} -+function convertHeaderToProperty(name, meta) { -+ const normalizedName = convertHeaderName(name); -+ // TODO: handle style -+ const headerDecorator = { name: "header", args: [] }; -+ if (normalizedName !== name) { -+ headerDecorator.args.push(name); -+ } -+ if ("$ref" in meta) { -+ // Unhandled right now -+ return; -+ } -+ return { -+ name: normalizedName, -+ decorators: [headerDecorator, ...getDecoratorsForSchema(meta.schema)], -+ doc: meta.description ?? meta.schema.description, -+ isOptional: !meta.required, -+ schema: meta.schema, -+ }; -+} -+function convertStatusCodeToProperty(statusCode) { -+ const schema = { type: "integer", format: "int32" }; -+ if (statusCode === "1XX") { -+ schema.minimum = 100; -+ schema.maximum = 199; -+ } -+ else if (statusCode === "2XX") { -+ schema.minimum = 200; -+ schema.maximum = 299; -+ } -+ else if (statusCode === "3XX") { -+ schema.minimum = 300; -+ schema.maximum = 399; -+ } -+ else if (statusCode === "4XX") { -+ schema.minimum = 400; -+ schema.maximum = 499; -+ } -+ else if (statusCode === "5XX") { -+ schema.minimum = 500; -+ schema.maximum = 599; -+ } -+ else { -+ const literalStatusCode = parseInt(statusCode, 10); -+ if (!isValidLiteralStatusCode(literalStatusCode)) { -+ // TODO: Emit warning or // FIXME -+ } -+ else { -+ schema.enum = [literalStatusCode]; -+ } -+ } -+ return { -+ name: "statusCode", -+ schema, -+ decorators: [{ name: "statusCode", args: [] }], -+ isOptional: false, -+ }; -+} -+function isValidLiteralStatusCode(statusCode) { -+ return isFinite(statusCode) && statusCode >= 100 && statusCode <= 599; -+} -+function isErrorStatusCode(statusCode) { -+ if (["1XX", "2XX", "3XX", "default"].includes(statusCode)) { -+ return false; -+ } -+ else if (["4XX", "5XX"].includes(statusCode)) { -+ return true; -+ } -+ const literalStatusCode = parseInt(statusCode, 10); -+ return isFinite(literalStatusCode) && literalStatusCode >= 400; -+} -+export function generateResponseModelName(operationId, statusCode, contentType) { -+ if (statusCode === "default") { -+ statusCode = "Default"; -+ } -+ let modelName = `${operationId}${statusCode}`; -+ if (contentType) { -+ modelName += convertContentType(contentType); -+ } -+ return printIdentifier(modelName + "Response"); -+} -+function convertContentType(contentType) { -+ return contentType -+ .replaceAll("*", "Star") -+ .split("/") -+ .map((s) => s.substring(0, 1).toUpperCase() + s.substring(1)) -+ .join(""); -+} -+//# sourceMappingURL=transform-operation-responses.js.map -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.js.map b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js.map -new file mode 100644 -index 0000000000000000000000000000000000000000..e67260af2480f1a2ad197623ef59df0773fca4e9 ---- /dev/null -+++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js.map -@@ -0,0 +1 @@ -+{"version":3,"file":"transform-operation-responses.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-operation-responses.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-service-info.d.ts.map b/dist/src/cli/actions/convert/transforms/transform-service-info.d.ts.map -index 20dcef66ed5d0cc87292f14b8cd81025baa86dde..f37c5ec69fdd02b5e43d25e476b5db0088349d80 100644 ---- a/dist/src/cli/actions/convert/transforms/transform-service-info.d.ts.map -+++ b/dist/src/cli/actions/convert/transforms/transform-service-info.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"transform-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-service-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,CAU5E"} -\ No newline at end of file -+{"version":3,"file":"transform-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-service-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,CAqB5E"} -\ No newline at end of file -diff --git a/dist/src/cli/actions/convert/transforms/transform-service-info.js b/dist/src/cli/actions/convert/transforms/transform-service-info.js -index af9ea2317d3d25aa78507d7904f99fc8324a7209..0717d4a75afe7bee84ff1b61a11d0b4052417a7c 100644 ---- a/dist/src/cli/actions/convert/transforms/transform-service-info.js -+++ b/dist/src/cli/actions/convert/transforms/transform-service-info.js -@@ -1,10 +1,20 @@ - export function transformServiceInfo(info) { -+ let license = info.license; -+ if (license) { -+ // Handle x-oai-license-identifier extension from OpenAPI 3.0 -+ const licenseRecord = license; -+ const xOaiIdentifier = licenseRecord["x-oai-license-identifier"]; -+ if (typeof xOaiIdentifier === "string") { -+ const { "x-oai-license-identifier": _, ...rest } = licenseRecord; -+ license = { ...rest, identifier: xOaiIdentifier }; -+ } -+ } - return { - name: info.title, - doc: info.description, - version: info.version, - contact: info.contact, -- license: info.license, -+ license, - termsOfService: info.termsOfService, - summary: info.summary, - }; -diff --git a/dist/src/cli/actions/convert/transforms/transform-service-info.js.map b/dist/src/cli/actions/convert/transforms/transform-service-info.js.map -index 24cb277fc2606bef738bccb9b73264991d078ac0..92ee151b9c804fab82661964be19aaac71312b6e 100644 ---- a/dist/src/cli/actions/convert/transforms/transform-service-info.js.map -+++ b/dist/src/cli/actions/convert/transforms/transform-service-info.js.map -@@ -1 +1 @@ --{"version":3,"file":"transform-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-service-info.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,GAAG,EAAE,IAAI,CAAC,WAAW;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"} -\ No newline at end of file -+{"version":3,"file":"transform-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/transforms/transform-service-info.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,6DAA6D;QAC7D,MAAM,aAAa,GAAG,OAA6C,CAAC;QACpE,MAAM,cAAc,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACjE,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,EAAE,0BAA0B,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC;YACjE,OAAO,GAAG,EAAE,GAAI,IAA2B,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,GAAG,EAAE,IAAI,CAAC,WAAW;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO;QACP,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC"} -\ No newline at end of file -diff --git a/dist/src/encoding.d.ts.map b/dist/src/encoding.d.ts.map -index ac7c4db33b7c2ac890028ccddc2acb36a224c095..bddf96ebf621cca8372229adbc95469cfd011cdc 100644 ---- a/dist/src/encoding.d.ts.map -+++ b/dist/src/encoding.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAEzF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYnE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,cAAc,GAAG,gBAAgB,EACzC,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,KAAK,MAAM,EACrE,OAAO,EAAE,8BAA8B,GACtC,cAAc,GAAG,gBAAgB,CA+BnC"} -\ No newline at end of file -+{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAC;AAEzF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYnE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,cAAc,GAAG,gBAAgB,EACzC,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,KAAK,MAAM,EACrE,OAAO,EAAE,8BAA8B,GACtC,cAAc,GAAG,gBAAgB,CA2CnC"} -\ No newline at end of file -diff --git a/dist/src/encoding.js b/dist/src/encoding.js -index d2ece9a1296d83af7a3262d98f0fbc431a7e4f98..488a285b68aad087fa8dce8896a7fb2fe61605d3 100644 ---- a/dist/src/encoding.js -+++ b/dist/src/encoding.js -@@ -2,7 +2,7 @@ import { ObjectBuilder } from "@typespec/asset-emitter"; - import { getEncode } from "@typespec/compiler"; - import { isHeader, isQueryParam } from "@typespec/http"; - import { getSchemaForStdScalars } from "./std-scalar-schemas.js"; --function isParameterStyleEncoding(encoding) { -+function isArrayEncoding(encoding) { - if (!encoding) - return false; - return [ -@@ -17,8 +17,20 @@ export function applyEncoding(program, typespecType, target, getEncodedFieldName - const targetObject = new ObjectBuilder(target); - const encodeData = getEncode(program, typespecType); - if (encodeData) { -- // Query parameters have a couple of special cases where encoding ends up as style. -- if (isQueryParam(program, typespecType) && isParameterStyleEncoding(encodeData.encoding)) { -+ // Array encodings (comma/space/pipe/newline-delimited) describe how an array is -+ // serialized into a single delimiter-joined string. For query parameters the parameter -+ // emitter expresses this as `style` or a `content` parameter, so the array schema is -+ // left untouched. Anywhere else (e.g. a nested property inside a deepObject query -+ // object such as `filter[field][in]=a,b,c`) the wire value is the joined string, so -+ // the schema becomes the encode target scalar; the array's `items` no longer applies -+ // and the delimiter itself has no schema representation. -+ if (isArrayEncoding(encodeData.encoding)) { -+ if (isQueryParam(program, typespecType)) { -+ return targetObject; -+ } -+ const encodedType = getSchemaForStdScalars(encodeData.type, options); -+ targetObject.type = encodedType.type; -+ delete targetObject.items; - return targetObject; - } - const newType = getSchemaForStdScalars(encodeData.type, options); -diff --git a/dist/src/encoding.js.map b/dist/src/encoding.js.map -index e2b0938928c121b48e01395518cd9ff5fb059060..9205e0f6b9dd392d76f6b2f95c770499726231ee 100644 ---- a/dist/src/encoding.js.map -+++ b/dist/src/encoding.js.map -@@ -1 +1 @@ --{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/examples.d.ts.map b/dist/src/examples.d.ts.map -index 6a658df23b39f3a43b7a0a681564b91e73056b76..585d935a894f7e861c1bac98f5018d63b76c7449 100644 ---- a/dist/src/examples.d.ts.map -+++ b/dist/src/examples.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EAOP,OAAO,EAGP,IAAI,EACJ,KAAK,EACN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,YAAY,EAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qCAAqC,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAIL,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CAC9D;AAED,KAAK,+BAA+B,GAAG;IACrC,yBAAyB,CAAC,EAAE,qCAAqC,CAAC;CACnE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,GAAG,mBAAmB,EAC9C,EAAE,yBAAyB,EAAE,EAAE,+BAA+B,GAC7D,iBAAiB,CA4EnB;AAuJD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAC1B,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,UAAU,CAAC,CAyBjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAW/F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAWhG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,GAAG,SAAS,CAOxF;AA0XD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAkBhG"} -\ No newline at end of file -+{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EAOP,OAAO,EAGP,IAAI,EACJ,KAAK,EACN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,YAAY,EAElB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qCAAqC,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAIL,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;CAC9D;AAED,KAAK,+BAA+B,GAAG;IACrC,yBAAyB,CAAC,EAAE,qCAAqC,CAAC;CACnE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,GAAG,mBAAmB,EAC9C,EAAE,yBAAyB,EAAE,EAAE,+BAA+B,GAC7D,iBAAiB,CA4EnB;AAuJD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAC1B,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,UAAU,CAAC,CAyBjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAW/F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAWhG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,GAAG,SAAS,CAOxF;AAqXD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAkBhG"} -\ No newline at end of file -diff --git a/dist/src/examples.js b/dist/src/examples.js -index b2b35471039557e08eceb308e3bc9a955aaf422c..3e2dd6c184e2137ac0df823e84403bb32c9400d3 100644 ---- a/dist/src/examples.js -+++ b/dist/src/examples.js -@@ -1,7 +1,7 @@ - import { getEncode, getOpExamples, ignoreDiagnostics, serializeValueAsJson, } from "@typespec/compiler"; - import { $ } from "@typespec/compiler/typekit"; - import { isHeader, } from "@typespec/http"; --import { getParameterStyle } from "./parameters.js"; -+import { getArrayEncodingDelimiter } from "./parameters.js"; - import { getOpenAPI3StatusCodes } from "./status-codes.js"; - import { isHttpParameterProperty, isSharedHttpOperation, } from "./util.js"; - export function resolveOperationExamples(program, operation, { parameterExamplesStrategy }) { -@@ -275,19 +275,14 @@ function getParameterValue(program, parameterExamples, property, parameterExampl - return value; - } - function getQueryParameterValue(program, originalValue, property) { -- const style = getParameterStyle(program, property.property) ?? "form"; -- switch (style) { -- case "form": -- return getParameterFormValue(program, originalValue, property); -- case "spaceDelimited": -- return getParameterDelimitedValue(program, originalValue, property, " "); -- case "pipeDelimited": -- return getParameterDelimitedValue(program, originalValue, property, "|"); -- case "commaDelimited": -- return getParameterDelimitedValue(program, originalValue, property, ","); -- case "newlineDelimited": -- return getParameterDelimitedValue(program, originalValue, property, "\n"); -+ // Array encodings (comma/space/pipe/newline-delimited) join the array with a delimiter, -+ // regardless of whether the parameter is expressed via `style` or `content` in the -+ // document. Fall back to `form` serialization when no array encoding applies. -+ const delimiter = getArrayEncodingDelimiter(program, property.property); -+ if (delimiter !== undefined) { -+ return getParameterDelimitedValue(program, originalValue, property, delimiter); - } -+ return getParameterFormValue(program, originalValue, property); - } - function getHeaderParameterValue(program, originalValue, property) { - return getParameterSimpleValue(program, originalValue, property); -diff --git a/dist/src/examples.js.map b/dist/src/examples.js.map -index e6aa4831e8abc609788c2daa2adb5673533fade0..65c8f31eea3d42c0849e06528cd071b7f5cf3ced 100644 ---- a/dist/src/examples.js.map -+++ b/dist/src/examples.js.map -@@ -1 +1 @@ --{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/examples.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EACT,aAAa,EACb,iBAAiB,EAKjB,oBAAoB,GAIrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EACL,QAAQ,GAMT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAEL,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,WAAW,CAAC;AAYnB,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,SAA8C,EAC9C,EAAE,yBAAyB,EAAmC;IAE9D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAsB,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,gBAAgB,GACpB,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC;YAC1F,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;oBACxC;wBACE,KAAK;wBACL,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;qBACjC;oBACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,0BAA0B;YAC1B,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBAChD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAEjD,MAAM,KAAK,GAAG,iBAAiB,CAC7B,OAAO,EACP,OAAO,CAAC,UAAU,EAClB,QAAQ,EACR,yBAAyB,CAC1B,CAAC;gBACF,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC5C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBACxC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;wBACpC;4BACE,KAAK;4BACL,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,WAAW,EAAE,OAAO,CAAC,WAAW;yBACjC;wBACD,QAAQ,CAAC,QAAgB;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YAChF,IAAI,KAAK,EAAE,CAAC;gBACV,2FAA2F;gBAC3F,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACpE,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;4BAC3C,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;4BACpC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;4BACvD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;gCACnD;oCACE,KAAK;oCACL,KAAK,EAAE,OAAO,CAAC,KAAK;oCACpB,WAAW,EAAE,OAAO,CAAC,WAAW;iCACjC;gCACD,QAAQ,CAAC,IAAK,CAAC,IAAI;6BACpB,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,SAA8C;IAE9C,IAAI,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACrF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,iBAAyB,EACzB,WAA+C;IAE/C,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,iBAAiB,KAAK,WAAW,CAAC;IAC3C,CAAC;IAED,OAAO,iBAAiB,IAAI,WAAW,CAAC,KAAK,IAAI,iBAAiB,IAAI,WAAW,CAAC,GAAG,CAAC;AACxF,CAAC;AACD,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,YAAmB,EACnB,SAAkC;IAIlC,4FAA4F;IAC5F,gGAAgG;IAChG,6FAA6F;IAC7F,8DAA8D;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,EAQnB,CAAC;IAEJ,KAAK,MAAM,kBAAkB,IAAI,SAAS,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GAAG,iBAAiB,CAC1C,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,CACzF,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAClF,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YAEhF,MAAM,eAAe,GACnB,UAAU,IAAI,cAAc,IAAI,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC7F,MAAM,gBAAgB,GAAG,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE1F,IAAI,KAAa,CAAC;YAClB,IAAI,mBAA2B,CAAC;YAEhC,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBACxC,KAAK,GAAG,CAAC,CAAC;gBACV,mBAAmB,GAAG,WAAW,CAAC;YACpC,CAAC;iBAAM,IAAI,eAAe,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC5D,KAAK,GAAG,CAAC,CAAC;gBACV,mBAAmB,GAAG,kBAAkB,CAAC;YAC3C,CAAC;iBAAM,IAAI,gBAAgB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAC7D,KAAK,GAAG,CAAC,CAAC;gBACV,mBAAmB,GAAG,WAAW,CAAC;YACpC,CAAC;iBAAM,IAAI,eAAe,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACzE,KAAK,GAAG,CAAC,CAAC;gBACV,mBAAmB,GAAG,kBAAkB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;oBACd,WAAW,EAAE,kBAAkB;oBAC/B,WAAW,EAAE,mBAAmB;oBAChC,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAES,CAAC;IACd,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YACxB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,OAAgB,EAAE,MAAqB;IACvE,8DAA8D;IAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,oDAAoD;IACpD,IAAI,UAAU;QAAE,OAAO;IAEvB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO;IAEvC,iDAAiD;IACjD,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAgB,EAAE,IAAU;IAC/C,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,wBAAwB,CAAC,OAAO,EAAE,IAAqB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,QAA2B;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS;QAClC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,EACxC,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC,GAAG;gBAC/C,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;aACpE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,UAA0B;IACzE,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAC3E,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,UAAU,EAAE,SAAS,KAAK,cAAc,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC;IAClD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,UAA0B;IAC1E,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC7E,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,UAAU,EAAE,SAAS,KAAK,aAAa,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,UAA0B;IACnE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACxF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,iBAAwB,EACxB,QAAiC,EACjC,yBAAiE;IAEjE,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,IAAI,yBAAyB,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mFAAmF;IACnF,2DAA2D;IAC3D;;;;;;;;MAQE;IACF,kDAAkD;IAElD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,aAAoB,EACpB,QAA6D;IAE7D,wFAAwF;IACxF,mFAAmF;IACnF,8EAA8E;IAC9E,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,0BAA0B,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgB,EAChB,aAAoB,EACpB,QAA8D;IAE9D,OAAO,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,aAAoB,EACpB,QAA4D;IAE5D,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEnC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgB,EAChB,aAAoB,EACpB,QAA8D;IAE9D,OAAO,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,aAAoB,EACpB,QAA4D;IAE5D,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;;;;;;MAUE;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,yCAAyC;IACzC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;AACT,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgB,EAChB,aAAoB,EACpB,QAA4D;IAE5D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;;;;;;MAUE;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACzC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;AACT,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAgB,EAChB,aAAoB,EACpB,QAA6D,EAC7D,SAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC3C,8CAA8C;IAC9C,IAAI,OAAO;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB,+BAA+B;IAC/B;;;;;;;;;;;MAWE;IAEF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,aAAoB,EACpB,QAAwE;IAExE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5D,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB;;;;;;;;;;MAUE;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACzC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,2CAA2C;IAC3C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;AACT,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgB,EAChB,aAAoB,EACpB,QAAuE;IAEvE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtB;;;;;;;;;;MAUE;IAEF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM;aACzC,MAAM,CAAC,yBAAyB,CAAC;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,gFAAgF;IAChF,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO;AACT,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAY;IAEZ,OAAO,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,cAAc,CAAC,KAAY,EAAE,IAAyB;IAC7D,IAAI,OAAO,GAAsB,KAAK,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,QAAQ,OAAO,EAAE,SAAS,EAAE,CAAC;YAC3B,KAAK,aAAa;gBAChB,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;gBACxD,MAAM;YACR,KAAK,YAAY;gBACf,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAa,CAAC,CAAC;gBACxC,MAAM;YACR;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,KAAY,EAAE,IAAU;IACzE,OAAO,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;YAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChE,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1E,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACrE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib.d.ts.map b/dist/src/lib.d.ts.map -index f94764eda96fef5ff4887967ba980ccb78e18435..eba817552d6604e6c70565a103a180805459feb5 100644 ---- a/dist/src/lib.d.ts.map -+++ b/dist/src/lib.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,qCAAqC,GAAG,MAAM,GAAG,YAAY,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AACnD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IAEH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAEpD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAE5C;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAE,qCAAqC,CAAC;IAE1E;;;;;;;OAOG;IACH,uBAAuB,CAAC,EACpB,mBAAmB,GACnB;QACE,kDAAkD;QAClD,IAAI,EAAE,mBAAmB,CAAC;QAC1B,4DAA4D;QAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEN;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,KAAK,GAAG,eAAe,CAAC;AA+K/E,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAuKf,CAAC;AACH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC"} -\ No newline at end of file -+{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,qCAAqC,GAAG,MAAM,GAAG,YAAY,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AACnD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IAEH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAEpD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAE5C;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAE,qCAAqC,CAAC;IAE1E;;;;;;;OAOG;IACH,uBAAuB,CAAC,EACpB,mBAAmB,GACnB;QACE,kDAAkD;QAClD,IAAI,EAAE,mBAAmB,CAAC;QAC1B,4DAA4D;QAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEN;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,KAAK,GAAG,eAAe,CAAC;AA+K/E,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA6Kf,CAAC;AACH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC"} -\ No newline at end of file -diff --git a/dist/src/lib.js b/dist/src/lib.js -index f5e9c8807c8fe194cb9d6e6e87ae7fe6ab2321d6..7946249a1df78409921be5a4e903e7501d6591fd 100644 ---- a/dist/src/lib.js -+++ b/dist/src/lib.js -@@ -1,4 +1,4 @@ --import { createTypeSpecLibrary, paramMessage } from "@typespec/compiler"; -+import { createTypeSpecLibrary, fileRef, paramMessage } from "@typespec/compiler"; - const operationIdStrategySchema = { - type: "string", - enum: ["parent-container", "fqn", "explicit-only"], -@@ -157,10 +157,10 @@ const EmitterOptionsSchema = { - nullable: true, - default: "default", - description: [ -- "How to emit TypeSpec enums. Options are:", -+ "How to emit TypeSpec enums and unions of literals. Options are:", - " - `default`: Emit as a single schema using the `enum` keyword.", - " - `annotated`: Emit as a `oneOf` of `const` subschemas annotated with `title` and `description`", -- " from each member's `@summary` and `@doc`. Follows the OpenAPI 3.1.1 annotated enumerations pattern.", -+ " from each member's/variant's `@summary` and `@doc`. Follows the OpenAPI 3.1.1 annotated enumerations pattern.", - " Only supported by OpenAPI 3.1.0 and above; on 3.0.0 the `default` style is used and a warning is reported.", - ].join("\n"), - }, -@@ -187,6 +187,7 @@ export const $lib = createTypeSpecLibrary({ - }, - "invalid-server-variable": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/invalid-server-variable.md"), - messages: { - default: paramMessage `Server variable '${"propName"}' must be assignable to 'string'. It must either be a string, enum of string or union of strings.`, - }, -@@ -218,12 +219,14 @@ export const $lib = createTypeSpecLibrary({ - }, - "path-query": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/path-query.md"), - messages: { - default: `OpenAPI does not allow paths containing a query string.`, - }, - }, - "duplicate-header": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/duplicate-header.md"), - messages: { - default: paramMessage `The header ${"header"} is defined across multiple content types`, - }, -@@ -236,12 +239,14 @@ export const $lib = createTypeSpecLibrary({ - }, - "invalid-schema": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/invalid-schema.md"), - messages: { - default: paramMessage `Couldn't get schema for type ${"type"}`, - }, - }, - "union-null": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/union-null.md"), - messages: { - default: "Cannot have a union containing only null types.", - }, -@@ -266,6 +271,7 @@ export const $lib = createTypeSpecLibrary({ - }, - "inline-cycle": { - severity: "error", -+ docs: fileRef.fromPackageRoot("src/diagnostics/inline-cycle.md"), - messages: { - default: paramMessage `Cycle detected in '${"type"}'. Use @friendlyName decorator to assign an OpenAPI definition name and make it non-inline.`, - }, -diff --git a/dist/src/lib.js.map b/dist/src/lib.js.map -index 226519caa6b10934c31b186f007e448dd784f860..eb571b495fa01d6938da9443e35313f389c731b4 100644 ---- a/dist/src/lib.js.map -+++ b/dist/src/lib.js.map -@@ -1 +1 @@ --{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/openapi-spec-mappings.js b/dist/src/openapi-spec-mappings.js -index 8476a75479a40269d4019b5703ae5d8fad221bbc..8dda4e9ab3ac4a55413cc767312c967177503228 100644 ---- a/dist/src/openapi-spec-mappings.js -+++ b/dist/src/openapi-spec-mappings.js -@@ -40,11 +40,20 @@ export function getOpenApiSpecProps(specVersion) { - } - function createRoot(program, serviceType, specVersion, serviceVersion) { - const info = resolveInfo(program, serviceType); -+ // Handle license identifier: for OpenAPI 3.0, use x-oai-license-identifier extension -+ let processedInfo = info; -+ if (info?.license?.identifier !== undefined && specVersion === "3.0.0") { -+ const { identifier, ...restLicense } = info.license; -+ processedInfo = { -+ ...info, -+ license: { ...restLicense, "x-oai-license-identifier": identifier }, -+ }; -+ } - return { - openapi: specVersion, - info: { - title: "(title)", -- ...info, -+ ...processedInfo, - version: serviceVersion ?? info?.version ?? "0.0.0", - }, - externalDocs: getExternalDocs(program, serviceType), -diff --git a/dist/src/openapi-spec-mappings.js.map b/dist/src/openapi-spec-mappings.js.map -index 97b9b84a65a19b34b93fbf7df1564124b86fc650..62b3a43c3dd2e0970284803542709e22f9f33712 100644 ---- a/dist/src/openapi-spec-mappings.js.map -+++ b/dist/src/openapi-spec-mappings.js.map -@@ -1 +1 @@ --{"version":3,"file":"openapi-spec-mappings.js","sourceRoot":"","sources":["../../src/openapi-spec-mappings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EACL,aAAa,IAAI,gBAAgB,EACjC,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,IAAI,gBAAgB,EACjC,kBAAkB,IAAI,qBAAqB,EAC3C,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AA0CjE,MAAM,UAAU,mBAAmB,CAAC,WAA2B;IAC7D,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,OAAO;YACV,OAAO;gBACL,aAAa,EAAE,gBAAgB;gBAC/B,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc;oBAChD,OAAO,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBACvE,CAAC;gBACD,mBAAmB,EAAE,sBAAsB;gBAC3C,kBAAkB,EAAE,qBAAqB;gBACzC,iBAAiB,EAAE,oBAAoB;aACxC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,aAAa,EAAE,gBAAgB;gBAC/B,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc;oBAChD,OAAO,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBACvE,CAAC;gBACD,mBAAmB,EAAE,sBAAsB;gBAC3C,kBAAkB,EAAE,qBAAqB;gBACzC,iBAAiB,EAAE,oBAAoB;aACxC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,aAAa,EAAE,gBAAgB;gBAC/B,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc;oBAChD,OAAO,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;gBACvE,CAAC;gBACD,mBAAmB,EAAE,sBAAsB;gBAC3C,kBAAkB,EAAE,qBAAqB;gBACzC,iBAAiB,EAAE,oBAAoB;aACxC,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,OAAgB,EAChB,WAAsB,EACtB,WAA2B,EAC3B,cAAuB;IAEvB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE/C,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE;YACJ,KAAK,EAAE,SAAS;YAChB,GAAG,IAAI;YACP,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE,OAAO,IAAI,OAAO;SACpD;QACD,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC;QACnD,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE;YACV,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,EAAE;SACpB;KACF,CAAC;AACJ,CAAC"} -\ No newline at end of file -+{"version":3,"file":"openapi-spec-mappings.js","sourceRoot":"","sources":["../../src/openapi-spec-mappings.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/openapi.d.ts.map b/dist/src/openapi.d.ts.map -index bf8d606dc4026dc03b5d82b4ab75661100b9e298..34966a9c641ca14e3e275cbcdff8c36593dc8f98 100644 ---- a/dist/src/openapi.d.ts.map -+++ b/dist/src/openapi.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,WAAW,EA4BX,OAAO,EAEP,OAAO,EAKR,MAAM,oBAAoB,CAAC;AA8C5B,OAAO,EAEL,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAcL,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AAuBpB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,iBASzE;AAED,KAAK,yCAAyC,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,yCAAyC,CAAM,GACpF,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,GAC3C,8BAA8B,CAmChC;AA6BD,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,aAAa,GAAG,OAAO,CAAC;IAC9C,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAClD,mBAAmB,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE,YAAY,CAAC;CAC5B"} -\ No newline at end of file -+{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,WAAW,EA6BX,OAAO,EAEP,OAAO,EAKR,MAAM,oBAAoB,CAAC;AA8C5B,OAAO,EAEL,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAcL,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AAuBpB,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,iBASzE;AAED,KAAK,yCAAyC,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,yCAAyC,CAAM,GACpF,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,GAC3C,8BAA8B,CAmChC;AA6BD,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,aAAa,GAAG,OAAO,CAAC;IAC9C,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAClD,mBAAmB,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE,YAAY,CAAC;CAC5B"} -\ No newline at end of file -diff --git a/dist/src/openapi.js b/dist/src/openapi.js -index 75819a78ad4cd3531d5b4e7c2d69054cba50c50d..db2439c86ca33488f137a70809d2d20fc77640c2 100644 ---- a/dist/src/openapi.js -+++ b/dist/src/openapi.js -@@ -1,4 +1,4 @@ --import { compilerAssert, createDiagnosticCollector, emitFile, getAllTags, getAnyExtensionFromPath, getDoc, getFormat, getMaxItems, getMaxLength, getMaxValueExclusive, getMinItems, getMinLength, getMinValueExclusive, getNamespaceFullName, getPattern, getService, getSummary, ignoreDiagnostics, interpolatePath, isDeprecated, isGlobalNamespace, isNeverType, isSecret, isVoidType, listServices, navigateTypesInNamespace, NoTarget, resolvePath, } from "@typespec/compiler"; -+import { compilerAssert, createDiagnosticCollector, emitFile, getAllTags, getAnyExtensionFromPath, getDoc, getEncode, getFormat, getMaxItems, getMaxLength, getMaxValueExclusive, getMinItems, getMinLength, getMinValueExclusive, getNamespaceFullName, getPattern, getService, getSummary, ignoreDiagnostics, interpolatePath, isDeprecated, isGlobalNamespace, isNeverType, isSecret, isVoidType, listServices, navigateTypesInNamespace, NoTarget, resolvePath, } from "@typespec/compiler"; - import { unsafe_mutateSubgraphWithNamespace, } from "@typespec/compiler/experimental"; - import { $ } from "@typespec/compiler/typekit"; - import { createPerfReporter, perf } from "@typespec/compiler/utils"; -@@ -551,7 +551,7 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - .map((op) => func(program, op.operation)) - .filter((op) => op !== undefined); - if (values.length) { -- return values.join(joinChar); -+ return values.join(joinChar).trim(); - } - else { - return undefined; -@@ -565,6 +565,9 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - if (uniqueOpIds.size === 1) - return uniqueOpIds.values().next().value; - return operationIds.join("_"); -+ // return [ -+ // ...new Set(shared.operations.map((op) => resolveOperationId(program, op.operation))), -+ // ].join("_"); - } - function getOperationOrSharedOperation(operation) { - if (isSharedHttpOperation(operation)) { -@@ -583,7 +586,7 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - }); - const oai3Operation = { - operationId: computeSharedOperationId(shared), -- parameters: [], -+ parameters: undefined, - description: joinOps(operations, getDoc, " "), - summary: joinOps(operations, getSummary, " "), - responses: getSharedResponses(shared, examples), -@@ -622,7 +625,10 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - })); - } - const visibility = visibilities[0]; -- oai3Operation.parameters = getEndpointParameters(resolveSharedRouteParameters(operations), visibility, examples); -+ const endpointParameters = getEndpointParameters(resolveSharedRouteParameters(operations), visibility, examples); -+ if (endpointParameters.length > 0) { -+ oai3Operation.parameters = endpointParameters; -+ } - const bodies = [ - ...new Set(operations.map((op) => op.parameters.body).filter((x) => x !== undefined)), - ]; -@@ -646,11 +652,12 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - const examples = resolveOperationExamples(program, operation, { - parameterExamplesStrategy: options.parameterExamplesStrategy, - }); -+ const endpointParameters = getEndpointParameters(parameters.properties, visibility, examples); - const oai3Operation = { - operationId: operationIdResolver.resolve(operation.operation), - summary: getSummary(program, operation.operation), - description: getDoc(program, operation.operation), -- parameters: getEndpointParameters(parameters.properties, visibility, examples), -+ parameters: endpointParameters.length > 0 ? endpointParameters : undefined, - responses: getResponses(operation, operation.responses, examples), - }; - const currentTags = getAllTags(program, op); -@@ -1016,6 +1023,14 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - } - return false; - } -+ function isParameterStyleEncoding(encoding) { -+ if (!encoding) -+ return false; -+ return ["ArrayEncoding.pipeDelimited", "ArrayEncoding.spaceDelimited"].includes(encoding); -+ } -+ function isDelimitedArrayEncoding(encoding) { -+ return ["ArrayEncoding.commaDelimited", "ArrayEncoding.newlineDelimited"].includes(encoding); -+ } - function getParameter(httpProperty, visibility, examples) { - const param = { - name: httpProperty.options.name, -@@ -1031,6 +1046,33 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - else { - Object.assign(param, attributes); - } -+ const encode = getEncode(program, httpProperty.property); -+ if (param.in === "query" && encode?.encoding && !isParameterStyleEncoding(encode.encoding)) { -+ param.explode = undefined; -+ param.style = undefined; -+ if (isDelimitedArrayEncoding(encode.encoding)) { -+ // `commaDelimited`/`newlineDelimited` array encodings have no OpenAPI `style` -+ // equivalent (only form/spaceDelimited/pipeDelimited/deepObject exist), so they -+ // are expressed via a `content` parameter with a `text/plain` media type instead. -+ param.content = { -+ "text/plain": { -+ schema: param.schema, -+ }, -+ }; -+ } -+ else { -+ // Any other encoding (e.g. @encode("application/json")) names the media type the -+ // parameter is serialized as. Drop the scalar type that applyEncoding stamped on -+ // the schema so the content schema keeps its original shape. -+ param.schema.type = undefined; -+ param.content = { -+ [encode.encoding]: { -+ schema: param.schema, -+ }, -+ }; -+ } -+ param.schema = undefined; -+ } - if (isDeprecated(program, httpProperty.property)) { - param.deprecated = true; - } -@@ -1243,9 +1285,13 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - attributes.explode = false; - } - const style = getParameterStyle(program, httpProperty.property); -+ // Prioritize @encode-based style over explicit options.style - if (style) { - attributes.style = style; - } -+ else if (httpProperty.options.style) { -+ attributes.style = httpProperty.options.style; -+ } - return attributes; - } - function getHeaderParameterAttributes(httpProperty) { -@@ -1346,6 +1392,9 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - const extensions = getExtensions(program, type); - if (extensions) { - for (const key of extensions.keys()) { -+ if (key === "x-inline") { -+ continue; -+ } - emitObject[key] = extensions.get(key); - } - } -@@ -1442,7 +1491,9 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - securityOption[httpAuthRef.auth.id] = httpAuthRef.scopes; - continue; - default: -- securityOption[httpAuthRef.auth.id] = []; -+ // Requirement scopes for any scheme that carries them (e.g. -+ // openIdConnect). Schemes without scopes resolve to an empty array. -+ securityOption[httpAuthRef.auth.id] = httpAuthRef.scopes; - } - } - return securityOption; -@@ -1460,6 +1511,11 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { - return undefined; - } - function getOpenAPI3Scheme(auth) { -+ // Check if the auth model has a @useRef decorator -+ const refUrl = getRef(program, auth.model); -+ if (refUrl) { -+ return { $ref: refUrl }; -+ } - const scheme = getOpenAPI3SchemeInternal(auth); - if (scheme) { - attachExtensions(program, auth.model, scheme); -diff --git a/dist/src/openapi.js.map b/dist/src/openapi.js.map -index 4dff1f80d3e6a11a44e4b95f924456687bf0df70..fde7a717ceefc7489b940480e50f17488f2bc3dc 100644 ---- a/dist/src/openapi.js.map -+++ b/dist/src/openapi.js.map -@@ -1 +1 @@ --{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/parameters.d.ts b/dist/src/parameters.d.ts -index f1f466de396867d883e825b4f15260324a1fc575..52f54826ff66ef1e75958f0a699917316604bfc6 100644 ---- a/dist/src/parameters.d.ts -+++ b/dist/src/parameters.d.ts -@@ -1,3 +1,10 @@ - import { ModelProperty, Program } from "@typespec/compiler"; --export declare function getParameterStyle(program: Program, type: ModelProperty): "pipeDelimited" | "spaceDelimited" | "commaDelimited" | "newlineDelimited" | undefined; -+export declare function getParameterStyle(program: Program, type: ModelProperty): "pipeDelimited" | "spaceDelimited" | undefined; -+/** -+ * Resolve the delimiter used to serialize an array-encoded query parameter, for both the -+ * `style`-based encodings and the `content`-based ones. Used when serializing examples, -+ * where the actual serialized value is needed regardless of how the parameter is expressed -+ * in the OpenAPI document. Returns `undefined` when no array encoding applies. -+ */ -+export declare function getArrayEncodingDelimiter(program: Program, type: ModelProperty): "|" | " " | "," | "\n" | undefined; - //# sourceMappingURL=parameters.d.ts.map -\ No newline at end of file -diff --git a/dist/src/parameters.d.ts.map b/dist/src/parameters.d.ts.map -index e800c7de5fb1f3d135f7b3c7d2ec236af83e0e41..8f4d91844530c087535860599fbff28f3e620179 100644 ---- a/dist/src/parameters.d.ts.map -+++ b/dist/src/parameters.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEvE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAClB,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,CAcxF"} -\ No newline at end of file -+{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEvE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAClB,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAahD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAClB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,CAgBpC"} -\ No newline at end of file -diff --git a/dist/src/parameters.js b/dist/src/parameters.js -index 7a7201cfcdc5c4825aba87b64b34415ae60c8e14..ff98ad6c0d873506ab80d90c0604824a449f5663 100644 ---- a/dist/src/parameters.js -+++ b/dist/src/parameters.js -@@ -3,18 +3,38 @@ export function getParameterStyle(program, type) { - const encode = getEncode(program, type); - if (!encode) - return; -+ // Only pipeDelimited and spaceDelimited have OpenAPI `style` equivalents. Other array -+ // encodings (commaDelimited, newlineDelimited) have no `style` representation and are -+ // emitted as `content` parameters by the caller. - if (encode.encoding === "ArrayEncoding.pipeDelimited") { - return "pipeDelimited"; - } - else if (encode.encoding === "ArrayEncoding.spaceDelimited") { - return "spaceDelimited"; - } -- else if (encode.encoding === "ArrayEncoding.commaDelimited") { -- return "commaDelimited"; -- } -- else if (encode.encoding === "ArrayEncoding.newlineDelimited") { -- return "newlineDelimited"; -- } - return; - } -+/** -+ * Resolve the delimiter used to serialize an array-encoded query parameter, for both the -+ * `style`-based encodings and the `content`-based ones. Used when serializing examples, -+ * where the actual serialized value is needed regardless of how the parameter is expressed -+ * in the OpenAPI document. Returns `undefined` when no array encoding applies. -+ */ -+export function getArrayEncodingDelimiter(program, type) { -+ const encode = getEncode(program, type); -+ if (!encode) -+ return; -+ switch (encode.encoding) { -+ case "ArrayEncoding.pipeDelimited": -+ return "|"; -+ case "ArrayEncoding.spaceDelimited": -+ return " "; -+ case "ArrayEncoding.commaDelimited": -+ return ","; -+ case "ArrayEncoding.newlineDelimited": -+ return "\n"; -+ default: -+ return; -+ } -+} - //# sourceMappingURL=parameters.js.map -\ No newline at end of file -diff --git a/dist/src/parameters.js.map b/dist/src/parameters.js.map -index c0df12150a8f2a021577ba58a17b0bcc29c9b7bc..8ac9013422c23af15c1cb77c116f833456257cb5 100644 ---- a/dist/src/parameters.js.map -+++ b/dist/src/parameters.js.map -@@ -1 +1 @@ --{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAEvE,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,IAAmB;IAEnB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,MAAM,CAAC,QAAQ,KAAK,6BAA6B,EAAE,CAAC;QACtD,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,8BAA8B,EAAE,CAAC;QAC9D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,8BAA8B,EAAE,CAAC;QAC9D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,gCAAgC,EAAE,CAAC;QAChE,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO;AACT,CAAC"} -\ No newline at end of file -+{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAEvE,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,IAAmB;IAEnB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,sFAAsF;IACtF,sFAAsF;IACtF,iDAAiD;IACjD,IAAI,MAAM,CAAC,QAAQ,KAAK,6BAA6B,EAAE,CAAC;QACtD,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,8BAA8B,EAAE,CAAC;QAC9D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAgB,EAChB,IAAmB;IAEnB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,6BAA6B;YAChC,OAAO,GAAG,CAAC;QACb,KAAK,8BAA8B;YACjC,OAAO,GAAG,CAAC;QACb,KAAK,8BAA8B;YACjC,OAAO,GAAG,CAAC;QACb,KAAK,gCAAgC;YACnC,OAAO,IAAI,CAAC;QACd;YACE,OAAO;IACX,CAAC;AACH,CAAC"} -\ No newline at end of file -diff --git a/dist/src/schema-emitter-3-1.d.ts.map b/dist/src/schema-emitter-3-1.d.ts.map -index 53b1ae026c79363ebdfc3e2297cbcce23821175d..f5f5475e4773d65f69cf120a10016117b4543450 100644 ---- a/dist/src/schema-emitter-3-1.d.ts.map -+++ b/dist/src/schema-emitter-3-1.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"schema-emitter-3-1.d.ts","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,aAAa,EACb,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,IAAI,EAOJ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,aAAa,EAEb,MAAM,EACN,KAAK,EAEL,KAAK,EACN,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAY,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkBxD,eAAO,MAAM,sBAAsB,EAAE,mBAWpC,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB,CAAC,gBAAgB,CAAC;;IAgBrF,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACvC,SAAS,CAAC,EAAE,gBAAgB;IAuD9B,aAAa,CACX,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,GACvD,gBAAgB;IAInB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAUjE,kBAAkB,IAAI,gBAAgB;IAItC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAAG,gBAAgB;IAYxF,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,gBAAgB;cAgDnB,yBAAyB,CAC1C,SAAS,EAAE,GAAG,EACd,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,GAAG;IAiBN,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAmF1D,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAgBxE,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAO9D,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAOrE"} -\ No newline at end of file -+{"version":3,"file":"schema-emitter-3-1.d.ts","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACb,aAAa,EACb,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,IAAI,EAOJ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,aAAa,EAEb,MAAM,EACN,KAAK,EAEL,KAAK,EAEN,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAY,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkBxD,eAAO,MAAM,sBAAsB,EAAE,mBAWpC,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB,CAAC,gBAAgB,CAAC;;IAgBrF,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACvC,SAAS,CAAC,EAAE,gBAAgB;IAuD9B,aAAa,CACX,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,GACvD,gBAAgB;IAInB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAUjE,kBAAkB,IAAI,gBAAgB;IAItC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAAG,gBAAgB;IAYxF,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,gBAAgB;cAgDnB,yBAAyB,CAC1C,SAAS,EAAE,GAAG,EACd,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,GAAG;IAqCN,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,gBAAgB,CAAC;IA4F1D,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAgBxE,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAO9D,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAOrE"} -\ No newline at end of file -diff --git a/dist/src/schema-emitter-3-1.js b/dist/src/schema-emitter-3-1.js -index a6d1324516cf60388020a91e413c0e85a5936efd..0b84b80b3fbd20c29b87c22d648fb51eeacf609b 100644 ---- a/dist/src/schema-emitter-3-1.js -+++ b/dist/src/schema-emitter-3-1.js -@@ -154,6 +154,25 @@ export class OpenAPI31SchemaEmitter extends OpenAPI3SchemaEmitterBase { - } - return merged; - } -+ // Builds an annotated `const` subschema for a single literal union variant, -+ // mirroring `#annotatedEnumSchema`'s per-member handling: the variant value -+ // becomes `const`, `@summary` becomes `title`, and the doc comment/`@doc` -+ // becomes `description`. Title/description are omitted when absent. Like the -+ // enum case, the variant name is NOT used as a title fallback. -+ #annotatedVariantSchema(variant) { -+ const program = this.emitter.getProgram(); -+ compilerAssert(isLiteralType(variant.type), "Expected a literal union variant"); -+ const subschema = { const: variant.type.value }; -+ const title = getSummary(program, variant); -+ if (title !== undefined) { -+ subschema.title = title; -+ } -+ const description = getDoc(program, variant); -+ if (description !== undefined) { -+ subschema.description = description; -+ } -+ return subschema; -+ } - unionSchema(union) { - const program = this.emitter.getProgram(); - const [discriminated] = getDiscriminatedUnion(program, union); -@@ -178,6 +197,15 @@ export class OpenAPI31SchemaEmitter extends OpenAPI3SchemaEmitterBase { - } - // 3.a. Literal types are actual values (though not Value types) - if (isLiteralType(variant.type)) { -+ // With the annotated enum strategy, emit each literal variant as its own -+ // `const` subschema carrying per-variant `title`/`description` (from -+ // `@summary`/`@doc`), following the OpenAPI 3.1.1 annotated enumerations -+ // pattern. This preserves the variant-level documentation that the -+ // default `enum`-merge form below discards. See `#annotatedVariantSchema`. -+ if (this._options.enumStrategy === "annotated") { -+ schemaMembers.push({ schema: this.#annotatedVariantSchema(variant), type: null }); -+ continue; -+ } - // Create schemas grouped by kind (boolean, string, numeric) - // and add the literals seen to each respective `enum` array - if (!literalVariantEnumByType[variant.type.kind]) { -diff --git a/dist/src/schema-emitter-3-1.js.map b/dist/src/schema-emitter-3-1.js.map -index b55bb8c6ba744671287b4a739a336c4f6a1d218d..6772d1945f70db2f1b6b1f50fbea2a0707861a51 100644 ---- a/dist/src/schema-emitter-3-1.js.map -+++ b/dist/src/schema-emitter-3-1.js.map -@@ -1 +1 @@ --{"version":3,"file":"schema-emitter-3-1.js","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"schema-emitter-3-1.js","sourceRoot":"","sources":["../../src/schema-emitter-3-1.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/schema-emitter.d.ts.map b/dist/src/schema-emitter.d.ts.map -index 174f31977c4c8e3050b6934fca56ffa6e9581f85..60609a4fe612cc8bbbf2f6311f49b9eb39d1fe35 100644 ---- a/dist/src/schema-emitter.d.ts.map -+++ b/dist/src/schema-emitter.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,EAEL,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,cAAc,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,KAAK,EACL,IAAI,EAEJ,KAAK,EACL,YAAY,EAqBb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAmC,MAAM,gBAAgB,CAAC;AAW/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAwB,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAO7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,yBAAyB,CACpC,MAAM,SAAS,cAAc,GAAG,gBAAgB,CAChD,SAAQ,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC;;IAChE,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IACtC,SAAS,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IACnD,SAAS,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IACnD,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC1D,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;gBAG1C,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,EAClE,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,8BAA8B,EACvC,oBAAoB,EAAE;QACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB;IAWH,gCAAgC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrE,4BAA4B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAInD,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxE,+BAA+B,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhE,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIvD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAelC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAgBrD,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAUvC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAiCjE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IA6DhE,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAYjD,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAS9F,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAQlF,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;IAUnF,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;IAUpE,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO;IA0CtE,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAqCrF,kBAAkB,IAAI,MAAM;IAI5B,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IA2EhE;;;;;;;;OAQG;IACH,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG;IAOtF,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAI9D,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAI3D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAW7D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC;IAI7D,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAM9D,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM;IAK5B,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIlE,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAY3E,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAMnE,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAyFhD,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC;IAuFpE,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAgBnD,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAIjD,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;IAQlD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;IAI1D,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;IAIlE,SAAS,CACP,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EACxC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,EAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,GACjD,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAiB/C,iBAAiB,CACf,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACvC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EAC7C,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAcxD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAWtE,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIrC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAmB9D,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,GAAG,MAAM;IAI9E,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM;IAGpB,gBAAgB,CACd,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAAC,MAAM,CAAC;IAqDxB,QAAQ,CACN,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,EACnD,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAqEP,aAAa,CACX,YAAY,EAAE,MAAM,GAAG,aAAa,EACpC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GACnC,MAAM;IAIT,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAI1C;AAED,eAAO,MAAM,QAAQ;qBACX,CAAC,SAAS,CAAC,EAAE,KAAG,YAAY,CAAC,CAAC,CAAC;sBAO9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,KAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAOrE,CAAC"} -\ No newline at end of file -+{"version":3,"file":"schema-emitter.d.ts","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/schema-emitter.js b/dist/src/schema-emitter.js -index 55aaba4a79406d2c870eeee7998e073e22193986..a4f083d1b4ed786537478d1fedb144f9546eca20 100644 ---- a/dist/src/schema-emitter.js -+++ b/dist/src/schema-emitter.js -@@ -196,8 +196,17 @@ export class OpenAPI3SchemaEmitterBase extends TypeEmitter { - })); - } - arrayLiteralReferenceContext(array, elementType) { -+ // Array elements are emitted with the Item visibility flag so that metadata which is -+ // inapplicable to array items (e.g. @header) can be treated differently than in the -+ // top-level payload. However, if the element type is not actually transformed under -+ // the Item visibility, carrying the flag would create a second, byte-identical -+ // declaration (with a spurious "Item" name suffix) that collides with the canonical -+ // one. In that case we keep the base visibility so the element reuses the existing -+ // declaration. -+ const base = this.#getVisibilityContext(); -+ const withItem = base | Visibility.Item; - return { -- visibility: this.#getVisibilityContext() | Visibility.Item, -+ visibility: this._metadataInfo.isTransformed(elementType, withItem) ? withItem : base, - }; - } - #requiredModelProperties(model, visibility) { -diff --git a/dist/src/schema-emitter.js.map b/dist/src/schema-emitter.js.map -index aba5f24b23b6af7054d155d6e632c9366b120ee5..a23da04e85e68d6e3b5c069c4a7bd407787f5381 100644 ---- a/dist/src/schema-emitter.js.map -+++ b/dist/src/schema-emitter.js.map -@@ -1 +1 @@ --{"version":3,"file":"schema-emitter.js","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -+{"version":3,"file":"schema-emitter.js","sourceRoot":"","sources":["../../src/schema-emitter.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/types.d.ts b/dist/src/types.d.ts -index 8cf21b8b41ec3f017f6bd7b21ae3445afa6493e7..fe172d2cb450b9528a441b752361c163eafb69a1 100644 ---- a/dist/src/types.d.ts -+++ b/dist/src/types.d.ts -@@ -517,7 +517,7 @@ export type OpenAPI3ParameterBase = Extensions & { - /** A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry. */ - content?: Record; - }; --export type OpenAPI3QueryParameter = OpenAPI3ParameterBase & { -+export type OpenAPI3QueryParameter = Omit & { - /** Name of the parameter. */ - name: string; - in: "query"; -@@ -528,6 +528,12 @@ export type OpenAPI3QueryParameter = OpenAPI3ParameterBase & { - * @see https://spec.openapis.org/oas/v3.0.4.html#style-values - */ - style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; -+ content?: { -+ [mediaType: string]: { -+ schema: OpenAPI3Schema; -+ }; -+ }; -+ schema?: OpenAPI3Schema; - }; - export type OpenAPI3PathParameter = OpenAPI3ParameterBase & { - /** Name of the parameter. */ -@@ -590,7 +596,7 @@ export type OpenAPI3Operation = Extensions & { - tags?: string[]; - operationId?: string; - requestBody?: Refable; -- parameters: Refable[]; -+ parameters?: Refable[]; - deprecated?: boolean; - security?: Record[]; - }; -diff --git a/dist/src/types.d.ts.map b/dist/src/types.d.ts.map -index 4791e2bbdac254f2ad57fb7a62183a2001a6dcaf..e4c4ab634d6a39e932ab72177667c6f6b22dfe20 100644 ---- a/dist/src/types.d.ts.map -+++ b/dist/src/types.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAExF,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE1F,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEnG,MAAM,MAAM,UAAU,GAAG;KACtB,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG;CAC5B,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB,yCAAyC;IACzC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAExC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IAErB,gEAAgE;IAChE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC,kTAAkT;IAClT,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B,gCAAgC,GAChC,8BAA8B,CAAC;AAEnC,MAAM,WAAW,gCAAgC;IAC/C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAE1B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAE7C,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,EAAE,CAAC;CACtD;AAED;;GAEG;AAEH,MAAM,WAAW,+BAA+B;IAC9C,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAE7C,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,MAAM,kBAAkB,GAC1B,KAAK,GACL,KAAK,GACL,MAAM,GACN,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;KAC5B,MAAM,IAAI,kBAAkB,CAAC,CAAC,EAAE,iBAAiB;CACnD,GAAG;IAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACzD,GAAG,UAAU,CAAC;AAEf,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,uGAAuG;IACvG,WAAW,EAAE,MAAM,CAAC;IAEpB,iLAAiL;IACjL,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAElD,+PAA+P;IAC/P,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE5C,8LAA8L;IAC9L,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjC,gRAAgR;IAChR,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE5C,cAAc;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAC1C,0bAA0b;IAC1b,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qQAAqQ;IACrQ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAElD,4UAA4U;IAC5U,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;IAEnE,6ZAA6Z;IAC7Z,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oSAAoS;IACpS,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG;IAC7C,+IAA+I;IAC/I,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iOAAiO;IACjO,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE3C,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,4BAA4B,GAC5B,mCAAmC,GACnC,0BAA0B,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,UAAU;IAC5D,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC9E,aAAa;IACb,IAAI,EAAE,QAAQ,CAAC;IAEf,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,6GAA6G;IAC7G,MAAM,EAAE,MAAM,CAAC;IAEf,uMAAuM;IACvM,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAE9E,IAAI,EAAE,QAAQ,CAAC;IAEf,mFAAmF;IACnF,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC,yGAAyG;IACzG,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAElD,wGAAwG;IACxG,iBAAiB,CAAC,EAAE,kCAAkC,CAAC;CACxD;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wHAAwH;IACxH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,yGAAyG;AACzG,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+DAA+D;AAC/D,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,yFAAyF;IACzF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wGAAwG;AACxG,MAAM,WAAW,kCAAmC,SAAQ,kBAAkB;IAC5E,yFAAyF;IACzF,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mCAAmC;AACnC,MAAM,WAAW,mCAAoC,SAAQ,0BAA0B;IACrF,qBAAqB;IACrB,IAAI,EAAE,eAAe,CAAC;IAEtB,qGAAqG;IACrG,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACpB;IACE,0QAA0Q;IAC1Q,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CAC5B,GACD;IACE,2JAA2J;IAC3J,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAErC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mCAAmC;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAElC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAElC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAElC;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9B,sIAAsI;IACtI,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAErD,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1D,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wKAAwK;IACxK,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC,yDAAyD;IACzD,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,8OAA8O;IAC9O,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mKAAmK;IACnK,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,2IAA2I;IAC3I,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wNAAwN;IACxN,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iHAAiH;IACjH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,sTAAsT;IACtT,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjC,8OAA8O;IAC9O,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,yJAAyJ;IACzJ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,CAAC;CACpE,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAC5D,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAC5D,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,CAAC;AAC5B,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;CACvC,CAAC;AAGF,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEpC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,SAAS,GACT,SAAS,GACT,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,UAAU,CAAC,sBAAsB,SAAS,EAAE,GAAG,EAAE,IAAI,sBAAsB,GAAG;IACxF;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;IAE5C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE5D;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEjE;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IAEjB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;IAEtD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;IAEtD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;IAEtD;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;IAE5D;;;;SAIK;IACL,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEvD;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,GAAG,UAAU,CAAC,sBAAsB,CAAC,CACjF,CAAC;IAEF;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE7E;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE9E;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wKAAwK;IACxK,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC,yDAAyD;IACzD,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC;IACE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC;;;;OAIG;IACH,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,GAAG,UAAU,CACf,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,yCAAyC;IACzC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE5C;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IAErB,gEAAgE;IAChE,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,kBAAkB,EAClB,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CACrE;IACC,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,gEAAgE;IAChE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC;IACzF,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,oBAAoB,EAClB,WAAW,GACX,iBAAiB,GACjB,UAAU,GACV,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,eAAe,CAClB;IACC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACpE;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACxE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC3D,GAAG,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;IAC3E,+PAA+P;IAC/P,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC9E;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,8BACf,SAAQ,4BAA4B,EAAE,4BAA4B;CAAG;AAEvE,MAAM,WAAW,8BACf,SAAQ,4BAA4B,EAAE,IAAI,CAAC,4BAA4B,EAAE,OAAO,CAAC;IACjF,mFAAmF;IACnF,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,qCACf,SAAQ,4BAA4B,EAAE,mCAAmC;CAAG;AAE9E,MAAM,WAAW,4BACf,SAAQ,4BAA4B,EAAE,0BAA0B;CAAG;AAErE,MAAM,MAAM,wBAAwB,GAChC,8BAA8B,GAC9B,8BAA8B,GAC9B,qCAAqC,GACrC,4BAA4B,CAAC;AAEjC,yGAAyG;AACzG,MAAM,WAAW,iCAAkC,SAAQ,kBAAkB;IAC3E,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AACD;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;CACzD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CACvC;IACE;;;OAGG;IACH,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC,GAAG,UAAU,CACf,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,SAAS,CAAC;IAC3F;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CAC5E;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,iBAAiB,EACjB,WAAW,GAAG,YAAY,GAAG,aAAa,CAC3C,GAAG;IACF,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC9C,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,YAAY,CAAC,GAAG;KAC1F,MAAM,IAAI,oBAAoB,CAAC,CAAC,EAAE,mBAAmB;CACvD,GAAG;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;CAC7C,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,qBAAqB,EACrB,SAAS,GAAG,UAAU,GAAG,QAAQ,CAClC,GAAG;IACF,yJAAyJ;IACzJ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,uBAAuB,EACvB,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,CACjD,GAAG;IACF,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,aAAa,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,uBAAuB,EACvB,SAAS,GAAG,UAAU,GAAG,OAAO,CACjC,GACC,uBAAuB,GAAG;IACxB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,UAAU,CAAC,GAC3F,uBAAuB,CAAC;AAC1B,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,UAAU,CAAC,GACvF,uBAAuB,CAAC;AAC1B,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,UAAU,CAAC,GACzF,uBAAuB,CAAC;AAC1B,MAAM,MAAM,mBAAmB,GAC3B,yBAAyB,GACzB,wBAAwB,GACxB,8BAA8B,GAC9B,uBAAuB,GACvB,yBAAyB,CAAC;AAC9B,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAEhE,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACjF,6PAA6P;IAC7P,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;CACvD"} -\ No newline at end of file -+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"} -\ No newline at end of file -diff --git a/dist/src/util.d.ts b/dist/src/util.d.ts -index 70b274ae41050861f5bdebddf6b84b8133b0d7a5..d9cb4a7993fe97415ae49fd1fc171e7481c1282f 100644 ---- a/dist/src/util.d.ts -+++ b/dist/src/util.d.ts -@@ -35,7 +35,7 @@ export declare function isStdType(program: Program, type: Type): type is Scalar - name: IntrinsicScalarName; - }; - export declare function isLiteralType(type: Type): type is StringLiteral | NumericLiteral | BooleanLiteral; --export declare function literalType(type: StringLiteral | NumericLiteral | BooleanLiteral): "string" | "number" | "boolean"; -+export declare function literalType(type: StringLiteral | NumericLiteral | BooleanLiteral): "boolean" | "number" | "string"; - export declare function includeDerivedModel(model: Model): boolean; - export declare function isScalarExtendsBytes(type: Type): boolean; - export declare function getDefaultValue(program: Program, defaultType: Value, modelProperty: ModelProperty): any; -diff --git a/dist/version.js b/dist/version.js -index b4f78c8c6a2b6f71ff327aa503b35e759c17ddb3..8cd00454ed0c9852a183de9a6f1eddce22bd702c 100644 ---- a/dist/version.js -+++ b/dist/version.js -@@ -1 +1 @@ --export const version = "1.14.0"; -\ No newline at end of file -+export const version = "1.11.0"; -\ No newline at end of file -diff --git a/package.json b/package.json -index 96ea040edbed0665ad2a8f8ae9ec3a8ad90b3627..c73cda357a64a8637c622fb4ce99254668ad2efb 100644 ---- a/package.json -+++ b/package.json -@@ -53,13 +53,13 @@ - }, - "peerDependencies": { - "@typespec/compiler": "^1.14.0", -- "@typespec/events": "^0.84.0", -- "@typespec/openapi": "^1.14.0", -- "@typespec/json-schema": "^1.14.0", - "@typespec/http": "^1.14.0", -+ "@typespec/json-schema": "^1.14.0", -+ "@typespec/openapi": "^1.14.0", - "@typespec/sse": "^0.84.0", -- "@typespec/streams": "^0.84.0", -- "@typespec/versioning": "^0.84.0" -+ "@typespec/events": "^0.84.0", -+ "@typespec/versioning": "^0.84.0", -+ "@typespec/streams": "^0.84.0" - }, - "peerDependenciesMeta": { - "@typespec/json-schema": { -@@ -91,21 +91,21 @@ - "typescript": "~6.0.2", - "vitest": "^4.1.3", - "@typespec/compiler": "^1.14.0", -+ "@typespec/http": "^1.14.0", -+ "@typespec/events": "^0.84.0", - "@typespec/json-schema": "^1.14.0", - "@typespec/library-linter": "^0.84.0", -- "@typespec/http": "^1.14.0", - "@typespec/openapi": "^1.14.0", -- "@typespec/events": "^0.84.0", -+ "@typespec/streams": "^0.84.0", - "@typespec/rest": "^0.84.0", - "@typespec/sse": "^0.84.0", -- "@typespec/streams": "^0.84.0", -+ "@typespec/xml": "^0.84.0", - "@typespec/tspd": "^0.76.0", -- "@typespec/versioning": "^0.84.0", -- "@typespec/xml": "^0.84.0" -+ "@typespec/versioning": "^0.84.0" - }, - "scripts": { - "clean": "rimraf ./dist ./temp", -- "build": "pnpm gen-version && pnpm gen-extern-signature && pnpm quickbuild && pnpm lint-typespec-library", -+ "build": "pnpm gen-extern-signature && pnpm quickbuild && pnpm lint-typespec-library", - "quickbuild": "tsc -p tsconfig.build.json", - "watch": "tsc -p tsconfig.build.json --watch", - "gen-extern-signature": "tspd --enable-experimental gen-extern-signature .", -@@ -118,7 +118,6 @@ - "lint:fix": "oxlint . --fix", - "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/emitters/openapi3/reference", - "regen-specs": "cross-env RECORD=true vitest run", -- "gen-version": "node scripts/generate-version.js", - "api-extractor": "api-extractor run --local --verbose" - } - } diff --git a/api/spec/patches/@typespec__openapi3@1.16.0.patch b/api/spec/patches/@typespec__openapi3@1.16.0.patch new file mode 100644 index 0000000000..3a8af83ab9 --- /dev/null +++ b/api/spec/patches/@typespec__openapi3@1.16.0.patch @@ -0,0 +1,576 @@ +diff --git a/dist/src/attach-extensions.js b/dist/src/attach-extensions.js +index 8e557682fd556430304cd178c93bb3e98cab7fdf..eb543fb17a926596f01227c4ee4610b3a7ecea5d 100644 +--- a/dist/src/attach-extensions.js ++++ b/dist/src/attach-extensions.js +@@ -4,6 +4,9 @@ export function attachExtensions(program, type, emitObject) { + const extensions = getExtensions(program, type); + if (extensions) { + for (const key of extensions.keys()) { ++ if (key === "x-inline") { ++ continue; ++ } + emitObject[key] = extensions.get(key); + } + } +diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts +new file mode 100644 +index 0000000000000000000000000000000000000000..eb1691d0b1ca8b04029159faaa1e828ff112e480 +--- /dev/null ++++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.d.ts +@@ -0,0 +1,10 @@ ++import { OpenAPI3Responses } from "../../../../types.js"; ++import { TypeSpecModel } from "../interfaces.js"; ++/** ++ * Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models. ++ * @param operationId - Used to generate model names with scopes. ++ * @param operationResponses - The responses object for an operation. ++ */ ++export declare function collectOperationResponses(operationId: string, operationResponses: OpenAPI3Responses): TypeSpecModel[]; ++export declare function generateResponseModelName(operationId: string, statusCode: string, contentType?: string): string; ++//# sourceMappingURL=transform-operation-responses.d.ts.map +\ No newline at end of file +diff --git a/dist/src/cli/actions/convert/transforms/transform-operation-responses.js b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js +new file mode 100644 +index 0000000000000000000000000000000000000000..7bb4bbbc630f8a50981928bfc0d5df203ed7431f +--- /dev/null ++++ b/dist/src/cli/actions/convert/transforms/transform-operation-responses.js +@@ -0,0 +1,175 @@ ++import { printIdentifier } from "@typespec/compiler"; ++import { convertHeaderName } from "../utils/convert-header-name.js"; ++import { getDecoratorsForSchema, getExtensions } from "../utils/decorators.js"; ++import { getScopeAndName } from "../utils/get-scope-and-name.js"; ++/** ++ * Transforms #/paths/{route}/{httpMethod}/responses into TypeSpec models. ++ * @param operationId - Used to generate model names with scopes. ++ * @param operationResponses - The responses object for an operation. ++ */ ++export function collectOperationResponses(operationId, operationResponses) { ++ const models = []; ++ const rootDecorators = getExtensions(operationResponses); ++ for (const statusCode of Object.keys(operationResponses)) { ++ const response = operationResponses[statusCode]; ++ const decorators = [...rootDecorators]; ++ if ("$ref" in response) { ++ //TODO: Support for referencing #/components/responseBodies ++ continue; ++ } ++ // These headers will be applied to all of the models for this operation/statusCode ++ const commonProperties = []; ++ if (response.headers) { ++ for (const name of Object.keys(response.headers)) { ++ const property = convertHeaderToProperty(name, response.headers[name]); ++ if (property) ++ commonProperties.push(property); ++ } ++ } ++ decorators.push(...getExtensions(response)); ++ // `default` status code is treated as the fallback for any status codes returned that aren't defined. ++ if (statusCode === "default") { ++ decorators.push({ name: "defaultResponse", args: [] }); ++ } ++ else { ++ commonProperties.push(convertStatusCodeToProperty(statusCode)); ++ } ++ if (isErrorStatusCode(statusCode)) { ++ decorators.push({ name: "error", args: [] }); ++ } ++ const scopeAndName = getScopeAndName(operationId); ++ if (!response.content) { ++ // This is common when there is no actual request body, just a statusCode, e.g. for errors ++ models.push({ ++ kind: "model", ++ scope: scopeAndName.scope, ++ name: generateResponseModelName(scopeAndName.rawName, statusCode), ++ decorators, ++ properties: commonProperties, ++ doc: response.description, ++ }); ++ } ++ else { ++ // An operation may produce multiple content types, so need a model for each one. ++ for (const contentType of Object.keys(response.content ?? {})) { ++ const properties = [...commonProperties]; ++ const contentBody = response.content[contentType]; ++ // Wouldn't expect schema can be undefined since that implies contentType is not needed. ++ if (contentBody.schema) { ++ properties.push({ ++ name: "body", ++ isOptional: false, // TODO: use the real value ++ decorators: [{ name: "bodyRoot", args: [] }], ++ schema: contentBody.schema, ++ }); ++ } ++ // Default is application/json, so it doesn't need to be specified ++ if (contentType !== "application/json") { ++ properties.push({ ++ name: "contentType", ++ decorators: [{ name: "header", args: [] }], ++ isOptional: false, ++ schema: { type: "string", enum: [contentType] }, ++ }); ++ } ++ models.push({ ++ kind: "model", ++ scope: scopeAndName.scope, ++ name: generateResponseModelName(scopeAndName.rawName, statusCode, contentType), ++ decorators, ++ properties, ++ doc: response.description, ++ }); ++ } ++ } ++ } ++ return models; ++} ++function convertHeaderToProperty(name, meta) { ++ const normalizedName = convertHeaderName(name); ++ // TODO: handle style ++ const headerDecorator = { name: "header", args: [] }; ++ if (normalizedName !== name) { ++ headerDecorator.args.push(name); ++ } ++ if ("$ref" in meta) { ++ // Unhandled right now ++ return; ++ } ++ return { ++ name: normalizedName, ++ decorators: [headerDecorator, ...getDecoratorsForSchema(meta.schema)], ++ doc: meta.description ?? meta.schema.description, ++ isOptional: !meta.required, ++ schema: meta.schema, ++ }; ++} ++function convertStatusCodeToProperty(statusCode) { ++ const schema = { type: "integer", format: "int32" }; ++ if (statusCode === "1XX") { ++ schema.minimum = 100; ++ schema.maximum = 199; ++ } ++ else if (statusCode === "2XX") { ++ schema.minimum = 200; ++ schema.maximum = 299; ++ } ++ else if (statusCode === "3XX") { ++ schema.minimum = 300; ++ schema.maximum = 399; ++ } ++ else if (statusCode === "4XX") { ++ schema.minimum = 400; ++ schema.maximum = 499; ++ } ++ else if (statusCode === "5XX") { ++ schema.minimum = 500; ++ schema.maximum = 599; ++ } ++ else { ++ const literalStatusCode = parseInt(statusCode, 10); ++ if (!isValidLiteralStatusCode(literalStatusCode)) { ++ // TODO: Emit warning or // FIXME ++ } ++ else { ++ schema.enum = [literalStatusCode]; ++ } ++ } ++ return { ++ name: "statusCode", ++ schema, ++ decorators: [{ name: "statusCode", args: [] }], ++ isOptional: false, ++ }; ++} ++function isValidLiteralStatusCode(statusCode) { ++ return isFinite(statusCode) && statusCode >= 100 && statusCode <= 599; ++} ++function isErrorStatusCode(statusCode) { ++ if (["1XX", "2XX", "3XX", "default"].includes(statusCode)) { ++ return false; ++ } ++ else if (["4XX", "5XX"].includes(statusCode)) { ++ return true; ++ } ++ const literalStatusCode = parseInt(statusCode, 10); ++ return isFinite(literalStatusCode) && literalStatusCode >= 400; ++} ++export function generateResponseModelName(operationId, statusCode, contentType) { ++ if (statusCode === "default") { ++ statusCode = "Default"; ++ } ++ let modelName = `${operationId}${statusCode}`; ++ if (contentType) { ++ modelName += convertContentType(contentType); ++ } ++ return printIdentifier(modelName + "Response"); ++} ++function convertContentType(contentType) { ++ return contentType ++ .replaceAll("*", "Star") ++ .split("/") ++ .map((s) => s.substring(0, 1).toUpperCase() + s.substring(1)) ++ .join(""); ++} ++//# sourceMappingURL=transform-operation-responses.js.map +\ No newline at end of file +diff --git a/dist/src/encoding.js b/dist/src/encoding.js +index d2ece9a1296d83af7a3262d98f0fbc431a7e4f98..488a285b68aad087fa8dce8896a7fb2fe61605d3 100644 +--- a/dist/src/encoding.js ++++ b/dist/src/encoding.js +@@ -2,7 +2,7 @@ import { ObjectBuilder } from "@typespec/asset-emitter"; + import { getEncode } from "@typespec/compiler"; + import { isHeader, isQueryParam } from "@typespec/http"; + import { getSchemaForStdScalars } from "./std-scalar-schemas.js"; +-function isParameterStyleEncoding(encoding) { ++function isArrayEncoding(encoding) { + if (!encoding) + return false; + return [ +@@ -17,8 +17,20 @@ export function applyEncoding(program, typespecType, target, getEncodedFieldName + const targetObject = new ObjectBuilder(target); + const encodeData = getEncode(program, typespecType); + if (encodeData) { +- // Query parameters have a couple of special cases where encoding ends up as style. +- if (isQueryParam(program, typespecType) && isParameterStyleEncoding(encodeData.encoding)) { ++ // Array encodings (comma/space/pipe/newline-delimited) describe how an array is ++ // serialized into a single delimiter-joined string. For query parameters the parameter ++ // emitter expresses this as `style` or a `content` parameter, so the array schema is ++ // left untouched. Anywhere else (e.g. a nested property inside a deepObject query ++ // object such as `filter[field][in]=a,b,c`) the wire value is the joined string, so ++ // the schema becomes the encode target scalar; the array's `items` no longer applies ++ // and the delimiter itself has no schema representation. ++ if (isArrayEncoding(encodeData.encoding)) { ++ if (isQueryParam(program, typespecType)) { ++ return targetObject; ++ } ++ const encodedType = getSchemaForStdScalars(encodeData.type, options); ++ targetObject.type = encodedType.type; ++ delete targetObject.items; + return targetObject; + } + const newType = getSchemaForStdScalars(encodeData.type, options); +diff --git a/dist/src/examples.js b/dist/src/examples.js +index 26d0ce153ac277cfc4ca1bae1c583d600babb2bc..62065f601918878f956eda156ddab7976b3eb5b1 100644 +--- a/dist/src/examples.js ++++ b/dist/src/examples.js +@@ -1,7 +1,7 @@ + import { getEncode, getOpExamples, ignoreDiagnostics, serializeValueAsJson, } from "@typespec/compiler"; + import { $ } from "@typespec/compiler/typekit"; + import { isHeader, } from "@typespec/http"; +-import { getParameterStyle } from "./parameters.js"; ++import { getArrayEncodingDelimiter } from "./parameters.js"; + import { getOpenAPI3StatusCodes } from "./status-codes.js"; + import { isHttpParameterProperty, isSharedHttpOperation } from "./util.js"; + export function resolveOperationExamples(program, operation, { parameterExamplesStrategy }) { +@@ -275,19 +275,14 @@ function getParameterValue(program, parameterExamples, property, parameterExampl + return value; + } + function getQueryParameterValue(program, originalValue, property) { +- const style = getParameterStyle(program, property.property) ?? "form"; +- switch (style) { +- case "form": +- return getParameterFormValue(program, originalValue, property); +- case "spaceDelimited": +- return getParameterDelimitedValue(program, originalValue, property, " "); +- case "pipeDelimited": +- return getParameterDelimitedValue(program, originalValue, property, "|"); +- case "commaDelimited": +- return getParameterDelimitedValue(program, originalValue, property, ","); +- case "newlineDelimited": +- return getParameterDelimitedValue(program, originalValue, property, "\n"); ++ // Array encodings (comma/space/pipe/newline-delimited) join the array with a delimiter, ++ // regardless of whether the parameter is expressed via `style` or `content` in the ++ // document. Fall back to `form` serialization when no array encoding applies. ++ const delimiter = getArrayEncodingDelimiter(program, property.property); ++ if (delimiter !== undefined) { ++ return getParameterDelimitedValue(program, originalValue, property, delimiter); + } ++ return getParameterFormValue(program, originalValue, property); + } + function getHeaderParameterValue(program, originalValue, property) { + return getParameterSimpleValue(program, originalValue, property); +diff --git a/dist/src/openapi.js b/dist/src/openapi.js +index 856e3cf9660054406b7b43d4b2bbc913d401eef5..ab99431b322b1abfacb7672051bce49ed17b67ba 100644 +--- a/dist/src/openapi.js ++++ b/dist/src/openapi.js +@@ -1,4 +1,4 @@ +-import { compilerAssert, createDiagnosticCollector, emitFile, getAllTags, getAnyExtensionFromPath, getDoc, getFormat, getMaxItems, getMaxLength, getMaxValueExclusive, getMinItems, getMinLength, getMinValueExclusive, getNamespaceFullName, getPattern, getService, getSummary, ignoreDiagnostics, interpolatePath, isDeprecated, isGlobalNamespace, isNeverType, isSecret, isVoidType, listServices, navigateTypesInNamespace, NoTarget, resolvePath, sanitizePathSegment, } from "@typespec/compiler"; ++import { compilerAssert, createDiagnosticCollector, emitFile, getAllTags, getAnyExtensionFromPath, getDoc, getEncode, getFormat, getMaxItems, getMaxLength, getMaxValueExclusive, getMinItems, getMinLength, getMinValueExclusive, getNamespaceFullName, getPattern, getService, getSummary, ignoreDiagnostics, interpolatePath, isDeprecated, isGlobalNamespace, isNeverType, isSecret, isVoidType, listServices, navigateTypesInNamespace, NoTarget, resolvePath, sanitizePathSegment, } from "@typespec/compiler"; + import { unsafe_mutateSubgraphWithNamespace } from "@typespec/compiler/experimental"; + import { $ } from "@typespec/compiler/typekit"; + import { createPerfReporter, perf } from "@typespec/compiler/utils"; +@@ -553,7 +553,7 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + .map((op) => func(program, op.operation)) + .filter((op) => op !== undefined); + if (values.length) { +- return values.join(joinChar); ++ return values.join(joinChar).trim(); + } + else { + return undefined; +@@ -567,6 +567,9 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + if (uniqueOpIds.size === 1) + return uniqueOpIds.values().next().value; + return operationIds.join("_"); ++ // return [ ++ // ...new Set(shared.operations.map((op) => resolveOperationId(program, op.operation))), ++ // ].join("_"); + } + function getOperationOrSharedOperation(operation) { + if (isSharedHttpOperation(operation)) { +@@ -585,7 +588,7 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + }); + const oai3Operation = { + operationId: computeSharedOperationId(shared), +- parameters: [], ++ parameters: undefined, + description: joinOps(operations, getDoc, " "), + summary: joinOps(operations, getSummary, " "), + responses: getSharedResponses(shared, examples), +@@ -624,7 +627,10 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + })); + } + const visibility = visibilities[0]; +- oai3Operation.parameters = getEndpointParameters(resolveSharedRouteParameters(operations), visibility, examples); ++ const endpointParameters = getEndpointParameters(resolveSharedRouteParameters(operations), visibility, examples); ++ if (endpointParameters.length > 0) { ++ oai3Operation.parameters = endpointParameters; ++ } + const bodies = [ + ...new Set(operations.map((op) => op.parameters.body).filter((x) => x !== undefined)), + ]; +@@ -648,11 +654,12 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + const examples = resolveOperationExamples(program, operation, { + parameterExamplesStrategy: options.parameterExamplesStrategy, + }); ++ const endpointParameters = getEndpointParameters(parameters.properties, visibility, examples); + const oai3Operation = { + operationId: operationIdResolver.resolve(operation.operation), + summary: getSummary(program, operation.operation), + description: getDoc(program, operation.operation), +- parameters: getEndpointParameters(parameters.properties, visibility, examples), ++ parameters: endpointParameters.length > 0 ? endpointParameters : undefined, + responses: getResponses(operation, operation.responses, examples), + }; + const currentTags = getAllTags(program, op); +@@ -1018,6 +1025,14 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + } + return false; + } ++ function isParameterStyleEncoding(encoding) { ++ if (!encoding) ++ return false; ++ return ["ArrayEncoding.pipeDelimited", "ArrayEncoding.spaceDelimited"].includes(encoding); ++ } ++ function isDelimitedArrayEncoding(encoding) { ++ return ["ArrayEncoding.commaDelimited", "ArrayEncoding.newlineDelimited"].includes(encoding); ++ } + function getParameter(httpProperty, visibility, examples) { + const param = { + name: httpProperty.options.name, +@@ -1033,6 +1048,33 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + else { + Object.assign(param, attributes); + } ++ const encode = getEncode(program, httpProperty.property); ++ if (param.in === "query" && encode?.encoding && !isParameterStyleEncoding(encode.encoding)) { ++ param.explode = undefined; ++ param.style = undefined; ++ if (isDelimitedArrayEncoding(encode.encoding)) { ++ // `commaDelimited`/`newlineDelimited` array encodings have no OpenAPI `style` ++ // equivalent (only form/spaceDelimited/pipeDelimited/deepObject exist), so they ++ // are expressed via a `content` parameter with a `text/plain` media type instead. ++ param.content = { ++ "text/plain": { ++ schema: param.schema, ++ }, ++ }; ++ } ++ else { ++ // Any other encoding (e.g. @encode("application/json")) names the media type the ++ // parameter is serialized as. Drop the scalar type that applyEncoding stamped on ++ // the schema so the content schema keeps its original shape. ++ param.schema.type = undefined; ++ param.content = { ++ [encode.encoding]: { ++ schema: param.schema, ++ }, ++ }; ++ } ++ param.schema = undefined; ++ } + if (isDeprecated(program, httpProperty.property)) { + param.deprecated = true; + } +@@ -1245,9 +1287,13 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + attributes.explode = false; + } + const style = getParameterStyle(program, httpProperty.property); ++ // Prioritize @encode-based style over explicit options.style + if (style) { + attributes.style = style; + } ++ else if (httpProperty.options.style) { ++ attributes.style = httpProperty.options.style; ++ } + return attributes; + } + function getHeaderParameterAttributes(httpProperty) { +@@ -1348,6 +1394,9 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + const extensions = getExtensions(program, type); + if (extensions) { + for (const key of extensions.keys()) { ++ if (key === "x-inline") { ++ continue; ++ } + emitObject[key] = extensions.get(key); + } + } +@@ -1464,6 +1513,11 @@ function createOAPIEmitter(context, options, specVersion = "3.0.0") { + return undefined; + } + function getOpenAPI3Scheme(auth) { ++ // Check if the auth model has a @useRef decorator ++ const refUrl = getRef(program, auth.model); ++ if (refUrl) { ++ return { $ref: refUrl }; ++ } + const scheme = getOpenAPI3SchemeInternal(auth); + if (scheme) { + attachExtensions(program, auth.model, scheme); +diff --git a/dist/src/parameters.d.ts b/dist/src/parameters.d.ts +index a832f96e5c514f6b01c4c464764f2ca978a81fc4..f66cb62ddb70a085a6031146b105a68c1493f24e 100644 +--- a/dist/src/parameters.d.ts ++++ b/dist/src/parameters.d.ts +@@ -1,3 +1,10 @@ + import type { ModelProperty, Program } from "@typespec/compiler"; +-export declare function getParameterStyle(program: Program, type: ModelProperty): "pipeDelimited" | "spaceDelimited" | "commaDelimited" | "newlineDelimited" | undefined; ++export declare function getParameterStyle(program: Program, type: ModelProperty): "pipeDelimited" | "spaceDelimited" | undefined; ++/** ++ * Resolve the delimiter used to serialize an array-encoded query parameter, for both the ++ * `style`-based encodings and the `content`-based ones. Used when serializing examples, ++ * where the actual serialized value is needed regardless of how the parameter is expressed ++ * in the OpenAPI document. Returns `undefined` when no array encoding applies. ++ */ ++export declare function getArrayEncodingDelimiter(program: Program, type: ModelProperty): "|" | " " | "," | "\n" | undefined; + //# sourceMappingURL=parameters.d.ts.map +\ No newline at end of file +diff --git a/dist/src/parameters.js b/dist/src/parameters.js +index 7a7201cfcdc5c4825aba87b64b34415ae60c8e14..ff98ad6c0d873506ab80d90c0604824a449f5663 100644 +--- a/dist/src/parameters.js ++++ b/dist/src/parameters.js +@@ -3,18 +3,38 @@ export function getParameterStyle(program, type) { + const encode = getEncode(program, type); + if (!encode) + return; ++ // Only pipeDelimited and spaceDelimited have OpenAPI `style` equivalents. Other array ++ // encodings (commaDelimited, newlineDelimited) have no `style` representation and are ++ // emitted as `content` parameters by the caller. + if (encode.encoding === "ArrayEncoding.pipeDelimited") { + return "pipeDelimited"; + } + else if (encode.encoding === "ArrayEncoding.spaceDelimited") { + return "spaceDelimited"; + } +- else if (encode.encoding === "ArrayEncoding.commaDelimited") { +- return "commaDelimited"; +- } +- else if (encode.encoding === "ArrayEncoding.newlineDelimited") { +- return "newlineDelimited"; +- } + return; + } ++/** ++ * Resolve the delimiter used to serialize an array-encoded query parameter, for both the ++ * `style`-based encodings and the `content`-based ones. Used when serializing examples, ++ * where the actual serialized value is needed regardless of how the parameter is expressed ++ * in the OpenAPI document. Returns `undefined` when no array encoding applies. ++ */ ++export function getArrayEncodingDelimiter(program, type) { ++ const encode = getEncode(program, type); ++ if (!encode) ++ return; ++ switch (encode.encoding) { ++ case "ArrayEncoding.pipeDelimited": ++ return "|"; ++ case "ArrayEncoding.spaceDelimited": ++ return " "; ++ case "ArrayEncoding.commaDelimited": ++ return ","; ++ case "ArrayEncoding.newlineDelimited": ++ return "\n"; ++ default: ++ return; ++ } ++} + //# sourceMappingURL=parameters.js.map +\ No newline at end of file +diff --git a/dist/src/schema-emitter.js b/dist/src/schema-emitter.js +index d93f62cda33ef18050157cbbdd09f9048c016f6e..d4e1ab62fd359692a7d7a24baa0f3ecfabe88eba 100644 +--- a/dist/src/schema-emitter.js ++++ b/dist/src/schema-emitter.js +@@ -203,8 +203,17 @@ export class OpenAPI3SchemaEmitterBase extends TypeEmitter { + })); + } + arrayLiteralReferenceContext(array, elementType) { ++ // Array elements are emitted with the Item visibility flag so that metadata which is ++ // inapplicable to array items (e.g. @header) can be treated differently than in the ++ // top-level payload. However, if the element type is not actually transformed under ++ // the Item visibility, carrying the flag would create a second, byte-identical ++ // declaration (with a spurious "Item" name suffix) that collides with the canonical ++ // one. In that case we keep the base visibility so the element reuses the existing ++ // declaration. ++ const base = this.#getVisibilityContext(); ++ const withItem = base | Visibility.Item; + return { +- visibility: this.#getVisibilityContext() | Visibility.Item, ++ visibility: this._metadataInfo.isTransformed(elementType, withItem) ? withItem : base, + }; + } + #requiredModelProperties(model, visibility) { +diff --git a/dist/src/types.d.ts b/dist/src/types.d.ts +index 6c523b43b9b5e31b465f9926ef384d464178d83f..819f35e84ec18cc7fcd72f21eeb96b7a48a23c3f 100644 +--- a/dist/src/types.d.ts ++++ b/dist/src/types.d.ts +@@ -517,7 +517,7 @@ export type OpenAPI3ParameterBase = Extensions & { + /** A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry. */ + content?: Record; + }; +-export type OpenAPI3QueryParameter = OpenAPI3ParameterBase & { ++export type OpenAPI3QueryParameter = Omit & { + /** Name of the parameter. */ + name: string; + in: "query"; +@@ -528,6 +528,12 @@ export type OpenAPI3QueryParameter = OpenAPI3ParameterBase & { + * @see https://spec.openapis.org/oas/v3.0.4.html#style-values + */ + style?: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject"; ++ content?: { ++ [mediaType: string]: { ++ schema: OpenAPI3Schema; ++ }; ++ }; ++ schema?: OpenAPI3Schema; + }; + export type OpenAPI3PathParameter = OpenAPI3ParameterBase & { + /** Name of the parameter. */ +@@ -590,7 +596,7 @@ export type OpenAPI3Operation = Extensions & { + tags?: string[]; + operationId?: string; + requestBody?: Refable; +- parameters: Refable[]; ++ parameters?: Refable[]; + deprecated?: boolean; + security?: Record[]; + }; +diff --git a/dist/src/util.d.ts b/dist/src/util.d.ts +index 719a7c93dab32b18bcb68aa2ddc08e05a430a4ef..8ac2d3ba4003639b803a3cf93ddd8704028f27af 100644 +--- a/dist/src/util.d.ts ++++ b/dist/src/util.d.ts +@@ -35,7 +35,7 @@ export declare function isStdType(program: Program, type: Type): type is Scalar + name: IntrinsicScalarName; + }; + export declare function isLiteralType(type: Type): type is StringLiteral | NumericLiteral | BooleanLiteral; +-export declare function literalType(type: StringLiteral | NumericLiteral | BooleanLiteral): "string" | "number" | "boolean"; ++export declare function literalType(type: StringLiteral | NumericLiteral | BooleanLiteral): "boolean" | "number" | "string"; + export declare function includeDerivedModel(model: Model): boolean; + export declare function isScalarExtendsBytes(type: Type): boolean; + export declare function getDefaultValue(program: Program, defaultType: Value, modelProperty: ModelProperty): any; diff --git a/api/spec/patches/@typespec__openapi@1.16.0.patch b/api/spec/patches/@typespec__openapi@1.16.0.patch new file mode 100644 index 0000000000..d92d7d176c --- /dev/null +++ b/api/spec/patches/@typespec__openapi@1.16.0.patch @@ -0,0 +1,27 @@ +diff --git a/dist/src/helpers.js b/dist/src/helpers.js +index e51f6c78a032d981ea545524d055fdb089e7a5c3..9709887d5dc3dc2182154a490db70365ddf1e50d 100644 +--- a/dist/src/helpers.js ++++ b/dist/src/helpers.js +@@ -1,6 +1,6 @@ + import { getFriendlyName, getLifecycleVisibilityEnum, getProperty, getTypeName, getVisibilityForClass, isGlobalNamespace, isService, isTemplateInstance, } from "@typespec/compiler"; + import { SyntaxKind, } from "@typespec/compiler/ast"; +-import { getOperationId } from "./decorators.js"; ++import { getExtensions, getOperationId } from "./decorators.js"; + import { createDiagnostic, reportDiagnostic } from "./lib.js"; + /** + * Determines whether a type will be inlined in OpenAPI rather than defined +@@ -17,6 +17,14 @@ export function shouldInline(program, type) { + if (getFriendlyName(program, type)) { + return false; + } ++ if (getExtensions(program, type).has("x-inline")) { ++ switch (getExtensions(program, type).get("x-inline")) { ++ case true: ++ return true; ++ case false: ++ return false; ++ } ++ } + switch (type.kind) { + case "Model": + return !type.name || isTemplateInstance(type); diff --git a/api/spec/pnpm-lock.yaml b/api/spec/pnpm-lock.yaml index baabc8e747..72e121e9d1 100644 --- a/api/spec/pnpm-lock.yaml +++ b/api/spec/pnpm-lock.yaml @@ -5,6 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: + '@typespec/asset-emitter': 0.79.2 devalue@>=5.0.0 <5.9.3: 5.9.3 fast-uri@>=3.0.0 <3.1.8: 3.1.8 js-yaml@>=4.0.0 <4.3.2: 4.3.2 @@ -12,17 +13,18 @@ overrides: postcss@>=8.0.0 <8.5.23: 8.5.23 source-map-js@>=1.0.0 <1.2.2: 1.2.2 semver@<7.7.4: '>=7.7.4' + undici@>=7.0.0 <7.29.1: 7.29.1 packageExtensionsChecksum: sha256-FtphpG0HM+ALLD/vZWvih3ftXQ3sNwbZLDianJbNUCo= patchedDependencies: - '@typespec/compiler': 4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717 + '@typespec/compiler@1.16.0': f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed '@typespec/emitter-framework': ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0 - '@typespec/http': 2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef '@typespec/http-client': 7b97c893a552597584944904afc15877f43250e31cb64a3e007ea96976b69d19 '@typespec/http-client-python': c9d83ee26f420c6783dbf4d196533650ade297eda92e2bb249df2e822a8d994a - '@typespec/openapi': a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c - '@typespec/openapi3': 47deb425b3eaa7a12b4b92157f0f3e5784bb61b20be4d302f6d391f1b750b5c2 + '@typespec/http@1.16.0': f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716 + '@typespec/openapi3@1.16.0': 15528c01821ed876a1b6eb5764d5494c03421f061903db56329bdb53486f7765 + '@typespec/openapi@1.16.0': a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57 importers: @@ -32,8 +34,8 @@ importers: specifier: 0.2.18 version: 0.2.18(vitest@4.1.12) '@typespec/prettier-plugin-typespec': - specifier: 1.14.0 - version: 1.14.0 + specifier: 1.16.0 + version: 1.16.0 '@vitest/coverage-v8': specifier: 4.1.12 version: 4.1.12(vitest@4.1.12) @@ -62,26 +64,29 @@ importers: specifier: 26.1.1 version: 26.1.1 '@typespec/compiler': - specifier: 1.14.0 - version: 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) '@typespec/http': - specifier: 1.14.0 - version: 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) '@typespec/json-schema': - specifier: 1.14.0 - version: 1.14.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + specifier: 1.16.0 + version: 1.16.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) '@typespec/openapi': - specifier: 1.14.0 - version: 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) '@typespec/openapi3': - specifier: 1.14.0 - version: 1.14.0(patch_hash=47deb425b3eaa7a12b4b92157f0f3e5784bb61b20be4d302f6d391f1b750b5c2)(ed8c328b3a62f1d3832914185922d1cb) + specifier: 1.16.0 + version: 1.16.0(patch_hash=15528c01821ed876a1b6eb5764d5494c03421f061903db56329bdb53486f7765)(111ff52ca82108025fd386e6a7f0ca45) '@typespec/prettier-plugin-typespec': - specifier: 1.14.0 - version: 1.14.0 + specifier: 1.16.0 + version: 1.16.0 '@typespec/rest': - specifier: 0.84.0 - version: 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 0.86.0 + version: 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/versioning': + specifier: 0.86.0 + version: 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) prettier: specifier: 3.9.6 version: 3.9.6 @@ -108,38 +113,38 @@ importers: packages/legacy: devDependencies: '@azure-tools/typespec-client-generator-core': - specifier: 0.70.0 - version: 0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d) + specifier: 0.72.0 + version: 0.72.0(c314e46f44c81bb409927108b9acfaaf) '@types/node': specifier: 26.1.1 version: 26.1.1 '@typespec/compiler': - specifier: 1.14.0 - version: 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) '@typespec/http': - specifier: 1.14.0 - version: 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) '@typespec/http-client-python': specifier: 0.35.0 - version: 0.35.0(patch_hash=c9d83ee26f420c6783dbf4d196533650ade297eda92e2bb249df2e822a8d994a)(2696e5eda1c5f71a3fb8b2d8bdf079ba) + version: 0.35.0(patch_hash=c9d83ee26f420c6783dbf4d196533650ade297eda92e2bb249df2e822a8d994a)(38ae7374e2203a6260b3856a151f2b3d) '@typespec/openapi': - specifier: 1.14.0 - version: 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) '@typespec/openapi3': - specifier: 1.14.0 - version: 1.14.0(patch_hash=47deb425b3eaa7a12b4b92157f0f3e5784bb61b20be4d302f6d391f1b750b5c2)(ed8c328b3a62f1d3832914185922d1cb) + specifier: 1.16.0 + version: 1.16.0(patch_hash=15528c01821ed876a1b6eb5764d5494c03421f061903db56329bdb53486f7765)(111ff52ca82108025fd386e6a7f0ca45) '@typespec/prettier-plugin-typespec': - specifier: 1.14.0 - version: 1.14.0 + specifier: 1.16.0 + version: 1.16.0 '@typespec/rest': - specifier: 0.84.0 - version: 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 0.86.0 + version: 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) '@typespec/streams': - specifier: 0.84.0 - version: 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + specifier: 0.86.0 + version: 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) '@typespec/versioning': - specifier: 0.84.0 - version: 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + specifier: 0.86.0 + version: 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) packages/typespec-go: dependencies: @@ -150,17 +155,17 @@ importers: specifier: 0.3.1 version: 0.3.1 '@typespec/compiler': - specifier: 1.14.0 - version: 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) '@typespec/emitter-framework': specifier: 0.19.0 - version: 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + version: 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) '@typespec/http': - specifier: 1.14.0 - version: 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) '@typespec/openapi': - specifier: 1.14.0 - version: 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) devDependencies: '@alloy-js/cli': specifier: 0.24.0 @@ -184,20 +189,20 @@ importers: specifier: 0.24.0 version: 0.24.0 '@typespec/compiler': - specifier: 1.14.0 - version: 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) '@typespec/emitter-framework': specifier: 0.19.0 - version: 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + version: 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) '@typespec/http': - specifier: 1.14.0 - version: 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) '@typespec/http-client': specifier: 0.16.0 - version: 0.16.0(patch_hash=7b97c893a552597584944904afc15877f43250e31cb64a3e007ea96976b69d19)(@alloy-js/core@0.24.1)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + version: 0.16.0(patch_hash=7b97c893a552597584944904afc15877f43250e31cb64a3e007ea96976b69d19)(@alloy-js/core@0.24.1)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) '@typespec/openapi': - specifier: 1.14.0 - version: 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + specifier: 1.16.0 + version: 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) typescript: specifier: 7.0.2 version: 7.0.2 @@ -298,20 +303,20 @@ packages: '@azure-tools/typespec-client-generator-core': ^0.67.0 '@typespec/compiler': ^1.11.0 - '@azure-tools/typespec-client-generator-core@0.70.0': - resolution: {integrity: sha512-8yxOYJfID3wp3FLQYNIa3kbmR5YLWjYtpB+i4u66quHTTQWWANHV1/o9f8xymAf+8fO9jbLo5tw1JerumxISWg==} + '@azure-tools/typespec-client-generator-core@0.72.0': + resolution: {integrity: sha512-qTidMUgtM7R4wGy3i2DU3OBHm7eHtK1VCNPzT3O9PVtBVNxSSDc/gY0qENq3KvN+68qS3XoCvUluRz6fUK/h2Q==} engines: {node: '>=22.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.70.0 - '@typespec/compiler': ^1.14.0 - '@typespec/events': ^0.84.0 - '@typespec/http': ^1.14.0 - '@typespec/openapi': ^1.14.0 - '@typespec/rest': ^0.84.0 - '@typespec/sse': ^0.84.0 - '@typespec/streams': ^0.84.0 - '@typespec/versioning': ^0.84.0 - '@typespec/xml': ^0.84.0 + '@azure-tools/typespec-azure-core': ^0.72.0 + '@typespec/compiler': ^1.16.0 + '@typespec/events': ^0.86.0 + '@typespec/http': ^1.16.0 + '@typespec/openapi': ^1.16.0 + '@typespec/rest': ^0.86.0 + '@typespec/sse': ^0.86.0 + '@typespec/streams': ^0.86.0 + '@typespec/versioning': ^0.86.0 + '@typespec/xml': ^0.86.0 '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} @@ -625,12 +630,12 @@ packages: peerDependencies: vitest: '*' - '@inquirer/ansi@2.0.7': - resolution: {integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q==} + '@inquirer/ansi@2.0.9': + resolution: {integrity: sha512-0Ywt3S8tqM6TWUcsRlBFQ1x+X3/o8kktX0ZiKAnByYb9GFDknnOhse1PVtfiD2BXPI8ar+BWx9PV9R0lQIcygw==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - '@inquirer/checkbox@5.2.1': - resolution: {integrity: sha512-b6xmA/VlTe0ZgDQHDui+Nav470u7u49nRd8/iuhOcQPO9Ch7lGuogydhi2VOmNlZ+zXcM8IcPuNSwQcdJaF/kw==} + '@inquirer/checkbox@5.2.6': + resolution: {integrity: sha512-XkOardciF3tow2NUlY6/Qjk1QqYa+6WpmVLTpxXl97Uv4erczDEZ+xg1j6LqBf0ekcRSUiICQA4nQXHHkVKQ9w==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -638,8 +643,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@6.1.1': - resolution: {integrity: sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==} + '@inquirer/confirm@6.3.3': + resolution: {integrity: sha512-ImOBgpl/sJTFp8naeSkNu4S0Sf8F8pxv3/CUx+LoBAdQvCVqFz6rSB2A/oZYsJge3+yphbEDxEkfaRNYq1OU0A==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -647,8 +652,8 @@ packages: '@types/node': optional: true - '@inquirer/core@11.2.1': - resolution: {integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==} + '@inquirer/core@12.0.4': + resolution: {integrity: sha512-M5fB67y7jPObI45vhD82RskWwCSm0scOvenV/I6K8tIi2gfr9DXqQqJ+iw+Wi6SgapikdOiJibYzz1gW47fsDg==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -656,8 +661,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@5.2.2': - resolution: {integrity: sha512-ZRVd/oD+sYsUd5zVm0NflqEzlqfYCyHNsqkHl2oWXEUHs12tCbcSFi+wVFEvD8+LGRaMUsVrE7qeo6lSG/S1Vg==} + '@inquirer/editor@5.3.4': + resolution: {integrity: sha512-imzxQDfw26NpcJAubMj/dE5RjU9Mp80IcT+FzsD6YoxXmL8L1QYnAFdCNv7ccGWh//73+0YP+1kfhwnExdl2VQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -665,8 +670,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@5.1.1': - resolution: {integrity: sha512-YmQpenjbFSHAK3sOd44puHh3V1KXXr+JiNpUztoSQ4drLh2rTVzTap/YtlAVu/5xavifIlBfNEzJ/neZJ1a/1g==} + '@inquirer/expand@5.1.6': + resolution: {integrity: sha512-JfiLKi7qGuHmcQO/DqR10UFEp054Y1FXZaszP5ZEfHhgHeuFoT5nNFQIXFhed/5/p07SbsV2tIJFwG/dg5+NmQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -674,8 +679,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@3.0.3': - resolution: {integrity: sha512-6thf5I8q7lZwzGLAxPaaGEREEkZ3nyePPDQ1oyobblxmEE8mqTLguScP7pDjUTAibiyb4hfXl+qjUEJ+di/aNA==} + '@inquirer/external-editor@3.0.6': + resolution: {integrity: sha512-rWmw6WG8JZ7LMn/srXEylYGhL6EXXJeROE7/4x4GREh6NgzqJBDbIgpNGsYoLPfobeb4VZtEYzPGnT5EFNYhiQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -683,12 +688,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@2.0.7': - resolution: {integrity: sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw==} + '@inquirer/figures@2.0.9': + resolution: {integrity: sha512-EAWgUTGQ/Umgga51dE3B2PUHbufuXarDfg86uVgoSgNHNNQnyFKcOrQLWVqYMghuSyHh8+2HUH0Js9cTC1WAdg==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - '@inquirer/input@5.1.2': - resolution: {integrity: sha512-9K/DDBSQpOyZSkt6sOVP9Vo0TR7atX2kuILsUu0x3wVcVbe97lJwIJKMLdMw25tDYuXl/qp6erT0Xs1rfmcfZg==} + '@inquirer/input@5.1.7': + resolution: {integrity: sha512-Icrs9tuMBCxGI+lFYNO71VFOnqGO8IIrLIGqnTGh07X8jZ2la9QLAYxXcikHZQjjVhIZUtU2xyH89DVN/pPhVg==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -696,8 +701,8 @@ packages: '@types/node': optional: true - '@inquirer/number@4.1.1': - resolution: {integrity: sha512-XF4IXAbPnGPgw0wsbC/i2tPcyfdZgDpUlhsqU0SfT4IRIGWha6Xm9VRgN5yYxJq+jnyXlfXI/nQ3ulfk0iEICA==} + '@inquirer/number@4.2.4': + resolution: {integrity: sha512-C6g80U4U2+w2Vxa1CB0MN3a2WnQIfzLSUG0lduO3Au9GsirJsKATZkOwZPK+vZ1BlAlz+/Z5ParfQCS9E0svmg==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -705,8 +710,8 @@ packages: '@types/node': optional: true - '@inquirer/password@5.1.1': - resolution: {integrity: sha512-3XBfF7DAsp5qeDsvN5Rd1HmbNokVvEQoUM0QLrRcybC9nX96w3Pbmu7qUsb3IT3J3jBvs2+mTXaKHOUsgHMLzg==} + '@inquirer/password@5.2.3': + resolution: {integrity: sha512-1Uo2qfI2K3wXbfunMpvwAzoZPIUf5iEETwDGqRVbswoorXGqYQJ/bfIJFeLj+pxjq+e2UFPNOmx+fsIl4Urigw==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -714,8 +719,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@8.5.2': - resolution: {integrity: sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==} + '@inquirer/prompts@8.7.3': + resolution: {integrity: sha512-DHK20kO+H5k/XcJQpHQUpVQbMYHHhZchlGWhZVMUV4WIuRuBW5744hipOtriE1vMqPLgnIyXFMHWKkIbTepa4Q==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -723,8 +728,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@5.3.1': - resolution: {integrity: sha512-QqdTqQddL3qPX/PPrjobpsO25NZ4dWXgTLenrR445L2ptLEYE6Z+PD5c5CNDJNx4ugRgELAIpSIJxZaO2jJ2Og==} + '@inquirer/rawlist@5.3.6': + resolution: {integrity: sha512-2exExhQ5xTBqfN/rRlZkvM1Gm3b0eiLcWe2NqxWxe7qYmnU4M3j/n9TwzfPUb+Q7dAAz9TmBtDWWdF3jbp4ZLA==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -732,8 +737,8 @@ packages: '@types/node': optional: true - '@inquirer/search@4.2.1': - resolution: {integrity: sha512-xJj8QWKRSrfKoBIITLZK61dD3zwo0Rz11fgDImku30/Oe81zMdIdGgrLY2h6RkJ+KZ/GhNYIRMKnH/62qBTA5g==} + '@inquirer/search@4.3.4': + resolution: {integrity: sha512-xsk0UeFP04jsbEeFMzghjUaH2aHXyt+WykSajQzq/8qyBNHsgGYHea/sFwv5T08kW7Sp+KDX8aF124zPUIs1Ww==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -741,8 +746,8 @@ packages: '@types/node': optional: true - '@inquirer/select@5.2.1': - resolution: {integrity: sha512-FlDndEUww8m7BfukO2nJa25vhD+H5jxxCv4oGioKqzyWz3nPHhhw4LKdYRSlXuAx7DsdWia7iyaBPKKS95Evfw==} + '@inquirer/select@5.2.6': + resolution: {integrity: sha512-jFu7CFghlr0vpi/326a4wz6BGkJH9X3H/iIu+ahyV2Ja52ktqQE3fC9BYP47JKeSPQYGUv5xquE2Vp9PbepZ3g==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -750,8 +755,8 @@ packages: '@types/node': optional: true - '@inquirer/type@4.0.7': - resolution: {integrity: sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g==} + '@inquirer/type@4.2.0': + resolution: {integrity: sha512-2rnHX8RPo4glJYqnFc/v3nQeIhDcjyRRyaT7MGcfL/8xv/8K03SXYoA2tX06WVSKywWOE/ncbG3dtuzLjR5TCQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -891,24 +896,36 @@ packages: '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} - '@scalar/helpers@0.9.2': - resolution: {integrity: sha512-hjyMpMZjTBZQhyByZmz5oUgRKUQJO5V5AOiJxsVEGbUmgA7sJRQeTrXLB+BEwzaKS5nm2opJeNyMBYLFNK4hiQ==} + '@scalar/helpers@0.11.1': + resolution: {integrity: sha512-Knwbe0IYqFk0PPDoOKLasqglBHfyf9/zwWWqFsSNi/AtdjM29wSZXN6p8DFid6iB5B9epYH9YiSgJ6tpD00TEw==} + engines: {node: '>=22'} + + '@scalar/helpers@0.12.0': + resolution: {integrity: sha512-rcX0rFLiWWc0VBr/E+HkatubL0I0ZzxASQkd3032NWEMAEfNd2TiJ9kH46HwbSAOOl696ghxymWegjpjjvxwzA==} + engines: {node: '>=22'} + + '@scalar/json-magic@0.13.2': + resolution: {integrity: sha512-T8rQw5u7+MSTDpUcd5ShX1taOUxpZMv2b/P6xsahdlv/u68VX/Bq/+uzuAf2xW8IIOy7BEP4MBggle/vMDgAXw==} + engines: {node: '>=22'} + + '@scalar/json-magic@0.13.5': + resolution: {integrity: sha512-w5eENfKAkc4CYiLva3nGUhTaJfyi3szmZ3E7+EHlzahOUnbDmB9rAWyzt8GFCXbwxeTuR+1m7lO1PyV/QAid4A==} engines: {node: '>=22'} - '@scalar/json-magic@0.12.19': - resolution: {integrity: sha512-1T4QoFYZ1nKt25xFeHtghAuZzaLq2X4CpCSLFXG0Fjcz6K2HIZqo+RtywfI0WD8RRRRgS34keo7X4Gv1BQUNoQ==} + '@scalar/openapi-parser@0.28.16': + resolution: {integrity: sha512-zHEQExXo58Nk7/Tju4y4HLVJ+B5nnDmR7vPhhHLVinL0z99aGrd6S/8HREupVpfAsim326pfzIbSM+UOvEbnOw==} engines: {node: '>=22'} - '@scalar/openapi-parser@0.28.10': - resolution: {integrity: sha512-jn3ftvtNTcWOgxf7XVn9CvJGMjFS7QU1b6FiGmibzAlR/6pOP3Ei7sBBnfIY4PBwHjHgMAGBoGApfOV8h75gPQ==} + '@scalar/openapi-types@0.9.5': + resolution: {integrity: sha512-czrz/zkVm1oPzrpYo3hI/iymfiw1s4dgJiQtwNi2U77Sqf3EQOGKsif4VNRa5suWMYRuPaFx5EiFM1FNEV4Whg==} engines: {node: '>=22'} - '@scalar/openapi-types@0.9.3': - resolution: {integrity: sha512-34qglt5jSo55iZfH9i7EhjQCdE0Po2xZeh8wytQKolSnXrxsYMSyFDJEBxz1Gaew4on9N3XIWsd0QpwKVA5CSA==} + '@scalar/openapi-types@0.9.8': + resolution: {integrity: sha512-pGcpkZObsGBC7nRKYte+6gstoe0C4hp7B2UWQYjg5To1wE68s3OHVvin+muL3tn3ZAoahXeJAkn1+aEcMi802w==} engines: {node: '>=22'} - '@scalar/openapi-upgrader@0.2.11': - resolution: {integrity: sha512-eYEFBO8mZfgXEO/hv8rdL5OA4oOB8orFT5kXNK4I/x9xca2D7A4BteuFXqRaw9lE1CIjtG+StlAUYVz5omTXew==} + '@scalar/openapi-upgrader@0.2.15': + resolution: {integrity: sha512-yqROK9U96ElasEL4Wl/+PIjQZlqrQXVUUpXk9PA6xBnrp8KdEv7at8pR5gsZkvddJfYVwLILPlctyqUg4u4YZA==} engines: {node: '>=22'} '@standard-schema/spec@1.1.0': @@ -1055,14 +1072,14 @@ packages: cpu: [x64] os: [win32] - '@typespec/asset-emitter@0.79.1': - resolution: {integrity: sha512-53s3GLu5BwNkl7Itr/OizfhymTV2u7k5/cwjUOAt03AUDfiKlwbsp+iCIsq1vccJuoDOiXOceJOfL8rAf4/9LQ==} - engines: {node: '>=20.0.0'} + '@typespec/asset-emitter@0.79.2': + resolution: {integrity: sha512-hcr0jxYgXM0suBwPtjnScYXZVIIqkcdd8jgYh1T7VLHem8+q0WthFQxeKbDIrip4k/nCFtnZui6Dj5oOVJb8fA==} + engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.10.0 + '@typespec/compiler': ^1.16.0 - '@typespec/compiler@1.14.0': - resolution: {integrity: sha512-RRN0LGVDlonG/IbB2b4mvRjdCo6LywwB9/J8lOp6UaH7vtaFnKe5FL+rpxhof4rXx/zI/4OWnQO6c01bTCz4/Q==} + '@typespec/compiler@1.16.0': + resolution: {integrity: sha512-pT4gN+OSEXZMLxIhtI3QgIUafeFktfIBKVb7p+X/rAzDymQSO8yAb+srMBQ43PIcmfrvMxCNaD1SKBa9AGhWtA==} engines: {node: '>=22.0.0'} hasBin: true @@ -1109,35 +1126,35 @@ packages: '@typespec/emitter-framework': ^0.19.0 '@typespec/http': ^1.14.0 - '@typespec/http@1.14.0': - resolution: {integrity: sha512-W+heCzu8K63AVcoX8MachVWaRxSAMFWOI1yBTc2Kq8QHaJeDiLL5JbU8VfTZ4tL/6EoGSdKfIT5ZNRW7oVCzhg==} + '@typespec/http@1.16.0': + resolution: {integrity: sha512-4cODL4uqoj6YGj3Z04mQx1JwrM7o4Ytv4dO75o3Y3fx66v4BF4B5hF2dwnwh02Xe0e9qO1aDoaRlO2QGDz3mEA==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 - '@typespec/streams': ^0.84.0 + '@typespec/compiler': ^1.16.0 + '@typespec/streams': ^0.86.0 peerDependenciesMeta: '@typespec/streams': optional: true - '@typespec/json-schema@1.14.0': - resolution: {integrity: sha512-YNp0k+HV5eXzzXbAgxOGj01h+Asg1Ljo2EeaqQWFgS6o1Hxg7M4nQZeLs59v9IUxYvtJCHSkmeMADRjpCatrPw==} + '@typespec/json-schema@1.16.0': + resolution: {integrity: sha512-an9fuC2KFSJraODr8ZNcQwMKNemcuFN3V2RYdsOpexzMtdldd81fTid19N8of10OotBd8O7+TeMW9s3PZ4H7Uw==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 + '@typespec/compiler': ^1.16.0 - '@typespec/openapi3@1.14.0': - resolution: {integrity: sha512-14wjep65fvxWQHObYMaT2zISzwfdkArQ2SPkM7+t5pvAWMwKn4dnv7rSP4QRvxqjaiLsQAz7GT1SS8DaX9BhgA==} + '@typespec/openapi3@1.16.0': + resolution: {integrity: sha512-eRyTwn4w5hWSRm15ys20O2Jp1aHDPHp6TZsctOsG3nxo+N50Qg7Epgu44ATsxaELmnCEg9G0B7N9czZKb51dSQ==} engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@typespec/compiler': ^1.14.0 - '@typespec/events': ^0.84.0 - '@typespec/http': ^1.14.0 - '@typespec/json-schema': ^1.14.0 - '@typespec/openapi': ^1.14.0 - '@typespec/sse': ^0.84.0 - '@typespec/streams': ^0.84.0 - '@typespec/versioning': ^0.84.0 + '@typespec/compiler': ^1.16.0 + '@typespec/events': ^0.86.0 + '@typespec/http': ^1.16.0 + '@typespec/json-schema': ^1.16.0 + '@typespec/openapi': ^1.16.0 + '@typespec/sse': ^0.86.0 + '@typespec/streams': ^0.86.0 + '@typespec/versioning': ^0.86.0 '@typespec/xml': '*' peerDependenciesMeta: '@typespec/events': @@ -1153,22 +1170,22 @@ packages: '@typespec/xml': optional: true - '@typespec/openapi@1.14.0': - resolution: {integrity: sha512-KL7kImPhCXRmxpHVt1k7TWaa4bb3NbSeUx2rxyxeq7lYZFllI6/NYRCTOI/5JOrbElWmmSxrajU9K9IAKI6PkQ==} + '@typespec/openapi@1.16.0': + resolution: {integrity: sha512-6F+3e1dOJkIV4K0vCsuDpdwxoXnsT6eOomd4MpIUJAwyA7etEraUmPM9Qstp42MLIBoPWm9dK4Y9Whxtohc/KA==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 - '@typespec/http': ^1.14.0 + '@typespec/compiler': ^1.16.0 + '@typespec/http': ^1.16.0 - '@typespec/prettier-plugin-typespec@1.14.0': - resolution: {integrity: sha512-OW5VW8sqNdfoDgHgMo8sGsI1vCfY+Q54lgTU/uNqGKSgF6jBDyjpnQjRyxTZGX6GH7lWPQceolUV5noTjfWrRg==} + '@typespec/prettier-plugin-typespec@1.16.0': + resolution: {integrity: sha512-ciJZ/YHfPN/IbySM/5c7w/S9gIR4X+Ozv7L13Dr4UNtAV64/o3LH/GZuf3FUo0zxyPBwPWJHuCuXe+btddai7w==} - '@typespec/rest@0.84.0': - resolution: {integrity: sha512-9s5dDfRoHRPdtbVvkBasUx/RnMvwWMTuXRieSQDEji4gWGgxVu4Zt4MiEEKSfQrkMr3Aw0QjRCSxBxjMCHIOmA==} + '@typespec/rest@0.86.0': + resolution: {integrity: sha512-Lbl4x/ZW26r4ZsxpgvS7T3F998J7pvyDs+OsHgVKDI45EvPmdDydI4TKOH++UmHJ2tH8kw8KHzMPqCehWLIa6g==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 - '@typespec/http': ^1.14.0 + '@typespec/compiler': ^1.16.0 + '@typespec/http': ^1.16.0 '@typespec/sse@0.84.0': resolution: {integrity: sha512-9joNgVisRCWDFfV1d79iTAuR1W/6r+AKJrKUfcjsaTrq5A8OWW3v5TTsfxbHAZArn7n2WxQkqhNGgNyc8LjEng==} @@ -1179,17 +1196,17 @@ packages: '@typespec/http': ^1.14.0 '@typespec/streams': ^0.84.0 - '@typespec/streams@0.84.0': - resolution: {integrity: sha512-SDneR8+zY+ueOpzg9yJtttfDe/ikB99JgddZSXKPwiDPlAIEeEvI8auipcYfB58EEOB21h8Oq0tEm8HqiAAWdQ==} + '@typespec/streams@0.86.0': + resolution: {integrity: sha512-zK2kFtj53dVYnza6a6peEc5KPZ2l9iQCLaaoN1mO7IIYhNCaUMotv6qvbNJF7rw46HMm7u1Xzbi6NqeyVnnb9A==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 + '@typespec/compiler': ^1.16.0 - '@typespec/versioning@0.84.0': - resolution: {integrity: sha512-ZoDasTDj4z0mgFK+0cJL2+7DduCaTjvICHL2nQ/RBWc7nLgObaIYCjvXLno8WneDXnpxCAr7larN4/nlHEv9fg==} + '@typespec/versioning@0.86.0': + resolution: {integrity: sha512-/VUgQXSNcwbhNllTKptGAcoxYCh3+E/a9RUcmlBj7v04yIN4rkSFFmxHKRWKuKaz9LYQerXSPrVNM6Ja1msFlw==} engines: {node: '>=22.0.0'} peerDependencies: - '@typespec/compiler': ^1.14.0 + '@typespec/compiler': ^1.16.0 '@typespec/xml@0.81.0': resolution: {integrity: sha512-4docnAcV1a8gE4c4TmYuirZf2PEzS4xHUH4QjHFU6hk6J2M6OMU6YG4iSq9tmlUzQ/2DraVcWNO/fsG8Lt383A==} @@ -1699,6 +1716,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.3.0: + resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==} + engines: {node: '>=20'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1711,18 +1732,18 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - tar@7.5.21: - resolution: {integrity: sha512-XdhtCvlMywwxpCW8YEq3lOXBJpUPTR2OHHcwLPO3HwsJqOHa2Ok/oJ7ruGzp+JrKoRPVCzJwAdEjqLW/vNRPHA==} + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} engines: {node: '>=18'} - temporal-polyfill@1.0.1: - resolution: {integrity: sha512-N2SoI9olnW7BUsU8RosDphZQl9s+WJ8O7PoJMFCr/e5/1rFkVI4GNOWaSeySG+UoP04foPYsnLWbJmbXOiShZg==} + temporal-polyfill@1.0.6: + resolution: {integrity: sha512-tYyEry1HLGUDbm2356W3iYD0OZdo7rlP7h98Zr/EnjqLZQwTAfcBDUvJnJbfA15v/vQad57hJZScG5O0W2oKEA==} - temporal-spec@1.0.0: - resolution: {integrity: sha512-00Ahj1e1ifaERTMOIIGpOCdOo9IEk2m6GGSMedsn9a2SIsGLdOTbmME1Htv6IM82b6VHrzSUTIVc7YHy6hdhFQ==} + temporal-spec@1.0.1: + resolution: {integrity: sha512-wxVoanmDeavXie1vu2JaQ3WIc3JZnWAOYFBsJyATaVsXsycKYUflGsyBmrRSnoCpZJpwPyr38VpgSUlQ8CbFxg==} - temporal-utils@1.0.1: - resolution: {integrity: sha512-HAixuesxFQIUaQk3ptX2jhfO/FsOkgVkDDMawvp6n/fkB1q6BKfs3lURw9I+pK/2e2e/q/vrLrxmeqauBoyGMQ==} + temporal-utils@1.0.3: + resolution: {integrity: sha512-9jbTSX3HvkOWvDpNpFzwX/d1mkCrgQgwLmVTOEiuocZGKHsrQJtttGZFmybJ2zYP5zCSZuU5ZyeS8+eOEPABiQ==} tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -1760,6 +1781,10 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + undici@7.29.1: + resolution: {integrity: sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==} + engines: {node: '>=20.18.1'} + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -1860,8 +1885,8 @@ packages: vscode-languageserver-protocol@3.18.2: resolution: {integrity: sha512-XRyDbT0Pp3sSNti3JmxVEUMySWCSi1hhM+/KUlCy1hV1zmrqpM1OwO12EAki8blhmLuIMpaJrYbo0OzGVfK2Qg==} - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + vscode-languageserver-textdocument@1.0.15: + resolution: {integrity: sha512-Gsfr9S8LU3S6885cS+NaleasJ0n3V5y/SOTqHCifQiXWFw3G9w9/YItDfwHrlCz+dSZWWZ8ilYVMcJe7Sz7Sxw==} vscode-languageserver-types@3.18.0: resolution: {integrity: sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==} @@ -1911,8 +1936,8 @@ packages: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + yargs@18.2.0: + resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} zod@4.4.3: @@ -2020,55 +2045,55 @@ snapshots: - bufferutil - utf-8-validate - '@azure-tools/typespec-autorest@0.67.0(cb8bc4d609815356047ad8997b0a2b79)': + '@azure-tools/typespec-autorest@0.67.0(2ae82f54f5382049a576914709d16911)': dependencies: - '@azure-tools/typespec-azure-core': 0.67.0(5d916688b3aacc60dc4cc446c2043a47) - '@azure-tools/typespec-azure-resource-manager': 0.67.0(a97f33eb64121c34c90b9cf27bb0f437) - '@azure-tools/typespec-client-generator-core': 0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/openapi': 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/rest': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/versioning': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@azure-tools/typespec-azure-core': 0.67.0(7ceb76c9a5323943b3d0bf18faa60c17) + '@azure-tools/typespec-azure-resource-manager': 0.67.0(897e6d5f495859a0860cc37b31445b29) + '@azure-tools/typespec-client-generator-core': 0.72.0(c314e46f44c81bb409927108b9acfaaf) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/openapi': 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/rest': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/versioning': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) optionalDependencies: - '@typespec/xml': 0.81.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@typespec/xml': 0.81.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) - '@azure-tools/typespec-azure-core@0.67.0(5d916688b3aacc60dc4cc446c2043a47)': + '@azure-tools/typespec-azure-core@0.67.0(7ceb76c9a5323943b3d0bf18faa60c17)': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/rest': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/rest': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) - '@azure-tools/typespec-azure-resource-manager@0.67.0(a97f33eb64121c34c90b9cf27bb0f437)': + '@azure-tools/typespec-azure-resource-manager@0.67.0(897e6d5f495859a0860cc37b31445b29)': dependencies: - '@azure-tools/typespec-azure-core': 0.67.0(5d916688b3aacc60dc4cc446c2043a47) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/openapi': 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/rest': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/versioning': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@azure-tools/typespec-azure-core': 0.67.0(7ceb76c9a5323943b3d0bf18faa60c17) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/openapi': 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/rest': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/versioning': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) change-case: 5.4.4 pluralize: 8.0.0 - '@azure-tools/typespec-azure-rulesets@0.67.0(@azure-tools/typespec-azure-core@0.67.0(5d916688b3aacc60dc4cc446c2043a47))(@azure-tools/typespec-azure-resource-manager@0.67.0(a97f33eb64121c34c90b9cf27bb0f437))(@azure-tools/typespec-client-generator-core@0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d))(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': - dependencies: - '@azure-tools/typespec-azure-core': 0.67.0(5d916688b3aacc60dc4cc446c2043a47) - '@azure-tools/typespec-azure-resource-manager': 0.67.0(a97f33eb64121c34c90b9cf27bb0f437) - '@azure-tools/typespec-client-generator-core': 0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - - '@azure-tools/typespec-client-generator-core@0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d)': - dependencies: - '@azure-tools/typespec-azure-core': 0.67.0(5d916688b3aacc60dc4cc446c2043a47) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/events': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/openapi': 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/rest': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/sse': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/streams': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/versioning': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/xml': 0.81.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@azure-tools/typespec-azure-rulesets@0.67.0(@azure-tools/typespec-azure-core@0.67.0(7ceb76c9a5323943b3d0bf18faa60c17))(@azure-tools/typespec-azure-resource-manager@0.67.0(897e6d5f495859a0860cc37b31445b29))(@azure-tools/typespec-client-generator-core@0.72.0(c314e46f44c81bb409927108b9acfaaf))(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': + dependencies: + '@azure-tools/typespec-azure-core': 0.67.0(7ceb76c9a5323943b3d0bf18faa60c17) + '@azure-tools/typespec-azure-resource-manager': 0.67.0(897e6d5f495859a0860cc37b31445b29) + '@azure-tools/typespec-client-generator-core': 0.72.0(c314e46f44c81bb409927108b9acfaaf) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + + '@azure-tools/typespec-client-generator-core@0.72.0(c314e46f44c81bb409927108b9acfaaf)': + dependencies: + '@azure-tools/typespec-azure-core': 0.67.0(7ceb76c9a5323943b3d0bf18faa60c17) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/events': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/openapi': 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/rest': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/sse': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/streams': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/versioning': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/xml': 0.81.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) change-case: 5.4.4 pluralize: 8.0.0 yaml: 2.9.0 @@ -2370,29 +2395,29 @@ snapshots: fetch-mock: 12.6.0 vitest: 4.1.12(@types/node@26.1.1)(@vitest/coverage-v8@4.1.12)(vite@8.1.6(@types/node@26.1.1)(esbuild@0.28.1)(tsx@4.23.1)(yaml@2.9.0)) - '@inquirer/ansi@2.0.7': {} + '@inquirer/ansi@2.0.9': {} - '@inquirer/checkbox@5.2.1(@types/node@26.1.1)': + '@inquirer/checkbox@5.2.6(@types/node@26.1.1)': dependencies: - '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/ansi': 2.0.9 + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/figures': 2.0.9 + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/confirm@6.1.1(@types/node@26.1.1)': + '@inquirer/confirm@6.3.3(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/core@11.2.1(@types/node@26.1.1)': + '@inquirer/core@12.0.4(@types/node@26.1.1)': dependencies: - '@inquirer/ansi': 2.0.7 - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/ansi': 2.0.9 + '@inquirer/figures': 2.0.9 + '@inquirer/type': 4.2.0(@types/node@26.1.1) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 @@ -2400,92 +2425,92 @@ snapshots: optionalDependencies: '@types/node': 26.1.1 - '@inquirer/editor@5.2.2(@types/node@26.1.1)': + '@inquirer/editor@5.3.4(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/external-editor': 3.0.3(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/external-editor': 3.0.6(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/expand@5.1.1(@types/node@26.1.1)': + '@inquirer/expand@5.1.6(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/external-editor@3.0.3(@types/node@26.1.1)': + '@inquirer/external-editor@3.0.6(@types/node@26.1.1)': dependencies: chardet: 2.2.0 iconv-lite: 0.7.3 optionalDependencies: '@types/node': 26.1.1 - '@inquirer/figures@2.0.7': {} + '@inquirer/figures@2.0.9': {} - '@inquirer/input@5.1.2(@types/node@26.1.1)': + '@inquirer/input@5.1.7(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/number@4.1.1(@types/node@26.1.1)': + '@inquirer/number@4.2.4(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/password@5.1.1(@types/node@26.1.1)': + '@inquirer/password@5.2.3(@types/node@26.1.1)': dependencies: - '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/ansi': 2.0.9 + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/prompts@8.5.2(@types/node@26.1.1)': - dependencies: - '@inquirer/checkbox': 5.2.1(@types/node@26.1.1) - '@inquirer/confirm': 6.1.1(@types/node@26.1.1) - '@inquirer/editor': 5.2.2(@types/node@26.1.1) - '@inquirer/expand': 5.1.1(@types/node@26.1.1) - '@inquirer/input': 5.1.2(@types/node@26.1.1) - '@inquirer/number': 4.1.1(@types/node@26.1.1) - '@inquirer/password': 5.1.1(@types/node@26.1.1) - '@inquirer/rawlist': 5.3.1(@types/node@26.1.1) - '@inquirer/search': 4.2.1(@types/node@26.1.1) - '@inquirer/select': 5.2.1(@types/node@26.1.1) + '@inquirer/prompts@8.7.3(@types/node@26.1.1)': + dependencies: + '@inquirer/checkbox': 5.2.6(@types/node@26.1.1) + '@inquirer/confirm': 6.3.3(@types/node@26.1.1) + '@inquirer/editor': 5.3.4(@types/node@26.1.1) + '@inquirer/expand': 5.1.6(@types/node@26.1.1) + '@inquirer/input': 5.1.7(@types/node@26.1.1) + '@inquirer/number': 4.2.4(@types/node@26.1.1) + '@inquirer/password': 5.2.3(@types/node@26.1.1) + '@inquirer/rawlist': 5.3.6(@types/node@26.1.1) + '@inquirer/search': 4.3.4(@types/node@26.1.1) + '@inquirer/select': 5.2.6(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/rawlist@5.3.1(@types/node@26.1.1)': + '@inquirer/rawlist@5.3.6(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/search@4.2.1(@types/node@26.1.1)': + '@inquirer/search@4.3.4(@types/node@26.1.1)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/figures': 2.0.9 + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/select@5.2.1(@types/node@26.1.1)': + '@inquirer/select@5.2.6(@types/node@26.1.1)': dependencies: - '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/ansi': 2.0.9 + '@inquirer/core': 12.0.4(@types/node@26.1.1) + '@inquirer/figures': 2.0.9 + '@inquirer/type': 4.2.0(@types/node@26.1.1) optionalDependencies: '@types/node': 26.1.1 - '@inquirer/type@4.0.7(@types/node@26.1.1)': + '@inquirer/type@4.2.0(@types/node@26.1.1)': optionalDependencies: '@types/node': 26.1.1 @@ -2574,20 +2599,29 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@scalar/helpers@0.9.2': {} + '@scalar/helpers@0.11.1': {} - '@scalar/json-magic@0.12.19': + '@scalar/helpers@0.12.0': {} + + '@scalar/json-magic@0.13.2': dependencies: - '@scalar/helpers': 0.9.2 + '@scalar/helpers': 0.11.1 pathe: 2.0.3 yaml: 2.9.0 - '@scalar/openapi-parser@0.28.10': + '@scalar/json-magic@0.13.5': dependencies: - '@scalar/helpers': 0.9.2 - '@scalar/json-magic': 0.12.19 - '@scalar/openapi-types': 0.9.3 - '@scalar/openapi-upgrader': 0.2.11 + '@scalar/helpers': 0.12.0 + pathe: 2.0.3 + undici: 7.29.1 + yaml: 2.9.0 + + '@scalar/openapi-parser@0.28.16': + dependencies: + '@scalar/helpers': 0.11.1 + '@scalar/json-magic': 0.13.2 + '@scalar/openapi-types': 0.9.5 + '@scalar/openapi-upgrader': 0.2.15 ajv: 8.20.0 ajv-draft-04: 1.0.0(ajv@8.20.0) ajv-formats: 3.0.1(ajv@8.20.0) @@ -2595,11 +2629,13 @@ snapshots: leven: 4.1.0 yaml: 2.9.0 - '@scalar/openapi-types@0.9.3': {} + '@scalar/openapi-types@0.9.5': {} - '@scalar/openapi-upgrader@0.2.11': + '@scalar/openapi-types@0.9.8': {} + + '@scalar/openapi-upgrader@0.2.15': dependencies: - '@scalar/openapi-types': 0.9.3 + '@scalar/openapi-types': 0.9.5 '@standard-schema/spec@1.1.0': {} @@ -2687,14 +2723,14 @@ snapshots: '@typescript/typescript-win32-x64@7.0.2': optional: true - '@typespec/asset-emitter@0.79.1(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/asset-emitter@0.79.2(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) - '@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)': + '@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)': dependencies: '@babel/code-frame': 7.29.7 - '@inquirer/prompts': 8.5.2(@types/node@26.1.1) + '@inquirer/prompts': 8.7.3(@types/node@26.1.1) ajv: 8.20.0 change-case: 5.4.4 env-paths: 4.0.0 @@ -2703,43 +2739,43 @@ snapshots: picocolors: 1.1.1 prettier: 3.9.6 semver: 7.8.5 - tar: 7.5.21 - temporal-polyfill: 1.0.1 + tar: 7.5.22 + temporal-polyfill: 1.0.6 vscode-languageserver: 10.1.0 - vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-textdocument: 1.0.15 yaml: 2.9.0 - yargs: 18.0.0 + yargs: 18.2.0 transitivePeerDependencies: - '@types/node' - '@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: '@alloy-js/core': 0.24.1 '@alloy-js/csharp': 0.22.0 '@alloy-js/python': 0.3.0 '@alloy-js/typescript': 0.24.0 - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - - '@typespec/events@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': - dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - - '@typespec/http-client-python@0.35.0(patch_hash=c9d83ee26f420c6783dbf4d196533650ade297eda92e2bb249df2e822a8d994a)(2696e5eda1c5f71a3fb8b2d8bdf079ba)': - dependencies: - '@azure-tools/typespec-autorest': 0.67.0(cb8bc4d609815356047ad8997b0a2b79) - '@azure-tools/typespec-azure-core': 0.67.0(5d916688b3aacc60dc4cc446c2043a47) - '@azure-tools/typespec-azure-resource-manager': 0.67.0(a97f33eb64121c34c90b9cf27bb0f437) - '@azure-tools/typespec-azure-rulesets': 0.67.0(@azure-tools/typespec-azure-core@0.67.0(5d916688b3aacc60dc4cc446c2043a47))(@azure-tools/typespec-azure-resource-manager@0.67.0(a97f33eb64121c34c90b9cf27bb0f437))(@azure-tools/typespec-client-generator-core@0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d))(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@azure-tools/typespec-client-generator-core': 0.70.0(f143bd1a87e01af6d9cc5b76d61cac4d) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/events': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/openapi': 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/rest': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) - '@typespec/sse': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/streams': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/versioning': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/xml': 0.81.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + + '@typespec/events@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': + dependencies: + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + + '@typespec/http-client-python@0.35.0(patch_hash=c9d83ee26f420c6783dbf4d196533650ade297eda92e2bb249df2e822a8d994a)(38ae7374e2203a6260b3856a151f2b3d)': + dependencies: + '@azure-tools/typespec-autorest': 0.67.0(2ae82f54f5382049a576914709d16911) + '@azure-tools/typespec-azure-core': 0.67.0(7ceb76c9a5323943b3d0bf18faa60c17) + '@azure-tools/typespec-azure-resource-manager': 0.67.0(897e6d5f495859a0860cc37b31445b29) + '@azure-tools/typespec-azure-rulesets': 0.67.0(@azure-tools/typespec-azure-core@0.67.0(7ceb76c9a5323943b3d0bf18faa60c17))(@azure-tools/typespec-azure-resource-manager@0.67.0(897e6d5f495859a0860cc37b31445b29))(@azure-tools/typespec-client-generator-core@0.72.0(c314e46f44c81bb409927108b9acfaaf))(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@azure-tools/typespec-client-generator-core': 0.72.0(c314e46f44c81bb409927108b9acfaaf) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/events': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/openapi': 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/rest': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) + '@typespec/sse': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/streams': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/versioning': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/xml': 0.81.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) js-yaml: 4.3.2 marked: 15.0.12 pyodide: 0.26.2 @@ -2749,76 +2785,76 @@ snapshots: - bufferutil - utf-8-validate - '@typespec/http-client@0.16.0(patch_hash=7b97c893a552597584944904afc15877f43250e31cb64a3e007ea96976b69d19)(@alloy-js/core@0.24.1)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))': + '@typespec/http-client@0.16.0(patch_hash=7b97c893a552597584944904afc15877f43250e31cb64a3e007ea96976b69d19)(@alloy-js/core@0.24.1)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/emitter-framework@0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))': dependencies: '@alloy-js/core': 0.24.1 '@alloy-js/typescript': 0.24.0 - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/emitter-framework': 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/emitter-framework': 0.19.0(patch_hash=ab547aaec873aa46a9f7d4e718b3dc9eb3b3c03a1bb49233c324ee572ef62fd0)(@alloy-js/core@0.24.1)(@alloy-js/csharp@0.22.0)(@alloy-js/python@0.3.0)(@alloy-js/typescript@0.24.0)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) - '@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))': + '@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) optionalDependencies: - '@typespec/streams': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@typespec/streams': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) - '@typespec/json-schema@1.14.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/json-schema@1.16.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: - '@typespec/asset-emitter': 0.79.1(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/asset-emitter': 0.79.2(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) yaml: 2.9.0 - '@typespec/openapi3@1.14.0(patch_hash=47deb425b3eaa7a12b4b92157f0f3e5784bb61b20be4d302f6d391f1b750b5c2)(ed8c328b3a62f1d3832914185922d1cb)': + '@typespec/openapi3@1.16.0(patch_hash=15528c01821ed876a1b6eb5764d5494c03421f061903db56329bdb53486f7765)(111ff52ca82108025fd386e6a7f0ca45)': dependencies: - '@scalar/json-magic': 0.12.19 - '@scalar/openapi-parser': 0.28.10 - '@scalar/openapi-types': 0.9.3 - '@typespec/asset-emitter': 0.79.1(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/openapi': 1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))) + '@scalar/json-magic': 0.13.5 + '@scalar/openapi-parser': 0.28.16 + '@scalar/openapi-types': 0.9.8 + '@typespec/asset-emitter': 0.79.2(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/openapi': 1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))) yaml: 2.9.0 optionalDependencies: - '@typespec/events': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/json-schema': 1.14.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/sse': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/streams': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/versioning': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/xml': 0.81.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@typespec/events': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/json-schema': 1.16.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/sse': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/streams': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/versioning': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/xml': 0.81.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) - '@typespec/openapi@1.14.0(patch_hash=a717b240dcdc3d23f8b752d783844b65ef750bad173549d92db12a5a0131183c)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))': + '@typespec/openapi@1.16.0(patch_hash=a44757d47142b3577fdd6486abc90f2310750c341a71fd86e81ab7774c025a57)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) - '@typespec/prettier-plugin-typespec@1.14.0': + '@typespec/prettier-plugin-typespec@1.16.0': dependencies: prettier: 3.9.6 - '@typespec/rest@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))': + '@typespec/rest@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) - '@typespec/sse@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))(@typespec/http@1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)))': + '@typespec/sse@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/events@0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))(@typespec/http@1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) - '@typespec/events': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) - '@typespec/http': 1.14.0(patch_hash=2c55262cf42b2d54e5db3b8fe28abb4ab702cf9dbf34b5650c367270ec6ee5ef)(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))(@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))) - '@typespec/streams': 0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1)) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) + '@typespec/events': 0.84.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) + '@typespec/http': 1.16.0(patch_hash=f8df299e1f9d75283e428307cc8d98f49dd0ea09500892e7755401a87aa94716)(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))(@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))) + '@typespec/streams': 0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1)) - '@typespec/streams@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/streams@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) - '@typespec/versioning@0.84.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/versioning@0.86.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) - '@typespec/xml@0.81.0(@typespec/compiler@1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1))': + '@typespec/xml@0.81.0(@typespec/compiler@1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1))': dependencies: - '@typespec/compiler': 1.14.0(patch_hash=4ba2da18fa7e2cd90e9c499debf14fc53ec5b6abae9eb2f5ddcb0c2eb52c0717)(@types/node@26.1.1) + '@typespec/compiler': 1.16.0(patch_hash=f56264401e78e743ff76c41e59163584eff7373855810a073e60c6f949858eed)(@types/node@26.1.1) '@vitest/coverage-v8@4.1.12(vitest@4.1.12)': dependencies: @@ -3255,6 +3291,11 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 + string-width@8.3.0: + dependencies: + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3267,7 +3308,7 @@ snapshots: dependencies: has-flag: 4.0.0 - tar@7.5.21: + tar@7.5.22: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -3275,14 +3316,14 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - temporal-polyfill@1.0.1: + temporal-polyfill@1.0.6: dependencies: - temporal-spec: 1.0.0 - temporal-utils: 1.0.1 + temporal-spec: 1.0.1 + temporal-utils: 1.0.3 - temporal-spec@1.0.0: {} + temporal-spec@1.0.1: {} - temporal-utils@1.0.1: {} + temporal-utils@1.0.3: {} tinybench@2.9.0: {} @@ -3331,6 +3372,8 @@ snapshots: undici-types@8.3.0: {} + undici@7.29.1: {} + update-browserslist-db@1.2.3(browserslist@4.28.7): dependencies: browserslist: 4.28.7 @@ -3388,7 +3431,7 @@ snapshots: vscode-jsonrpc: 9.0.1 vscode-languageserver-types: 3.18.0 - vscode-languageserver-textdocument@1.0.12: {} + vscode-languageserver-textdocument@1.0.15: {} vscode-languageserver-types@3.18.0: {} @@ -3419,12 +3462,12 @@ snapshots: yargs-parser@22.0.0: {} - yargs@18.0.0: + yargs@18.2.0: dependencies: cliui: 9.0.1 escalade: 3.2.0 get-caller-file: 2.0.5 - string-width: 7.2.0 + string-width: 8.3.0 y18n: 5.0.8 yargs-parser: 22.0.0 diff --git a/api/spec/pnpm-workspace.yaml b/api/spec/pnpm-workspace.yaml index 02318d2adc..d962837f8d 100644 --- a/api/spec/pnpm-workspace.yaml +++ b/api/spec/pnpm-workspace.yaml @@ -5,14 +5,16 @@ minimumReleaseAge: 4320 minimumReleaseAgeExclude: [] trustPolicy: no-downgrade patchedDependencies: - '@typespec/compiler': patches/@typespec__compiler.patch + '@typespec/compiler@1.16.0': patches/@typespec__compiler@1.16.0.patch '@typespec/emitter-framework': patches/@typespec__emitter-framework.patch - '@typespec/http': patches/@typespec__http.patch '@typespec/http-client': patches/@typespec__http-client.patch '@typespec/http-client-python': patches/@typespec__http-client-python.patch - '@typespec/openapi': patches/@typespec__openapi.patch - '@typespec/openapi3': patches/@typespec__openapi3.patch + '@typespec/http@1.16.0': patches/@typespec__http@1.16.0.patch + '@typespec/openapi3@1.16.0': patches/@typespec__openapi3@1.16.0.patch + '@typespec/openapi@1.16.0': patches/@typespec__openapi@1.16.0.patch overrides: + # asset-emitter 0.79.3 requires compiler 1.17; this workspace uses 1.16. + '@typespec/asset-emitter': '0.79.2' 'devalue@>=5.0.0 <5.9.3': '5.9.3' 'fast-uri@>=3.0.0 <3.1.8': '3.1.8' 'js-yaml@>=4.0.0 <4.3.2': '4.3.2' @@ -20,6 +22,7 @@ overrides: 'postcss@>=8.0.0 <8.5.23': '8.5.23' 'source-map-js@>=1.0.0 <1.2.2': '1.2.2' 'semver@<7.7.4': '>=7.7.4' + 'undici@>=7.0.0 <7.29.1': '7.29.1' packageExtensions: '@alloy-js/cli': dependencies: