├── .azure-pipelines
└── ci-build-production.yml
├── .github
├── CODEOWNERS
├── ISSUE_TEMPLATE
│ ├── 01-sdk-bug.yml
│ ├── 02-sdk-feature-request.yml
│ ├── 03-blank-issue.md
│ └── config.yml
├── dependabot.yml
├── policies
│ ├── msgraph-typescript-typings-branch-protection.yml
│ └── resourceManagement.yml
└── workflows
│ ├── auto-merge-dependabot.yml
│ ├── codeql.yml
│ └── project-auto-add.yml
├── .gitignore
├── .npmignore
├── .vscode
├── launch.json
├── settings.json
└── tasks.json
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README-Localized
├── README-es-es.md
├── README-fr-fr.md
├── README-ja-jp.md
├── README-pt-br.md
├── README-ru-ru.md
└── README-zh-cn.md
├── README.md
├── SECURITY.md
├── microsoft-graph.d.ts
├── package-lock.json
├── package.json
├── scripts
└── src
│ ├── AddGithubUser.ps1
│ ├── CalculateNewProductionVersion.ps1
│ ├── CommitAndPushChangesToGithub.ps1
│ ├── GetLatestCommitSHA.ps1
│ ├── GetPackageVersion.ps1
│ ├── HasNewCommitsAfterLastRelease.ps1
│ └── RemoveGithubUser.ps1
├── spec
├── groups.ts
├── testHelpers.ts
└── users.ts
├── tsconfig.json
├── typings-demo.gif
└── typings.json
/.azure-pipelines/ci-build-production.yml:
--------------------------------------------------------------------------------
1 | # This Yaml Document has been converted by ESAI Yaml Pipeline Conversion Tool.
2 | # Please make sure to check all the converted content, it is your team's responsibility to make sure that the pipeline is still valid and functions as expected.
3 | # This pipeline will be extended to the OneESPT template
4 | # The pool section has been filled with placeholder values, replace the pool section with your hosted pool, os, and image name. If you are using a Linux image, you must specify an additional windows image for SDL: https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/overview#how-to-specify-a-windows-pool-for-the-sdl-source-analysis-stage
5 | name: $(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
6 | trigger:
7 | branches:
8 | include:
9 | - main
10 | paths:
11 | include:
12 | - microsoft-graph.d.ts
13 | pr: none
14 | resources:
15 | repositories:
16 | - repository: 1ESPipelineTemplates
17 | type: git
18 | name: 1ESPipelineTemplates/1ESPipelineTemplates
19 | ref: refs/tags/release
20 | extends:
21 | template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
22 | parameters:
23 | pool:
24 | name: Azure-Pipelines-1ESPT-ExDShared
25 | image: windows-latest
26 | os: windows
27 | customBuildTags:
28 | - ES365AIMigrationTooling
29 | stages:
30 | - stage: build
31 | jobs:
32 | - job: job
33 | templateContext:
34 | outputs:
35 | - output: pipelineArtifact
36 | displayName: 'Publish Artifact drop'
37 | targetPath: '$(Build.ArtifactStagingDirectory)'
38 | artifactName: build-drop
39 | steps:
40 | - checkout: self
41 | displayName: checkout main
42 | - task: CopyFiles@2
43 | displayName: 'Copy Files to staging directory'
44 | inputs:
45 | SourceFolder: '$(System.DefaultWorkingDirectory)'
46 | Contents: |
47 | **/*
48 | !spec/**
49 | !.azure-pipelines/**
50 | !.github/**
51 | !.git/**
52 | !.vscode/**
53 | !typings-demo.gif
54 | TargetFolder: '$(Build.ArtifactStagingDirectory)'
55 |
56 |
57 | - stage: deploy
58 | condition: and(contains(variables['build.sourceBranch'], 'refs/heads/main'), succeeded())
59 | jobs:
60 | - deployment: deploy_npm
61 | pool:
62 | name: Azure-Pipelines-1ESPT-ExDShared
63 | os: windows
64 | image: windows-latest
65 | dependsOn: []
66 | environment: msgraph-npm-org
67 | strategy:
68 | runOnce:
69 | deploy:
70 | steps:
71 | - download: current
72 | artifact: build-drop
73 | - task: EsrpRelease@5
74 | inputs:
75 | ConnectedServiceName: 'MsGraph-ESRP-Publisher-Service-Connection'
76 | Intent: 'PackageDistribution'
77 | ContentType: 'npm'
78 | ContentSource: 'Folder'
79 | FolderLocation: $(Pipeline.Workspace)/build-drop/
80 | WaitForReleaseCompletion: true
81 | Owners: '3PMSGraphDevxTeam@microsoft.com'
82 | Approvers: 'anomondi@microsoft.com,ronaldkudoyi@microsoft.com,pgichuhi@microsoft.com,shemogumbe@microsoft.com'
83 | ServiceEndpointUrl: 'https://api.esrp.microsoft.com'
84 | MainPublisher: 'ESRPRELPACMAN'
85 | DomainTenantId: 'cdc5aeea-15c5-4db6-b079-fcadd2505dc2'
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @microsoftgraph/msgraph-devx-typescript-write
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/01-sdk-bug.yml:
--------------------------------------------------------------------------------
1 | name: SDK Bug Report
2 | description: File SDK bug report
3 | labels: ["type:bug", "status:waiting-for-triage"]
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | **Thank you for taking the time to fill out this bug report!**
9 | 💥Before submitting a new request, please search existing issues to see if an issue already exists.
10 | - type: textarea
11 | id: description
12 | attributes:
13 | label: Describe the bug
14 | description: |
15 | Provide a description of the actual behavior observed. If applicable please include any error messages, exception stacktraces or a screenshot.
16 | placeholder: I am trying to do [...] but [...]
17 | validations:
18 | required: true
19 | - type: textarea
20 | id: expected-behavior
21 | attributes:
22 | label: Expected behavior
23 | description: |
24 | A clear and concise description of what you expected to happen.
25 | placeholder: Expected behavior
26 | validations:
27 | required: true
28 | - type: textarea
29 | id: repro-steps
30 | attributes:
31 | label: How to reproduce
32 | description: |
33 | Please include minimal steps to reproduce the problem if possible. E.g.: the smallest possible code snippet; or steps to run project in link above. If possible include text as text rather than screenshots (so it shows up in searches).
34 | If there's a link to a public repo where the sample code exists, include it too.
35 | placeholder: Minimal Reproduction steps
36 | validations:
37 | required: true
38 | - type: input
39 | attributes:
40 | label: SDK Version
41 | placeholder: e.g. 5.32.1
42 | description: Version of the SDK with the bug described above.
43 | validations:
44 | required: false
45 | - type: input
46 | id: regression
47 | attributes:
48 | label: Latest version known to work for scenario above?
49 | description: |
50 | Did this work in a previous build or release of the SDK or API client? If you can try a previous release or build to find out, that can help us narrow down the problem. If you don't know, that's OK.
51 | placeholder: version-number
52 | validations:
53 | required: false
54 | - type: textarea
55 | id: known-workarounds
56 | attributes:
57 | label: Known Workarounds
58 | description: |
59 | Please provide a description of any known workarounds.
60 | placeholder: Known Workarounds
61 | validations:
62 | required: false
63 | - type: textarea
64 | id: logs
65 | attributes:
66 | label: Debug output
67 | description: Please copy and paste the debug output below.
68 | value: |
69 | Click to expand log
70 | ```
71 |
72 |
73 |
74 | ```
75 |
76 | validations:
77 | required: false
78 | - type: textarea
79 | id: configuration
80 | attributes:
81 | label: Configuration
82 | description: |
83 | Please provide more information on your SDK configuration:
84 | * What OS and version, and what distro if applicable (Windows 10, Windows 11, MacOS Catalina, Ubuntu 22.04)?
85 | * What is the architecture (x64, x86, ARM, ARM64)?
86 | * Do you know whether it is specific to that configuration?
87 | placeholder: |
88 | - OS:
89 | - architecture:
90 | validations:
91 | required: false
92 | - type: textarea
93 | id: other-info
94 | attributes:
95 | label: Other information
96 | description: |
97 | If you have an idea where the problem might lie, let us know that here. Please include any pointers to code, relevant changes, or related issues you know of.
98 | placeholder: Other information
99 | validations:
100 | required: false
101 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/02-sdk-feature-request.yml:
--------------------------------------------------------------------------------
1 | name: SDK Feature request
2 | description: Request a new feature on the SDK
3 | labels: ["type:feature", "status:waiting-for-triage"]
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | **Thank you for taking the time to fill out this feature request form!**
9 | 💥Please search to see if an issue already exists for the feature you are requesting.
10 | - type: textarea
11 | attributes:
12 | label: Is your feature request related to a problem? Please describe the problem.
13 | description: A clear and concise description of what the problem is.
14 | placeholder: I am trying to do [...] but [...]
15 | validations:
16 | required: false
17 | - type: textarea
18 | attributes:
19 | label: Describe the solution you'd like.
20 | description: |
21 | A clear and concise description of what you want to happen. Include any alternative solutions you've considered.
22 | validations:
23 | required: true
24 | - type: textarea
25 | attributes:
26 | label: Additional context?
27 | description: |
28 | Add any other context or screenshots about the feature request here.
29 | validations:
30 | required: false
31 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/03-blank-issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Blank issue
3 | about: Something that doesn't fit the other categories
4 | title: ''
5 | labels: ["status:waiting-for-triage"]
6 | assignees: ''
7 |
8 | ---
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 | contact_links:
3 | - name: Question on use of graph sdk
4 | url: https://github.com/microsoftgraph/msgraph-typescript-typings/discussions
5 | about: Please add your question in the discussions section of the repo
6 | - name: Question on use of kiota
7 | url: https://github.com/microsoft/kiota/discussions
8 | about: Please add your question in the discussions section of the repo
9 | - name: Question or Feature Request for the MS Graph API?
10 | url: https://aka.ms/msgraphsupport
11 | about: Report an issue or limitation with the MS Graph service APIs
12 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: github-actions
4 | directory: "/"
5 | schedule:
6 | interval: daily
7 | open-pull-requests-limit: 10
8 | - package-ecosystem: npm
9 | directory: "/"
10 | schedule:
11 | interval: daily
12 | open-pull-requests-limit: 10
13 |
--------------------------------------------------------------------------------
/.github/policies/msgraph-typescript-typings-branch-protection.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) Microsoft Corporation.
2 | # Licensed under the MIT License.
3 |
4 | # File initially created using https://github.com/MIchaelMainer/policyservicetoolkit/blob/main/branch_protection_export.ps1.
5 |
6 | name: msgraph-typescript-typings-branch-protection
7 | description: Branch protection policy for the msgraph-typescript-typings repository
8 | resource: repository
9 | configuration:
10 | branchProtectionRules:
11 |
12 | - branchNamePattern: main
13 | # This branch pattern applies to the following branches as of 06/12/2023 14:45:32:
14 | # main
15 |
16 | # Specifies whether this branch can be deleted. boolean
17 | allowsDeletions: false
18 | # Specifies whether forced pushes are allowed on this branch. boolean
19 | allowsForcePushes: false
20 | # Specifies whether new commits pushed to the matching branches dismiss pull request review approvals. boolean
21 | dismissStaleReviews: true
22 | # Specifies whether admins can overwrite branch protection. boolean
23 | isAdminEnforced: false
24 | # Indicates whether "Require a pull request before merging" is enabled. boolean
25 | requiresPullRequestBeforeMerging: true
26 | # Specifies the number of pull request reviews before merging. int (0-6). Should be null/empty if PRs are not required
27 | requiredApprovingReviewsCount: 1
28 | # Require review from Code Owners. Requires requiredApprovingReviewsCount. boolean
29 | requireCodeOwnersReview: true
30 | # Are commits required to be signed. boolean. TODO: all contributors must have commit signing on local machines.
31 | requiresCommitSignatures: false
32 | # Are conversations required to be resolved before merging? boolean
33 | requiresConversationResolution: true
34 | # Are merge commits prohibited from being pushed to this branch. boolean
35 | requiresLinearHistory: false
36 | # Required status checks to pass before merging. Values can be any string, but if the value does not correspond to any existing status check, the status check will be stuck on pending for status since nothing exists to push an actual status
37 | requiredStatusChecks:
38 | - CodeQL
39 | - GitOps/AdvancedSecurity
40 | # Require branches to be up to date before merging. Requires requiredStatusChecks. boolean
41 | requiresStrictStatusChecks: true
42 | # Indicates whether there are restrictions on who can push. boolean. Should be set with whoCanPush.
43 | restrictsPushes: false
44 | # Restrict who can dismiss pull request reviews. boolean
45 | restrictsReviewDismissals: false
46 |
47 |
--------------------------------------------------------------------------------
/.github/policies/resourceManagement.yml:
--------------------------------------------------------------------------------
1 | id:
2 | name: GitOps.PullRequestIssueManagement
3 | description: GitOps.PullRequestIssueManagement primitive
4 | owner:
5 | resource: repository
6 | disabled: false
7 | where:
8 | configuration:
9 | resourceManagementConfiguration:
10 | scheduledSearches: []
11 | eventResponderTasks:
12 | - if:
13 | - payloadType: Issues
14 | - isAction:
15 | action: Closed
16 | - hasLabel:
17 | label: 'status:waiting-for-author-feedback'
18 | then:
19 | - removeLabel:
20 | label: 'status:waiting-for-author-feedback'
21 | description:
22 | - if:
23 | - payloadType: Issue_Comment
24 | - isAction:
25 | action: Created
26 | - isActivitySender:
27 | issueAuthor: True
28 | - hasLabel:
29 | label: 'status:waiting-for-author-feedback'
30 | then:
31 | - addLabel:
32 | label: 'Needs: Attention :wave:'
33 | - removeLabel:
34 | label: 'status:waiting-for-author-feedback'
35 | description:
36 | - if:
37 | - payloadType: Issues
38 | - not:
39 | isAction:
40 | action: Closed
41 | - hasLabel:
42 | label: no-recent-activity
43 | then:
44 | - removeLabel:
45 | label: no-recent-activity
46 | description:
47 | - if:
48 | - payloadType: Issues
49 | - labelAdded:
50 | label: service bug
51 | then: []
52 | description:
53 | - if:
54 | - payloadType: Issue_Comment
55 | - activitySenderHasAssociation:
56 | association: Contributor
57 | - bodyContains:
58 | pattern: '?'
59 | isRegex: False
60 | - bodyContains:
61 | pattern: '@'
62 | isRegex: False
63 | then:
64 | - addLabel:
65 | label: 'status:waiting-for-author-feedback'
66 | description:
67 | - if:
68 | - payloadType: Issues
69 | - or:
70 | - isAssignedToSomeone
71 | - isAction:
72 | action: Closed
73 | then:
74 | - removeLabel:
75 | label: ToTriage
76 | description:
77 | onFailure:
78 | onSuccess:
79 |
--------------------------------------------------------------------------------
/.github/workflows/auto-merge-dependabot.yml:
--------------------------------------------------------------------------------
1 | name: Auto-merge dependabot updates
2 |
3 | on:
4 | pull_request:
5 | branches: [ main ]
6 |
7 | permissions:
8 | pull-requests: write
9 | contents: write
10 |
11 | jobs:
12 |
13 | dependabot-merge:
14 |
15 | runs-on: ubuntu-latest
16 |
17 | if: ${{ github.actor == 'dependabot[bot]' }}
18 |
19 | steps:
20 | - name: Dependabot metadata
21 | id: metadata
22 | uses: dependabot/fetch-metadata@v2.3.0
23 | with:
24 | github-token: "${{ secrets.GITHUB_TOKEN }}"
25 |
26 | - name: Enable auto-merge for Dependabot PRs
27 | # Only if version bump is not a major version change
28 | if: ${{steps.metadata.outputs.update-type != 'version-update:semver-major'}}
29 | run: gh pr merge --auto --merge "$PR_URL"
30 | env:
31 | PR_URL: ${{github.event.pull_request.html_url}}
32 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
33 |
--------------------------------------------------------------------------------
/.github/workflows/codeql.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ "main" ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ "main" ]
20 | schedule:
21 | - cron: '37 21 * * 1'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | # Runner size impacts CodeQL analysis time. To learn more, please see:
27 | # - https://gh.io/recommended-hardware-resources-for-running-codeql
28 | # - https://gh.io/supported-runners-and-hardware-resources
29 | # - https://gh.io/using-larger-runners
30 | # Consider using larger runners for possible analysis time improvements.
31 | runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
32 | timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
33 | permissions:
34 | actions: read
35 | contents: read
36 | security-events: write
37 |
38 | strategy:
39 | fail-fast: false
40 | matrix:
41 | language: [ 'javascript' ]
42 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
43 | # Use only 'java' to analyze code written in Java, Kotlin or both
44 | # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
45 | # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
46 |
47 | steps:
48 | - name: Checkout repository
49 | uses: actions/checkout@v4
50 |
51 | # Initializes the CodeQL tools for scanning.
52 | - name: Initialize CodeQL
53 | uses: github/codeql-action/init@v3
54 | with:
55 | languages: ${{ matrix.language }}
56 | # If you wish to specify custom queries, you can do so here or in a config file.
57 | # By default, queries listed here will override any specified in a config file.
58 | # Prefix the list here with "+" to use these queries and those in the config file.
59 |
60 | # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
61 | # queries: security-extended,security-and-quality
62 |
63 |
64 | # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
65 | # If this step fails, then you should remove it and run the build manually (see below)
66 | - name: Autobuild
67 | uses: github/codeql-action/autobuild@v3
68 |
69 | # ℹ️ Command-line programs to run using the OS shell.
70 | # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
71 |
72 | # If the Autobuild fails above, remove it and uncomment the following three lines.
73 | # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
74 |
75 | # - run: |
76 | # echo "Run, Build Application using script"
77 | # ./location_of_script_within_repo/buildscript.sh
78 |
79 | - name: Perform CodeQL Analysis
80 | uses: github/codeql-action/analyze@v3
81 | with:
82 | category: "/language:${{matrix.language}}"
83 |
--------------------------------------------------------------------------------
/.github/workflows/project-auto-add.yml:
--------------------------------------------------------------------------------
1 | # This workflow is used to add new issues to GitHub GraphSDKs Project
2 |
3 | name: Add Issue or PR to project
4 | on:
5 | issues:
6 | types:
7 | - opened
8 | pull_request:
9 | types:
10 | - opened
11 | branches:
12 | - "main"
13 |
14 | jobs:
15 | track_issue:
16 | if: github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.fork == false
17 | runs-on: ubuntu-latest
18 | steps:
19 | - name: Generate token
20 | id: generate_token
21 | uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a
22 | with:
23 | app_id: ${{ secrets.GRAPHBOT_APP_ID }}
24 | private_key: ${{ secrets.GRAPHBOT_APP_PEM }}
25 |
26 | - name: Get project data
27 | env:
28 | GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
29 | ORGANIZATION: microsoftgraph
30 | PROJECT_NUMBER: 55
31 | run: |
32 | gh api graphql -f query='
33 | query($org: String!, $number: Int!) {
34 | organization(login: $org){
35 | projectV2(number: $number) {
36 | id
37 | fields(first:20) {
38 | nodes {
39 | ... on ProjectV2SingleSelectField {
40 | id
41 | name
42 | options {
43 | id
44 | name
45 | }
46 | }
47 | }
48 | }
49 | }
50 | }
51 | }' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
52 |
53 | echo 'PROJECT_ID='$(jq '.data.organization.projectV2.id' project_data.json) >> $GITHUB_ENV
54 | echo 'LANGUAGE_FIELD_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Language") | .id' project_data.json) >> $GITHUB_ENV
55 | echo 'LANGUAGE_OPTION_ID='$(jq '.data.organization.projectV2.fields.nodes[] | select(.name== "Language") | .options[] | select(.name=="TypeScript") |.id' project_data.json) >> $GITHUB_ENV
56 |
57 | - name: Add Issue or PR to project
58 | env:
59 | GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
60 | ISSUE_ID: ${{ github.event_name == 'issues' && github.event.issue.node_id || github.event.pull_request.node_id }}
61 | run: |
62 | item_id="$( gh api graphql -f query='
63 | mutation($project:ID!, $issue:ID!) {
64 | addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) {
65 | item {
66 | id
67 | }
68 | }
69 | }' -f project=$PROJECT_ID -f issue=$ISSUE_ID --jq '.data.addProjectV2ItemById.item.id')"
70 |
71 | echo 'ITEM_ID='$item_id >> $GITHUB_ENV
72 |
73 | - name: Set Language
74 | env:
75 | GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
76 | run: |
77 | gh api graphql -f query='
78 | mutation (
79 | $project: ID!
80 | $item: ID!
81 | $language_field: ID!
82 | $language_value: String!
83 | ) {
84 | set_status: updateProjectV2ItemFieldValue(input: {
85 | projectId: $project
86 | itemId: $item
87 | fieldId: $language_field
88 | value: {singleSelectOptionId: $language_value}
89 | }) {
90 | projectV2Item {
91 | id
92 | }
93 | }
94 | }' -f project=$PROJECT_ID -f item=$ITEM_ID -f language_field=$LANGUAGE_FIELD_ID -f language_value=${{ env.LANGUAGE_OPTION_ID }} --silent
95 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | npm-debug.log*
3 | node_modules
4 | npm-debug.log
5 |
6 |
7 | # Bundled npm package
8 | *.tgz
9 |
10 | # Only keep microsoft-graph-tests.ts in the repo
11 | microsoft-graph-tests.js
12 |
13 | spec/secrets.*
14 | spec/*.js.map
15 | spec/*.js
16 | spec/*.d.ts
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | spec/
2 | scripts/
3 | .vscode/
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible Node.js debug attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "type": "node",
9 | "request": "launch",
10 | "name": "Launch Program",
11 | "program": "${file}",
12 | "preLaunchTask": "tsc",
13 | "outFiles": []
14 | },
15 | {
16 | "type": "node",
17 | "request": "attach",
18 | "name": "Attach to Process",
19 | "address": "localhost",
20 | "port": 5858,
21 | "outFiles": []
22 | }
23 | ]
24 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "**/.git": true,
5 | "**/.svn": true,
6 | "**/.hg": true,
7 | "**/.DS_Store": true,
8 | "**/spec/*.d.ts": true,
9 | "**/spec/*.js*": true
10 | }
11 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "2.0.0",
5 | "command": "tsc",
6 | "args": [
7 | "-p",
8 | "."
9 | ],
10 | "problemMatcher": "$tsc",
11 | "tasks": [
12 | {
13 | "label": "tsc",
14 | "type": "shell",
15 | "command": "tsc",
16 | "args": [
17 | "-p",
18 | "."
19 | ],
20 | "problemMatcher": "$tsc",
21 | "group": {
22 | "_id": "build",
23 | "isDefault": false
24 | }
25 | }
26 | ]
27 | }
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 | - Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support)
11 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | Contribute to this documentation
2 |
3 | Thank you for your interest in our documentation!
4 |
5 | * [Ways to contribute](#ways-to-contribute)
6 | * [Contribute using GitHub](#contribute-using-github)
7 | * [Contribute using Git](#contribute-using-git)
8 | * [How to use Markdown to format your topic](#how-to-use-markdown-to-format-your-topic)
9 | * [FAQ](#faq)
10 | * [More resources](#more-resources)
11 |
12 | ## Ways to contribute
13 |
14 | Here are some ways you can contribute to this documentation:
15 |
16 | * To make small changes to an article, [Contribute using GitHub](#contribute-using-github).
17 | * To make large changes, or changes that involve code, [Contribute using Git](#contribute-using-git).
18 | * Report documentation bugs via GitHub Issues
19 | * Request new documentation at the [Office Developer Platform UserVoice](http://officespdev.uservoice.com) site.
20 |
21 | ## Contribute using GitHub
22 |
23 | Use GitHub to contribute to this documentation without having to clone the repo to your desktop. This is the easiest way to create a pull request in this repository. Use this method to make a minor change that doesn't involve code changes.
24 |
25 | **Note** Using this method allows you to contribute to one article at a time.
26 |
27 | ### To Contribute using GitHub
28 |
29 | 1. Find the article you want to contribute to on GitHub.
30 |
31 | If the article is in MSDN, choose the **suggest and submit changes** link in the **Contribute to this content** section and you'll be taken to the same article on GitHub.
32 | 2. Once you are on the article in GitHub, sign in to GitHub (get a free account [Join GitHub](https://github.com/join).
33 | 3. Choose the **pencil icon** (edit the file in your fork of this project) and make your changes in the **<>Edit file** window.
34 | 4. Scroll to the bottom and enter a description.
35 | 5. Choose **Propose file change**>**Create pull request**.
36 |
37 | You now have successfully submitted a pull request. Pull requests are typically reviewed within 10 business days.
38 |
39 |
40 | ## Contribute using Git
41 |
42 | Use Git to contribute substantive changes, such as:
43 |
44 | * Contributing code.
45 | * Contributing changes that affect meaning.
46 | * Contributing large changes to text.
47 | * Adding new topics.
48 |
49 | ### To Contribute using Git
50 |
51 | 1. If you don't have a GitHub account, set one up at [GitHub](https://github.com/join).
52 | 2. After you have an account, install Git on your computer. Follow the steps in [Setting up Git Tutorial](https://help.github.com/articles/set-up-git/).
53 | 3. To submit a pull request using Git, follow the steps in [Use GitHub, Git, and this repository](#use-github-git-and-this-repository).
54 | 4. You will be asked to sign the Contributor's License Agreement if you are:
55 |
56 | * A member of the Microsoft Open Technologies group.
57 | * A contributors who doesn't work for Microsoft.
58 |
59 | As a community member, you must sign the Contribution License Agreement (CLA) before you can contribute large submissions to a project. You only need to complete and submit the documentation once. Carefully review the document. You may be required to have your employer sign the document.
60 |
61 | Signing the CLA does not grant you rights to commit to the main repository, but it does mean that the Office Developer and Office Developer Content Publishing teams will be able to review and approve your contributions. You will be credited for your submissions.
62 |
63 | Pull requests are typically reviewed within 10 business days.
64 |
65 | ## Use GitHub, Git, and this repository
66 |
67 | **Note:** Most of the information in this section can be found in [GitHub Help] articles. If you're familiar with Git and GitHub, skip to the **Contribute and edit content** section for the specifics of the code/content flow of this repository.
68 |
69 | ### To set up your fork of the repository
70 |
71 | 1. Set up a GitHub account so you can contribute to this project. If you haven't done this, go to [GitHub](https://github.com/join) and do it now.
72 | 2. Install Git on your computer. Follow the steps in the [Setting up Git Tutorial] [Set Up Git].
73 | 3. Create your own fork of this repository. To do this, at the top of the page, choose the **Fork** button.
74 | 4. Copy your fork to your computer. To do this, open Git Bash. At the command prompt enter:
75 |
76 | git clone https://github.com//.git
77 |
78 | Next, create a reference to the root repository by entering these commands:
79 |
80 | cd
81 | git remote add upstream https://github.com/microsoftgraph/.git
82 | git fetch upstream
83 |
84 | Congratulations! You've now set up your repository. You won't need to repeat these steps again.
85 |
86 | ### Contribute and edit content
87 |
88 | To make the contribution process as seamless as possible, follow these steps.
89 |
90 | #### To contribute and edit content
91 |
92 | 1. Create a new branch.
93 | 2. Add new content or edit existing content.
94 | 3. Submit a pull request to the main repository.
95 | 4. Delete the branch.
96 |
97 | **Important** Limit each branch to a single concept/article to streamline the work flow and reduce the chance of merge conflicts. Content appropriate for a new branch includes:
98 |
99 | * A new article.
100 | * Spelling and grammar edits.
101 | * Applying a single formatting change across a large set of articles (for example, applying a new copyright footer).
102 |
103 | #### To create a new branch
104 |
105 | 1. Open Git Bash.
106 | 2. At the Git Bash command prompt, type `git pull upstream master:`. This creates a new branch locally that is copied from the latest MicrosoftGraph master branch.
107 | 3. At the Git Bash command prompt, type `git push origin `. This alerts GitHub to the new branch. You should now see the new branch in your fork of the repository on GitHub.
108 | 4. At the Git Bash command prompt, type `git checkout ` to switch to your new branch.
109 |
110 | #### Add new content or edit existing content
111 |
112 | You navigate to the repository on your computer by using File Explorer. The repository files are in `C:\Users\\`.
113 |
114 | To edit files, open them in an editor of your choice and modify them. To create a new file, use the editor of your choice and save the new file in the appropriate location in your local copy of the repository. While working, save your work frequently.
115 |
116 | The files in `C:\Users\\` are a working copy of the new branch that you created in your local repository. Changing anything in this folder doesn't affect the local repository until you commit a change. To commit a change to the local repository, type the following commands in GitBash:
117 |
118 | git add .
119 | git commit -v -a -m ""
120 |
121 | The `add` command adds your changes to a staging area in preparation for committing them to the repository. The period after the `add` command specifies that you want to stage all of the files that you added or modified, checking subfolders recursively. (If you don't want to commit all of the changes, you can add specific files. You can also undo a commit. For help, type `git add -help` or `git status`.)
122 |
123 | The `commit` command applies the staged changes to the repository. The switch `-m` means you are providing the commit comment in the command line. The -v and -a switches can be omitted. The -v switch is for verbose output from the command, and -a does what you already did with the add command.
124 |
125 | You can commit multiple times while you are doing your work, or you can commit once when you're done.
126 |
127 | #### Submit a pull request to the main repository
128 |
129 | When you're finished with your work and are ready to have it merged into the main repository, follow these steps.
130 |
131 | #### To submit a pull request to the main repository
132 |
133 | 1. In the Git Bash command prompt, type `git push origin `. In your local repository, `origin` refers to your GitHub repository that you cloned the local repository from. This command pushes the current state of your new branch, including all commits made in the previous steps, to your GitHub fork.
134 | 2. On the GitHub site, navigate in your fork to the new branch.
135 | 3. Choose the **Pull Request** button at the top of the page.
136 | 4. Verify the Base branch is `microsoftgraph/@master` and the Head branch is `/@`.
137 | 5. Choose the **Update Commit Range** button.
138 | 6. Add a title to your pull request, and describe all the changes you're making.
139 | 7. Submit the pull request.
140 |
141 | One of the site administrators will process your pull request. Your pull request will surface on the microsoftgraph/ site under Issues. When the pull request is accepted, the issue will be resolved.
142 |
143 | #### Create a new branch after merge
144 |
145 | After a branch is successfully merged (that is, your pull request is accepted), don't continue working in that local branch. This can lead to merge conflicts if you submit another pull request. To do another update, create a new local branch from the successfully merged upstream branch, and then delete your initial local branch.
146 |
147 | For example, if your local branch X was successfully merged into the OfficeDev/microsoft-graph-docs master branch and you want to make additional updates to the content that was merged. Create a new local branch, X2, from the OfficeDev/microsoft-graph-docs master branch. To do this, open GitBash and execute the following commands:
148 |
149 | cd microsoft-graph-docs
150 | git pull upstream master:X2
151 | git push origin X2
152 |
153 | You now have local copies (in a new local branch) of the work that you submitted in branch X. The X2 branch also contains all the work other writers have merged, so if your work depends on others' work (for example, shared images), it is available in the new branch. You can verify that your previous work (and others' work) is in the branch by checking out the new branch...
154 |
155 | git checkout X2
156 |
157 | ...and verifying the content. (The `checkout` command updates the files in `C:\Users\\microsoft-graph-docs` to the current state of the X2 branch.) Once you check out the new branch, you can make updates to the content and commit them as usual. However, to avoid working in the merged branch (X) by mistake, it's best to delete it (see the following **Delete a branch** section).
158 |
159 | #### Delete a branch
160 |
161 | Once your changes are successfully merged into the main repository, delete the branch you used because you no longer need it. Any additional work should be done in a new branch.
162 |
163 | #### To delete a branch
164 |
165 | 1. In the Git Bash command prompt, type `git checkout master`. This ensures that you aren't in the branch to be deleted (which isn't allowed).
166 | 2. Next, at the command prompt, type `git branch -d `. This deletes the branch on your computer only if it has been successfully merged to the upstream repository. (You can override this behavior with the `–D` flag, but first be sure you want to do this.)
167 | 3. Finally, type `git push origin :` at the command prompt (a space before the colon and no space after it). This will delete the branch on your github fork.
168 |
169 | Congratulations, you have successfully contributed to the project!
170 |
171 | ## How to use Markdown to format your topic
172 |
173 | ### Article template
174 |
175 | The [markdown template](/articles/0-markdown-template-for-new-articles.md) contains the basic Markdown for a topic that includes a table of contents, sections with subheadings, links to other Office developer topics, links to other sites, bold text, italic text, numbered and bulleted lists, code snippets, and images.
176 |
177 |
178 | ### Standard Markdown
179 |
180 | All of the articles in this repository use Markdown. A complete introduction (and listing of all the syntax) can be found at [Markdown Home] [].
181 |
182 | ## FAQ
183 |
184 | ### How do I get a GitHub account?
185 |
186 | Fill out the form at [Join GitHub](https://github.com/join) to open a free GitHub account.
187 |
188 | ### Where do I get a Contributor's License Agreement?
189 |
190 | You will automatically be sent a notice that you need to sign the Contributor's License Agreement (CLA) if your pull request requires one.
191 |
192 | As a community member, **you must sign the Contribution License Agreement (CLA) before you can contribute large submissions to this project**. You only need complete and submit the documentation once. Carefully review the document. You may be required to have your employer sign the document.
193 |
194 | ### What happens with my contributions?
195 |
196 | When you submit your changes, via a pull request, our team will be notified and will review your pull request. You will receive notifications about your pull request from GitHub; you may also be notified by someone from our team if we need more information. We reserve the right to edit your submission for legal, style, clarity, or other issues.
197 |
198 | ### Can I become an approver for this repository's GitHub pull requests?
199 |
200 | Currently, we are not allowing external contributors to approve pull requests in this repository.
201 |
202 | ### How soon will I get a response about my change request or issue?
203 |
204 | We typically review pull requests and respond to issues within 10 business days.
205 |
206 | ## More resources
207 |
208 | * To learn more about Markdown, go to the Git creator's site [Daring Fireball].
209 | * To learn more about using Git and GitHub, first check out the [GitHub Help section] [GitHub Help].
210 |
211 | [GitHub Home]: http://github.com
212 | [GitHub Help]: http://help.github.com/
213 | [Set Up Git]: http://help.github.com/win-set-up-git/
214 | [Markdown Home]: http://daringfireball.net/projects/markdown/
215 | [Daring Fireball]: http://daringfireball.net/
216 |
217 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Microsoft Graph TypeScript Typings
2 |
3 | Copyright 2015 Microsoft Corporation
4 |
5 | All right reserved.
6 |
7 | MIT License
8 |
9 | Permission is hereby granted, free of charge, to any person obtaining a copy
10 | of this software and associated documentation files (the "Software"), to deal
11 | in the Software without restriction, including without limitation the rights
12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | copies of the Software, and to permit persons to whom the Software is
14 | furnished to do so, subject to the following conditions:
15 |
16 | The above copyright notice and this permission notice shall be included in
17 | all copies or substantial portions of the Software.
18 |
19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | THE SOFTWARE.
26 |
--------------------------------------------------------------------------------
/README-Localized/README-es-es.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Tipos de TypeScript de Microsoft Graph
4 | Las definiciones de TypeScript de Microsoft Graph permiten a los editores ofrecer IntelliSense en objetos de Microsoft Graph, como usuarios, mensajes y grupos.
5 |
6 | ## Instalación
7 |
8 | Se recomienda incluir el archivo .d.ts al descargar este paquete a través de [npm](https://www.npmjs.com/).
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## Ejemplos
20 | En los ejemplos siguientes se presupone que el usuario tiene un token de acceso válido. Hemos usado [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) para realizar solicitudes, pero también puede usar [nuestra biblioteca cliente de JavaScript](https://github.com/microsoftgraph/msgraph-sdk-javascript) u otras bibliotecas.
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### Mostrar mis mensajes recientes
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### Enviar un correo electrónico como el usuario conectado
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Soporte de Microsoft Graph beta
98 | Si desea probar los puntos de conexión de la versión beta de Microsoft Graph, puede usar esos tipos simultáneamente con los tipos v1.0.
99 |
100 | Actualice el archivo package.json con lo siguiente:
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | Import the beta types from `@microsoft/microsoft-graph-types-beta`
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## Editores admitidos
123 | Cualquier proyecto TypeScript puede usar estos tipos al usar al menos TypeScript 2.0 Hemos probado a incluir los tipos como dependencia en los siguientes editores.
124 | * Visual Studio Code
125 | * WebStorm
126 | * Atom with the [atom-typescript](https://atom.io/packages/atom-typescript) plugin
127 |
128 | ## Preguntas y comentarios
129 |
130 | Nos encantaría recibir sus comentarios sobre el proyecto de definiciones de TypeScript. Puede enviarnos sus preguntas y sugerencias a través de la sección [Problemas](https://github.com/microsoftgraph/msgraph-typescript-typings/issues) de este repositorio.
131 |
132 |
133 | ## Colaboradores
134 | Vea la [directrices de contribución](CONTRIBUTING.md).
135 |
136 | ## Recursos adicionales
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Centro para desarrolladores de Office](http://dev.office.com/)
140 | * [Biblioteca cliente de JavaScript de Microsoft Graph](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## Informes de seguridad
143 |
144 | Si encuentra un problema de seguridad con nuestras bibliotecas o servicios, informe a [secure@microsoft.com](mailto:secure@microsoft.com) con todos los detalles posibles. Es posible que el envío pueda optar a una recompensa a través del programa [Microsoft Bounty](http://aka.ms/bugbounty). No publique problemas de seguridad en problemas de GitHub ni ningún otro sitio público. Nos pondremos en contacto con usted rápidamente tras recibir la información. Le animamos a que obtenga notificaciones de los incidentes de seguridad que se produzcan; para ello, visite [esta página](https://technet.microsoft.com/en-us/security/dd252948) y suscríbase a las alertas de avisos de seguridad.
145 |
146 | ## Licencia
147 |
148 | Copyright (c) Microsoft Corporation. Todos los derechos reservados. Publicado bajo la licencia MIT (la "Licencia").
149 |
150 | ## Valoramos y nos adherimos al Código de conducta de código abierto de Microsoft
151 |
152 | Este proyecto ha adoptado el [Código de conducta de código abierto de Microsoft](https://opensource.microsoft.com/codeofconduct/). Para obtener más información, vea [Preguntas frecuentes sobre el código de conducta](https://opensource.microsoft.com/codeofconduct/faq/) o póngase en contacto con [opencode@microsoft.com](mailto:opencode@microsoft.com) si tiene otras preguntas o comentarios.
153 |
--------------------------------------------------------------------------------
/README-Localized/README-fr-fr.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Types TypeScript Microsoft Graph
4 | Les définitions TypeScript Microsoft Graph permettent aux éditeurs de fournir des fonctionnalités IntelliSense sur les objets Microsoft Graph, notamment les utilisateurs, les messages et les groupes.
5 |
6 | ## Installation
7 |
8 | Nous vous recommandons d’inclure le fichier .d.ts en téléchargeant ce package via [npm](https://www.npmjs.com/).
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## Exemples
20 | Les exemples suivants partent du principe que vous possédez un jeton d’accès valide. Nous avons utilisé [isomorphic-FETCH](https://www.npmjs.com/package/isomorphic-fetch) pour effectuer des requêtes, mais vous pouvez utiliser [notre bibliothèque cliente JavaScript](https://github.com/microsoftgraph/msgraph-sdk-javascript) ou d’autres bibliothèques également.
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### Répertorier mes messages récents
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### Envoyer un e-mail en tant qu’utilisateur connecté
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Prise en charge de Microsoft Graph bêta
98 | Si vous voulez tester les points de terminaison Microsoft Graph bêta, vous pouvez utiliser ces types simultanément avec les types v 1.0.
99 |
100 | Mettez à jour votre fichier package.json avec ce qui suit :
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | Importez des types bêta de `@microsoft/microsoft-graph-types-beta`
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## Éditeurs pris en charge
123 | Tout projet TypeScript peut utiliser ces types avec au moins TypeScript 2.0. Nous avons testé l’inclusion des types en tant que dépendances dans les éditeurs suivants.
124 | * Visual Studio Code
125 | * WebStorm
126 | * Atom avec le plug-in [atom-typescript](https://atom.io/packages/atom-typescript)
127 |
128 | ## Questions et commentaires
129 |
130 | Nous serions ravis de connaître votre opinion sur le projet de définitions TypeScript. Vous pouvez nous faire part de vos questions et suggestions dans la rubrique [Problèmes](https://github.com/microsoftgraph/msgraph-typescript-typings/issues) de ce référentiel.
131 |
132 |
133 | ## Contribution
134 | Reportez-vous aux [instructions sur la contribution](CONTRIBUTING.md).
135 |
136 | ## Ressources supplémentaires
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Centre des développeurs Office](http://dev.office.com/)
140 | * [Bibliothèque cliente JavaScript Microsoft Graph](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## Génération de rapports de sécurité
143 |
144 | Si vous rencontrez un problème de sécurité avec nos bibliothèques ou services, signalez-le à l’adresse [secure@microsoft.com](mailto:secure@microsoft.com) avec autant de détails que possible. Votre envoi vous donnera sans doute droit à une prime via le programme [Bounty de Microsoft](http://aka.ms/bugbounty). Merci de ne pas publier de problèmes de sécurité sur le site des problèmes GitHub ou sur un autre site public. Nous vous contacterons rapidement dès réception des informations. Nous vous encourageons à activer les notifications d’incidents de sécurité en vous rendant sur [cette page](https://technet.microsoft.com/en-us/security/dd252948) et en vous abonnant aux alertes d’avis de sécurité.
145 |
146 | ## Licence
147 |
148 | Copyright (c) Microsoft Corporation. Tous droits réservés. Soumis à la licence MIT (la "Licence") ;
149 |
150 | ## Nous respectons le code de conduite Open Source de Microsoft.
151 |
152 | Ce projet a adopté le [code de conduite Open Source de Microsoft](https://opensource.microsoft.com/codeofconduct/). Pour en savoir plus, reportez-vous à la [FAQ relative au code de conduite](https://opensource.microsoft.com/codeofconduct/faq/) ou contactez [opencode@microsoft.com](mailto:opencode@microsoft.com) pour toute question ou tout commentaire.
153 |
--------------------------------------------------------------------------------
/README-Localized/README-ja-jp.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Microsoft Graph TypeScript 型
4 | Microsoft Graph TypeScript 定義により、編集者は、ユーザー、メッセージ、グループを含む Microsoft Graph オブジェクトに Intellisense を提供できます。
5 |
6 | ## インストール
7 |
8 | このパッケージを [npm](https://www.npmjs.com/)からダウンロードして、.d.ts ファイルを含めることをお勧めします。
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## 例
20 | 次の例では、有効なアクセス トークンがあることを前提としています。要求を実行するために [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) を使用していましたが、[当社の JavaScript クライアント ライブラリ](https://github.com/microsoftgraph/msgraph-sdk-javascript)または他のライブラリを使用することもできます。
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### 最近使用したメッセージを一覧表示する
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### ログインしているユーザーとしてメールを送信する
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Microsoft Graph ベータ版をサポート
98 | Microsoft Graph ベータ版のエンドポイントをテストする場合は、これらの型を v1.0 の型と同時に使用できます。
99 |
100 | package.json ファイルを次のように更新します。
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | `@microsoft/microsoft-graph-types-beta` からベータ タイプをインポートする
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## サポートされるエディター
123 | 少なくとも TypeScript 2.0 を使用している場合、TypeScript プロジェクトはこれらの型を使用できます。次のエディターで依存関係として型を含めることをテストしました。
124 | * Visual Studio Code
125 | * WebStorm
126 | * [atom-typescript](https://atom.io/packages/atom-typescript) プラグインを使用する Atom
127 |
128 | ## 質問とコメント
129 |
130 | TypeScript 定義プロジェクトに関するフィードバックをお寄せください。質問や提案につきましては、このリポジトリの「[問題](https://github.com/microsoftgraph/msgraph-typescript-typings/issues)」セクションで送信できます。
131 |
132 |
133 | ## 投稿
134 | [投稿ガイドライン](CONTRIBUTING.md)を参照してください。
135 |
136 | ## その他のリソース
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Office デベロッパー センター](http://dev.office.com/)
140 | * [Microsoft Graph JavaScript クライアント ライブラリ](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## セキュリティ レポート
143 |
144 | ライブラリまたはサービスでセキュリティに関する問題を発見した場合は、できるだけ詳細に [secure@microsoft.com](mailto:secure@microsoft.com) に報告してください。提出物は、[Microsoft Bounty](http://aka.ms/bugbounty) プログラムを通じて報酬を受ける対象となる場合があります。セキュリティの問題を GitHub の問題や他のパブリック サイトに投稿しないでください。情報を受け取り次第、ご連絡させていただきます。セキュリティの問題が発生したときに通知を受け取ることをお勧めします。そのためには、[このページ](https://technet.microsoft.com/en-us/security/dd252948)にアクセスし、セキュリティ アドバイザリ通知を受信登録してください。
145 |
146 | ## ライセンス
147 |
148 | Copyright (c) Microsoft Corporation。All rights reserved.MIT ライセンス ("ライセンス") に基づいてライセンスされています。
149 |
150 | ## Microsoft Open Source Code of Conduct (Microsoft オープン ソース倫理規定) を尊重し、遵守します
151 |
152 | このプロジェクトでは、[Microsoft Open Source Code of Conduct (Microsoft オープン ソース倫理規定)](https://opensource.microsoft.com/codeofconduct/) が採用されています。詳細については、「[Code of Conduct の FAQ (倫理規定の FAQ)](https://opensource.microsoft.com/codeofconduct/faq/)」を参照してください。また、その他の質問やコメントがあれば、[opencode@microsoft.com](mailto:opencode@microsoft.com) までお問い合わせください。
153 |
--------------------------------------------------------------------------------
/README-Localized/README-pt-br.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Tipos de TypeScript do Microsoft Graph
4 | As definições de TypeScript do Microsoft Graph permitem que os editores forneçam o IntelliSense em objetos do Microsoft Graph, incluindo usuários, mensagens e grupos.
5 |
6 | ## Instalação
7 |
8 | Recomendamos incluir o arquivo .d.ts baixando esse pacote pelo [npm](https://www.npmjs.com/).
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## Exemplos
20 | Os exemplos a seguir supõem que você tenha um token de acesso válido. Usamos [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) para executar solicitações, mas você também pode usar [nossa biblioteca de cliente de JavaScript](https://github.com/microsoftgraph/msgraph-sdk-javascript) ou outras bibliotecas.
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### Lista minhas mensagens recentes
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### Envia um email como o usuário conectado
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Suporte ao Microsoft Graph beta
98 | Se você quer testar os pontos de extremidade do Microsoft Graph beta, é possível usá-los simultaneamente com os tipos v 1.0.
99 |
100 | Atualize o arquivo package.json com o seguinte:
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | Importe os tipos beta de `@microsoft/microsoft-graph-types-beta`
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## Editores compatíveis
123 | Todos os projetos TypeScript podem consumir esses tipos ao usar pelo menos o TypeScript 2.0. Testamos e incluímos os tipos como uma dependência nos editores a seguir.
124 | * Visual Studio Code
125 | * WebStorm
126 | * Atom with the [atom-typescript](https://atom.io/packages/atom-typescript) plugin
127 |
128 | ## Perguntas e comentários
129 |
130 | Gostaríamos de saber sua opinião sobre o projeto de definições de TypeScript. Você pode enviar perguntas e sugestões na seção [Problemas](https://github.com/microsoftgraph/msgraph-typescript-typings/issues) deste repositório.
131 |
132 |
133 | ## Colaboração
134 | Confira as [diretrizes de colaboração](CONTRIBUTING.md).
135 |
136 | ## Recursos adicionais
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Centro de Desenvolvimento do Office](http://dev.office.com/)
140 | * [Biblioteca de cliente de JavaScript do Microsoft Graph](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## Relatórios de segurança
143 |
144 | Se você encontrar um problema de segurança com nossas bibliotecas ou serviços, informe-o em [secure@microsoft.com](mailto:secure@microsoft.com) com o máximo de detalhes possível. O seu envio pode estar qualificado para uma recompensa por meio do programa [Microsoft Bounty](http://aka.ms/bugbounty). Não poste problemas de segurança nos Problemas do GitHub ou qualquer outro site público. Entraremos em contato com você em breve após receber as informações. Recomendamos que você obtenha notificações sobre a ocorrência de incidentes de segurança visitando [esta página](https://technet.microsoft.com/en-us/security/dd252948) e assinando os alertas do Security Advisory.
145 |
146 | ## Licença
147 |
148 | Copyright (c) Microsoft Corporation. Todos os direitos reservados. Licenciada sob a Licença do MIT (a "Licença");
149 |
150 | ## Valorizamos e cumprimos o Código de Conduta de Código Aberto da Microsoft
151 |
152 | Este projeto adotou o [Código de Conduta de Código Aberto da Microsoft](https://opensource.microsoft.com/codeofconduct/). Para saber mais, confira as [Perguntas frequentes sobre o Código de Conduta](https://opensource.microsoft.com/codeofconduct/faq/) ou entre em contato pelo [opencode@microsoft.com](mailto:opencode@microsoft.com) se tiver outras dúvidas ou comentários.
153 |
--------------------------------------------------------------------------------
/README-Localized/README-ru-ru.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Типы TypeScript для Microsoft Graph
4 | С помощью определений TypeScript для Microsoft Graph, редакторы могут использовать функции intellisense для объектов Microsoft Graph, включая пользователей, сообщения и группы.
5 |
6 | ## Установка
7 |
8 | Рекомендуем включить файл .d.ts, загрузив его в [npm](https://www.npmjs.com/).
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## Примеры
20 | В следующих примерах предполагается, что у вас есть действительный маркер доступа. Для выполнения запросов мы использовали [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch), но вы можете использоватькак нашу [клиентскую библиотеку JavaScript](https://github.com/microsoftgraph/msgraph-sdk-javascript), так и другую.
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### Список недавних сообщений
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### Отправка сообщения пользователя, выполнившего вход
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Поддержка бета-версии Microsoft Graph
98 | Если вы хотите протестировать конечные точки бета-версии Microsoft Graph, используйте эти типы одновременно с типами версии 1.0.
99 |
100 | Обновите файл package.json, выполнив следующее:
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | Импортируйте бета типы из `@microsoft/microsoft-graph-types-beta`
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## Поддерживаемые редакторы
123 | Любой проект TypeScript может использовать эти типы с помощью TypeScript 2.0 или более поздней версии. Мы протестированы типы как зависимость в следующих редакторах.
124 | * Visual Studio Code
125 | * WebStorm
126 | * Atom с плагином [atom-typescript](https://atom.io/packages/atom-typescript)
127 |
128 | ## Вопросы и комментарии
129 |
130 | Мы будем рады получить от вас отзывы о проекте "Определения TypeScript". Вы можете отправлять нам вопросы и предложения в разделе [Проблемы](https://github.com/microsoftgraph/msgraph-typescript-typings/issues) этого репозитория.
131 |
132 |
133 | ## Помощь
134 | См. [добавление рекомендаций](CONTRIBUTING.md).
135 |
136 | ## Дополнительные ресурсы
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Центр разработчиков Office](http://dev.office.com/)
140 | * [Клиентская библиотека JavaScript для Microsoft Graph](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## Отчеты о безопасности
143 |
144 | Если вы столкнулись с проблемами безопасности наших библиотек или служб, сообщите о проблеме по адресу [secure@microsoft.com](mailto:secure@microsoft.com), добавив как можно больше деталей. Возможно, вы получите вознаграждение, в рамках программы [Microsoft Bounty](http://aka.ms/bugbounty). Не публикуйте ошибки безопасности в ошибках GitHub или на любом общедоступном сайте. Вскоре после получения информации, мы свяжемся с вами. Рекомендуем вам настроить уведомления о нарушениях безопасности. Это можно сделать, подписавшись на уведомления безопасности консультационных служб на [этой странице](https://technet.microsoft.com/en-us/security/dd252948).
145 |
146 | ## Лицензия
147 |
148 | © Корпорация Майкрософт. Все права защищены. Предоставляется по лицензии MIT ("Лицензия");
149 |
150 | ## В соответствии с "Правилами поведения разработчиков открытого кода Майкрософт".
151 |
152 | Этот проект соответствует [Правилам поведения разработчиков открытого кода Майкрософт](https://opensource.microsoft.com/codeofconduct/). Дополнительные сведения см. в разделе [часто задаваемых вопросов о правилах поведения](https://opensource.microsoft.com/codeofconduct/faq/). Если у вас возникли вопросы или замечания, напишите нам по адресу [opencode@microsoft.com](mailto:opencode@microsoft.com).
153 |
--------------------------------------------------------------------------------
/README-Localized/README-zh-cn.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Microsoft Graph TypeScript 类型
4 | Microsoft Graph TypeScript 定义使编辑器可以提供有关 Microsoft Graph 对象(包括用户、邮件和组)的智能感知。
5 |
6 | ## 安装
7 |
8 | 建议通过 [npm](https://www.npmjs.com/) 下载此包以便包含 .d.ts 文件。
9 |
10 | ```bash
11 |
12 | # Install types and save in package.json as a development dependency
13 | npm install @microsoft/microsoft-graph-types --save-dev
14 |
15 | ```
16 |
17 |
18 | 
19 | ## 示例
20 | 以下示例假定你拥有有效的访问令牌。我们使用了 [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) 执行请求,但你也可以使用[我们的 JavaScript 客户端库](https://github.com/microsoftgraph/msgraph-sdk-javascript)或其他库。
21 | ```typescript
22 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
23 |
24 | import * from 'isomorphic-fetch';
25 | const accessToken:string = "";
26 | ```
27 | ### 列出最近的邮件
28 | ```typescript
29 | let url = "https://graph.microsoft.com/v1.0/me/messages";
30 | let request = new Request(url, {
31 | method: "GET",
32 | headers: new Headers({
33 | "Authorization": "Bearer " + accessToken
34 | })
35 | });
36 |
37 | fetch(request)
38 | .then((response) => {
39 | response.json().then((res) => {
40 | let messages:[MicrosoftGraph.Message] = res.value;
41 | for (let msg of messages) { //iterate through the recent messages
42 | console.log(msg.subject);
43 | console.log(msg.toRecipients[0].emailAddress.address);
44 | }
45 | });
46 |
47 | })
48 | .catch((error) => {
49 | console.error(error);
50 | });
51 | ```
52 | ### 使用已登录用户的身份发送电子邮件
53 | ```typescript
54 | // Create the message object
55 |
56 | // Note that all the properties must follow the interface definitions.
57 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
58 |
59 | let mail:MicrosoftGraph.Message = {
60 | subject: "Microsoft Graph TypeScript Sample",
61 | toRecipients: [{
62 | emailAddress: {
63 | address: "microsoftgraph@example.com"
64 | }
65 | }],
66 | body: {
67 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
68 | contentType: "html"
69 | }
70 | }
71 | // send the email by sending a POST request to the Microsoft Graph
72 | let url = "https://graph.microsoft.com/v1.0/users/me/sendMail";
73 | let request = new Request(
74 | url, {
75 | method: "POST",
76 | body: JSON.stringify({
77 | message: mail
78 | }),
79 | headers: new Headers({
80 | "Authorization": "Bearer " + accessToken,
81 | 'Content-Type': 'application/json'
82 | })
83 | }
84 | );
85 |
86 | fetch(request)
87 | .then((response) => {
88 | if(response.ok === true) {
89 | console.log("Mail sent successfully..!!");
90 | }
91 | })
92 | .catch((err) => {
93 | console.error(err);
94 | });
95 |
96 | ```
97 | ## Microsoft Graph 测试版支持
98 | 如果要测试 Microsoft Graph 测试版终结点,可将这些类型与 v1.0 类型同时使用。
99 |
100 | 使用以下内容更新你的 package.json 文件:
101 |
102 | ```javascript
103 | "devDependencies": {
104 | // import published v1.0 types with a version from NPM
105 | "@microsoft/microsoft-graph-types": "^0.4.0",
106 |
107 | // import beta types from the beta branch on the GitHub repo
108 | "@microsoft/microsoft-graph-types-beta": "microsoftgraph/msgraph-typescript-typings#beta"
109 | }
110 | }
111 | ```
112 |
113 | 从 `@microsoft/microsoft-graph-types-beta` 导入测试版类型
114 | ```typescript
115 | // import individual entities
116 | import {User as BetaUser} from "@microsoft/microsoft-graph-types-beta"
117 |
118 | // or import everything under MicrosoftGraphBeta
119 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
120 | ```
121 |
122 | ## 支持的编辑器
123 | 当至少使用 TypeScript 2.0 时,任何 TypeScript 项目都可以使用这些类型。我们已测试在以下编辑器中包含这些类型作为依赖项。
124 | * Visual Studio Code
125 | * WebStorm
126 | * 带有 [atom-typescript](https://atom.io/packages/atom-typescript) 插件的 Atom
127 |
128 | ## 问题和意见
129 |
130 | 我们非常乐意倾听你对于 TypeScript 定义项目的反馈。你可通过该存储库中的[问题](https://github.com/microsoftgraph/msgraph-typescript-typings/issues)部分向我们发送问题和建议。
131 |
132 |
133 | ## 参与
134 | 请参阅[参与指南](CONTRIBUTING.md)。
135 |
136 | ## 其他资源
137 |
138 | * [Microsoft Graph](https://graph.microsoft.io)
139 | * [Office 开发人员中心](http://dev.office.com/)
140 | * [Microsoft Graph JavaScript 客户端库](https://github.com/microsoftgraph/msgraph-sdk-javascript)
141 |
142 | ## 安全报告
143 |
144 | 如果发现库或服务存在安全问题,请尽可能详细地报告至 [secure@microsoft.com](mailto:secure@microsoft.com)。提交可能有资格通过 [Microsoft 报告奖励](http://aka.ms/bugbounty)计划获得奖励。请勿发布安全问题至 GitHub 问题或其他任何公共网站。我们将在收到信息后立即与你联系。建议发生安全事件时获取相关通知,方法是访问[此页](https://technet.microsoft.com/en-us/security/dd252948)并订阅“安全公告通知”。
145 |
146 | ## 许可证
147 |
148 | 版权所有 (c) Microsoft Corporation。保留所有权利。根据 MIT 许可证(简称“许可证”)获得许可。
149 |
150 | ## 我们重视并遵守“Microsoft 开放源代码行为准则”
151 |
152 | 此项目已采用 [Microsoft 开放源代码行为准则](https://opensource.microsoft.com/codeofconduct/)。有关详细信息,请参阅[行为准则常见问题解答](https://opensource.microsoft.com/codeofconduct/faq/)。如有其他任何问题或意见,也可联系 [opencode@microsoft.com](mailto:opencode@microsoft.com)。
153 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://www.npmjs.com/package/@microsoft/microsoft-graph-types)
2 |
3 | # Microsoft Graph TypeScript Types
4 | The Microsoft Graph TypeScript definitions enable editors to provide intellisense on Microsoft Graph objects including users, messages, and groups.
5 |
6 | > **_NOTE:_** The **Microsoft Graph TypeScript Types Beta** [npm package](https://www.npmjs.com/package/@microsoft/microsoft-graph-types-beta) and [GitHub repo](https://github.com/microsoftgraph/msgraph-beta-typescript-typings) is now available. Imports from the `microsoftgraph/msgraph-typescript-typings#beta` branch will no longer be supported.
7 |
8 | ## Installation
9 |
10 | We recommend including the .d.ts file by downloading this package through [npm](https://www.npmjs.com/).
11 |
12 | ```bash
13 |
14 | # Install types and save in package.json as a development dependency
15 | npm install @microsoft/microsoft-graph-types --save-dev
16 |
17 | ```
18 |
19 | 
20 |
21 | ## Examples
22 | The following examples assume that you have a valid access token. The following example uses [isomorphic-fetch](https://www.npmjs.com/package/isomorphic-fetch) and [Microsoft Graph JavaScript client library](https://github.com/microsoftgraph/msgraph-sdk-javascript) -
23 |
24 | ```typescript
25 | import { User } from "@microsoft/microsoft-graph-types-beta";
26 |
27 | import { Client } from "@microsoft/microsoft-graph-client";
28 |
29 | import 'isomorphic-fetch';
30 |
31 | const client = Client.initWithMiddleware({
32 | defaultVersion: 'beta',
33 | ...
34 | });
35 |
36 | const response = await client.api("/me").get();
37 | const user = response as User;
38 | ```
39 |
40 | ### Example of creating an object
41 | ```typescript
42 | // Create the message object
43 |
44 | // Note that all the properties must follow the interface definitions.
45 | // For example, this will not compile if you try to type "xml" instead of "html" for contentType.
46 |
47 | let mail:MicrosoftGraphBeta.Message = {
48 | subject: "Microsoft Graph TypeScript Sample",
49 | toRecipients: [{
50 | emailAddress: {
51 | address: "microsoftgraph@example.com"
52 | }
53 | }],
54 | body: {
55 | content: "Microsoft Graph TypeScript Sample
Try modifying the sample",
56 | contentType: "html"
57 | }
58 | }
59 | ```
60 |
61 | ## Example of using v1 types and beta types together
62 | ```json
63 | "devDependencies": {
64 | // import published v1.0 types with a version from NPM
65 | "@microsoft/microsoft-graph-types": "^0.4.0",
66 | // import beta types with a version from NPM
67 | "@microsoft/microsoft-graph-types-beta": "^0.1.0-preview"
68 | }
69 | }
70 | ```
71 |
72 | ```typescript
73 | import * as MicrosoftGraph from "@microsoft/microsoft-graph-types"
74 |
75 | import * as MicrosoftGraphBeta from "@microsoft/microsoft-graph-types-beta"
76 |
77 | const v1User: MicrosoftGraph.User = {
78 | givenName: "V1 User"
79 | }
80 |
81 | const betaUser: MicrosoftGraphBeta.User = {
82 | givenName: "Beta User"
83 | }
84 |
85 | ```
86 |
87 | ## Supported editors
88 | Any TypeScript project can consume these types when using at least TypeScript 2.0. We've tested including the types as a dependency in the following editors.
89 | * Visual Studio Code
90 | * WebStorm
91 | * Atom with the [atom-typescript](https://atom.io/packages/atom-typescript) plugin
92 |
93 | ## Questions and comments
94 |
95 | We'd love to get your feedback about the TypeScript definitions project. You can send your questions and suggestions to us in the [Issues](https://github.com/microsoftgraph/msgraph-typescript-typings/issues) section of this repository.
96 |
97 |
98 | ## Contributing
99 | Please see the [contributing guidelines](CONTRIBUTING.md).
100 |
101 | ## Additional resources
102 |
103 | * [Microsoft Graph](https://graph.microsoft.io)
104 | * [Office Dev Center](http://dev.office.com/)
105 | * [Microsoft Graph JavaScript Client Library](https://github.com/microsoftgraph/msgraph-sdk-javascript)
106 |
107 | ## Security Reporting
108 |
109 | If you find a security issue with our libraries or services please report it to [secure@microsoft.com](mailto:secure@microsoft.com) with as much detail as possible. Your submission may be eligible for a bounty through the [Microsoft Bounty](http://aka.ms/bugbounty) program. Please do not post security issues to GitHub Issues or any other public site. We will contact you shortly upon receiving the information. We encourage you to get notifications of when security incidents occur by visiting [this page](https://technet.microsoft.com/en-us/security/dd252948) and subscribing to Security Advisory Alerts.
110 |
111 | ## License
112 |
113 | Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License (the "License");
114 |
115 | ## We Value and Adhere to the Microsoft Open Source Code of Conduct
116 |
117 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
118 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Security
4 |
5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6 |
7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
8 |
9 | ## Reporting Security Issues
10 |
11 | **Please do not report security vulnerabilities through public GitHub issues.**
12 |
13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
14 |
15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
16 |
17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
18 |
19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20 |
21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22 | * Full paths of source file(s) related to the manifestation of the issue
23 | * The location of the affected source code (tag/branch/commit or direct URL)
24 | * Any special configuration required to reproduce the issue
25 | * Step-by-step instructions to reproduce the issue
26 | * Proof-of-concept or exploit code (if possible)
27 | * Impact of the issue, including how an attacker might exploit the issue
28 |
29 | This information will help us triage your report more quickly.
30 |
31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
32 |
33 | ## Preferred Languages
34 |
35 | We prefer all communications to be in English.
36 |
37 | ## Policy
38 |
39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
40 |
41 |
42 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@microsoft/microsoft-graph-types",
3 | "version": "2.43.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "@microsoft/microsoft-graph-types",
9 | "version": "2.43.0",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "@microsoft/microsoft-graph-client": "^3.0.5",
13 | "@types/chai": "^5.0.0",
14 | "@types/node": "^22.0.0",
15 | "chai": "^5.0.0",
16 | "mocha": "^11.0.1",
17 | "typescript": "^5.0.3"
18 | }
19 | },
20 | "node_modules/@babel/runtime": {
21 | "version": "7.21.0",
22 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
23 | "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
24 | "dev": true,
25 | "dependencies": {
26 | "regenerator-runtime": "^0.13.11"
27 | },
28 | "engines": {
29 | "node": ">=6.9.0"
30 | }
31 | },
32 | "node_modules/@isaacs/cliui": {
33 | "version": "8.0.2",
34 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
35 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
36 | "dev": true,
37 | "dependencies": {
38 | "string-width": "^5.1.2",
39 | "string-width-cjs": "npm:string-width@^4.2.0",
40 | "strip-ansi": "^7.0.1",
41 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
42 | "wrap-ansi": "^8.1.0",
43 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
44 | },
45 | "engines": {
46 | "node": ">=12"
47 | }
48 | },
49 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
50 | "version": "6.1.0",
51 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
52 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
53 | "dev": true,
54 | "engines": {
55 | "node": ">=12"
56 | },
57 | "funding": {
58 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
59 | }
60 | },
61 | "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
62 | "version": "6.2.1",
63 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
64 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
65 | "dev": true,
66 | "engines": {
67 | "node": ">=12"
68 | },
69 | "funding": {
70 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
71 | }
72 | },
73 | "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
74 | "version": "9.2.2",
75 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
76 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
77 | "dev": true
78 | },
79 | "node_modules/@isaacs/cliui/node_modules/string-width": {
80 | "version": "5.1.2",
81 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
82 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
83 | "dev": true,
84 | "dependencies": {
85 | "eastasianwidth": "^0.2.0",
86 | "emoji-regex": "^9.2.2",
87 | "strip-ansi": "^7.0.1"
88 | },
89 | "engines": {
90 | "node": ">=12"
91 | },
92 | "funding": {
93 | "url": "https://github.com/sponsors/sindresorhus"
94 | }
95 | },
96 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
97 | "version": "7.1.0",
98 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
99 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
100 | "dev": true,
101 | "dependencies": {
102 | "ansi-regex": "^6.0.1"
103 | },
104 | "engines": {
105 | "node": ">=12"
106 | },
107 | "funding": {
108 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
109 | }
110 | },
111 | "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
112 | "version": "8.1.0",
113 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
114 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
115 | "dev": true,
116 | "dependencies": {
117 | "ansi-styles": "^6.1.0",
118 | "string-width": "^5.0.1",
119 | "strip-ansi": "^7.0.1"
120 | },
121 | "engines": {
122 | "node": ">=12"
123 | },
124 | "funding": {
125 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
126 | }
127 | },
128 | "node_modules/@microsoft/microsoft-graph-client": {
129 | "version": "3.0.7",
130 | "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.7.tgz",
131 | "integrity": "sha512-/AazAV/F+HK4LIywF9C+NYHcJo038zEnWkteilcxC1FM/uK/4NVGDKGrxx7nNq1ybspAroRKT4I1FHfxQzxkUw==",
132 | "dev": true,
133 | "dependencies": {
134 | "@babel/runtime": "^7.12.5",
135 | "tslib": "^2.2.0"
136 | },
137 | "engines": {
138 | "node": ">=12.0.0"
139 | },
140 | "peerDependenciesMeta": {
141 | "@azure/identity": {
142 | "optional": true
143 | },
144 | "@azure/msal-browser": {
145 | "optional": true
146 | },
147 | "buffer": {
148 | "optional": true
149 | },
150 | "stream-browserify": {
151 | "optional": true
152 | }
153 | }
154 | },
155 | "node_modules/@pkgjs/parseargs": {
156 | "version": "0.11.0",
157 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
158 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
159 | "dev": true,
160 | "optional": true,
161 | "engines": {
162 | "node": ">=14"
163 | }
164 | },
165 | "node_modules/@types/chai": {
166 | "version": "5.2.2",
167 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
168 | "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
169 | "dev": true,
170 | "license": "MIT",
171 | "dependencies": {
172 | "@types/deep-eql": "*"
173 | }
174 | },
175 | "node_modules/@types/deep-eql": {
176 | "version": "4.0.2",
177 | "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
178 | "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
179 | "dev": true
180 | },
181 | "node_modules/@types/node": {
182 | "version": "22.15.17",
183 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
184 | "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
185 | "dev": true,
186 | "license": "MIT",
187 | "dependencies": {
188 | "undici-types": "~6.21.0"
189 | }
190 | },
191 | "node_modules/ansi-regex": {
192 | "version": "5.0.1",
193 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
194 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
195 | "dev": true,
196 | "engines": {
197 | "node": ">=8"
198 | }
199 | },
200 | "node_modules/ansi-styles": {
201 | "version": "4.3.0",
202 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
203 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
204 | "dev": true,
205 | "dependencies": {
206 | "color-convert": "^2.0.1"
207 | },
208 | "engines": {
209 | "node": ">=8"
210 | },
211 | "funding": {
212 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
213 | }
214 | },
215 | "node_modules/argparse": {
216 | "version": "2.0.1",
217 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
218 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
219 | "dev": true
220 | },
221 | "node_modules/assertion-error": {
222 | "version": "2.0.1",
223 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
224 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
225 | "dev": true,
226 | "engines": {
227 | "node": ">=12"
228 | }
229 | },
230 | "node_modules/balanced-match": {
231 | "version": "1.0.2",
232 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
233 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
234 | "dev": true
235 | },
236 | "node_modules/brace-expansion": {
237 | "version": "2.0.1",
238 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
239 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
240 | "dev": true,
241 | "dependencies": {
242 | "balanced-match": "^1.0.0"
243 | }
244 | },
245 | "node_modules/browser-stdout": {
246 | "version": "1.3.1",
247 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
248 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
249 | "dev": true
250 | },
251 | "node_modules/camelcase": {
252 | "version": "6.3.0",
253 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
254 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
255 | "dev": true,
256 | "engines": {
257 | "node": ">=10"
258 | },
259 | "funding": {
260 | "url": "https://github.com/sponsors/sindresorhus"
261 | }
262 | },
263 | "node_modules/chai": {
264 | "version": "5.2.0",
265 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
266 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
267 | "dev": true,
268 | "license": "MIT",
269 | "dependencies": {
270 | "assertion-error": "^2.0.1",
271 | "check-error": "^2.1.1",
272 | "deep-eql": "^5.0.1",
273 | "loupe": "^3.1.0",
274 | "pathval": "^2.0.0"
275 | },
276 | "engines": {
277 | "node": ">=12"
278 | }
279 | },
280 | "node_modules/chalk": {
281 | "version": "4.1.2",
282 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
283 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
284 | "dev": true,
285 | "dependencies": {
286 | "ansi-styles": "^4.1.0",
287 | "supports-color": "^7.1.0"
288 | },
289 | "engines": {
290 | "node": ">=10"
291 | },
292 | "funding": {
293 | "url": "https://github.com/chalk/chalk?sponsor=1"
294 | }
295 | },
296 | "node_modules/chalk/node_modules/supports-color": {
297 | "version": "7.2.0",
298 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
299 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
300 | "dev": true,
301 | "dependencies": {
302 | "has-flag": "^4.0.0"
303 | },
304 | "engines": {
305 | "node": ">=8"
306 | }
307 | },
308 | "node_modules/check-error": {
309 | "version": "2.1.1",
310 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
311 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
312 | "dev": true,
313 | "engines": {
314 | "node": ">= 16"
315 | }
316 | },
317 | "node_modules/chokidar": {
318 | "version": "4.0.3",
319 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
320 | "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
321 | "dev": true,
322 | "license": "MIT",
323 | "dependencies": {
324 | "readdirp": "^4.0.1"
325 | },
326 | "engines": {
327 | "node": ">= 14.16.0"
328 | },
329 | "funding": {
330 | "url": "https://paulmillr.com/funding/"
331 | }
332 | },
333 | "node_modules/cliui": {
334 | "version": "8.0.1",
335 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
336 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
337 | "dev": true,
338 | "license": "ISC",
339 | "dependencies": {
340 | "string-width": "^4.2.0",
341 | "strip-ansi": "^6.0.1",
342 | "wrap-ansi": "^7.0.0"
343 | },
344 | "engines": {
345 | "node": ">=12"
346 | }
347 | },
348 | "node_modules/color-convert": {
349 | "version": "2.0.1",
350 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
351 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
352 | "dev": true,
353 | "dependencies": {
354 | "color-name": "~1.1.4"
355 | },
356 | "engines": {
357 | "node": ">=7.0.0"
358 | }
359 | },
360 | "node_modules/color-name": {
361 | "version": "1.1.4",
362 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
363 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
364 | "dev": true
365 | },
366 | "node_modules/cross-spawn": {
367 | "version": "7.0.6",
368 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
369 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
370 | "dev": true,
371 | "dependencies": {
372 | "path-key": "^3.1.0",
373 | "shebang-command": "^2.0.0",
374 | "which": "^2.0.1"
375 | },
376 | "engines": {
377 | "node": ">= 8"
378 | }
379 | },
380 | "node_modules/debug": {
381 | "version": "4.3.5",
382 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
383 | "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
384 | "dev": true,
385 | "dependencies": {
386 | "ms": "2.1.2"
387 | },
388 | "engines": {
389 | "node": ">=6.0"
390 | },
391 | "peerDependenciesMeta": {
392 | "supports-color": {
393 | "optional": true
394 | }
395 | }
396 | },
397 | "node_modules/debug/node_modules/ms": {
398 | "version": "2.1.2",
399 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
400 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
401 | "dev": true
402 | },
403 | "node_modules/decamelize": {
404 | "version": "4.0.0",
405 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
406 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
407 | "dev": true,
408 | "engines": {
409 | "node": ">=10"
410 | },
411 | "funding": {
412 | "url": "https://github.com/sponsors/sindresorhus"
413 | }
414 | },
415 | "node_modules/deep-eql": {
416 | "version": "5.0.1",
417 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz",
418 | "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==",
419 | "dev": true,
420 | "engines": {
421 | "node": ">=6"
422 | }
423 | },
424 | "node_modules/diff": {
425 | "version": "5.2.0",
426 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
427 | "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
428 | "dev": true,
429 | "engines": {
430 | "node": ">=0.3.1"
431 | }
432 | },
433 | "node_modules/eastasianwidth": {
434 | "version": "0.2.0",
435 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
436 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
437 | "dev": true
438 | },
439 | "node_modules/emoji-regex": {
440 | "version": "8.0.0",
441 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
442 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
443 | "dev": true
444 | },
445 | "node_modules/escalade": {
446 | "version": "3.2.0",
447 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
448 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
449 | "dev": true,
450 | "license": "MIT",
451 | "engines": {
452 | "node": ">=6"
453 | }
454 | },
455 | "node_modules/escape-string-regexp": {
456 | "version": "4.0.0",
457 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
458 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
459 | "dev": true,
460 | "engines": {
461 | "node": ">=10"
462 | },
463 | "funding": {
464 | "url": "https://github.com/sponsors/sindresorhus"
465 | }
466 | },
467 | "node_modules/find-up": {
468 | "version": "5.0.0",
469 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
470 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
471 | "dev": true,
472 | "dependencies": {
473 | "locate-path": "^6.0.0",
474 | "path-exists": "^4.0.0"
475 | },
476 | "engines": {
477 | "node": ">=10"
478 | },
479 | "funding": {
480 | "url": "https://github.com/sponsors/sindresorhus"
481 | }
482 | },
483 | "node_modules/flat": {
484 | "version": "5.0.2",
485 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
486 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
487 | "dev": true,
488 | "bin": {
489 | "flat": "cli.js"
490 | }
491 | },
492 | "node_modules/foreground-child": {
493 | "version": "3.3.0",
494 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
495 | "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
496 | "dev": true,
497 | "dependencies": {
498 | "cross-spawn": "^7.0.0",
499 | "signal-exit": "^4.0.1"
500 | },
501 | "engines": {
502 | "node": ">=14"
503 | },
504 | "funding": {
505 | "url": "https://github.com/sponsors/isaacs"
506 | }
507 | },
508 | "node_modules/get-caller-file": {
509 | "version": "2.0.5",
510 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
511 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
512 | "dev": true,
513 | "license": "ISC",
514 | "engines": {
515 | "node": "6.* || 8.* || >= 10.*"
516 | }
517 | },
518 | "node_modules/get-func-name": {
519 | "version": "2.0.2",
520 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
521 | "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
522 | "dev": true,
523 | "engines": {
524 | "node": "*"
525 | }
526 | },
527 | "node_modules/glob": {
528 | "version": "10.4.5",
529 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
530 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
531 | "dev": true,
532 | "dependencies": {
533 | "foreground-child": "^3.1.0",
534 | "jackspeak": "^3.1.2",
535 | "minimatch": "^9.0.4",
536 | "minipass": "^7.1.2",
537 | "package-json-from-dist": "^1.0.0",
538 | "path-scurry": "^1.11.1"
539 | },
540 | "bin": {
541 | "glob": "dist/esm/bin.mjs"
542 | },
543 | "funding": {
544 | "url": "https://github.com/sponsors/isaacs"
545 | }
546 | },
547 | "node_modules/glob/node_modules/minimatch": {
548 | "version": "9.0.5",
549 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
550 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
551 | "dev": true,
552 | "dependencies": {
553 | "brace-expansion": "^2.0.1"
554 | },
555 | "engines": {
556 | "node": ">=16 || 14 >=14.17"
557 | },
558 | "funding": {
559 | "url": "https://github.com/sponsors/isaacs"
560 | }
561 | },
562 | "node_modules/has-flag": {
563 | "version": "4.0.0",
564 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
565 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
566 | "dev": true,
567 | "engines": {
568 | "node": ">=8"
569 | }
570 | },
571 | "node_modules/he": {
572 | "version": "1.2.0",
573 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
574 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
575 | "dev": true,
576 | "bin": {
577 | "he": "bin/he"
578 | }
579 | },
580 | "node_modules/is-fullwidth-code-point": {
581 | "version": "3.0.0",
582 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
583 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
584 | "dev": true,
585 | "engines": {
586 | "node": ">=8"
587 | }
588 | },
589 | "node_modules/is-plain-obj": {
590 | "version": "2.1.0",
591 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
592 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
593 | "dev": true,
594 | "engines": {
595 | "node": ">=8"
596 | }
597 | },
598 | "node_modules/is-unicode-supported": {
599 | "version": "0.1.0",
600 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
601 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
602 | "dev": true,
603 | "engines": {
604 | "node": ">=10"
605 | },
606 | "funding": {
607 | "url": "https://github.com/sponsors/sindresorhus"
608 | }
609 | },
610 | "node_modules/isexe": {
611 | "version": "2.0.0",
612 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
613 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
614 | "dev": true
615 | },
616 | "node_modules/jackspeak": {
617 | "version": "3.4.3",
618 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
619 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
620 | "dev": true,
621 | "dependencies": {
622 | "@isaacs/cliui": "^8.0.2"
623 | },
624 | "funding": {
625 | "url": "https://github.com/sponsors/isaacs"
626 | },
627 | "optionalDependencies": {
628 | "@pkgjs/parseargs": "^0.11.0"
629 | }
630 | },
631 | "node_modules/js-yaml": {
632 | "version": "4.1.0",
633 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
634 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
635 | "dev": true,
636 | "dependencies": {
637 | "argparse": "^2.0.1"
638 | },
639 | "bin": {
640 | "js-yaml": "bin/js-yaml.js"
641 | }
642 | },
643 | "node_modules/locate-path": {
644 | "version": "6.0.0",
645 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
646 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
647 | "dev": true,
648 | "dependencies": {
649 | "p-locate": "^5.0.0"
650 | },
651 | "engines": {
652 | "node": ">=10"
653 | },
654 | "funding": {
655 | "url": "https://github.com/sponsors/sindresorhus"
656 | }
657 | },
658 | "node_modules/log-symbols": {
659 | "version": "4.1.0",
660 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
661 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
662 | "dev": true,
663 | "dependencies": {
664 | "chalk": "^4.1.0",
665 | "is-unicode-supported": "^0.1.0"
666 | },
667 | "engines": {
668 | "node": ">=10"
669 | },
670 | "funding": {
671 | "url": "https://github.com/sponsors/sindresorhus"
672 | }
673 | },
674 | "node_modules/loupe": {
675 | "version": "3.1.0",
676 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz",
677 | "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==",
678 | "dev": true,
679 | "dependencies": {
680 | "get-func-name": "^2.0.1"
681 | }
682 | },
683 | "node_modules/lru-cache": {
684 | "version": "10.4.3",
685 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
686 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
687 | "dev": true
688 | },
689 | "node_modules/minimatch": {
690 | "version": "5.1.6",
691 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
692 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
693 | "dev": true,
694 | "dependencies": {
695 | "brace-expansion": "^2.0.1"
696 | },
697 | "engines": {
698 | "node": ">=10"
699 | }
700 | },
701 | "node_modules/minipass": {
702 | "version": "7.1.2",
703 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
704 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
705 | "dev": true,
706 | "engines": {
707 | "node": ">=16 || 14 >=14.17"
708 | }
709 | },
710 | "node_modules/mocha": {
711 | "version": "11.2.2",
712 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.2.2.tgz",
713 | "integrity": "sha512-VlSBxrPYHK4YNOEbFdkCxHQbZMoNzBkoPprqtZRW6311EUF/DlSxoycE2e/2NtRk4WKkIXzyrXDTrlikJMWgbw==",
714 | "dev": true,
715 | "license": "MIT",
716 | "dependencies": {
717 | "browser-stdout": "^1.3.1",
718 | "chokidar": "^4.0.1",
719 | "debug": "^4.3.5",
720 | "diff": "^5.2.0",
721 | "escape-string-regexp": "^4.0.0",
722 | "find-up": "^5.0.0",
723 | "glob": "^10.4.5",
724 | "he": "^1.2.0",
725 | "js-yaml": "^4.1.0",
726 | "log-symbols": "^4.1.0",
727 | "minimatch": "^5.1.6",
728 | "ms": "^2.1.3",
729 | "picocolors": "^1.1.1",
730 | "serialize-javascript": "^6.0.2",
731 | "strip-json-comments": "^3.1.1",
732 | "supports-color": "^8.1.1",
733 | "workerpool": "^6.5.1",
734 | "yargs": "^17.7.2",
735 | "yargs-parser": "^21.1.1",
736 | "yargs-unparser": "^2.0.0"
737 | },
738 | "bin": {
739 | "_mocha": "bin/_mocha",
740 | "mocha": "bin/mocha.js"
741 | },
742 | "engines": {
743 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
744 | }
745 | },
746 | "node_modules/ms": {
747 | "version": "2.1.3",
748 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
749 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
750 | "dev": true
751 | },
752 | "node_modules/p-limit": {
753 | "version": "3.1.0",
754 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
755 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
756 | "dev": true,
757 | "dependencies": {
758 | "yocto-queue": "^0.1.0"
759 | },
760 | "engines": {
761 | "node": ">=10"
762 | },
763 | "funding": {
764 | "url": "https://github.com/sponsors/sindresorhus"
765 | }
766 | },
767 | "node_modules/p-locate": {
768 | "version": "5.0.0",
769 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
770 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
771 | "dev": true,
772 | "dependencies": {
773 | "p-limit": "^3.0.2"
774 | },
775 | "engines": {
776 | "node": ">=10"
777 | },
778 | "funding": {
779 | "url": "https://github.com/sponsors/sindresorhus"
780 | }
781 | },
782 | "node_modules/package-json-from-dist": {
783 | "version": "1.0.1",
784 | "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
785 | "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
786 | "dev": true
787 | },
788 | "node_modules/path-exists": {
789 | "version": "4.0.0",
790 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
791 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
792 | "dev": true,
793 | "engines": {
794 | "node": ">=8"
795 | }
796 | },
797 | "node_modules/path-key": {
798 | "version": "3.1.1",
799 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
800 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
801 | "dev": true,
802 | "engines": {
803 | "node": ">=8"
804 | }
805 | },
806 | "node_modules/path-scurry": {
807 | "version": "1.11.1",
808 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
809 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
810 | "dev": true,
811 | "dependencies": {
812 | "lru-cache": "^10.2.0",
813 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
814 | },
815 | "engines": {
816 | "node": ">=16 || 14 >=14.18"
817 | },
818 | "funding": {
819 | "url": "https://github.com/sponsors/isaacs"
820 | }
821 | },
822 | "node_modules/pathval": {
823 | "version": "2.0.0",
824 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
825 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
826 | "dev": true,
827 | "engines": {
828 | "node": ">= 14.16"
829 | }
830 | },
831 | "node_modules/picocolors": {
832 | "version": "1.1.1",
833 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
834 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
835 | "dev": true,
836 | "license": "ISC"
837 | },
838 | "node_modules/randombytes": {
839 | "version": "2.1.0",
840 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
841 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
842 | "dev": true,
843 | "dependencies": {
844 | "safe-buffer": "^5.1.0"
845 | }
846 | },
847 | "node_modules/readdirp": {
848 | "version": "4.1.2",
849 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
850 | "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
851 | "dev": true,
852 | "license": "MIT",
853 | "engines": {
854 | "node": ">= 14.18.0"
855 | },
856 | "funding": {
857 | "type": "individual",
858 | "url": "https://paulmillr.com/funding/"
859 | }
860 | },
861 | "node_modules/regenerator-runtime": {
862 | "version": "0.13.11",
863 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
864 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
865 | "dev": true
866 | },
867 | "node_modules/require-directory": {
868 | "version": "2.1.1",
869 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
870 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
871 | "dev": true,
872 | "license": "MIT",
873 | "engines": {
874 | "node": ">=0.10.0"
875 | }
876 | },
877 | "node_modules/safe-buffer": {
878 | "version": "5.2.1",
879 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
880 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
881 | "dev": true,
882 | "funding": [
883 | {
884 | "type": "github",
885 | "url": "https://github.com/sponsors/feross"
886 | },
887 | {
888 | "type": "patreon",
889 | "url": "https://www.patreon.com/feross"
890 | },
891 | {
892 | "type": "consulting",
893 | "url": "https://feross.org/support"
894 | }
895 | ]
896 | },
897 | "node_modules/serialize-javascript": {
898 | "version": "6.0.2",
899 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
900 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
901 | "dev": true,
902 | "dependencies": {
903 | "randombytes": "^2.1.0"
904 | }
905 | },
906 | "node_modules/shebang-command": {
907 | "version": "2.0.0",
908 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
909 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
910 | "dev": true,
911 | "dependencies": {
912 | "shebang-regex": "^3.0.0"
913 | },
914 | "engines": {
915 | "node": ">=8"
916 | }
917 | },
918 | "node_modules/shebang-regex": {
919 | "version": "3.0.0",
920 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
921 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
922 | "dev": true,
923 | "engines": {
924 | "node": ">=8"
925 | }
926 | },
927 | "node_modules/signal-exit": {
928 | "version": "4.1.0",
929 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
930 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
931 | "dev": true,
932 | "engines": {
933 | "node": ">=14"
934 | },
935 | "funding": {
936 | "url": "https://github.com/sponsors/isaacs"
937 | }
938 | },
939 | "node_modules/string-width": {
940 | "version": "4.2.3",
941 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
942 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
943 | "dev": true,
944 | "dependencies": {
945 | "emoji-regex": "^8.0.0",
946 | "is-fullwidth-code-point": "^3.0.0",
947 | "strip-ansi": "^6.0.1"
948 | },
949 | "engines": {
950 | "node": ">=8"
951 | }
952 | },
953 | "node_modules/string-width-cjs": {
954 | "name": "string-width",
955 | "version": "4.2.3",
956 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
957 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
958 | "dev": true,
959 | "dependencies": {
960 | "emoji-regex": "^8.0.0",
961 | "is-fullwidth-code-point": "^3.0.0",
962 | "strip-ansi": "^6.0.1"
963 | },
964 | "engines": {
965 | "node": ">=8"
966 | }
967 | },
968 | "node_modules/strip-ansi": {
969 | "version": "6.0.1",
970 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
971 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
972 | "dev": true,
973 | "dependencies": {
974 | "ansi-regex": "^5.0.1"
975 | },
976 | "engines": {
977 | "node": ">=8"
978 | }
979 | },
980 | "node_modules/strip-ansi-cjs": {
981 | "name": "strip-ansi",
982 | "version": "6.0.1",
983 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
984 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
985 | "dev": true,
986 | "dependencies": {
987 | "ansi-regex": "^5.0.1"
988 | },
989 | "engines": {
990 | "node": ">=8"
991 | }
992 | },
993 | "node_modules/strip-json-comments": {
994 | "version": "3.1.1",
995 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
996 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
997 | "dev": true,
998 | "engines": {
999 | "node": ">=8"
1000 | },
1001 | "funding": {
1002 | "url": "https://github.com/sponsors/sindresorhus"
1003 | }
1004 | },
1005 | "node_modules/supports-color": {
1006 | "version": "8.1.1",
1007 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1008 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1009 | "dev": true,
1010 | "dependencies": {
1011 | "has-flag": "^4.0.0"
1012 | },
1013 | "engines": {
1014 | "node": ">=10"
1015 | },
1016 | "funding": {
1017 | "url": "https://github.com/chalk/supports-color?sponsor=1"
1018 | }
1019 | },
1020 | "node_modules/tslib": {
1021 | "version": "2.5.0",
1022 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
1023 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
1024 | "dev": true
1025 | },
1026 | "node_modules/typescript": {
1027 | "version": "5.8.3",
1028 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
1029 | "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
1030 | "dev": true,
1031 | "license": "Apache-2.0",
1032 | "bin": {
1033 | "tsc": "bin/tsc",
1034 | "tsserver": "bin/tsserver"
1035 | },
1036 | "engines": {
1037 | "node": ">=14.17"
1038 | }
1039 | },
1040 | "node_modules/undici-types": {
1041 | "version": "6.21.0",
1042 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
1043 | "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
1044 | "dev": true,
1045 | "license": "MIT"
1046 | },
1047 | "node_modules/which": {
1048 | "version": "2.0.2",
1049 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1050 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1051 | "dev": true,
1052 | "dependencies": {
1053 | "isexe": "^2.0.0"
1054 | },
1055 | "bin": {
1056 | "node-which": "bin/node-which"
1057 | },
1058 | "engines": {
1059 | "node": ">= 8"
1060 | }
1061 | },
1062 | "node_modules/workerpool": {
1063 | "version": "6.5.1",
1064 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
1065 | "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
1066 | "dev": true
1067 | },
1068 | "node_modules/wrap-ansi": {
1069 | "version": "7.0.0",
1070 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1071 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1072 | "dev": true,
1073 | "license": "MIT",
1074 | "dependencies": {
1075 | "ansi-styles": "^4.0.0",
1076 | "string-width": "^4.1.0",
1077 | "strip-ansi": "^6.0.0"
1078 | },
1079 | "engines": {
1080 | "node": ">=10"
1081 | },
1082 | "funding": {
1083 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1084 | }
1085 | },
1086 | "node_modules/wrap-ansi-cjs": {
1087 | "name": "wrap-ansi",
1088 | "version": "7.0.0",
1089 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1090 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1091 | "dev": true,
1092 | "dependencies": {
1093 | "ansi-styles": "^4.0.0",
1094 | "string-width": "^4.1.0",
1095 | "strip-ansi": "^6.0.0"
1096 | },
1097 | "engines": {
1098 | "node": ">=10"
1099 | },
1100 | "funding": {
1101 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1102 | }
1103 | },
1104 | "node_modules/y18n": {
1105 | "version": "5.0.8",
1106 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1107 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1108 | "dev": true,
1109 | "license": "ISC",
1110 | "engines": {
1111 | "node": ">=10"
1112 | }
1113 | },
1114 | "node_modules/yargs": {
1115 | "version": "17.7.2",
1116 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
1117 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
1118 | "dev": true,
1119 | "license": "MIT",
1120 | "dependencies": {
1121 | "cliui": "^8.0.1",
1122 | "escalade": "^3.1.1",
1123 | "get-caller-file": "^2.0.5",
1124 | "require-directory": "^2.1.1",
1125 | "string-width": "^4.2.3",
1126 | "y18n": "^5.0.5",
1127 | "yargs-parser": "^21.1.1"
1128 | },
1129 | "engines": {
1130 | "node": ">=12"
1131 | }
1132 | },
1133 | "node_modules/yargs-parser": {
1134 | "version": "21.1.1",
1135 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1136 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1137 | "dev": true,
1138 | "license": "ISC",
1139 | "engines": {
1140 | "node": ">=12"
1141 | }
1142 | },
1143 | "node_modules/yargs-unparser": {
1144 | "version": "2.0.0",
1145 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
1146 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
1147 | "dev": true,
1148 | "dependencies": {
1149 | "camelcase": "^6.0.0",
1150 | "decamelize": "^4.0.0",
1151 | "flat": "^5.0.2",
1152 | "is-plain-obj": "^2.1.0"
1153 | },
1154 | "engines": {
1155 | "node": ">=10"
1156 | }
1157 | },
1158 | "node_modules/yocto-queue": {
1159 | "version": "0.1.0",
1160 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1161 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1162 | "dev": true,
1163 | "engines": {
1164 | "node": ">=10"
1165 | },
1166 | "funding": {
1167 | "url": "https://github.com/sponsors/sindresorhus"
1168 | }
1169 | }
1170 | },
1171 | "dependencies": {
1172 | "@babel/runtime": {
1173 | "version": "7.21.0",
1174 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
1175 | "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
1176 | "dev": true,
1177 | "requires": {
1178 | "regenerator-runtime": "^0.13.11"
1179 | }
1180 | },
1181 | "@isaacs/cliui": {
1182 | "version": "8.0.2",
1183 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
1184 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
1185 | "dev": true,
1186 | "requires": {
1187 | "string-width": "^5.1.2",
1188 | "string-width-cjs": "npm:string-width@^4.2.0",
1189 | "strip-ansi": "^7.0.1",
1190 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
1191 | "wrap-ansi": "^8.1.0",
1192 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
1193 | },
1194 | "dependencies": {
1195 | "ansi-regex": {
1196 | "version": "6.1.0",
1197 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
1198 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
1199 | "dev": true
1200 | },
1201 | "ansi-styles": {
1202 | "version": "6.2.1",
1203 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
1204 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
1205 | "dev": true
1206 | },
1207 | "emoji-regex": {
1208 | "version": "9.2.2",
1209 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1210 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
1211 | "dev": true
1212 | },
1213 | "string-width": {
1214 | "version": "5.1.2",
1215 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1216 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1217 | "dev": true,
1218 | "requires": {
1219 | "eastasianwidth": "^0.2.0",
1220 | "emoji-regex": "^9.2.2",
1221 | "strip-ansi": "^7.0.1"
1222 | }
1223 | },
1224 | "strip-ansi": {
1225 | "version": "7.1.0",
1226 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1227 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1228 | "dev": true,
1229 | "requires": {
1230 | "ansi-regex": "^6.0.1"
1231 | }
1232 | },
1233 | "wrap-ansi": {
1234 | "version": "8.1.0",
1235 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
1236 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
1237 | "dev": true,
1238 | "requires": {
1239 | "ansi-styles": "^6.1.0",
1240 | "string-width": "^5.0.1",
1241 | "strip-ansi": "^7.0.1"
1242 | }
1243 | }
1244 | }
1245 | },
1246 | "@microsoft/microsoft-graph-client": {
1247 | "version": "3.0.7",
1248 | "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-3.0.7.tgz",
1249 | "integrity": "sha512-/AazAV/F+HK4LIywF9C+NYHcJo038zEnWkteilcxC1FM/uK/4NVGDKGrxx7nNq1ybspAroRKT4I1FHfxQzxkUw==",
1250 | "dev": true,
1251 | "requires": {
1252 | "@babel/runtime": "^7.12.5",
1253 | "tslib": "^2.2.0"
1254 | }
1255 | },
1256 | "@pkgjs/parseargs": {
1257 | "version": "0.11.0",
1258 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
1259 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
1260 | "dev": true,
1261 | "optional": true
1262 | },
1263 | "@types/chai": {
1264 | "version": "5.2.2",
1265 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
1266 | "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
1267 | "dev": true,
1268 | "requires": {
1269 | "@types/deep-eql": "*"
1270 | }
1271 | },
1272 | "@types/deep-eql": {
1273 | "version": "4.0.2",
1274 | "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
1275 | "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
1276 | "dev": true
1277 | },
1278 | "@types/node": {
1279 | "version": "22.15.17",
1280 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz",
1281 | "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==",
1282 | "dev": true,
1283 | "requires": {
1284 | "undici-types": "~6.21.0"
1285 | }
1286 | },
1287 | "ansi-regex": {
1288 | "version": "5.0.1",
1289 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1290 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1291 | "dev": true
1292 | },
1293 | "ansi-styles": {
1294 | "version": "4.3.0",
1295 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1296 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1297 | "dev": true,
1298 | "requires": {
1299 | "color-convert": "^2.0.1"
1300 | }
1301 | },
1302 | "argparse": {
1303 | "version": "2.0.1",
1304 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1305 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1306 | "dev": true
1307 | },
1308 | "assertion-error": {
1309 | "version": "2.0.1",
1310 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
1311 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
1312 | "dev": true
1313 | },
1314 | "balanced-match": {
1315 | "version": "1.0.2",
1316 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1317 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1318 | "dev": true
1319 | },
1320 | "brace-expansion": {
1321 | "version": "2.0.1",
1322 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1323 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1324 | "dev": true,
1325 | "requires": {
1326 | "balanced-match": "^1.0.0"
1327 | }
1328 | },
1329 | "browser-stdout": {
1330 | "version": "1.3.1",
1331 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
1332 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
1333 | "dev": true
1334 | },
1335 | "camelcase": {
1336 | "version": "6.3.0",
1337 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
1338 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
1339 | "dev": true
1340 | },
1341 | "chai": {
1342 | "version": "5.2.0",
1343 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
1344 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
1345 | "dev": true,
1346 | "requires": {
1347 | "assertion-error": "^2.0.1",
1348 | "check-error": "^2.1.1",
1349 | "deep-eql": "^5.0.1",
1350 | "loupe": "^3.1.0",
1351 | "pathval": "^2.0.0"
1352 | }
1353 | },
1354 | "chalk": {
1355 | "version": "4.1.2",
1356 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1357 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1358 | "dev": true,
1359 | "requires": {
1360 | "ansi-styles": "^4.1.0",
1361 | "supports-color": "^7.1.0"
1362 | },
1363 | "dependencies": {
1364 | "supports-color": {
1365 | "version": "7.2.0",
1366 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1367 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1368 | "dev": true,
1369 | "requires": {
1370 | "has-flag": "^4.0.0"
1371 | }
1372 | }
1373 | }
1374 | },
1375 | "check-error": {
1376 | "version": "2.1.1",
1377 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
1378 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
1379 | "dev": true
1380 | },
1381 | "chokidar": {
1382 | "version": "4.0.3",
1383 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
1384 | "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
1385 | "dev": true,
1386 | "requires": {
1387 | "readdirp": "^4.0.1"
1388 | }
1389 | },
1390 | "cliui": {
1391 | "version": "8.0.1",
1392 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
1393 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
1394 | "dev": true,
1395 | "requires": {
1396 | "string-width": "^4.2.0",
1397 | "strip-ansi": "^6.0.1",
1398 | "wrap-ansi": "^7.0.0"
1399 | }
1400 | },
1401 | "color-convert": {
1402 | "version": "2.0.1",
1403 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1404 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1405 | "dev": true,
1406 | "requires": {
1407 | "color-name": "~1.1.4"
1408 | }
1409 | },
1410 | "color-name": {
1411 | "version": "1.1.4",
1412 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1413 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1414 | "dev": true
1415 | },
1416 | "cross-spawn": {
1417 | "version": "7.0.6",
1418 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
1419 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
1420 | "dev": true,
1421 | "requires": {
1422 | "path-key": "^3.1.0",
1423 | "shebang-command": "^2.0.0",
1424 | "which": "^2.0.1"
1425 | }
1426 | },
1427 | "debug": {
1428 | "version": "4.3.5",
1429 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
1430 | "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
1431 | "dev": true,
1432 | "requires": {
1433 | "ms": "2.1.2"
1434 | },
1435 | "dependencies": {
1436 | "ms": {
1437 | "version": "2.1.2",
1438 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1439 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1440 | "dev": true
1441 | }
1442 | }
1443 | },
1444 | "decamelize": {
1445 | "version": "4.0.0",
1446 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
1447 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
1448 | "dev": true
1449 | },
1450 | "deep-eql": {
1451 | "version": "5.0.1",
1452 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz",
1453 | "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==",
1454 | "dev": true
1455 | },
1456 | "diff": {
1457 | "version": "5.2.0",
1458 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
1459 | "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
1460 | "dev": true
1461 | },
1462 | "eastasianwidth": {
1463 | "version": "0.2.0",
1464 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1465 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1466 | "dev": true
1467 | },
1468 | "emoji-regex": {
1469 | "version": "8.0.0",
1470 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1471 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1472 | "dev": true
1473 | },
1474 | "escalade": {
1475 | "version": "3.2.0",
1476 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1477 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1478 | "dev": true
1479 | },
1480 | "escape-string-regexp": {
1481 | "version": "4.0.0",
1482 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1483 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1484 | "dev": true
1485 | },
1486 | "find-up": {
1487 | "version": "5.0.0",
1488 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1489 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1490 | "dev": true,
1491 | "requires": {
1492 | "locate-path": "^6.0.0",
1493 | "path-exists": "^4.0.0"
1494 | }
1495 | },
1496 | "flat": {
1497 | "version": "5.0.2",
1498 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
1499 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
1500 | "dev": true
1501 | },
1502 | "foreground-child": {
1503 | "version": "3.3.0",
1504 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
1505 | "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
1506 | "dev": true,
1507 | "requires": {
1508 | "cross-spawn": "^7.0.0",
1509 | "signal-exit": "^4.0.1"
1510 | }
1511 | },
1512 | "get-caller-file": {
1513 | "version": "2.0.5",
1514 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1515 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1516 | "dev": true
1517 | },
1518 | "get-func-name": {
1519 | "version": "2.0.2",
1520 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
1521 | "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
1522 | "dev": true
1523 | },
1524 | "glob": {
1525 | "version": "10.4.5",
1526 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
1527 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
1528 | "dev": true,
1529 | "requires": {
1530 | "foreground-child": "^3.1.0",
1531 | "jackspeak": "^3.1.2",
1532 | "minimatch": "^9.0.4",
1533 | "minipass": "^7.1.2",
1534 | "package-json-from-dist": "^1.0.0",
1535 | "path-scurry": "^1.11.1"
1536 | },
1537 | "dependencies": {
1538 | "minimatch": {
1539 | "version": "9.0.5",
1540 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1541 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1542 | "dev": true,
1543 | "requires": {
1544 | "brace-expansion": "^2.0.1"
1545 | }
1546 | }
1547 | }
1548 | },
1549 | "has-flag": {
1550 | "version": "4.0.0",
1551 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1552 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1553 | "dev": true
1554 | },
1555 | "he": {
1556 | "version": "1.2.0",
1557 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1558 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1559 | "dev": true
1560 | },
1561 | "is-fullwidth-code-point": {
1562 | "version": "3.0.0",
1563 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1564 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1565 | "dev": true
1566 | },
1567 | "is-plain-obj": {
1568 | "version": "2.1.0",
1569 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
1570 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
1571 | "dev": true
1572 | },
1573 | "is-unicode-supported": {
1574 | "version": "0.1.0",
1575 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
1576 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
1577 | "dev": true
1578 | },
1579 | "isexe": {
1580 | "version": "2.0.0",
1581 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1582 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1583 | "dev": true
1584 | },
1585 | "jackspeak": {
1586 | "version": "3.4.3",
1587 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
1588 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
1589 | "dev": true,
1590 | "requires": {
1591 | "@isaacs/cliui": "^8.0.2",
1592 | "@pkgjs/parseargs": "^0.11.0"
1593 | }
1594 | },
1595 | "js-yaml": {
1596 | "version": "4.1.0",
1597 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1598 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1599 | "dev": true,
1600 | "requires": {
1601 | "argparse": "^2.0.1"
1602 | }
1603 | },
1604 | "locate-path": {
1605 | "version": "6.0.0",
1606 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
1607 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
1608 | "dev": true,
1609 | "requires": {
1610 | "p-locate": "^5.0.0"
1611 | }
1612 | },
1613 | "log-symbols": {
1614 | "version": "4.1.0",
1615 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
1616 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
1617 | "dev": true,
1618 | "requires": {
1619 | "chalk": "^4.1.0",
1620 | "is-unicode-supported": "^0.1.0"
1621 | }
1622 | },
1623 | "loupe": {
1624 | "version": "3.1.0",
1625 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz",
1626 | "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==",
1627 | "dev": true,
1628 | "requires": {
1629 | "get-func-name": "^2.0.1"
1630 | }
1631 | },
1632 | "lru-cache": {
1633 | "version": "10.4.3",
1634 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1635 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
1636 | "dev": true
1637 | },
1638 | "minimatch": {
1639 | "version": "5.1.6",
1640 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1641 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1642 | "dev": true,
1643 | "requires": {
1644 | "brace-expansion": "^2.0.1"
1645 | }
1646 | },
1647 | "minipass": {
1648 | "version": "7.1.2",
1649 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1650 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1651 | "dev": true
1652 | },
1653 | "mocha": {
1654 | "version": "11.2.2",
1655 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.2.2.tgz",
1656 | "integrity": "sha512-VlSBxrPYHK4YNOEbFdkCxHQbZMoNzBkoPprqtZRW6311EUF/DlSxoycE2e/2NtRk4WKkIXzyrXDTrlikJMWgbw==",
1657 | "dev": true,
1658 | "requires": {
1659 | "browser-stdout": "^1.3.1",
1660 | "chokidar": "^4.0.1",
1661 | "debug": "^4.3.5",
1662 | "diff": "^5.2.0",
1663 | "escape-string-regexp": "^4.0.0",
1664 | "find-up": "^5.0.0",
1665 | "glob": "^10.4.5",
1666 | "he": "^1.2.0",
1667 | "js-yaml": "^4.1.0",
1668 | "log-symbols": "^4.1.0",
1669 | "minimatch": "^5.1.6",
1670 | "ms": "^2.1.3",
1671 | "picocolors": "^1.1.1",
1672 | "serialize-javascript": "^6.0.2",
1673 | "strip-json-comments": "^3.1.1",
1674 | "supports-color": "^8.1.1",
1675 | "workerpool": "^6.5.1",
1676 | "yargs": "^17.7.2",
1677 | "yargs-parser": "^21.1.1",
1678 | "yargs-unparser": "^2.0.0"
1679 | }
1680 | },
1681 | "ms": {
1682 | "version": "2.1.3",
1683 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1684 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1685 | "dev": true
1686 | },
1687 | "p-limit": {
1688 | "version": "3.1.0",
1689 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1690 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1691 | "dev": true,
1692 | "requires": {
1693 | "yocto-queue": "^0.1.0"
1694 | }
1695 | },
1696 | "p-locate": {
1697 | "version": "5.0.0",
1698 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1699 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1700 | "dev": true,
1701 | "requires": {
1702 | "p-limit": "^3.0.2"
1703 | }
1704 | },
1705 | "package-json-from-dist": {
1706 | "version": "1.0.1",
1707 | "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
1708 | "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
1709 | "dev": true
1710 | },
1711 | "path-exists": {
1712 | "version": "4.0.0",
1713 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1714 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1715 | "dev": true
1716 | },
1717 | "path-key": {
1718 | "version": "3.1.1",
1719 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1720 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1721 | "dev": true
1722 | },
1723 | "path-scurry": {
1724 | "version": "1.11.1",
1725 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
1726 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
1727 | "dev": true,
1728 | "requires": {
1729 | "lru-cache": "^10.2.0",
1730 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1731 | }
1732 | },
1733 | "pathval": {
1734 | "version": "2.0.0",
1735 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
1736 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
1737 | "dev": true
1738 | },
1739 | "picocolors": {
1740 | "version": "1.1.1",
1741 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1742 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1743 | "dev": true
1744 | },
1745 | "randombytes": {
1746 | "version": "2.1.0",
1747 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1748 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1749 | "dev": true,
1750 | "requires": {
1751 | "safe-buffer": "^5.1.0"
1752 | }
1753 | },
1754 | "readdirp": {
1755 | "version": "4.1.2",
1756 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
1757 | "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
1758 | "dev": true
1759 | },
1760 | "regenerator-runtime": {
1761 | "version": "0.13.11",
1762 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1763 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
1764 | "dev": true
1765 | },
1766 | "require-directory": {
1767 | "version": "2.1.1",
1768 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1769 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1770 | "dev": true
1771 | },
1772 | "safe-buffer": {
1773 | "version": "5.2.1",
1774 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1775 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1776 | "dev": true
1777 | },
1778 | "serialize-javascript": {
1779 | "version": "6.0.2",
1780 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
1781 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
1782 | "dev": true,
1783 | "requires": {
1784 | "randombytes": "^2.1.0"
1785 | }
1786 | },
1787 | "shebang-command": {
1788 | "version": "2.0.0",
1789 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1790 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1791 | "dev": true,
1792 | "requires": {
1793 | "shebang-regex": "^3.0.0"
1794 | }
1795 | },
1796 | "shebang-regex": {
1797 | "version": "3.0.0",
1798 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1799 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1800 | "dev": true
1801 | },
1802 | "signal-exit": {
1803 | "version": "4.1.0",
1804 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1805 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1806 | "dev": true
1807 | },
1808 | "string-width": {
1809 | "version": "4.2.3",
1810 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1811 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1812 | "dev": true,
1813 | "requires": {
1814 | "emoji-regex": "^8.0.0",
1815 | "is-fullwidth-code-point": "^3.0.0",
1816 | "strip-ansi": "^6.0.1"
1817 | }
1818 | },
1819 | "string-width-cjs": {
1820 | "version": "npm:string-width@4.2.3",
1821 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1822 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1823 | "dev": true,
1824 | "requires": {
1825 | "emoji-regex": "^8.0.0",
1826 | "is-fullwidth-code-point": "^3.0.0",
1827 | "strip-ansi": "^6.0.1"
1828 | }
1829 | },
1830 | "strip-ansi": {
1831 | "version": "6.0.1",
1832 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1833 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1834 | "dev": true,
1835 | "requires": {
1836 | "ansi-regex": "^5.0.1"
1837 | }
1838 | },
1839 | "strip-ansi-cjs": {
1840 | "version": "npm:strip-ansi@6.0.1",
1841 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1842 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1843 | "dev": true,
1844 | "requires": {
1845 | "ansi-regex": "^5.0.1"
1846 | }
1847 | },
1848 | "strip-json-comments": {
1849 | "version": "3.1.1",
1850 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1851 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1852 | "dev": true
1853 | },
1854 | "supports-color": {
1855 | "version": "8.1.1",
1856 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1857 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1858 | "dev": true,
1859 | "requires": {
1860 | "has-flag": "^4.0.0"
1861 | }
1862 | },
1863 | "tslib": {
1864 | "version": "2.5.0",
1865 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
1866 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
1867 | "dev": true
1868 | },
1869 | "typescript": {
1870 | "version": "5.8.3",
1871 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
1872 | "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
1873 | "dev": true
1874 | },
1875 | "undici-types": {
1876 | "version": "6.21.0",
1877 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
1878 | "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
1879 | "dev": true
1880 | },
1881 | "which": {
1882 | "version": "2.0.2",
1883 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1884 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1885 | "dev": true,
1886 | "requires": {
1887 | "isexe": "^2.0.0"
1888 | }
1889 | },
1890 | "workerpool": {
1891 | "version": "6.5.1",
1892 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
1893 | "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
1894 | "dev": true
1895 | },
1896 | "wrap-ansi": {
1897 | "version": "7.0.0",
1898 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1899 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1900 | "dev": true,
1901 | "requires": {
1902 | "ansi-styles": "^4.0.0",
1903 | "string-width": "^4.1.0",
1904 | "strip-ansi": "^6.0.0"
1905 | }
1906 | },
1907 | "wrap-ansi-cjs": {
1908 | "version": "npm:wrap-ansi@7.0.0",
1909 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1910 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1911 | "dev": true,
1912 | "requires": {
1913 | "ansi-styles": "^4.0.0",
1914 | "string-width": "^4.1.0",
1915 | "strip-ansi": "^6.0.0"
1916 | }
1917 | },
1918 | "y18n": {
1919 | "version": "5.0.8",
1920 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1921 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1922 | "dev": true
1923 | },
1924 | "yargs": {
1925 | "version": "17.7.2",
1926 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
1927 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
1928 | "dev": true,
1929 | "requires": {
1930 | "cliui": "^8.0.1",
1931 | "escalade": "^3.1.1",
1932 | "get-caller-file": "^2.0.5",
1933 | "require-directory": "^2.1.1",
1934 | "string-width": "^4.2.3",
1935 | "y18n": "^5.0.5",
1936 | "yargs-parser": "^21.1.1"
1937 | }
1938 | },
1939 | "yargs-parser": {
1940 | "version": "21.1.1",
1941 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1942 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1943 | "dev": true
1944 | },
1945 | "yargs-unparser": {
1946 | "version": "2.0.0",
1947 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
1948 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
1949 | "dev": true,
1950 | "requires": {
1951 | "camelcase": "^6.0.0",
1952 | "decamelize": "^4.0.0",
1953 | "flat": "^5.0.2",
1954 | "is-plain-obj": "^2.1.0"
1955 | }
1956 | },
1957 | "yocto-queue": {
1958 | "version": "0.1.0",
1959 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1960 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1961 | "dev": true
1962 | }
1963 | }
1964 | }
1965 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@microsoft/microsoft-graph-types",
3 | "description": "Types for Microsoft Graph objects",
4 | "version": "2.43.0",
5 | "license": "MIT",
6 | "types": "microsoft-graph.d.ts",
7 | "scripts": {
8 | "test": "tsc && mocha spec/**.ts"
9 | },
10 | "typescript": {
11 | "definition": "microsoft-graph.d.ts"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "https://github.com/microsoftgraph/msgraph-typescript-typings.git"
16 | },
17 | "devDependencies": {
18 | "@microsoft/microsoft-graph-client": "^3.0.5",
19 | "@types/chai": "^5.0.0",
20 | "@types/node": "^22.0.0",
21 | "chai": "^5.0.0",
22 | "mocha": "^11.0.1",
23 | "typescript": "^5.0.3"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/scripts/src/AddGithubUser.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$gitUserName,
3 | [string]$gitUserEmailId,
4 | [string]$gitRepoRoot
5 | )
6 |
7 | Write-Host "Configuring Github User:" -ForegroundColor Magenta;
8 |
9 | Set-Location -Path $gitRepoRoot;
10 | Write-Host "Location changed to Git Repo Root '$(Get-Location)'" -ForegroundColor Green;
11 |
12 | git config user.name $gitUserName
13 | git config user.email $gitUserEmailId
14 | Write-Host "Git user.name=$($gitUserName) and user.email=$($gitUserEmailId) is set." -ForegroundColor Green;
--------------------------------------------------------------------------------
/scripts/src/CalculateNewProductionVersion.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$owner,
3 | [string]$repo
4 | )
5 |
6 | Write-Host "Calculating new Production Version:" -ForegroundColor Magenta;
7 |
8 | $newVersionStr;
9 |
10 | $releasesUrl = "https://api.github.com/repos/$($owner)/$($repo)/releases";
11 |
12 | Write-Host "Getting list of releases with '$($releasesUrl)'" -ForegroundColor Blue;
13 | $releasesJSON = Invoke-RestMethod -Uri $releasesUrl -Method Get;
14 |
15 | if ($releasesJSON.Count -eq 0) {
16 | Write-Host "Unable to get releases list with '$($releasesUrl)'" -ForegroundColor Red;
17 | Write-Host "NOTE: This Script cannot handle the first release" -ForegroundColor Cyan;
18 | EXIT 1;
19 | }
20 |
21 | $latestReleaseJSON = $releasesJSON[0];
22 | $latestReleaseVersionStr = $latestReleaseJSON.tag_name;
23 | $isPreRelease = $latestReleaseJSON.prerelease;
24 |
25 | if ([string]::IsNullOrEmpty($latestReleaseVersionStr)) {
26 | Write-Host "Unable read the latest release tag name" -ForegroundColor Red;
27 | Write-Host "Latest Release Data:" -ForegroundColor Cyan;
28 | Write-Host -Object $latestReleaseJSON -ForegroundColor Cyan;
29 | EXIT 1;
30 | }
31 |
32 | if ([string]::IsNullOrEmpty($isPreRelease)) {
33 | Write-Host "Unable read the latest release is pre-release or not" -ForegroundColor Red;
34 | Write-Host "Latest Release Data:" -ForegroundColor Cyan;
35 | Write-Host -Object $latestReleaseJSON -ForegroundColor Cyan;
36 | EXIT 1;
37 | }
38 |
39 | $isPreRelease = $isPreRelease -as [bool];
40 | $versionArr = $latestReleaseVersionStr.split(".");
41 |
42 | if ($isPreRelease) {
43 | Write-Host "Preview release is not expected in this repository" -ForegroundColor Red;
44 | Write-Host "Latest Release Data:" -ForegroundColor Cyan;
45 | Write-Host -Object $latestReleaseJSON -ForegroundColor Cyan;
46 | EXIT 1;
47 | }
48 |
49 | if ($versionArr[2].Contains("-")) {
50 | Write-Host "Lastest release '$($latestReleaseVersionStr)' is mentioned as production release but version string has Preview string" -ForegroundColor Red;
51 | Write-Host "Last Release Data:" -ForegroundColor Cyan;
52 | Write-Host -Object $lastReleaseJSON -ForegroundColor Cyan;
53 | EXIT 1;
54 | }
55 |
56 | $minorVersion = $versionArr[1] -as [int];
57 | $newMinorVersion = $minorVersion + 1;
58 | $newPatchVersion = 0;
59 |
60 | $versionArr[1] = $newMinorVersion;
61 | $versionArr[2] = $newPatchVersion;
62 |
63 | $newVersionStr = $versionArr -join ".";
64 |
65 | Write-Host "Current version is '$($latestReleaseVersionStr)'" -ForegroundColor Blue;
66 | Write-Host "New calculated version is '$($newVersionStr)'" -ForegroundColor Green;
67 |
68 | Write-Host "##vso[task.setvariable variable=NEW_VERSION_STRING]$($newVersionStr)";
69 |
70 | Write-Host "Updated new version in global variable" -ForegroundColor Green;
--------------------------------------------------------------------------------
/scripts/src/CommitAndPushChangesToGithub.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$owner,
3 | [string]$repo,
4 | [string]$branchName,
5 | [string]$newVersion,
6 | [string]$gitPat
7 | )
8 |
9 | Write-Host "Pushing Version bump change to Github:" -ForegroundColor Magenta;
10 |
11 | Write-Host "Adding Changes." -ForegroundColor Blue;
12 | git add . | Write-Host;
13 | Write-Host "Changes added to the '$($branchName)' branch." -ForegroundColor Green;
14 |
15 | Write-Host "Committing Changes." -ForegroundColor Blue;
16 | git commit -m "Bumped version to '$($newVersion)'" | Write-Host;
17 | Write-Host "Committed the changes to the '$($branchName)' branch." -ForegroundColor Green;
18 |
19 | Write-Host "Pushing changes." -ForegroundColor Blue;
20 | git push "https://$($gitPat)@github.com/$($owner)/$($repo).git" HEAD:$branchName | Write-Host;
21 | Write-Host "Pushed the changes to the '$($branchName)' branch." -ForegroundColor Green;
--------------------------------------------------------------------------------
/scripts/src/GetLatestCommitSHA.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$owner,
3 | [string]$repo,
4 | [string]$branchName
5 | )
6 |
7 | Write-Host "Getting the latest commit SHA for $($branchName):" -ForegroundColor Magenta;
8 |
9 | $latestCommitUrl = "https://api.github.com/repos/$($owner)/$($repo)/commits/$($branchName)";
10 |
11 | Write-Host "Getting latest commit with '$($latestCommitUrl)'" -ForegroundColor Blue;
12 | $latestCommitData = Invoke-RestMethod -Uri $latestCommitUrl -Method Get;
13 |
14 | if ($latestCommitData.Count -eq 0) {
15 | Write-Host "Unable to get latest commit with '$($latestCommitUrl)'" -ForegroundColor Red;
16 | EXIT 1;
17 | }
18 |
19 | if ([string]::IsNullOrEmpty($latestCommitData.sha)) {
20 | Write-Host "SHA is not present in the latest commit that is fetched" -ForegroundColor Red;
21 | Write-Host "Latest Commit Data:" -ForegroundColor Cyan;
22 | Write-Host -Object $latestCommitData -ForegroundColor Cyan;
23 | EXIT 1;
24 | }
25 |
26 | Write-Host "Latest Commit SHA is '$($latestCommitData.sha)'" -ForegroundColor Green;
27 |
28 | Write-Host "##vso[task.setvariable variable=LASTEST_COMMIT_SHA]$($latestCommitData.sha)";
29 |
30 | Write-Host "Updated latest commit sha in global variable" -ForegroundColor Green;
--------------------------------------------------------------------------------
/scripts/src/GetPackageVersion.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$gitRepoRoot
3 | )
4 |
5 | Write-Host "Get package version and update it in the global varaible:" -ForegroundColor Magenta;
6 |
7 | $pathToPackageJson = "$($gitRepoRoot)/package.json";
8 | $packageJson = Get-Content -Path $pathToPackageJson -Raw | ConvertFrom-Json;
9 | Write-Host "Package version is '$($packageJson.version)'" -ForegroundColor Green;
10 |
11 | Write-Host "##vso[task.setvariable variable=VERSION_STRING]$($packageJson.version)";
12 |
13 | Write-Host "Updated version in global variable" -ForegroundColor Green;
14 |
--------------------------------------------------------------------------------
/scripts/src/HasNewCommitsAfterLastRelease.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$owner,
3 | [string]$repo,
4 | [string]$branchName
5 | )
6 |
7 | Write-Host "Checking for availability of new commits after last release:" -ForegroundColor Magenta;
8 | $releasesUrl = "https://api.github.com/repos/$($owner)/$($repo)/releases";
9 |
10 | Write-Host "Getting list of releases with '$($releasesUrl)'" -ForegroundColor Blue;
11 | $releasesJSON = Invoke-RestMethod -Uri $releasesUrl -Method Get;
12 |
13 | if ($releasesJSON.Count -eq 0) {
14 | Write-Host "Unable to get releases list with '$($releasesUrl)'" -ForegroundColor Red;
15 | Write-Host "NOTE: This Script cannot handle the first release!" -ForegroundColor Cyan;
16 | EXIT 1;
17 | }
18 |
19 | $lastReleaseJSON = $releasesJSON[0];
20 | $publishedTime = $lastReleaseJSON.published_at;
21 | $lastReleaseTag = $lastReleaseJSON.tag_name;
22 |
23 | if ([string]::IsNullOrEmpty($publishedTime)) {
24 | Write-Host "Unable read the last release published time" -ForegroundColor Red;
25 | Write-Host "Last Release Data:" -ForegroundColor Red;
26 | Write-Host -Object $lastReleaseJSON -ForegroundColor Red;
27 | EXIT 1;
28 | }
29 |
30 | if ([string]::IsNullOrEmpty($lastReleaseTag)) {
31 | Write-Host "Unable read the last release tag name" -ForegroundColor Red;
32 | Write-Host "Last Release Data:" -ForegroundColor Red;
33 | Write-Host -Object $lastReleaseJSON -ForegroundColor Red;
34 | EXIT 1;
35 | }
36 |
37 | $newCommitsUrl = "https://api.github.com/repos/$($owner)/$($repo)/commits?sha=$($branchName)&since=$($publishedTime)";
38 |
39 | Write-Host "Getting commits after last release with '$($newCommitsUrl)'" -ForegroundColor Blue;
40 | $newCommitsJSON = Invoke-RestMethod -Uri $newCommitsUrl -Method Get;
41 |
42 | if ($newCommitsJSON.Count -gt 0) {
43 | Write-Host "There are atleast '$($newCommitsJSON.Length)' Commits in '$($branchName)' branch after last release with tag $'($lastReleaseTag)'" -ForegroundColor Green;
44 | EXIT 0;
45 | }
46 | else {
47 | Write-Host "Unable to get commits after last release with '$($newCommitsUrl)'" -ForegroundColor Red;
48 | Write-Host "NOTE: Possibly, there are no commits in '$($branchName)' branch after last release with tag '$($lastReleaseTag)'" -ForegroundColor Cyan;
49 | Write-Host "To verify there are not commits, make a request by pasting '$($newCommitsUrl)' in your browser" -ForegroundColor Cyan;
50 | EXIT 1;
51 | }
--------------------------------------------------------------------------------
/scripts/src/RemoveGithubUser.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | [string]$gitRepoRoot
3 | )
4 |
5 | Write-Host "Removing Github User:" -ForegroundColor Magenta;
6 |
7 | Set-Location -Path $gitRepoRoot;
8 | Write-Host "Location changed to Git Repo Root $(Get-Location)" -ForegroundColor Green;
9 |
10 | git config --unset user.name
11 | git config --unset user.email
12 | Write-Host "Git user.name and user.email is unset." -ForegroundColor Green;
--------------------------------------------------------------------------------
/spec/groups.ts:
--------------------------------------------------------------------------------
1 | import {assert} from 'chai'
2 |
3 | import { getClient, randomString } from "./testHelpers"
4 | import {Group} from '../microsoft-graph'
5 |
6 | declare const describe, it;
7 |
8 | describe('Groups', function() {
9 | this.timeout(10*1000);
10 | it('Fetch a list of groups and access properties on a collection item', function() {
11 | return getClient().api("https://graph.microsoft.com/v1.0/groups/").get().then((json) => {
12 | const group = json.value[0] as Group;
13 | assert.isDefined(group.displayName);
14 | assert.isDefined(group.mail);
15 | assert.isDefined(group.id);
16 |
17 | assert.isUndefined(group['invalidPropertyName']);
18 | return Promise.resolve();
19 | });
20 | });
21 |
22 | it('Create a group and validate properties were set', function() {
23 | const group:Group = {
24 | displayName: "Sample test group",
25 | description: randomString(),
26 | groupTypes: [
27 | "Unified"
28 | ],
29 | mailEnabled: true,
30 | mailNickname: "Group911e5",
31 | securityEnabled: true
32 | };
33 |
34 | return getClient().api("https://graph.microsoft.com/v1.0/groups/").post(group).then((groupResponse) => {
35 | let createdGroup = groupResponse as Group;
36 | assert.equal(createdGroup.displayName, group.displayName);
37 | assert.equal(createdGroup.description, group.description);
38 | assert.equal(createdGroup.mailEnabled, group.mailEnabled);
39 | assert.isString(createdGroup.id);
40 | return Promise.resolve();
41 | });
42 | });
43 | });
--------------------------------------------------------------------------------
/spec/testHelpers.ts:
--------------------------------------------------------------------------------
1 | import { AccessToken } from "./secrets"
2 | import { Client } from "@microsoft/microsoft-graph-client"
3 |
4 | export function getClient():Client {
5 | return Client.init({
6 | authProvider: (done) => {
7 | done(null, AccessToken);
8 | }
9 | });
10 | }
11 |
12 |
13 | export function randomString () {
14 | return Math.random().toString(36).substring(7);
15 | }
--------------------------------------------------------------------------------
/spec/users.ts:
--------------------------------------------------------------------------------
1 | import {assert} from 'chai'
2 |
3 | import { getClient, randomString } from "./testHelpers"
4 | import {User} from '../microsoft-graph'
5 |
6 | declare const describe, it;
7 |
8 | describe('Users', function() {
9 | this.timeout(10*1000);
10 | it('[Promise] Fetch the authenticated user and access entity properties', function() {
11 | return getClient().api("https://graph.microsoft.com/v1.0/me/").get().then((res) => {
12 | const user = res as User;
13 | assert.isDefined(user.displayName);
14 | assert.isDefined(user.mail);
15 | assert.isDefined(user.id);
16 |
17 | assert.isDefined(user.surname);
18 | assert.isDefined(user.userPrincipalName);
19 |
20 | assert.isArray(user.businessPhones);
21 |
22 | assert.isUndefined(user['invalidPropertyName']);
23 | });
24 | });
25 |
26 |
27 | it('[Callback] Fetch the authenticated user and access entity properties', function() {
28 | return new Promise((resolve, reject) => {
29 | getClient().api("https://graph.microsoft.com/v1.0/me/").get((err, res) => {
30 | const user = res as User;
31 | assert.isDefined(user.displayName);
32 | assert.isDefined(user.mail);
33 | assert.isDefined(user.id);
34 |
35 | assert.isDefined(user.surname);
36 | assert.isDefined(user.userPrincipalName);
37 |
38 | assert.isArray(user.businessPhones);
39 |
40 | assert.isUndefined(user['invalidPropertyName']);
41 | resolve();
42 | });
43 | });
44 | });
45 |
46 |
47 | it('Modify and verify officeLocation property', function() {
48 | const officeLocation = randomString();
49 |
50 | return getClient().api("https://graph.microsoft.com/v1.0/me/").patch({officeLocation}).then(() => {
51 | return getClient().api("https://graph.microsoft.com/v1.0/me/").get().then((res) => {
52 | const user = res as User;
53 | assert.equal(user.officeLocation, officeLocation);
54 | return Promise.resolve();
55 | });
56 | });
57 | });
58 |
59 |
60 | it('[Promise] Modify and verify givenName property', function() {
61 | const givenName = randomString();
62 |
63 | return getClient().api("https://graph.microsoft.com/v1.0/me/").patch({givenName}).then(() => {
64 | return getClient().api("https://graph.microsoft.com/v1.0/me/").get().then((res) => {
65 | const user = res as User;
66 | assert.equal(user.givenName, givenName);
67 | return Promise.resolve();
68 | });
69 | });
70 | });
71 |
72 |
73 |
74 | it('[Callback] Modify and verify givenName property', function() {
75 | const givenName = randomString();
76 |
77 | return new Promise((resolve, reject) => {
78 | getClient().api("https://graph.microsoft.com/v1.0/me/").patch({givenName}, (err, res) => {
79 | getClient().api("https://graph.microsoft.com/v1.0/me/").get((err, res) => {
80 | const user = res as User;
81 | assert.equal(user.givenName, givenName);
82 | resolve();
83 | });
84 | });
85 | });
86 | });
87 |
88 | it('Fetch a list of users and access properties on a collection item', function() {
89 | return getClient().api("https://graph.microsoft.com/v1.0/users/").get().then((collection) => {
90 | const users:User[] = collection.value;
91 | assert.isDefined(users[0].displayName);
92 | assert.isDefined(users[0].id);
93 | assert.isDefined(users[0].mail);
94 | });
95 | })
96 | });
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "noImplicitAny": false,
6 | "sourceMap": true,
7 | "declaration": true
8 | }
9 | }
--------------------------------------------------------------------------------
/typings-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoftgraph/msgraph-typescript-typings/0b3c304ecfbdfc87a5bbcca241e2ed7e25c614cb/typings-demo.gif
--------------------------------------------------------------------------------
/typings.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {},
3 | "devDependencies": {},
4 | "main" : "microsoft-graph.d.ts",
5 | "name":"microsoft-graph",
6 | "version": "0.2.1",
7 | "homepage": "https://github.com/microsoftgraph/msgraph-typescript-typings"
8 | }
9 |
--------------------------------------------------------------------------------