Repository navigation
Add Azurite TypeSpec emitter prototype - #5614
iscai-msft wants to merge 54 commits into
Conversation
Pilot/prototype TypeSpec emitter proving out the architecture for an Azurite-owned replacement of the AutoRest-based server code generation for Azure Storage. Modeled structurally on microsoft/typespec's GraphQL emitter (transform-then-render), consuming @typespec/http metadata directly (no Alloy/JSX; plain TS string rendering for this pilot). - src/build-model.ts: transform phase building an intermediate "server model" (operations, parameters, bodies, responses, models) decoupled from @typespec/http's exact shapes. - src/render/: render phase producing models.ts, operations.ts (route/parameter-binding metadata), and handlers.ts (one handler interface per operation). - test/fixtures/queue-pilot: a minimal, self-contained "Queue-like" fixture (base.tsp) plus an azurite.tsp overlay that layers emulator-specific documentation via augment decorators, without modifying the base file. - Unit tests for the transform phase, assertion tests for the render phase, and a true end-to-end test via @typespec/compiler/testing. - README documents what the pilot demonstrates and what is explicitly out of scope (full Storage surface, XML, TCGC, streaming, etc). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Fetched Azurite's actual generated artifacts from Azure/Azurite's main
branch (src/queue/generated/{handlers/IQueueHandler.ts,
middleware/dispatch.middleware.ts, artifacts/{parameters,
specifications,operation}.ts, Context.ts}) and added
test/azurite-compat.test.ts asserting our generated handlers.ts/
operations.ts carry the same categories of information Azurite's real
dispatcher/handler boundary relies on, citing the specific files/
behaviors compared against.
Comparing surfaced two concrete gaps vs. the first draft, both closed:
- Handler methods were missing Azurite's trailing per-request `context`
argument (IQueueHandler methods take `(options, context)`, not just
`options`). handlers.ts now generates a minimal placeholder `Context`
type and every method takes `(params, context)`.
- Route metadata was missing per-parameter `required` and per-status
response/header info, which Azurite's dispatch.middleware.ts uses to
disambiguate operations sharing a path/verb and to find per-status
header mappers. OperationParameterBinding now includes `required`,
and OperationMetadata now includes a `responses` array.
Updated render.test.ts/e2e.test.ts for the new shapes and the README's
"what this demonstrates" + a new "gaps found (and closed)" section.
All 33 tests pass; build and oxlint (including --type-aware) are clean.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Running the pilot emitter's generated output through a real end-to-end check against Azure/Azurite's own `tsc` build (see Azure/Azurite#2831) surfaced a compile error: operations.ts referenced model types used as request/response bodies (e.g. a model body for a PUT, or a model response body) without importing them from models.ts, failing with TS2304 "Cannot find name". Adds `collectModelRefs` in type-ref.ts to walk a ServerTypeRef (including through array element types) and collect referenced model names, and uses it in render-operations.ts to emit a single `import type { ... } from "./models.js";` line when needed. Adds a unit test in render.test.ts and an e2e regression test in e2e.test.ts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
You can try these changes here
|
commit: |
📦 Package size report6 packages changed size, +14.57 KB (+0.1%) packed overall.
9 package(s) with no notable change
Packed = gzipped |
|
All changed packages have been documented.
Show changes
|
…data Wiring a real hand-written Express dispatcher against the generated operations metadata (for the companion Azure/Azurite end-to-end PR) surfaced a gap: OperationResponseMetadata only carried header wire names (headerWireNames: string[]), not the TS property name a dispatcher needs to read off a handler's typed XxxResponse result object (e.g. the generated type uses `approximateMessagesCount`, but the real wire header is `x-ms-approximate-messages-count` -- a dispatcher has no way to connect the two from a wire name alone). Replaces `headerWireNames: readonly string[]` with `headers: readonly OperationResponseHeaderBinding[]`, where each entry carries both `name` (matching the XxxResponse type's headers object key) and `wireName`. Updates render.test.ts and azurite-compat.test.ts accordingly. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…tp-client-js source Cites what @typespec/graphql's emitter.tsx and @typespec/http-client-js's components actually do with Alloy (schema-object rendering + printSchema() for GraphQL; refkey-based symbol/import management and TCGC type rendering for http-client-js), explains why this pilot's flat 3-file output doesn't yet exercise those value-adds, and gives a concrete trigger for revisiting Alloy once the real multi-hundred-operation Storage surface lands. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…e Queue TypeSpec Vendors the real Azure Storage Queue TypeSpec (byte-for-byte unchanged, see test/fixtures/storage-queue-real/PROVENANCE.md for source commit) plus a real azurite.tsp overlay citing Azurite's documented swagger/queue.md customizations, as evidence the pilot architecture holds up against a real spec and not just an internally-consistent toy fixture. Found and fixed three concrete gaps surfaced only by the real spec: - Record<T> dictionary properties (e.g. QueueItem.metadata) were mis-rendered as empty named models instead of Record<string, X>. - Anonymous models were keyed by name (empty string for all of them), silently coalescing genuinely distinct anonymous shapes into one registry entry; now keyed by TypeSpec object identity. - Service.getProperties and Queue.getProperties both PascalCase to GetProperties, a real TS2300 duplicate-identifier collision; operations are now disambiguated by containing interface name when needed. Result: all 17 real Queue operations build and render with zero diagnostics and zero skipped operations (tracked via a new ServerModel.skippedOperations field for honest gap reporting going forward). The overlay demonstrates a confirmed-working augment-decorator relaxation of VisibilityTimeoutParameter's @MaxValue (sendMessage), and honestly documents one open gap: the same relaxation for updateMessage's own inline visibilityTimeout parameter fails via ::parameters reflection, pinned down by a dedicated test rather than silently left to regress unnoticed. See test/real-queue-spec.test.ts and the README's new 'Real-spec compatibility' section for details. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
An earlier .chronus/config.yaml 14ms (unchanged) .devcontainer/devcontainer.json 10ms (unchanged) .devcontainer/Dockerfile 43ms (unchanged) .github/actionlint.yml 1ms (unchanged) .github/actions/setup-go/action.yml 2ms (unchanged) .github/actions/setup-java/action.yml 1ms (unchanged) .github/actions/setup-python/action.yml 1ms (unchanged) .github/actions/setup/action.yml 2ms (unchanged) .github/agents/agentic-workflows.agent.md 53ms (unchanged) .github/aw/actions-lock.json 1ms (unchanged) .github/copilot-instructions.md 8ms (unchanged) .github/dependabot.yml 2ms (unchanged) .github/instructions/typespec-ts.instructions.md 12ms (unchanged) .github/ISSUE_TEMPLATE/bug-report.yml 3ms (unchanged) .github/ISSUE_TEMPLATE/common-types-request.yml 2ms (unchanged) .github/ISSUE_TEMPLATE/config.yml 1ms (unchanged) .github/ISSUE_TEMPLATE/feature-request.yml 1ms (unchanged) .github/ISSUE_TEMPLATE/onboarding-request.yml 2ms (unchanged) .github/ISSUE_TEMPLATE/z_breaking-change-form.md 2ms (unchanged) .github/matchers/actionlint.json 1ms (unchanged) .github/matchers/oxlint.json 1ms (unchanged) .github/policies/issues.needs-info.yml 2ms (unchanged) .github/policies/issues.triage.generated.yml 5ms (unchanged) .github/policies/pr.dependabot-core-auto-merge.yml 1ms (unchanged) .github/policies/pr.stale.yml 1ms (unchanged) .github/policies/prs.linter-rule-integration.yml 1ms (unchanged) .github/policies/prs.triage.generated.yml 3ms (unchanged) .github/prompts/testserver-generation.md 19ms (unchanged) .github/scripts/spector-coverage-report-typescript.ts 438ms (unchanged) .github/skills/code-review/SKILL.md 10ms (unchanged) .github/skills/create-linter-rule/SKILL.md 65ms (unchanged) .github/skills/doc-example-generator/package.json 1ms (unchanged) .github/skills/doc-example-generator/SKILL.md 28ms (unchanged) .github/skills/doc-example-generator/tspconfig.yaml 1ms (unchanged) .github/skills/hotfix-release/SKILL.md 45ms (unchanged) .github/skills/tcgc-newsletter/SKILL.md 8ms (unchanged) .github/skills/typespec-go-add-spector-test/SKILL.md 35ms (unchanged) .github/skills/typespec-python-release/SKILL.md 59ms (unchanged) .github/skills/typespec-ts-add-spector-test/references/naming-and-templates.md 12ms (unchanged) .github/skills/typespec-ts-add-spector-test/SKILL.md 70ms (unchanged) .github/workflows/benchmark-external.yml 2ms (unchanged) .github/workflows/benchmark-run.yml 3ms (unchanged) .github/workflows/benchmark.yml 1ms (unchanged) .github/workflows/ci-downstream.yml 2ms (unchanged) .github/workflows/ci-emitter-diff-go-commenter.yml 1ms (unchanged) .github/workflows/ci-emitter-diff-go.yml 3ms (unchanged) .github/workflows/ci-go.yml 2ms (unchanged) .github/workflows/ci-java.yml 1ms (unchanged) .github/workflows/ci-python.yml 3ms (unchanged) .github/workflows/ci-typescript.yml 2ms (unchanged) .github/workflows/ci.yml 3ms (unchanged) .github/workflows/codeql.yml 2ms (unchanged) .github/workflows/commenter.yml 1ms (unchanged) .github/workflows/consistency.yml 3ms (unchanged) .github/workflows/copilot-setup-steps.yml 1ms (unchanged) .github/workflows/dependabot-core-sync.yml 1ms (unchanged) .github/workflows/doc-update-scheduler.yml 2ms (unchanged) .github/workflows/doc-update.md 13ms (unchanged) .github/workflows/docs-sync.md 6ms (unchanged) .github/workflows/external-integration.yml 1ms (unchanged) .github/workflows/merge-release-in-main.yml 1ms (unchanged) .github/workflows/nightly-e2e.yml 3ms (unchanged) .github/workflows/package-size-comment.yml 1ms (unchanged) .github/workflows/package-size.yml 2ms (unchanged) .github/workflows/preview.yml 1ms (unchanged) .github/workflows/spector-coverage-report-typescript.yml 2ms (unchanged) .github/workflows/sync-labels.yml 1ms (unchanged) .github/workflows/verify-labels.yml 1ms (unchanged) .github/workflows/website-gh-pages.yml 1ms (unchanged) .gitignore 5ms (unchanged) .prettierignore 4ms (unchanged) .prettierrc.json 1ms (unchanged) .typespec-integration/config.yaml 1ms (unchanged) .vscode/extensions.json 1ms (unchanged) .vscode/launch.json 3ms (unchanged) .vscode/mcp.json 0ms (unchanged) .vscode/settings.json 1ms (unchanged) .vscode/tasks.json 1ms (unchanged) CONTRIBUTING.md 54ms (unchanged) cspell.yaml 2ms (unchanged) design/unions.md 16ms (unchanged) docs/breaking-changes.md 3ms (unchanged) docs/readme.md 1ms (unchanged) eng/common/pipelines/templates/steps/create-authenticated-npmrc.yml 1ms (unchanged) eng/common/pipelines/templates/steps/login-to-github.yml 1ms (unchanged) eng/common/pipelines/templates/steps/maven-authenticate.yml 1ms (unchanged) eng/common/pipelines/templates/steps/python-auth-dev-feed.yml 1ms (unchanged) eng/config/labels.ts 40ms (unchanged) eng/CredScanSuppression.json 1ms (unchanged) eng/feeds/test/init-templates.e2e.ts 16ms (unchanged) eng/pipelines/jobs/build-for-publish.yml 2ms (unchanged) eng/pipelines/jobs/create-github-release.yml 1ms (unchanged) eng/pipelines/jobs/publish-npm.yml 2ms (unchanged) eng/pipelines/jobs/spector-coverage.yml 3ms (unchanged) eng/pipelines/nuget-release.yml 2ms (unchanged) eng/pipelines/pr-tools.yml 1ms (unchanged) eng/pipelines/publish.yml 1ms (unchanged) eng/pipelines/templates/1es-redirect.yml 2ms (unchanged) eng/pipelines/templates/build.yml 0ms (unchanged) eng/pipelines/templates/install-browsers.yml 1ms (unchanged) eng/pipelines/templates/install.yml 1ms (unchanged) eng/pipelines/templates/pack.yml 1ms (unchanged) eng/pipelines/templates/release/ado-feed-release.yml 1ms (unchanged) eng/pipelines/templates/release/esrp-release.yml 1ms (unchanged) eng/pipelines/templates/upload-coverage.yml 0ms (unchanged) eng/pipelines/templates/upload-spector-coverage.yml 1ms (unchanged) eng/pipelines/templates/variables/globals.yml 0ms (unchanged) eng/pipelines/templates/variables/image.yml 1ms (unchanged) eng/scripts/bundle-size/compare.test.ts 12ms (unchanged) eng/scripts/bundle-size/compare.ts 13ms (unchanged) eng/scripts/bundle-size/measure.ts 8ms (unchanged) eng/scripts/bundle-size/utils.ts 7ms (unchanged) eng/scripts/check-for-changed-files.js 6ms (unchanged) eng/scripts/check-lockfile.ts 4ms (unchanged) eng/scripts/create-linter-rule.ts 16ms (unchanged) eng/scripts/detect-affected.config.json 1ms (unchanged) eng/scripts/detect-affected.test.ts 8ms (unchanged) eng/scripts/detect-affected.ts 9ms (unchanged) eng/scripts/doc-updater/configs/azure-resource-manager.yaml 1ms (unchanged) eng/scripts/doc-updater/configs/tcgc.yaml 1ms (unchanged) eng/scripts/doc-updater/flow.md 2ms (unchanged) eng/scripts/doc-updater/knowledge/azure-resource-manager.md 14ms (unchanged) eng/scripts/doc-updater/knowledge/azure-resource-manager.meta.json 1ms (unchanged) eng/scripts/doc-updater/knowledge/README.md 1ms (unchanged) eng/scripts/doc-updater/knowledge/tcgc.md 37ms (unchanged) eng/scripts/doc-updater/knowledge/tcgc.meta.json 1ms (unchanged) eng/scripts/doc-updater/package.json 0ms (unchanged) eng/scripts/doc-updater/prompts/azure-resource-manager.md 9ms (unchanged) eng/scripts/doc-updater/prompts/tcgc.md 11ms (unchanged) eng/scripts/doc-updater/src/config.ts 6ms (unchanged) eng/scripts/doc-updater/src/precompute.ts 9ms (unchanged) eng/scripts/doc-updater/src/print-allowed-paths.ts 3ms (unchanged) eng/scripts/doc-updater/src/state.ts 11ms (unchanged) eng/scripts/doc-updater/src/update-meta.ts 4ms (unchanged) eng/scripts/doc-updater/tsconfig.json 1ms (unchanged) eng/scripts/gen-sdk.js 6ms (unchanged) eng/scripts/generate-third-party-notices.js 7ms (unchanged) eng/scripts/helpers.js 6ms (unchanged) eng/scripts/lint-resourcemanager.js 8ms (unchanged) eng/scripts/package.json 0ms (unchanged) eng/scripts/pkg-pr-new.ts 4ms (unchanged) eng/scripts/prepare-publish.js 8ms (unchanged) eng/scripts/sync-ci-tool-versions.test.ts 7ms (unchanged) eng/scripts/sync-ci-tool-versions.ts 4ms (unchanged) eng/scripts/sync-common-types.ts 7ms (unchanged) eng/scripts/sync-deps.ts 22ms (unchanged) eng/scripts/upload-bundler-packages.js 2ms (unchanged) eng/scripts/validate-core-submodule.js 2ms (unchanged) eng/scripts/validate-pr.ts 18ms (unchanged) eng/scripts/vitest-config.test.ts 6ms (unchanged) eng/tsconfig.json 0ms (unchanged) eng/vitest.config.ts 2ms (unchanged) oxlint.config.ts 3ms (unchanged) package.json 1ms (unchanged) packages/azure-http-specs/.gitignore 3ms (unchanged) packages/azure-http-specs/package.json 0ms (unchanged) packages/azure-http-specs/README.md 5ms (unchanged) packages/azure-http-specs/spec-summary.md 205ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/access/main.tsp 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/access/mockapi.ts 10ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/alternate-type/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/alternate-type/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/alternate-type/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/client-api-versions/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/client-api-versions/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/header/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/header/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/header/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/path/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/path/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/path/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/query/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/query/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/api-version/query/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-default-value/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-default-value/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-doc/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-doc/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/default/main.tsp 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/default/mockapi.ts 5ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/individually/main.tsp 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/individually/mockapi.ts 5ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/individuallyParent/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/individuallyParent/main.tsp 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-initialization/individuallyParent/mockapi.ts 5ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-method-parameter-to-client/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-method-parameter-to-client/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-existing-sub-client/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-existing-sub-client/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-new-sub-client/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-new-sub-client/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-root-client/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/client-location/move-to-root-client/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/deserialize-empty-string-as-null/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/deserialize-empty-string-as-null/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/exact-name/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/exact-name/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/flatten-property/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/flatten-property/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/hierarchy-building/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/hierarchy-building/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/next-link-verb/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/next-link-verb/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/override/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/override/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/override/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/response-as-bool/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/response-as-bool/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/response-replacement/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/response-replacement/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/response-replacement/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/usage/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/client-generator-core/usage/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/encode/duration/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/encode/duration/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/example/basic/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/example/basic/examples/2022-12-01-preview/basic.json 1ms (unchanged) packages/azure-http-specs/specs/azure/example/basic/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/example/basic/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/payload/pageable/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/payload/pageable/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/common-properties/arm-resource-identifier.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/common-properties/error.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/common-properties/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/common-properties/managed-identity.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/common-properties/mockapi.ts 7ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/large-header/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/large-header/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/management-group/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/management-group/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/method-subscription-id/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/method-subscription-id/main.tsp 2ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/method-subscription-id/mockapi.ts 5ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service-shared-models/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service-shared-models/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service-shared-models/service1.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service-shared-models/service2.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service-shared-models/shared-models.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service/service1.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/multi-service/service2.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/non-resource/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/non-resource/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/non-resource/non-resource.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/available-operations.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/checkname-availability.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/legacy.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/lro.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/lropaging.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/mockapi.ts 24ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/optional-body.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/operation-templates/paging.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/extension.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/location.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/mockapi.ts 18ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/nested.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/singleton.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/resources/toplevel.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/service-group/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/resource-manager/service-group/mockapi.ts 4ms (unchanged) packages/azure-http-specs/specs/azure/special-headers/client-request-id/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/azure/special-headers/client-request-id/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/azure/special-headers/conditional-request/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/special-headers/conditional-request/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/azure/versioning/previewVersion/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/azure/versioning/previewVersion/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/client/namespace/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/namespace/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/namespace/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/naming/enum-conflict/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/naming/enum-conflict/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/naming/enum-conflict/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/naming/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/naming/mockapi.ts 3ms (unchanged) packages/azure-http-specs/specs/client/overload/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/overload/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/overload/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/structure/client-operation-group/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/structure/client-operation-group/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/client-operation-group/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/structure/common/service.ts 1ms (unchanged) packages/azure-http-specs/specs/client/structure/common/service.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/structure/default/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/default/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/default/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/structure/multi-client/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/structure/multi-client/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/multi-client/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/structure/renamed-operation/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/structure/renamed-operation/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/renamed-operation/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/client/structure/two-operation-group/client.tsp 1ms (unchanged) packages/azure-http-specs/specs/client/structure/two-operation-group/main.tsp 0ms (unchanged) packages/azure-http-specs/specs/client/structure/two-operation-group/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/resiliency/srv-driven/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/resiliency/srv-driven/mockapi.ts 5ms (unchanged) packages/azure-http-specs/specs/resiliency/srv-driven/old.tsp 1ms (unchanged) packages/azure-http-specs/specs/scratch/.gitignore 3ms (unchanged) packages/azure-http-specs/specs/service/multi-service/client.tsp 0ms (unchanged) packages/azure-http-specs/specs/service/multi-service/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/service/multi-service/mockapi.ts 2ms (unchanged) packages/azure-http-specs/specs/service/multiple-services/main.tsp 1ms (unchanged) packages/azure-http-specs/specs/service/multiple-services/mockapi.ts 2ms (unchanged) packages/azure-http-specs/tsconfig.build.json 0ms (unchanged) packages/azure-http-specs/tsconfig.json 0ms (unchanged) packages/azure-http-specs/tspconfig.yaml 0ms (unchanged) packages/benchmark/.gitignore 3ms (unchanged) packages/benchmark/external-spec/compute/spec.json 0ms (unchanged) packages/benchmark/external-spec/compute/tspconfig.yaml 1ms (unchanged) packages/benchmark/external-spec/network/spec.json 0ms (unchanged) packages/benchmark/external-spec/network/tspconfig.yaml 1ms (unchanged) packages/benchmark/external-spec/web/spec.json 0ms (unchanged) packages/benchmark/external-spec/web/tspconfig.yaml 1ms (unchanged) packages/benchmark/package.json 0ms (unchanged) packages/benchmark/README.md 59ms (unchanged) packages/benchmark/scripts/setup-csharp.ts 6ms (unchanged) packages/benchmark/specs/azure-arm-resource-manager/main.tsp 2ms (unchanged) packages/benchmark/specs/azure-arm-resource-manager/tspconfig.yaml 1ms (unchanged) packages/benchmark/specs/azure-core-dataplane/main.tsp 2ms (unchanged) packages/benchmark/specs/azure-core-dataplane/tspconfig.yaml 1ms (unchanged) packages/benchmark/specs/azure-full/main.tsp 2ms (unchanged) packages/benchmark/specs/azure-full/tspconfig.yaml 1ms (unchanged) packages/benchmark/src/aggregate.ts 2ms (unchanged) packages/benchmark/src/backfill.ts 18ms (unchanged) packages/benchmark/src/cli.ts 10ms (unchanged) packages/benchmark/src/compare.ts 6ms (unchanged) packages/benchmark/src/compile-once.ts 5ms (unchanged) packages/benchmark/src/compile.ts 4ms (unchanged) packages/benchmark/src/csharp.ts 5ms (unchanged) packages/benchmark/src/external-specs.ts 7ms (unchanged) packages/benchmark/src/format-comment.ts 18ms (unchanged) packages/benchmark/src/generate-history.ts 9ms (unchanged) packages/benchmark/src/run.ts 12ms (unchanged) packages/benchmark/src/statistics.ts 3ms (unchanged) packages/benchmark/src/store-results.ts 5ms (unchanged) packages/benchmark/src/types.ts 3ms (unchanged) packages/benchmark/src/utils.ts 3ms (unchanged) packages/benchmark/test/aggregate.test.ts 2ms (unchanged) packages/benchmark/test/compare.test.ts 4ms (unchanged) packages/benchmark/test/compile.test.ts 4ms (unchanged) packages/benchmark/test/csharp-setup.test.ts 5ms (unchanged) packages/benchmark/test/emitter-coverage.test.ts 4ms (unchanged) packages/benchmark/test/generate-history.test.ts 4ms (unchanged) packages/benchmark/test/statistics.test.ts 2ms (unchanged) packages/benchmark/tsconfig.build.json 0ms (unchanged) packages/benchmark/tsconfig.json 0ms (unchanged) packages/benchmark/vitest.config.ts 2ms (unchanged) packages/e2e-tests/azure-http-specs/package.json 0ms (unchanged) packages/e2e-tests/e2e-tests.mjs 7ms (unchanged) packages/e2e-tests/package.json 0ms (unchanged) packages/samples/common-types/gen.ts 19ms (unchanged) packages/samples/common-types/sort-openapi.ts 3ms (unchanged) packages/samples/common-types/src/base.tsp 1ms (unchanged) packages/samples/common-types/src/customer-managed-keys.tsp 0ms (unchanged) packages/samples/common-types/src/managed-identity-with-delegation.tsp 0ms (unchanged) packages/samples/common-types/src/managed-identity.tsp 0ms (unchanged) packages/samples/common-types/src/mobo.tsp 0ms (unchanged) packages/samples/common-types/src/network-security-perimeter.tsp 0ms (unchanged) packages/samples/common-types/src/private-links.tsp 0ms (unchanged) packages/samples/common-types/src/types.tsp 1ms (unchanged) packages/samples/package.json 0ms (unchanged) packages/samples/README.md 4ms (unchanged) packages/samples/scratch/.gitignore 3ms (unchanged) packages/samples/specs/data-plane/api-path-parameter/main.tsp 1ms (unchanged) packages/samples/specs/data-plane/api-path-parameter/sample-config.yaml 0ms (unchanged) packages/samples/specs/data-plane/azure-core-scalars/main.tsp 1ms (unchanged) packages/samples/specs/data-plane/azure-core-scalars/sample-config.yaml 0ms (unchanged) packages/samples/specs/data-plane/custom-error-type/main.tsp 1ms (unchanged) packages/samples/specs/data-plane/custom-error-type/sample-config.yaml 0ms (unchanged) packages/samples/specs/data-plane/trait-versioning/main.tsp 1ms (unchanged) packages/samples/specs/data-plane/trait-versioning/sample-config.yaml 1ms (unchanged) packages/samples/specs/data-plane/tspconfig.yaml 1ms (unchanged) packages/samples/specs/data-plane/widget-manager/main.tsp 2ms (unchanged) packages/samples/specs/data-plane/widget-manager/sample-config.yaml 0ms (unchanged) packages/samples/specs/misc/overloads/main.tsp 0ms (unchanged) packages/samples/specs/misc/overloads/overloads.tsp 1ms (unchanged) packages/samples/specs/misc/overloads/tspconfig.yaml 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/flat/examples/read.json 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/flat/examples/write.json 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/flat/main.tsp 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/flat/tspconfig.yaml 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/nested/examples/read/read.json 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/nested/examples/write/write.json 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/nested/main.tsp 0ms (unchanged) packages/samples/specs/misc/x-ms-examples/nested/tspconfig.yaml 0ms (unchanged) packages/samples/specs/resource-manager/arm-library/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/arm-library/README.md 1ms (unchanged) packages/samples/specs/resource-manager/arm-library/ref-library/int-templates.tsp 1ms (unchanged) packages/samples/specs/resource-manager/arm-library/ref-library/op-templates.tsp 1ms (unchanged) packages/samples/specs/resource-manager/arm-library/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/legacy/legacy-operations/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/legacy-operations/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/legacy/managed-identity/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/non-standard-properties/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/nsp/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/optional-body/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/polymorphic-resource/extension.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/polymorphic-resource/main.tsp 0ms (unchanged) packages/samples/specs/resource-manager/legacy/polymorphic-resource/proxy.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/polymorphic-resource/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/legacy/private-endpoints/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/private-links/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/rename-operations/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/legacy/rename-operations/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/legacy/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/legacy/static-routes/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/operations/nobody-action/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/operations/nobody-action/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/operations/operation-provider/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/operations/operation-provider/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/operations/operation-status/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/operations/operation-status/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/README.md 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/billing-data/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/billing-data/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/common-properties/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/common-properties/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/encryption/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/encryption/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/managed-identity/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/managed-identity/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/private-links/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-common-properties/README.md 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/agent/main.tsp 2ms (unchanged) packages/samples/specs/resource-manager/resource-types/agent/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/extension/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/location/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/location/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/nsp/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/nsp/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/private-endpoints/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/private-endpoints/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/private-links/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/private-links/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/proxy/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/proxy/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/README.md 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/relationship/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/relationship/sample-config.yaml 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/singleton/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/singleton/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/specific-extension/main.tsp 2ms (unchanged) packages/samples/specs/resource-manager/resource-types/specific-extension/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/tenant/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/tenant/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/tracked/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/resource-types/tracked/sample-config.yaml 0ms (unchanged) packages/samples/specs/resource-manager/resource-types/virtual-resource/main.tsp 1ms (unchanged) packages/samples/specs/resource-manager/tspconfig.yaml 1ms (unchanged) packages/samples/specs/tspconfig.yaml 0ms (unchanged) packages/samples/test/samples.test.ts 4ms (unchanged) packages/samples/tsconfig.build.json 0ms (unchanged) packages/samples/tsconfig.json 0ms (unchanged) packages/samples/tspconfig.yaml 0ms (unchanged) packages/samples/vitest.config.ts 2ms (unchanged) packages/spector-runner/package.json 0ms (unchanged) packages/spector-runner/README.md 4ms (unchanged) packages/spector-runner/schema/.gitignore 3ms (unchanged) packages/spector-runner/schema/spector-config.tsp 2ms (unchanged) packages/spector-runner/schema/tspconfig.yaml 1ms (unchanged) packages/spector-runner/src/index.ts 5ms (unchanged) packages/spector-runner/src/loader.ts 7ms (unchanged) packages/spector-runner/src/types.ts 2ms (unchanged) packages/spector-runner/test/loader.test.ts 6ms (unchanged) packages/spector-runner/tsconfig.build.json 1ms (unchanged) packages/spector-runner/tsconfig.json 0ms (unchanged) packages/spector-runner/vitest.config.ts 1ms (unchanged) packages/typespec-autorest-canonical/lib/autorest-canonical.tsp 0ms (unchanged) packages/typespec-autorest-canonical/package.json 1ms (unchanged) packages/typespec-autorest-canonical/README.md 11ms (unchanged) packages/typespec-autorest-canonical/src/emitter.ts 10ms (unchanged) packages/typespec-autorest-canonical/src/index.ts 2ms (unchanged) packages/typespec-autorest-canonical/src/lib.ts 4ms (unchanged) packages/typespec-autorest-canonical/test/tester.ts 2ms (unchanged) packages/typespec-autorest-canonical/test/versioning.test.ts 5ms (unchanged) packages/typespec-autorest-canonical/tsconfig.build.json 1ms (unchanged) packages/typespec-autorest-canonical/tsconfig.json 0ms (unchanged) packages/typespec-autorest-canonical/vitest.config.ts 2ms (unchanged) packages/typespec-autorest/.scripts/schema-json-to-js.js 4ms (unchanged) packages/typespec-autorest/CHANGELOG.json 6ms (unchanged) packages/typespec-autorest/generated-defs/Autorest.ts 2ms (unchanged) packages/typespec-autorest/generated-defs/Autorest.ts-test.ts 2ms (unchanged) packages/typespec-autorest/lib/autorest.tsp 0ms (unchanged) packages/typespec-autorest/lib/decorators.tsp 1ms (unchanged) packages/typespec-autorest/package.json 1ms (unchanged) packages/typespec-autorest/README.md 32ms (unchanged) packages/typespec-autorest/schema/.gitignore 3ms (unchanged) packages/typespec-autorest/schema/autorest-openapi-schema.tsp 3ms (unchanged) packages/typespec-autorest/schema/service-yaml.tsp 0ms (unchanged) packages/typespec-autorest/schema/tspconfig.yaml 1ms (unchanged) packages/typespec-autorest/src/autorest-openapi-schema.ts 3ms (unchanged) packages/typespec-autorest/src/decorators.ts 5ms (unchanged) packages/typespec-autorest/src/emit.ts 16ms (unchanged) packages/typespec-autorest/src/index.ts 2ms (unchanged) packages/typespec-autorest/src/json-schema-sorter/sorter.ts 8ms (unchanged) packages/typespec-autorest/src/lib.ts 9ms (unchanged) packages/typespec-autorest/src/openapi.ts 108ms (unchanged) packages/typespec-autorest/src/openapi2-document.ts 12ms (unchanged) packages/typespec-autorest/src/testing/index.ts 2ms (unchanged) packages/typespec-autorest/src/tsp-index.ts 2ms (unchanged) packages/typespec-autorest/src/types.ts 9ms (unchanged) packages/typespec-autorest/src/utils.ts 6ms (unchanged) packages/typespec-autorest/src/xml.ts 2ms (unchanged) packages/typespec-autorest/test/additional-properties.test.ts 4ms (unchanged) packages/typespec-autorest/test/arm/arm.test.ts 12ms (unchanged) packages/typespec-autorest/test/arm/authentication.test.ts 3ms (unchanged) packages/typespec-autorest/test/arm/client-api-version.test.ts 6ms (unchanged) packages/typespec-autorest/test/arm/resources.test.ts 9ms (unchanged) packages/typespec-autorest/test/array.test.ts 3ms (unchanged) packages/typespec-autorest/test/azure-core-operations.test.ts 3ms (unchanged) packages/typespec-autorest/test/azure-core-types.test.ts 5ms (unchanged) packages/typespec-autorest/test/decorators.test.ts 5ms (unchanged) packages/typespec-autorest/test/discriminator.test.ts 9ms (unchanged) packages/typespec-autorest/test/documentation.test.ts 3ms (unchanged) packages/typespec-autorest/test/enum.test.ts 4ms (unchanged) packages/typespec-autorest/test/flatten.test.ts 3ms (unchanged) packages/typespec-autorest/test/formats.test.ts 3ms (unchanged) packages/typespec-autorest/test/host.test.ts 4ms (unchanged) packages/typespec-autorest/test/info.test.ts 3ms (unchanged) packages/typespec-autorest/test/lro.test.ts 10ms (unchanged) packages/typespec-autorest/test/metadata.test.ts 10ms (unchanged) packages/typespec-autorest/test/models.test.ts 15ms (unchanged) packages/typespec-autorest/test/multipart.test.ts 4ms (unchanged) packages/typespec-autorest/test/nullable.test.ts 3ms (unchanged) packages/typespec-autorest/test/openapi-output.test.ts 17ms (unchanged) packages/typespec-autorest/test/options.test.ts 10ms (unchanged) packages/typespec-autorest/test/paging.test.ts 3ms (unchanged) packages/typespec-autorest/test/parameters.test.ts 15ms (unchanged) packages/typespec-autorest/test/primitive-types.test.ts 8ms (unchanged) packages/typespec-autorest/test/produces-consumes.test.ts 4ms (unchanged) packages/typespec-autorest/test/property-schema.test.ts 3ms (unchanged) packages/typespec-autorest/test/return-types.test.ts 10ms (unchanged) packages/typespec-autorest/test/scope.test.ts 4ms (unchanged) packages/typespec-autorest/test/security.test.ts 5ms (unchanged) packages/typespec-autorest/test/service-yaml.test.ts 9ms (unchanged) packages/typespec-autorest/test/services.test.ts 4ms (unchanged) packages/typespec-autorest/test/shared-routes.test.ts 5ms (unchanged) packages/typespec-autorest/test/sorting.test.ts 4ms (unchanged) packages/typespec-autorest/test/status-codes.test.ts 3ms (unchanged) packages/typespec-autorest/test/string-templates.test.ts 3ms (unchanged) packages/typespec-autorest/test/test-host.ts 7ms (unchanged) packages/typespec-autorest/test/type-name-strategy.test.ts 3ms (unchanged) packages/typespec-autorest/test/union-schema.test.ts 6ms (unchanged) packages/typespec-autorest/test/versioning.test.ts 5ms (unchanged) packages/typespec-autorest/test/x-ms-client-default.test.ts 2ms (unchanged) packages/typespec-autorest/test/x-ms-examples.test.ts 11ms (unchanged) packages/typespec-autorest/test/xml.test.ts 4ms (unchanged) packages/typespec-autorest/tsconfig.build.json 1ms (unchanged) packages/typespec-autorest/tsconfig.json 0ms (unchanged) packages/typespec-autorest/vitest.config.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Foundations.Private.ts 6ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Foundations.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Foundations.ts-test.ts 1ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Legacy.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Legacy.ts-test.ts 1ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Traits.Private.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Traits.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.Traits.ts-test.ts 1ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.ts 4ms (unchanged) packages/typespec-azure-core/generated-defs/Azure.Core.ts-test.ts 1ms (unchanged) packages/typespec-azure-core/generated-defs/experimental/Azure.Core.Experimental.ts 2ms (unchanged) packages/typespec-azure-core/generated-defs/experimental/Azure.Core.Experimental.ts-test.ts 1ms (unchanged) packages/typespec-azure-core/lib/auth.tsp 1ms (unchanged) packages/typespec-azure-core/lib/azure-core.tsp 0ms (unchanged) packages/typespec-azure-core/lib/decorators.tsp 2ms (unchanged) packages/typespec-azure-core/lib/experimental/lib.tsp 1ms (unchanged) packages/typespec-azure-core/lib/foundations.tsp 4ms (unchanged) packages/typespec-azure-core/lib/legacy.tsp 1ms (unchanged) packages/typespec-azure-core/lib/models.tsp 3ms (unchanged) packages/typespec-azure-core/lib/obsolete.tsp 2ms (unchanged) packages/typespec-azure-core/lib/operations.tsp 4ms (unchanged) packages/typespec-azure-core/lib/traits.tsp 2ms (unchanged) packages/typespec-azure-core/package.json 0ms (unchanged) packages/typespec-azure-core/README.md 37ms (unchanged) packages/typespec-azure-core/src/decorators.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/final-location.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/final-operation.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/foundations/omit-key-properties.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/lro-cancelled.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/lro-error-result.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/lro-failed.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/lro-result.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/lro-status.test.ts 5ms (unchanged) packages/typespec-azure-core/src/decorators/lro-status.ts 7ms (unchanged) packages/typespec-azure-core/src/decorators/lro-succeeded.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/operation-link.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/operation-links.test.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/override-api-version.test.ts 5ms (unchanged) packages/typespec-azure-core/src/decorators/override-api-version.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/polling-location.ts 9ms (unchanged) packages/typespec-azure-core/src/decorators/polling-operation-parameter.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/polling-operation.test.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/polling-operation.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/preview-version.test.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/preview-version.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/private/arm-resource-identifier-config.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/private/default-final-state-via.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/private/embedding-vector.ts 2ms (unchanged) packages/typespec-azure-core/src/decorators/private/ensure-resource-type.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/private/ensure-verb.ts 6ms (unchanged) packages/typespec-azure-core/src/decorators/private/needs-route.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/private/parameterized-next-link-config.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/private/spread-custom-parameters.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/private/spread-custom-response-properties.ts 3ms (unchanged) packages/typespec-azure-core/src/decorators/unique-items.test.ts 5ms (unchanged) packages/typespec-azure-core/src/decorators/unique-items.ts 4ms (unchanged) packages/typespec-azure-core/src/decorators/use-final-state-via.test.ts 5ms (unchanged) packages/typespec-azure-core/src/decorators/use-final-state-via.ts 5ms (unchanged) packages/typespec-azure-core/src/decorators/utils.ts 3ms (unchanged) packages/typespec-azure-core/src/diagnostics/invalid-api-version-override.md 2ms (unchanged) packages/typespec-azure-core/src/experimental/decorators.ts 4ms (unchanged) packages/typespec-azure-core/src/experimental/index.ts 1ms (unchanged) packages/typespec-azure-core/src/experimental/tsp-index.ts 1ms (unchanged) packages/typespec-azure-core/src/helpers/union-enums.ts 8ms (unchanged) packages/typespec-azure-core/src/index.ts 3ms (unchanged) packages/typespec-azure-core/src/lib.ts 10ms (unchanged) packages/typespec-azure-core/src/linter.ts 8ms (unchanged) packages/typespec-azure-core/src/lro-helpers.ts 42ms (unchanged) packages/typespec-azure-core/src/lro-info.ts 16ms (unchanged) packages/typespec-azure-core/src/rules/auth-required.md 3ms (unchanged) packages/typespec-azure-core/src/rules/auth-required.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/bad-record-type.md 3ms (unchanged) packages/typespec-azure-core/src/rules/bad-record-type.ts 5ms (unchanged) packages/typespec-azure-core/src/rules/byos.md 4ms (unchanged) packages/typespec-azure-core/src/rules/byos.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/casing-style.md 12ms (unchanged) packages/typespec-azure-core/src/rules/casing-style.ts 5ms (unchanged) packages/typespec-azure-core/src/rules/composition-over-inheritance.md 4ms (unchanged) packages/typespec-azure-core/src/rules/composition-over-inheritance.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/documentation-required.md 3ms (unchanged) packages/typespec-azure-core/src/rules/friendly-name.md 3ms (unchanged) packages/typespec-azure-core/src/rules/friendly-name.ts 5ms (unchanged) packages/typespec-azure-core/src/rules/key-visibility-required.md 2ms (unchanged) packages/typespec-azure-core/src/rules/known-encoding.md 3ms (unchanged) packages/typespec-azure-core/src/rules/known-encoding.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/long-running-polling-operation-required.md 3ms (unchanged) packages/typespec-azure-core/src/rules/lro-polling-operation.ts 4ms (unchanged) packages/typespec-azure-core/src/rules/no-boolean.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-boolean.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-case-mismatch.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-case-mismatch.ts 4ms (unchanged) packages/typespec-azure-core/src/rules/no-closed-literal-union.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-closed-literal-union.ts 2ms (unchanged) packages/typespec-azure-core/src/rules/no-enum.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-enum.ts 7ms (unchanged) packages/typespec-azure-core/src/rules/no-error-status-codes.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-error-status-codes.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-explicit-routes-resource-ops.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-explicit-routes-resource-ops.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-format.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-generic-numeric.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-generic-numeric.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-header-explode.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-header-explode.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-legacy-usage.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-legacy-usage.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-multiple-discriminator.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-multiple-discriminator.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-nullable.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-nullable.ts 2ms (unchanged) packages/typespec-azure-core/src/rules/no-offsetdatetime.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-offsetdatetime.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-openapi-client-extensions.md 11ms (unchanged) packages/typespec-azure-core/src/rules/no-openapi-client-extensions.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-openapi.md 4ms (unchanged) packages/typespec-azure-core/src/rules/no-openapi.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-order-by.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-private-usage.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-private-usage.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-query-explode.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-query-explode.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-response-body.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-response-body.ts 4ms (unchanged) packages/typespec-azure-core/src/rules/no-rest-library-interfaces.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-route-parameter-name-mismatch.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-route-parameter-name-mismatch.ts 6ms (unchanged) packages/typespec-azure-core/src/rules/no-rpc-path-params.md 4ms (unchanged) packages/typespec-azure-core/src/rules/no-rpc-path-params.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-string-discriminator.md 3ms (unchanged) packages/typespec-azure-core/src/rules/no-string-discriminator.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/no-unknown.md 2ms (unchanged) packages/typespec-azure-core/src/rules/no-unnamed-types.md 4ms (unchanged) packages/typespec-azure-core/src/rules/no-unnamed-types.ts 6ms (unchanged) packages/typespec-azure-core/src/rules/non-breaking-versioning.md 4ms (unchanged) packages/typespec-azure-core/src/rules/non-breaking-versioning.ts 4ms (unchanged) packages/typespec-azure-core/src/rules/operation-missing-api-version.md 2ms (unchanged) packages/typespec-azure-core/src/rules/operation-missing-api-version.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/prevent-format.ts 2ms (unchanged) packages/typespec-azure-core/src/rules/prevent-rest-library.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/prevent-unknown.ts 2ms (unchanged) packages/typespec-azure-core/src/rules/request-body-array.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/request-body-problem.md 2ms (unchanged) packages/typespec-azure-core/src/rules/require-docs.ts 7ms (unchanged) packages/typespec-azure-core/src/rules/require-key-visibility.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/require-versioned.md 2ms (unchanged) packages/typespec-azure-core/src/rules/require-versioned.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/response-schema-multi-status-code.ts 4ms (unchanged) packages/typespec-azure-core/src/rules/response-schema-problem.md 2ms (unchanged) packages/typespec-azure-core/src/rules/rpc-operation-request-body.md 3ms (unchanged) packages/typespec-azure-core/src/rules/rpc-operation-request-body.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/spread-discriminated-model.md 2ms (unchanged) packages/typespec-azure-core/src/rules/spread-discriminated-model.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/use-standard-names.md 3ms (unchanged) packages/typespec-azure-core/src/rules/use-standard-names.ts 5ms (unchanged) packages/typespec-azure-core/src/rules/use-standard-operations.md 2ms (unchanged) packages/typespec-azure-core/src/rules/use-standard-operations.ts 3ms (unchanged) packages/typespec-azure-core/src/rules/utils.ts 7ms (unchanged) packages/typespec-azure-core/src/state/final-state.ts 4ms (unchanged) packages/typespec-azure-core/src/testing/index.ts 2ms (unchanged) packages/typespec-azure-core/src/traits.ts 13ms (unchanged) packages/typespec-azure-core/src/tsp-index.ts 7ms (unchanged) packages/typespec-azure-core/src/utils.ts 6ms (unchanged) packages/typespec-azure-core/src/validate.ts 2ms (unchanged) packages/typespec-azure-core/test/helpers/union-enums.test.ts 5ms (unchanged) packages/typespec-azure-core/test/lro.test.ts 3ms (unchanged) packages/typespec-azure-core/test/operations.test.ts 65ms (unchanged) packages/typespec-azure-core/test/rules/auth-required.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/bad-record-type.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/byos.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/casing-style.test.ts 14ms (unchanged) packages/typespec-azure-core/test/rules/composition-over-inheritance.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/friendly-name.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/known-encoding.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/lro-polling-operation.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-boolean.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-case-mismatch.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-closed-literal-union.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-enum.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-error-status-codes.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-explicit-routes-resource-ops.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/no-generic-numeric.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-header-explode.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-legacy-usage.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/no-multiple-discriminator.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-nullable.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/no-offsetdatetime.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-openapi-client-extensions.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/no-openapi.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-order-by.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-private-usage.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/no-query-explode.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/no-response-body.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-route-parameter-name-mismatch.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/no-rpc-path-params.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-string-discriminator.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/no-unnamed-types.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/non-breaking-versioning.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/operation-missing-api-version.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/prevent-format.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/prevent-rest-library.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/prevent-unknown.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/request-body-array.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/require-docs.test.ts 4ms (unchanged) packages/typespec-azure-core/test/rules/require-key-visibility.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/require-versioned.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/response-schema-multi-status-code.test.ts 2ms (unchanged) packages/typespec-azure-core/test/rules/rpc-operation-request-body.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/spread-discriminated-model.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/use-standard-names.test.ts 3ms (unchanged) packages/typespec-azure-core/test/rules/use-standard-operations.test.ts 3ms (unchanged) packages/typespec-azure-core/test/test-host.ts 6ms (unchanged) packages/typespec-azure-core/test/traits.test.ts 6ms (unchanged) packages/typespec-azure-core/test/types/arm-resource-identifier.test.ts 6ms (unchanged) packages/typespec-azure-core/test/types/parameterized-next-link.test.ts 4ms (unchanged) packages/typespec-azure-core/tsconfig.build.json 1ms (unchanged) packages/typespec-azure-core/tsconfig.json 0ms (unchanged) packages/typespec-azure-core/vitest.config.ts 2ms (unchanged) packages/typespec-azure-examples/.gitignore 12ms (unchanged) packages/typespec-azure-examples/package.json 1ms (unchanged) packages/typespec-azure-examples/README.md 13ms (unchanged) packages/typespec-azure-examples/schema/.gitignore 3ms (unchanged) packages/typespec-azure-examples/schema/examples-yaml.tsp 1ms (unchanged) packages/typespec-azure-examples/schema/tspconfig.yaml 1ms (unchanged) packages/typespec-azure-examples/src/cli.ts 7ms (unchanged) packages/typespec-azure-examples/src/commands/validate.ts 4ms (unchanged) packages/typespec-azure-examples/src/discover.ts 5ms (unchanged) packages/typespec-azure-examples/src/index.ts 3ms (unchanged) packages/typespec-azure-examples/src/loader.ts 5ms (unchanged) packages/typespec-azure-examples/src/migrate-cli.ts 6ms (unchanged) packages/typespec-azure-examples/src/migrate/dedup.ts 5ms (unchanged) packages/typespec-azure-examples/src/migrate/emit.ts 6ms (unchanged) packages/typespec-azure-examples/src/migrate/index.ts 3ms (unchanged) packages/typespec-azure-examples/src/migrate/migrate.ts 6ms (unchanged) packages/typespec-azure-examples/src/migrate/model.ts 1ms (unchanged) packages/typespec-azure-examples/src/migrate/normalize.ts 3ms (unchanged) packages/typespec-azure-examples/src/migrate/operation-key.ts 2ms (unchanged) packages/typespec-azure-examples/src/migrate/swagger-types.ts 2ms (unchanged) packages/typespec-azure-examples/src/migrate/swagger.ts 8ms (unchanged) packages/typespec-azure-examples/src/migrate/transform.ts 3ms (unchanged) packages/typespec-azure-examples/src/migrate/version-order.ts 3ms (unchanged) packages/typespec-azure-examples/src/naming.ts 1ms (unchanged) packages/typespec-azure-examples/src/reporter.ts 4ms (unchanged) packages/typespec-azure-examples/src/rules.ts 10ms (unchanged) packages/typespec-azure-examples/src/schema.ts 2ms (unchanged) packages/typespec-azure-examples/src/types.ts 2ms (unchanged) packages/typespec-azure-examples/src/validate.ts 5ms (unchanged) packages/typespec-azure-examples/test/discover.test.ts 3ms (unchanged) packages/typespec-azure-examples/test/migrate/dedup.test.ts 6ms (unchanged) packages/typespec-azure-examples/test/migrate/emit.test.ts 4ms (unchanged) packages/typespec-azure-examples/test/migrate/migrate.e2e.test.ts 10ms (unchanged) packages/typespec-azure-examples/test/migrate/normalize.test.ts 3ms (unchanged) packages/typespec-azure-examples/test/migrate/operation-key.test.ts 2ms (unchanged) packages/typespec-azure-examples/test/migrate/swagger.test.ts 5ms (unchanged) packages/typespec-azure-examples/test/migrate/transform.test.ts 3ms (unchanged) packages/typespec-azure-examples/test/migrate/version-order.test.ts 3ms (unchanged) packages/typespec-azure-examples/test/placement.test.ts 3ms (unchanged) packages/typespec-azure-examples/test/validate.test.ts 5ms (unchanged) packages/typespec-azure-examples/tsconfig.build.json 1ms (unchanged) packages/typespec-azure-examples/tsconfig.json 0ms (unchanged) packages/typespec-azure-examples/vitest.config.ts 2ms (unchanged) packages/typespec-azure-playground-website/.env 12ms (unchanged) packages/typespec-azure-playground-website/e2e/playwright.config.ts 5ms (unchanged) packages/typespec-azure-playground-website/e2e/smoke.e2e.ts 2ms (unchanged) packages/typespec-azure-playground-website/index.html 14ms (unchanged) packages/typespec-azure-playground-website/package.json 1ms (unchanged) packages/typespec-azure-playground-website/README.md 2ms (unchanged) packages/typespec-azure-playground-website/samples/build.ts 9ms (unchanged) packages/typespec-azure-playground-website/src/import.module.css 10ms (unchanged) packages/typespec-azure-playground-website/src/import.tsx 9ms (unchanged) packages/typespec-azure-playground-website/src/index.ts 2ms (unchanged) packages/typespec-azure-playground-website/src/main.tsx 6ms (unchanged) packages/typespec-azure-playground-website/src/style.css 1ms (unchanged) packages/typespec-azure-playground-website/test/validate-samples.test.ts 3ms (unchanged) packages/typespec-azure-playground-website/tsconfig.build.json 1ms (unchanged) packages/typespec-azure-playground-website/tsconfig.json 1ms (unchanged) packages/typespec-azure-playground-website/vite.config.ts 2ms (unchanged) packages/typespec-azure-playground-website/vitest.config.ts 2ms (unchanged) packages/typespec-azure-portal-core/lib/decorators.tsp 1ms (unchanged) packages/typespec-azure-portal-core/lib/main.tsp 0ms (unchanged) packages/typespec-azure-portal-core/package.json 1ms (unchanged) packages/typespec-azure-portal-core/README.md 9ms (unchanged) packages/typespec-azure-portal-core/src/decorators.ts 15ms (unchanged) packages/typespec-azure-portal-core/src/index.ts 2ms (unchanged) packages/typespec-azure-portal-core/src/lib.ts 3ms (unchanged) packages/typespec-azure-portal-core/src/types.ts 2ms (unchanged) packages/typespec-azure-portal-core/src/validate.ts 3ms (unchanged) packages/typespec-azure-portal-core/test/decorators.test.ts 8ms (unchanged) packages/typespec-azure-portal-core/test/tester.ts 2ms (unchanged) packages/typespec-azure-portal-core/tsconfig.build.json 0ms (unchanged) packages/typespec-azure-portal-core/tsconfig.json 0ms (unchanged) packages/typespec-azure-portal-core/vitest.config.ts 2ms (unchanged) packages/typespec-azure-resource-manager/CHANGELOG.json 5ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.BaseTypes.ts 5ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.BaseTypes.ts-test.ts 2ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.CommonTypes.Private.ts 2ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.Extension.Private.ts 2ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.Legacy.ts 3ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.Legacy.ts-test.ts 1ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.Private.ts 5ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts 6ms (unchanged) packages/typespec-azure-resource-manager/generated-defs/Azure.ResourceManager.ts-test.ts 2ms (unchanged) packages/typespec-azure-resource-manager/lib/arm.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/backcompat.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/base-types/agent.tsp 3ms (unchanged) packages/typespec-azure-resource-manager/lib/base-types/base-types.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/base-types/relationship.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/billing-data.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/common-types.tsp 0ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/commontypes.private.decorators.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/customer-managed-keys.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/extended-location-ref.tsp 0ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/extended-location.tsp 0ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/internal.tsp 0ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/managed-identity-ref.tsp 1ms (unchanged) packages/typespec-azure-resource-manager/lib/common-types/managed-identity-with-deleg…
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- oxlint flagged isRecordModelType(program, type) as a deprecated call signature (the program parameter is unused in the current compiler API); switched to isRecordModelType(type). - cspell flagged 'numofmessages' (a real query-string literal baked into the vendored routes.tsp -- can't be edited, see PROVENANCE.md) and 'iscai' (a personal-fork username mentioned in PROVENANCE.md's prose). Excluded the vendored fixture directory from cspell via ignorePaths, matching the existing precedent for typespec-java's upstream-synced fixtures in the same file, and reworded PROVENANCE.md to avoid the username entirely rather than special-case dictionary it. Verified locally: pnpm build/lint/test for the package all pass, full repo pnpm run lint:ci passes, and pnpm run cspell reports zero issues. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ite PR The real, unchanged Azure Storage Queue TypeSpec + azurite.tsp overlay should not be vendored into typespec-azure itself — that real-spec validation belongs in the companion end-to-end Azure/Azurite pull request, where the generated artifacts are actually wired into Azurite's runtime. This reverts the vendored fixture, its dedicated test file, and the devDependencies/config entries added only to support it, while keeping the three generic emitter fixes the real spec surfaced (Record<T> handling, anonymous-model identity, operation-name collision disambiguation), now covered by small synthetic unit tests instead. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…atcher/handler to depend on it Replaces the toy 3-operation fixture with the real, unmodified Azure Storage Queue TypeSpec (specification/storage/data-plane/QueueStorage/, see fixture/storage-queue-real/PROVENANCE.md for exact source commit) plus a real azurite.tsp overlay citing this repo's own documented swagger/queue.md customizations. - Vendored the real spec + overlay; generated models.ts/operations.ts/handlers.ts with the pilot emitter (Azure/typespec-azure#5614) - all 17 real Queue operations, zero diagnostics, zero skipped. - Rewrote server/dispatcher.ts for real routing: queue-scoped vs service-scoped operation classification (documenting the queueName client-scoping gap this surfaced - see README's "What this surfaced"), literal-query-string route disambiguation (?comp=metadata, ?comp=acl, ?peekonly=true, etc.), and real numeric parameter names. - Added server/realQueueHandler.ts: in-memory IServiceHandler implementation of all 17 real operations, replacing the toy inMemoryQueueHandler.ts. - Rewrote both test suites against the real spec's shape: generatedArtifacts.test.ts adds structural assertions (route metadata, parameter bindings, response header wire-name mapping, overlay @@doc override, handler shape, and an explicit test pinning down the queueName-absent-from-metadata gap) citing specific Azurite files compared against (dispatch.middleware.ts, IQueueHandler.ts, Context.ts). pilotServer.e2e.test.ts drives real HTTP requests through the real routes, including same-path/same-verb disambiguation and a full message lifecycle. - Rewrote the pilot README to describe the real-spec vendoring, the queueName-client-scoping gap (the most important finding), the literal-query dispatcher workaround, and updated scope/out-of-scope notes. npm run build / npm test (lint + full mocha suite, incl. the 13 pilot tests) all green. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ools/typespec-azurite-emitter and consolidate changesets - Drop 'pilot' from the package name/directory/keywords (prose in the README still describes it as a pilot/prototype). - Squash the five incremental changesets into a single feature changeset describing the package addition. - Update pnpm-lock.yaml and tsconfig.ws.json for the rename. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Lets an azurite.tsp overlay tighten an optional base-spec ModelProperty to required (e.g. a Storage property the emulator always needs) without editing the shared base TypeSpec. TCGC's @OverRide was considered and rejected: it only affects TCGC's client-method view (never mutates the real @typespec/http Operation/Model graph), so an emitter walking @typespec/http directly would never see it. Wired up using @typespec/tspd's gen-extern-signature codegen (the same tool/pattern typespec-client-generator-core uses) so the decorator's TS signature is generated from its `extern dec` declaration rather than hand-synced: lib/decorators.tsp declares `makeRequired`, `pnpm gen-extern-signature` produces generated-defs/Azurite.ts, and src/decorators.ts implements it against the generated type, exporting a $decorators map (the modern namespaced decorator-binding convention). Adds a unit test exercising the overlay pattern end to end. Updates the package README to document the decorator and the @OverRide rejection rationale. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…e classification Azure Storage's real spec resolves resource identifiers like queueName via the client's own base URL construction (@server with a dynamic url param), never as an @route/@path operation parameter - so it's structurally invisible to a pure @typespec/http walk. Found while wiring the companion Azure/Azurite end-to-end PR's dispatcher, which previously needed a hand-written, per- operation-name classification table to recover resource identity. Expose op.operation.interface?.name as a new optional interfaceName field on ServerOperation/OperationMetadata, so a dispatcher can combine it with the operation's own path shape to classify operations generically instead of hardcoding every operation name. - model.ts: add ServerOperation.interfaceName - build-model.ts: populate it from the HTTP operation's declaring interface - render-operations.ts: emit it in generated OperationMetadata - tests: assert interfaceName for same-named operations in different interfaces, and that it renders correctly - README: document the gap and the fix Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Switch the overlay decorator to @makeOptional, use TypeKit in the model builder, and simplify emitter docs/tests for the Azurite handoff. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Initialize TypeKit from the program in the helpers that need it instead of passing a TypeKit instance through the transform pipeline. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The compiler already skips emitters during dry-run unless the library advertises dry-run support, which this prototype emitter does not. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add XML model metadata and shared XML request/response body helpers so the Queue pilot can deserialize XML request bodies and serialize XML response bodies through generated TypeSpec artifacts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| using Azurite; | ||
| using Azure.ClientGenerator.Core; | ||
|
|
||
| @@clientName(QueuePilot.createQueue, "Queue_Create"); |
There was a problem hiding this comment.
using tcgc @clientName here even though it's technically a server emitter. what are people's thoughts on this? i think it's ok bc we use @clientName broadly speaking, and didn't want. to create a duplicate decorator in azurite, but open to suggestions
| @@ -0,0 +1,15 @@ | |||
| import "./base.tsp"; | |||
| import "@azure-tools/typespec-azurite-emitter"; | |||
| import "@azure-tools/typespec-client-generator-core"; | |||
There was a problem hiding this comment.
the use of the azurite.tsp would be to apply the changes to the storage server definition that they want to make (since this is a storage emulator), so my ideal design is to augment decorate with existing decorators the existing storage tsp (this is just queue since i'm doing a pilot emitter then passing it off to the azurite team). if ther eare missing gaps (i.e. in @makeOptional), they can define these decorators themselves in their emitter
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove stale source/declaration fallback fields from the server model and keep derived TypeSpec declaration data internal to the transform phase. Consolidate runtime/declaration type conversion, rename the remaining generated-file header helper, and update render tests to use the real built model instead of patching synthetic fixtures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Make generated deserialization return the generated operation parameter shape directly, including path parameters from Azurite context and body on the body property. Make generated response serialization consume the generated response union shape with nested headers, and document the remaining Azurite-owned bridge contract. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Replace the custom PascalCase helper with Alloy's TypeScript name policy for generated type identifiers while preserving runtime operation names. Align x-ms-meta header collections with the generated handler types and replace generated per-operation serialization switches with metadata lookups. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove the unused generated-file comment constant and pass-through renderFileHeader helper. Renderers now import the single GENERATED_FILE_HEADER source of truth directly; generated Queue artifacts remain byte-for-byte identical. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move invariant serialization and metadata contracts behind a configurable Azurite runtime import. Generated serialization now emits service XML metadata and binds createSerializationRuntime, while operations.ts imports/re-exports invariant metadata types and carries collectionPrefix metadata for header collections. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move generated Queue metadata toward compact operation and XML descriptors interpreted by the Azurite runtime, keeping generated serialization service-specific and thin. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Emit a single metadata manifest for operation and XML wire descriptors, leaving operations.ts declaration-only and serialization.ts as a runtime factory binding. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Emit compact XML model descriptors beside models and HTTP operation descriptors beside operation declarations, leaving metadata.ts as a reference-only service aggregation and preserving XML requiredness. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Capture sparse numeric constraints in compact descriptors, route runtime descriptor imports through the configured runtimeImport option, and report unsupported/incomplete transforms as diagnostics instead of producing success-shaped partial artifacts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep the pilot overlay maxValue override for queue visibility timeout while adding source-spec coverage for the unaugmented 604800 limit. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
What this is
Adds
@azure-tools/typespec-azurite-emitter, a prototype emitter for generating Azurite server artifacts from TypeSpec HTTP service definitions plus anazurite.tspoverlay.What it demonstrates
src/build-model.tsbuilds an emitter-ownedServerModel, andsrc/render/emitsmodels.ts,operations.ts,handlers.ts, andserialization.ts.(params, context) => Promise<Response>.interfaceName.OperationSpecmapper tables and@azure/ms-rest-jsfor the TypeSpec-generated Queue path.@makeOptionaloverlay decorator for Azurite-specific model-property optionality changes.@clientNamesupport for operation names, so overlays can align generated metadata names with an existing runtime boundary without an emitter-specific rename decorator.Companion end-to-end check
Companion draft PR: Azure/Azurite#2831. It uses generated Queue artifacts from the real pinned Azure Storage Queue TypeSpec plus
azurite.tsp, then wires Azurite's real Queue dispatch middleware and serializer/deserializer middleware to consume generated operation metadata/helpers where available.Out of scope
This is not a full Storage implementation. Full XML body serialization, Blob/Table surfaces, streaming, multipart bodies, pagination/versioning, richer enum/union rendering, and temporary bridges to Azurite's existing generated
Operationenum are left outside the emitter.