From 712cb7f945cf46fd92d553f3fee5b4f7210fb4bf Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 11 Feb 2025 19:13:32 +0000 Subject: [PATCH] CodeGen from PR 31182 in Azure/azure-rest-api-specs Merge 202c22336e1a147e5c480ab52e1018f990f09945 into 273c8f2adc9e16d094a7d9578dbef27d9873b4f9 --- common/config/rush/pnpm-lock.yaml | 75 +++++++--- rush.json | 9 +- sdk/eventgrid/ci.yml | 2 + sdk/eventgrid/eventgrid-system-events/LICENSE | 21 +++ .../eventgrid-system-events/README.md | 55 ++++++++ .../api-extractor.json | 31 +++++ .../eventgrid-system-events/eslint.config.mjs | 16 +++ .../eventgrid-system-events/package.json | 131 ++++++++++++++++++ .../review/eventgrid-system-events.api.md | 29 ++++ .../eventgrid-system-events/sample.env | 1 + .../src/clientDefinitions.ts | 10 ++ .../eventgrid-system-events/src/index.ts | 11 ++ .../eventgrid-system-events/src/logger.ts | 5 + .../eventgrid-system-events/src/parameters.ts | 2 + .../eventgrid-system-events/src/responses.ts | 2 + .../src/systemEventsClient.ts | 46 ++++++ .../test/public/sampleTest.spec.ts | 20 +++ .../test/public/utils/recordedClient.ts | 23 +++ .../tsconfig.browser.config.json | 3 + .../eventgrid-system-events/tsconfig.json | 16 +++ .../tsconfig.samples.json | 8 ++ .../eventgrid-system-events/tsconfig.src.json | 3 + .../tsconfig.test.json | 3 + .../eventgrid-system-events/tsp-location.yaml | 4 + .../vitest.browser.config.ts | 17 +++ .../eventgrid-system-events/vitest.config.ts | 16 +++ .../vitest.esm.config.ts | 12 ++ 27 files changed, 553 insertions(+), 18 deletions(-) create mode 100644 sdk/eventgrid/eventgrid-system-events/LICENSE create mode 100644 sdk/eventgrid/eventgrid-system-events/README.md create mode 100644 sdk/eventgrid/eventgrid-system-events/api-extractor.json create mode 100644 sdk/eventgrid/eventgrid-system-events/eslint.config.mjs create mode 100644 sdk/eventgrid/eventgrid-system-events/package.json create mode 100644 sdk/eventgrid/eventgrid-system-events/review/eventgrid-system-events.api.md create mode 100644 sdk/eventgrid/eventgrid-system-events/sample.env create mode 100644 sdk/eventgrid/eventgrid-system-events/src/clientDefinitions.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/src/index.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/src/logger.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/src/parameters.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/src/responses.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/src/systemEventsClient.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/test/public/sampleTest.spec.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/test/public/utils/recordedClient.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/tsconfig.browser.config.json create mode 100644 sdk/eventgrid/eventgrid-system-events/tsconfig.json create mode 100644 sdk/eventgrid/eventgrid-system-events/tsconfig.samples.json create mode 100644 sdk/eventgrid/eventgrid-system-events/tsconfig.src.json create mode 100644 sdk/eventgrid/eventgrid-system-events/tsconfig.test.json create mode 100644 sdk/eventgrid/eventgrid-system-events/tsp-location.yaml create mode 100644 sdk/eventgrid/eventgrid-system-events/vitest.browser.config.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/vitest.config.ts create mode 100644 sdk/eventgrid/eventgrid-system-events/vitest.esm.config.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 0bddaa1762c6..e55293a85747 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -949,6 +949,9 @@ importers: '@rush-temp/eventgrid-namespaces': specifier: file:./projects/eventgrid-namespaces.tgz version: file:projects/eventgrid-namespaces.tgz(@types/debug@4.1.12)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) + '@rush-temp/eventgrid-system-events': + specifier: file:./projects/eventgrid-system-events.tgz + version: file:projects/eventgrid-system-events.tgz(@types/debug@4.1.12)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) '@rush-temp/eventgrid-systemevents': specifier: file:./projects/eventgrid-systemevents.tgz version: file:projects/eventgrid-systemevents.tgz(@types/debug@4.1.12)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) @@ -3740,6 +3743,10 @@ packages: resolution: {integrity: sha512-Tl1NVK2ObKuFhsPd36jNqx/LtvNnXHWTtSQDhLZaLX3oEUJ75vkQMmTK3SiqvGG/KI8cHngjQoaqVu3z3LGlLw==, tarball: file:projects/eventgrid-namespaces.tgz} version: 0.0.0 + '@rush-temp/eventgrid-system-events@file:projects/eventgrid-system-events.tgz': + resolution: {integrity: sha512-bQBXwfWUODJEhQh3opCo83rMJ7JFRUxCGMoBl2M4xQBYyKQ91Za9XPrCPrSCdCJQCwSmgil0MoCTxQMoK9/S5Q==, tarball: file:projects/eventgrid-system-events.tgz} + version: 0.0.0 + '@rush-temp/eventgrid-systemevents@file:projects/eventgrid-systemevents.tgz': resolution: {integrity: sha512-Sq6LAm8xHa7qG+q8Hqt0CdTdeKgVhxRLOIrwSoQ2hHsJHmxat929PBUhBc9LW3JM9iXtVu9tycqfRW74egYIxQ==, tarball: file:projects/eventgrid-systemevents.tgz} version: 0.0.0 @@ -19033,6 +19040,42 @@ snapshots: - webdriverio - yaml + '@rush-temp/eventgrid-system-events@file:projects/eventgrid-system-events.tgz(@types/debug@4.1.12)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': + dependencies: + '@microsoft/api-extractor': 7.49.2(@types/node@18.19.75) + '@types/node': 18.19.75 + '@vitest/browser': 3.0.5(@types/node@18.19.75)(playwright@1.50.1)(typescript@5.6.3)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.0.5) + '@vitest/coverage-istanbul': 3.0.5(vitest@3.0.5) + dotenv: 16.4.7 + eslint: 9.20.0 + playwright: 1.50.1 + tslib: 2.8.1 + typescript: 5.6.3 + vitest: 3.0.5(@types/debug@4.1.12)(@types/node@18.19.75)(@vitest/browser@3.0.5)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(yaml@2.7.0) + transitivePeerDependencies: + - '@edge-runtime/vm' + - '@types/debug' + - '@vitest/ui' + - bufferutil + - happy-dom + - jiti + - jsdom + - less + - lightningcss + - msw + - safaridriver + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - utf-8-validate + - vite + - webdriverio + - yaml + '@rush-temp/eventgrid-systemevents@file:projects/eventgrid-systemevents.tgz(@types/debug@4.1.12)(msw@2.7.0(@types/node@22.7.9)(typescript@5.7.3))(tsx@4.19.2)(vite@6.1.0(@types/node@22.7.9)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': dependencies: '@types/node': 18.19.75 @@ -22191,11 +22234,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/bunyan@1.8.9': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/chai-as-promised@7.1.8': dependencies: @@ -22213,13 +22256,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/cookie@0.6.0': {} '@types/cors@2.8.17': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/debug@4.1.12': dependencies: @@ -22261,14 +22304,14 @@ snapshots: '@types/fs-extra@8.1.5': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/gensync@1.0.4': {} '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/http-errors@2.0.4': {} @@ -22285,7 +22328,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/jsonwebtoken@9.0.8': dependencies: @@ -22323,11 +22366,11 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/node-fetch@2.6.12': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 form-data: 4.0.1 '@types/node@18.19.75': @@ -22352,7 +22395,7 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 pg-protocol: 1.7.0 pg-types: 2.2.0 @@ -22369,7 +22412,7 @@ snapshots: '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/resolve@1.20.2': {} @@ -22380,12 +22423,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/send': 0.17.4 '@types/shimmer@1.2.0': {} @@ -22404,7 +22447,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 '@types/tough-cookie@4.0.5': {} @@ -22436,7 +22479,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 18.19.75 + '@types/node': 22.7.9 optional: true '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0)(typescript@5.7.3))(eslint@9.20.0)(typescript@5.7.3)': @@ -23393,7 +23436,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.17 - '@types/node': 18.19.75 + '@types/node': 22.7.9 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 diff --git a/rush.json b/rush.json index 0935522c0d1a..b787f6b592ef 100644 --- a/rush.json +++ b/rush.json @@ -1,7 +1,7 @@ /** * This is the main configuration file for Rush. * For full documentation, please see https://rushjs.io - */ { + */{ "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", /** * (Required) This specifies the version of the Rush engine to be used in this repo. @@ -2331,6 +2331,11 @@ "packageName": "@azure/arm-pineconevectordb", "projectFolder": "sdk/pineconevectordb/arm-pineconevectordb", "versionPolicyName": "management" + }, + { + "packageName": "@azure/eventgrid-system-events", + "projectFolder": "sdk/eventgrid/eventgrid-system-events", + "versionPolicyName": "client" } ] -} +} \ No newline at end of file diff --git a/sdk/eventgrid/ci.yml b/sdk/eventgrid/ci.yml index 2f00f39bc2f3..a311493a9c01 100644 --- a/sdk/eventgrid/ci.yml +++ b/sdk/eventgrid/ci.yml @@ -38,3 +38,5 @@ extends: safeName: azureeventgridnamespaces - name: azure-eventgrid-systemevents safeName: azureeventgridsystemevents + - name: azure-eventgrid-system-events + safeName: azureeventgridsystemevents diff --git a/sdk/eventgrid/eventgrid-system-events/LICENSE b/sdk/eventgrid/eventgrid-system-events/LICENSE new file mode 100644 index 000000000000..2ad4de7b17f0 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2025 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/sdk/eventgrid/eventgrid-system-events/README.md b/sdk/eventgrid/eventgrid-system-events/README.md new file mode 100644 index 000000000000..353511c7fef1 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/README.md @@ -0,0 +1,55 @@ +# Azure SystemEvents REST client library for JavaScript + +Azure Messaging EventGrid SystemEvents + +**Please rely heavily on our [REST client docs](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/rest-clients.md) to use this library** + +Key links: + +- [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/eventgrid/eventgrid-system-events) +- [Package (NPM)](https://www.npmjs.com/package/@azure/eventgrid-system-events) +- [API reference documentation](https://learn.microsoft.com/javascript/api/@azure/eventgrid-system-events?view=azure-node-preview) + +## Getting started + +### Currently supported environments + +- LTS versions of Node.js + +### Prerequisites + +- You must have an [Azure subscription](https://azure.microsoft.com/free/) to use this package. + +### Install the `@azure/eventgrid-system-events` package + +Install the Azure SystemEvents REST client REST client library for JavaScript with `npm`: + +```bash +npm install @azure/eventgrid-system-events +``` + +### Create and authenticate a `SystemEventsClient` + +To use an [Azure Active Directory (AAD) token credential](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-with-a-pre-fetched-access-token), +provide an instance of the desired credential type obtained from the +[@azure/identity](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) library. + +To authenticate with AAD, you must first `npm` install [`@azure/identity`](https://www.npmjs.com/package/@azure/identity) + +After setup, you can choose which type of [credential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#credentials) from `@azure/identity` to use. +As an example, [DefaultAzureCredential](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity#defaultazurecredential) +can be used to authenticate the client. + +## Troubleshooting + +### Logging + +Enabling logging may help uncover useful information about failures. In order to see a log of HTTP requests and responses, set the `AZURE_LOG_LEVEL` environment variable to `info`. Alternatively, logging can be enabled at runtime by calling `setLogLevel` in the `@azure/logger`: + +```javascript +const { setLogLevel } = require("@azure/logger"); + +setLogLevel("info"); +``` + +For more detailed instructions on how to enable logs, you can look at the [@azure/logger package docs](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/core/logger). diff --git a/sdk/eventgrid/eventgrid-system-events/api-extractor.json b/sdk/eventgrid/eventgrid-system-events/api-extractor.json new file mode 100644 index 000000000000..b419a2f7c8d9 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/api-extractor.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "mainEntryPointFilePath": "./dist/esm/index.d.ts", + "docModel": { + "enabled": true + }, + "apiReport": { + "enabled": true, + "reportFolder": "./review" + }, + "dtsRollup": { + "enabled": true, + "untrimmedFilePath": "", + "publicTrimmedFilePath": "./types/eventgrid-system-events.d.ts" + }, + "messages": { + "tsdocMessageReporting": { + "default": { + "logLevel": "none" + } + }, + "extractorMessageReporting": { + "ae-missing-release-tag": { + "logLevel": "none" + }, + "ae-unresolved-link": { + "logLevel": "none" + } + } + } +} \ No newline at end of file diff --git a/sdk/eventgrid/eventgrid-system-events/eslint.config.mjs b/sdk/eventgrid/eventgrid-system-events/eslint.config.mjs new file mode 100644 index 000000000000..a9fcfbef11ff --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/eslint.config.mjs @@ -0,0 +1,16 @@ +import azsdkEslint from "@azure/eslint-plugin-azure-sdk"; + +export default azsdkEslint.config([ + { + rules: { + "@azure/azure-sdk/ts-modules-only-named": "warn", + "@azure/azure-sdk/ts-apiextractor-json-types": "warn", + "@azure/azure-sdk/ts-package-json-types": "warn", + "@azure/azure-sdk/ts-package-json-engine-is-present": "warn", + "@azure/azure-sdk/ts-package-json-module": "off", + "@azure/azure-sdk/ts-package-json-files-required": "off", + "@azure/azure-sdk/ts-package-json-main-is-cjs": "off", + "tsdoc/syntax": "warn", + }, + }, +]); diff --git a/sdk/eventgrid/eventgrid-system-events/package.json b/sdk/eventgrid/eventgrid-system-events/package.json new file mode 100644 index 000000000000..87932b621ba5 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/package.json @@ -0,0 +1,131 @@ +{ + "name": "@azure/eventgrid-system-events", + "version": "1.0.0-beta.1", + "description": "A generated SDK for SystemEventsClient.", + "engines": { + "node": ">=18.0.0" + }, + "sideEffects": false, + "autoPublish": false, + "tshy": { + "project": "./tsconfig.src.json", + "exports": { + "./package.json": "./package.json", + ".": "./src/index.ts" + }, + "dialects": [ + "esm", + "commonjs" + ], + "esmDialects": [ + "browser", + "react-native" + ], + "selfLink": false + }, + "type": "module", + "keywords": [ + "node", + "azure", + "cloud", + "typescript", + "browser", + "isomorphic" + ], + "author": "Microsoft Corporation", + "license": "MIT", + "files": [ + "dist/", + "README.md", + "LICENSE" + ], + "sdk-type": "client", + "repository": "github:Azure/azure-sdk-for-js", + "bugs": { + "url": "https://github.com/Azure/azure-sdk-for-js/issues" + }, + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/eventgrid/eventgrid-system-events/README.md", + "prettier": "@azure/eslint-plugin-azure-sdk/prettier.json", + "//metadata": { + "constantPaths": [ + { + "path": "src/systemEventsClient.ts", + "prefix": "userAgentInfo" + } + ] + }, + "dependencies": { + "@azure-rest/core-client": "^2.3.1", + "@azure/core-auth": "^1.9.0", + "@azure/core-rest-pipeline": "^1.19.0", + "@azure/logger": "^1.1.4", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@azure-tools/test-credential": "^2.0.0", + "@azure-tools/test-recorder": "^4.1.0", + "@azure-tools/test-utils-vitest": "^1.0.0", + "@azure/dev-tool": "^1.0.0", + "@azure/eslint-plugin-azure-sdk": "^3.0.0", + "@azure/identity": "^4.6.0", + "@microsoft/api-extractor": "^7.40.3", + "@types/node": "^18.0.0", + "@vitest/browser": "^3.0.5", + "@vitest/coverage-istanbul": "^3.0.5", + "dotenv": "^16.0.0", + "eslint": "^9.9.0", + "playwright": "^1.50.1", + "typescript": "~5.6.2", + "vitest": "^3.0.5" + }, + "scripts": { + "build": "npm run clean && dev-tool run build-package && dev-tool run extract-api", + "build:samples": "echo skipped", + "build:test": "npm run clean && dev-tool run build-package && dev-tool run build-test", + "check-format": "dev-tool run vendored prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\" ", + "clean": "dev-tool run vendored rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "execute:samples": "echo skipped", + "extract-api": "dev-tool run vendored rimraf review && dev-tool run extract-api", + "format": "dev-tool run vendored prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.{ts,cts,mts}\" \"test/**/*.{ts,cts,mts}\" \"*.{js,cjs,mjs,json}\" ", + "generate:client": "echo skipped", + "integration-test": "npm run integration-test:node && npm run integration-test:browser", + "integration-test:browser": "echo skipped", + "integration-test:node": "echo skipped", + "lint": "eslint package.json api-extractor.json src test", + "lint:fix": "eslint package.json api-extractor.json src test --fix --fix-type [problem,suggestion]", + "minify": "dev-tool run vendored uglifyjs -c -m --comments --source-map \"content='./dist/index.js.map'\" -o ./dist/index.min.js ./dist/index.js", + "pack": "npm pack 2>&1", + "test": "npm run clean && dev-tool run build-package && npm run unit-test:node && dev-tool run bundle && npm run unit-test:browser && npm run integration-test", + "test:browser": "npm run clean && npm run build:test && npm run unit-test:browser && npm run integration-test:browser", + "test:node": "npm run clean && dev-tool run build-package && npm run unit-test:node && npm run integration-test:node", + "unit-test": "npm run unit-test:node && npm run unit-test:browser", + "unit-test:browser": "npm run clean && dev-tool run build-package && dev-tool run build-test && dev-tool run test:vitest --browser", + "unit-test:node": "dev-tool run test:vitest", + "update-snippets": "echo skipped" + }, + "browser": "./dist/browser/index.js", + "react-native": "./dist/react-native/index.js", + "exports": { + "./package.json": "./package.json", + ".": { + "browser": { + "types": "./dist/browser/index.d.ts", + "default": "./dist/browser/index.js" + }, + "react-native": { + "types": "./dist/react-native/index.d.ts", + "default": "./dist/react-native/index.js" + }, + "import": { + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" + }, + "require": { + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" + } + } + }, + "main": "./dist/commonjs/index.js", + "types": "./dist/commonjs/index.d.ts" +} \ No newline at end of file diff --git a/sdk/eventgrid/eventgrid-system-events/review/eventgrid-system-events.api.md b/sdk/eventgrid/eventgrid-system-events/review/eventgrid-system-events.api.md new file mode 100644 index 000000000000..806ce61c7f19 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/review/eventgrid-system-events.api.md @@ -0,0 +1,29 @@ +## API Report File for "@azure/eventgrid-system-events" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { Client } from '@azure-rest/core-client'; +import type { ClientOptions } from '@azure-rest/core-client'; + +// @public +function createClient(endpointParam: string, options?: SystemEventsClientOptions): SystemEventsClient; +export default createClient; + +// @public (undocumented) +export interface Routes { +} + +// @public (undocumented) +export type SystemEventsClient = Client & { + path: Routes; +}; + +// @public +export interface SystemEventsClientOptions extends ClientOptions { +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/sdk/eventgrid/eventgrid-system-events/sample.env b/sdk/eventgrid/eventgrid-system-events/sample.env new file mode 100644 index 000000000000..508439fc7d62 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/sample.env @@ -0,0 +1 @@ +# Feel free to add your own environment variables. \ No newline at end of file diff --git a/sdk/eventgrid/eventgrid-system-events/src/clientDefinitions.ts b/sdk/eventgrid/eventgrid-system-events/src/clientDefinitions.ts new file mode 100644 index 000000000000..6ae22ac46117 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/clientDefinitions.ts @@ -0,0 +1,10 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import type { Client } from "@azure-rest/core-client"; + +export interface Routes {} + +export type SystemEventsClient = Client & { + path: Routes; +}; diff --git a/sdk/eventgrid/eventgrid-system-events/src/index.ts b/sdk/eventgrid/eventgrid-system-events/src/index.ts new file mode 100644 index 000000000000..27c0bf3ceec3 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/index.ts @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import SystemEventsClient from "./systemEventsClient.js"; + +export * from "./systemEventsClient.js"; +export * from "./parameters.js"; +export * from "./responses.js"; +export * from "./clientDefinitions.js"; + +export default SystemEventsClient; diff --git a/sdk/eventgrid/eventgrid-system-events/src/logger.ts b/sdk/eventgrid/eventgrid-system-events/src/logger.ts new file mode 100644 index 000000000000..7ace96b2b8dc --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/logger.ts @@ -0,0 +1,5 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { createClientLogger } from "@azure/logger"; +export const logger = createClientLogger("eventgrid-system-events"); diff --git a/sdk/eventgrid/eventgrid-system-events/src/parameters.ts b/sdk/eventgrid/eventgrid-system-events/src/parameters.ts new file mode 100644 index 000000000000..fc36ab244fad --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/parameters.ts @@ -0,0 +1,2 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. diff --git a/sdk/eventgrid/eventgrid-system-events/src/responses.ts b/sdk/eventgrid/eventgrid-system-events/src/responses.ts new file mode 100644 index 000000000000..fc36ab244fad --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/responses.ts @@ -0,0 +1,2 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. diff --git a/sdk/eventgrid/eventgrid-system-events/src/systemEventsClient.ts b/sdk/eventgrid/eventgrid-system-events/src/systemEventsClient.ts new file mode 100644 index 000000000000..e117dfd32bf1 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/src/systemEventsClient.ts @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import type { ClientOptions } from "@azure-rest/core-client"; +import { getClient } from "@azure-rest/core-client"; +import { logger } from "./logger.js"; +import type { SystemEventsClient } from "./clientDefinitions.js"; + +/** The optional parameters for the client */ +export interface SystemEventsClientOptions extends ClientOptions {} + +/** + * Initialize a new instance of `SystemEventsClient` + * @param endpointParam - The parameter endpointParam + * @param options - the parameter for all optional parameters + */ +export default function createClient( + endpointParam: string, + options: SystemEventsClientOptions = {}, +): SystemEventsClient { + const endpointUrl = options.endpoint ?? options.baseUrl ?? `${endpointParam}`; + const userAgentInfo = `azsdk-js-eventgrid-system-events-rest/1.0.0-beta.1`; + const userAgentPrefix = + options.userAgentOptions && options.userAgentOptions.userAgentPrefix + ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}` + : `${userAgentInfo}`; + options = { + ...options, + userAgentOptions: { + userAgentPrefix, + }, + loggingOptions: { + logger: options.loggingOptions?.logger ?? logger.info, + }, + }; + const client = getClient(endpointUrl, options) as SystemEventsClient; + + client.pipeline.removePolicy({ name: "ApiVersionPolicy" }); + if (options.apiVersion) { + logger.warning( + "This client does not support client api-version, please change it at the operation level", + ); + } + + return client; +} diff --git a/sdk/eventgrid/eventgrid-system-events/test/public/sampleTest.spec.ts b/sdk/eventgrid/eventgrid-system-events/test/public/sampleTest.spec.ts new file mode 100644 index 000000000000..e4591bbad342 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/test/public/sampleTest.spec.ts @@ -0,0 +1,20 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { assert, beforeEach, afterEach, it, describe } from "vitest"; + +describe("My test", () => { + // let recorder: Recorder; + + beforeEach(async () => { + // recorder = await createRecorder(this); + }); + + afterEach(async () => { + // await recorder.stop(); + }); + + it("sample test", async function () { + assert.equal(1, 1); + }); +}); diff --git a/sdk/eventgrid/eventgrid-system-events/test/public/utils/recordedClient.ts b/sdk/eventgrid/eventgrid-system-events/test/public/utils/recordedClient.ts new file mode 100644 index 000000000000..14dcd9fa397c --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/test/public/utils/recordedClient.ts @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { Recorder, RecorderStartOptions, VitestTestContext } from "@azure-tools/test-recorder"; + +const replaceableVariables: Record = { + SUBSCRIPTION_ID: "azure_subscription_id", +}; + +const recorderEnvSetup: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables, +}; + +/** + * creates the recorder and reads the environment variables from the `.env` file. + * Should be called first in the test suite to make sure environment variables are + * read before they are being used. + */ +export async function createRecorder(context: VitestTestContext): Promise { + const recorder = new Recorder(context); + await recorder.start(recorderEnvSetup); + return recorder; +} diff --git a/sdk/eventgrid/eventgrid-system-events/tsconfig.browser.config.json b/sdk/eventgrid/eventgrid-system-events/tsconfig.browser.config.json new file mode 100644 index 000000000000..75871518e3a0 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsconfig.browser.config.json @@ -0,0 +1,3 @@ +{ + "extends": ["./tsconfig.test.json", "../../../tsconfig.browser.base.json"] +} diff --git a/sdk/eventgrid/eventgrid-system-events/tsconfig.json b/sdk/eventgrid/eventgrid-system-events/tsconfig.json new file mode 100644 index 000000000000..71858ab903e4 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../../tsconfig", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "rootDir": ".", + "skipLibCheck": true + }, + "include": [ + "src/**/*.ts", + "src/**/*.mts", + "src/**/*.cts", + "test/**/*.ts", + "test/**/*.ts" + ] +} \ No newline at end of file diff --git a/sdk/eventgrid/eventgrid-system-events/tsconfig.samples.json b/sdk/eventgrid/eventgrid-system-events/tsconfig.samples.json new file mode 100644 index 000000000000..52be7c127c85 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsconfig.samples.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.samples.base.json", + "compilerOptions": { + "paths": { + "@azure/eventgrid-system-events": ["./dist/esm"] + } + } +} diff --git a/sdk/eventgrid/eventgrid-system-events/tsconfig.src.json b/sdk/eventgrid/eventgrid-system-events/tsconfig.src.json new file mode 100644 index 000000000000..bae70752dd38 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsconfig.src.json @@ -0,0 +1,3 @@ +{ + "extends": "../../../tsconfig.lib.json" +} diff --git a/sdk/eventgrid/eventgrid-system-events/tsconfig.test.json b/sdk/eventgrid/eventgrid-system-events/tsconfig.test.json new file mode 100644 index 000000000000..290ca214aebc --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsconfig.test.json @@ -0,0 +1,3 @@ +{ + "extends": ["./tsconfig.src.json", "../../../tsconfig.test.base.json"] +} diff --git a/sdk/eventgrid/eventgrid-system-events/tsp-location.yaml b/sdk/eventgrid/eventgrid-system-events/tsp-location.yaml new file mode 100644 index 000000000000..34e42d51bcc5 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/tsp-location.yaml @@ -0,0 +1,4 @@ +directory: specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents +commit: aac064ea004cf3da6d29d5aa2446795073d613e8 +repo: /mnt/vss/_work/1/s/azure-rest-api-specs +additionalDirectories: diff --git a/sdk/eventgrid/eventgrid-system-events/vitest.browser.config.ts b/sdk/eventgrid/eventgrid-system-events/vitest.browser.config.ts new file mode 100644 index 000000000000..182729ab5ce9 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/vitest.browser.config.ts @@ -0,0 +1,17 @@ + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { defineConfig, mergeConfig } from "vitest/config"; +import viteConfig from "../../../vitest.browser.shared.config.ts"; + +export default mergeConfig( + viteConfig, + defineConfig({ + test: { + include: ["dist-test/browser/test/**/*.spec.js",], + testTimeout: 1200000, + hookTimeout: 1200000, + }, + }), +); diff --git a/sdk/eventgrid/eventgrid-system-events/vitest.config.ts b/sdk/eventgrid/eventgrid-system-events/vitest.config.ts new file mode 100644 index 000000000000..40e031385dd8 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/vitest.config.ts @@ -0,0 +1,16 @@ + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { defineConfig, mergeConfig } from "vitest/config"; +import viteConfig from "../../../vitest.shared.config.ts"; + +export default mergeConfig( + viteConfig, + defineConfig({ + test: { + testTimeout: 1200000, + hookTimeout: 1200000, + }, + }), +); diff --git a/sdk/eventgrid/eventgrid-system-events/vitest.esm.config.ts b/sdk/eventgrid/eventgrid-system-events/vitest.esm.config.ts new file mode 100644 index 000000000000..a70127279fc9 --- /dev/null +++ b/sdk/eventgrid/eventgrid-system-events/vitest.esm.config.ts @@ -0,0 +1,12 @@ + +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { mergeConfig } from "vitest/config"; +import vitestConfig from "./vitest.config.ts"; +import vitestEsmConfig from "../../../vitest.esm.shared.config.ts"; + +export default mergeConfig( + vitestConfig, + vitestEsmConfig +);